一个方法通吃了qmt mini接口的所有订阅,并通过异步事件将数据推送到你的策略中

在星巴克吃洋芋 2025-11-25 11:15:43 80 举报

async def subscribe(self, symbol: Union[str, list[str]], data_type: str, **kwargs: Any) -> bool:
        """
        订阅数据(带缓存和去重)
        
        Args:
            symbol: 标的代码或代码列表。格式:code.flag。 flag可表示为市场代号、交易所标识、板块标识等。如:000001.SZ
            data_type: 数据类型 见constants.DataType
            **kwargs: 扩展参数,依data_type数据类型不同,传递不同的参数。如用于获取行情数据可传递以下配置:
                - period: 周期。 见constants.Period
                - start_time: 开始时间,格式: 字串YYYYMMDD/YYYYMMDDhhmmss, datetime对象
                - end_time: 结束时间 同“开始时间”
                - lookback: 数量 -1 全部, n 从结束时间向前数n个
                - adj_type: 除权类型。见constants.AdjustmentType
                - subscribe_mode:订阅模式,缺省单推:'single' - 单推  'whole' - 全推。
                    在全推模式下,需要配置以下参数:
                    markets: 市场列表。缺省 ['SH', 'SZ']
                    sector_names: 板块名称列表。缺省 ["沪深A股", "沪深指数"]
                    analysis : 统计分析标志。缺省False不计算。 True 进行排行、盘口等相关因子的计算,并推送出计算结果
                    合约标的列表通过入口参数symbol以list类型列表的形式列出。如 取指定合约标的['000001.SZ','600000.SH'], 取全部合约标的[]
        returns:
            True 订阅成功    
        """

同样,取消订阅也非常简单,屏蔽了所有内部逻辑,如何订阅,就如何取消订阅:

async def unsubscribe(self, symbol: Union[str, list[str]], data_type: str, **kwargs: Any) -> bool:
        """
        取消订阅
        
        Args:
            symbol: 标的代码或代码列表。格式:code.flag。 flag可表示为市场代号、交易所标识、板块标识等。如:000001.SZ
            data_type: 数据类型
            **kwargs: 扩展参数,用于精确匹配订阅,与订阅参数相同
        """


这家伙太懒了,什么也没留下。 1

著作权归文章作者所有。

最新回复 ( 0 )
发新帖
0