| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- """
- 维度数据模型文件
- 包含策略信息、K线形态、趋势类型等维度表
- """
- from app import db
- class StrategyInfo(db.Model):
- """
- 交易策略信息表
- 对应BRD文档中的"strategy_info"表
- """
- __tablename__ = 'strategy_info'
- id = db.Column(db.Integer, primary_key=True, comment='序号')
- name = db.Column(db.String(50), nullable=False, comment='名称')
- open_close_type = db.Column(db.Integer, nullable=False, comment='开平仓类型,0-开仓,1-平仓')
- strategy_type = db.Column(db.Integer, nullable=False, comment='策略类型,0-压力位,1-支撑位,2-趋势,3-换月')
-
- def __repr__(self):
- return f'<StrategyInfo {self.id} - {self.name}>'
- class CandleInfo(db.Model):
- """
- K线形态信息表
- 对应BRD文档中的"candle_info"表
- """
- __tablename__ = 'candle_info'
- id = db.Column(db.Integer, primary_key=True, comment='序号')
- name = db.Column(db.String(100), nullable=False, comment='名称')
-
- def __repr__(self):
- return f'<CandleInfo {self.id} - {self.name}>'
-
- def to_dict(self):
- """转换为字典"""
- return {
- 'id': self.id,
- 'name': self.name
- }
- class TrendInfo(db.Model):
- """
- 走势类型基本信息表
- 对应BRD文档中的"trend_info"表
- """
- __tablename__ = 'trend_info'
- id = db.Column(db.Integer, primary_key=True, comment='ID')
- category = db.Column(db.Integer, nullable=False, comment='类别,0-上涨下跌类,1-震荡类,2-和压力位支撑位相关类')
- name = db.Column(db.String(100), comment='名称')
- time_range_id = db.Column(db.Integer, db.ForeignKey('dim_time_range.id'), comment='时间范围ID')
- amplitude_id = db.Column(db.Integer, db.ForeignKey('dim_amplitude.id'), comment='幅度范围ID')
- position_id = db.Column(db.Integer, db.ForeignKey('dim_position.id'), comment='位置范围ID')
- speed_type_id = db.Column(db.Integer, db.ForeignKey('dim_speed_type.id'), comment='速度类型ID')
- trend_type_id = db.Column(db.Integer, db.ForeignKey('dim_trend_type.id'), comment='趋势类型ID')
- extra_info = db.Column(db.String(100), comment='额外信息')
-
- # 关联关系
- time_range = db.relationship('DimTimeRange', backref='trends')
- amplitude = db.relationship('DimAmplitude', backref='trends')
- position = db.relationship('DimPosition', backref='trends')
- speed_type = db.relationship('DimSpeedType', backref='trends')
- trend_type = db.relationship('DimTrendType', backref='trends')
-
- def __repr__(self):
- return f'<TrendInfo {self.id} - {self.name}>'
- class DimTimeRange(db.Model):
- """
- 走势类型的时间范围维度表
- 对应BRD文档中的"dim_time_range"表
- """
- __tablename__ = 'dim_time_range'
- id = db.Column(db.Integer, primary_key=True, comment='ID')
- name = db.Column(db.String(20), nullable=False, comment='名称')
-
- def __repr__(self):
- return f'<DimTimeRange {self.id} - {self.name}>'
- class DimAmplitude(db.Model):
- """
- 走势类型的幅度范围维度表
- 对应BRD文档中的"dim_amplitude"表
- """
- __tablename__ = 'dim_amplitude'
- id = db.Column(db.Integer, primary_key=True, comment='ID')
- name = db.Column(db.String(20), nullable=False, comment='名称')
-
- def __repr__(self):
- return f'<DimAmplitude {self.id} - {self.name}>'
- class DimPosition(db.Model):
- """
- 走势类型的位置范围维度表
- 对应BRD文档中的"dim_position"表
- """
- __tablename__ = 'dim_position'
- id = db.Column(db.Integer, primary_key=True, comment='ID')
- name = db.Column(db.String(20), nullable=False, comment='名称')
-
- def __repr__(self):
- return f'<DimPosition {self.id} - {self.name}>'
- class DimSpeedType(db.Model):
- """
- 走势类型的速度类型维度表
- 对应BRD文档中的"dim_speed_type"表
- """
- __tablename__ = 'dim_speed_type'
- id = db.Column(db.Integer, primary_key=True, comment='ID')
- name = db.Column(db.String(20), nullable=False, comment='名称')
-
- def __repr__(self):
- return f'<DimSpeedType {self.id} - {self.name}>'
- class DimTrendType(db.Model):
- """
- 走势类型的趋势类型维度表
- 对应BRD文档中的"dim_trend_type"表
- """
- __tablename__ = 'dim_trend_type'
- id = db.Column(db.Integer, primary_key=True, comment='ID')
- name = db.Column(db.String(20), nullable=False, comment='名称')
-
- def __repr__(self):
- return f'<DimTrendType {self.id} - {self.name}>'
- class PositionMode(db.Model):
- """
- 开仓模式表
- 管理不同的开仓模式类型
- """
- __tablename__ = 'position_mode'
- id = db.Column(db.Integer, primary_key=True, comment='ID')
- name = db.Column(db.String(20), nullable=False, comment='名称')
- type = db.Column(db.Integer, nullable=False, default=0, comment='类型,0-虚拟,1-执行')
- direction = db.Column(db.Integer, comment='方向,0-多,1-空,NULL-不限')
-
- def __repr__(self):
- return f'<PositionMode {self.id} - {self.name}>'
-
- def to_dict(self):
- """转换为字典"""
- return {
- 'id': self.id,
- 'name': self.name,
- 'type': self.type,
- 'direction': self.direction
- }
|