add
This commit is contained in:
76
models/orm_models.py
Normal file
76
models/orm_models.py
Normal file
@@ -0,0 +1,76 @@
|
||||
from sqlalchemy import create_engine, MetaData
|
||||
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session
|
||||
from sqlalchemy import Integer, String, Float, DateTime, DECIMAL, func
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
import json
|
||||
|
||||
class Base(DeclarativeBase):
|
||||
"""SQLAlchemy基础类"""
|
||||
pass
|
||||
|
||||
class StrategyPosition(Base):
|
||||
"""持仓表模型"""
|
||||
__tablename__ = 'deh_strategy_position_new'
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True, comment='自增id')
|
||||
st_id: Mapped[int] = mapped_column(Integer, nullable=False, comment='策略id')
|
||||
k_id: Mapped[int] = mapped_column(Integer, default=0, comment='对应strategy_key 的ID')
|
||||
asset: Mapped[str] = mapped_column(String(32), default='USDT', comment='使用资产名称')
|
||||
symbol: Mapped[str] = mapped_column(String(50), nullable=False, comment='交易对')
|
||||
price: Mapped[Optional[float]] = mapped_column(Float, comment='持仓均价')
|
||||
side: Mapped[str] = mapped_column(String(10), nullable=False, comment='方向')
|
||||
|
||||
# 注意:这里属性名是 qty,但对应数据库字段是 sum
|
||||
qty: Mapped[float] = mapped_column("sum", Float, nullable=False, comment='仓位(张数)')
|
||||
|
||||
asset_num: Mapped[float] = mapped_column(DECIMAL(20, 8), default=0.00000000, comment='资产数量')
|
||||
asset_profit: Mapped[Optional[float]] = mapped_column(DECIMAL(20, 8), comment='利润数量')
|
||||
leverage: Mapped[int] = mapped_column(Integer, default=0, comment='杠杆倍数')
|
||||
uptime: Mapped[int] = mapped_column(Integer, nullable=False, comment='更新时间')
|
||||
profit_price: Mapped[float] = mapped_column(DECIMAL(20, 8), default=0.00000000, comment='止盈价格')
|
||||
stop_price: Mapped[float] = mapped_column(DECIMAL(20, 8), default=0.00000000, comment='止损价格')
|
||||
liquidation_price: Mapped[float] = mapped_column(DECIMAL(20, 8), default=0.00000000, comment='强平价格')
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"StrategyPosition(id={self.id!r}, k_id={self.k_id!r}, symbol={self.symbol!r})"
|
||||
|
||||
class StrategyOrder(Base):
|
||||
"""订单表模型"""
|
||||
__tablename__ = 'deh_strategy_order_new'
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
|
||||
st_id: Mapped[Optional[int]] = mapped_column(Integer, comment='策略id')
|
||||
k_id: Mapped[int] = mapped_column(Integer, default=0, comment='对应strategy_key 的ID')
|
||||
asset: Mapped[Optional[str]] = mapped_column(String(32), default='USDT', comment='资产名称')
|
||||
order_id: Mapped[Optional[str]] = mapped_column(String(765), comment='订单id')
|
||||
symbol: Mapped[Optional[str]] = mapped_column(String(120), comment='交易对')
|
||||
side: Mapped[Optional[str]] = mapped_column(String(120), comment='订单方向')
|
||||
price: Mapped[Optional[float]] = mapped_column(Float, comment='订单价格')
|
||||
time: Mapped[Optional[int]] = mapped_column(Integer, comment='订单时间')
|
||||
order_qty: Mapped[Optional[float]] = mapped_column(Float, comment='订单挂单数量')
|
||||
last_qty: Mapped[Optional[float]] = mapped_column(Float, comment='订单成交数量')
|
||||
avg_price: Mapped[Optional[float]] = mapped_column(Float, comment='订单成交均价')
|
||||
exchange_id: Mapped[Optional[int]] = mapped_column(Integer, comment='交易所id')
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"StrategyOrder(id={self.id!r}, order_id={self.order_id!r})"
|
||||
|
||||
class StrategyKX(Base):
|
||||
"""账户信息表模型"""
|
||||
__tablename__ = 'deh_strategy_kx_new'
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True, comment='自增id')
|
||||
st_id: Mapped[Optional[int]] = mapped_column(Integer, comment='策略id')
|
||||
k_id: Mapped[int] = mapped_column(Integer, default=0, comment='对应strategy_key 的ID')
|
||||
asset: Mapped[Optional[str]] = mapped_column(String(32), default='USDT', comment='资产名')
|
||||
balance: Mapped[float] = mapped_column(DECIMAL(20, 8), default=0.00000000, comment='当日账户金额')
|
||||
withdrawal: Mapped[float] = mapped_column(DECIMAL(20, 8), default=0.00000000, comment='当日提现')
|
||||
deposit: Mapped[float] = mapped_column(DECIMAL(20, 8), default=0.00000000, comment='当日充值')
|
||||
other: Mapped[float] = mapped_column(DECIMAL(20, 8), default=0.00000000, comment='当日其他')
|
||||
profit: Mapped[float] = mapped_column(DECIMAL(20, 8), default=0.00000000, comment='当日利润')
|
||||
time: Mapped[Optional[int]] = mapped_column(Integer, comment='时间')
|
||||
up_time: Mapped[Optional[datetime]] = mapped_column(DateTime, default=func.now(), onupdate=func.now(), comment='最后更新时间')
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"StrategyKX(id={self.id!r}, k_id={self.k_id!r}, time={self.time!r})"
|
||||
Reference in New Issue
Block a user