vn.py官网
开源量化社区
Member
avatar
加入于:
帖子: 262
声望: 57

1 BarData的定义如下:

@dataclass
class BarData(BaseData):
    """
    Candlestick bar data of a certain trading period.
    """

    symbol: str
    exchange: Exchange
    datetime: datetime

    interval: Interval = None
    volume: float = 0
    open_interest: float = 0
    open_price: float = 0
    high_price: float = 0
    low_price: float = 0
    close_price: float = 0

    def __post_init__(self):
        """"""
        self.vt_symbol = f"{self.symbol}.{self.exchange.value}"

2 BarData没有表示时间宽度的成员

2.1 里面的成员没有能够区分Bar长度的

datetime:是BarData的开始时间
interval的类型是Interval枚举值,应该是时间单位,取值只能够是:
MINUTE = "1m":表示1分钟
HOUR = "1h":表示1小时
DAILY = "d":表示1日
WEEKLY = "w":表示1周

2.2 问题来了,如何区分5分钟BarData线和30分钟BarData?

如果给你两个BarData对象,怎么区分它是5分钟的和30分钟的呢?它们的Interval只能为MINUTE,也不可能是其他的更大的单位。这样它们岂不是都长的一个样了吗?
是否还需要增加表示时长的width或者表示结束时间的endtime来作为区分呢?
如果是使用width的话,可以这样表示
datetime='2020-9-8 9:00:00',interval = Interval.MINUTE,width=5 —— 5分钟
datetime='2020-9-8 9:00:00',interval = Interval.MINUTE,width=15 —— 5分钟
datetime='2020-9-8 9:00:00',interval = Interval.MINUTE,width=30 —— 30分钟
如果使用endtime的话,可以这样表示:(interval参数就有些多余)
datetime='2020-9-8 9:00:00',endtime='2020-9-8 9:05:00',interval = Interval.MINUTE —— 5分钟
datetime='2020-9-8 9:00:00',endtime='2020-9-8 9:15:00',interval = Interval.MINUTE —— 5分钟
datetime='2020-9-8 9:00:00',endtime='2020-9-8 9:30:00',interval = Interval.MINUTE —— 30分钟

Member
avatar
加入于:
帖子: 140
声望: 13

这么好的问题没有人回复呀

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号