重修vn.py笔记 之 六 : CTA策略要素
vnpy 里的cta策略,需要继承模板策略, 必须含有几个要素:(以 AtrRsiStrategy为例)
继承自 (CtaTemplate)
重要的元素:
parameters = [... ]
variables = [... ]
其中,
1 实盘策略启动时,需要的变量。 他会保存在本地策略配置文件中 (在.vntrader目录下)。
2. 如果带窗体运行, 这些变量 variables 会显示出来,方便观测策略运行状态。
其他:
self.bg = BarGenerator(self.on_bar) 管理K线,这个策略里,将收到的tick数据,合成bar,
self.am = ArrayManager() 数据管理工具,可以方便地直接调用指标以及历史数据。
self.pos 基类使用的变量,记录当前策略的仓位。
需要注意的是:
即使策略发出了信号(比如买入 1手),调用了函数,在测试期间,self.pos 不是一定会有1手。
1. 交易动作是在当根bar的收尾时结束时发出。
2. 通常在self.on_bar时调用 self.cancelall(),他表示这个订单在下一根k线收尾时一直有效。
3. 如果价格不合适,则不成交。
4. 这会造成:如果你策略里在“ 买入1手”时,就修改了策略状态,可能会造成仓位和信号不一致。出现一些莫名奇妙的bug,
其他平台通常发出信号后,强制成交,这让测试简单化了,但和实际情况不一致。
浙公网安备 33010602011771号