QMT 加 Pandas:数据读取、处理、生成信号全流程
发布时间:9小时前阅读:13
QMT 负责取数和下单,Pandas 负责算,两者配合是最常见的组合。流程可以拆成四段,每一段都有具体的坑。
第一段,取数。QMT 的行情接口返回的通常是列表或者字典,字段名固定,但顺序不保证。取数之后第一件事是转成 DataFrame,明确指定列名,不要依赖返回顺序。取多只标的时,建议循环单只取再拼接,比一次性批量取更稳,出错也容易定位。
第二段,清洗。要处理三件事:缺失值、停牌日、除权除息。缺失值直接向前填充会在长时间停牌时制造假数据,更稳的做法是标记为无效并跳过该标的;停牌日的成交量是零,参与计算会污染均线;除权除息必须用复权价,否则一根分红缺口会被当成暴跌信号。
第三段,计算。把指标写成纯函数,输入是 DataFrame,输出是 Series,不要在函数里读全局变量、不要在里面下单。这样写的好处是能单独测试:给一段固定数据,看输出对不对,不用整条策略跑一遍。
第四段,生成信号。信号是一张表,每一行是一个时间点和一个标的,列是信号方向、强度、备注。把信号表和原始数据分开存,方便回测时逐条比对,也方便实盘时只加载最近一段。
还有两个工程习惯。一是时间对齐,不同标的的交易日历可能不同,信号表和行情表按日期合并前先确认索引一致。二是缓存,历史数据不用每次重取,落成本地文件,加一个更新日期的字段,能省掉大量等待。
判断标准:整条链路里,任何一段出问题,你都应该能在十分钟内定位到是数据、指标还是信号。做不到这一点,说明中间某一段被写成了黑盒,迟早要重写。
股票/量化开户欢迎找我!满足条件股票佣金万0.854、etf 可转债佣金万0.5、国债逆回购一折(百万分之一)!期权1.8元一张全包价!量化软件QMT+ptrade免费使用!还有888、999资金靓号等你选!
温馨提示:投资有风险,选择需谨慎。



问一问
从业认证

+微信
分享该文章
