13 【信号】TurtleSignal类信号逻辑的拆解(二):入场和离场
<限前500名加入量化训练营>
马上添加助教微信(jwzhujiao2)
发送订单截图申请名额
提要
- 收到K线推送后的三步
- 为什么先“生成交易指令”再“计算技术指标”?
- generateSignal函数,分成三块:初始化检查、平仓撮合、开仓和加仓撮合
- buy、sell、short、cover这四个交易函数内部的实现
-
知识点导图
内容摘录
在上一集里面我们已经讲到主要的海龟信号的驱动函数是onBar函数,那么收到K线的推送之后:
- 第一步是更新到我们的ArrayManager(K线的时间序列缓存容器)里面;
- 第二步是调用我们这里的generateSignal,也就是这一集里面我们重点讲的内容生成买卖指令;
- 但是我们在上一集里面先跳过了它,讲了后面的第三步calculateIndicator计算下一根K线的技术指标值。
在逻辑上讲,你当然是要先计算出了相应的技术指标值之后,才能去和新来的K线做撮合,然后生成买卖指令。
但是在实盘运行的过程中,因为我们是永远是用上一根K线的时候计算出来的技术指标值和这一根K线来做撮合,那么只有这样才是符合逻辑的,才不会造成未来函数。
generateSignal函数,分成三块
那么在这一集里面,我们就重点来讲generateSignal:def generateSignal(self,bar):唯一的输入参数其实也就是K线的对象了,就是这个bar的对象。代码上可能稍微多一点,比起之前函数可能长一些,有几十行,但是整体上从逻辑上如果你要分的话也就是三块:
- 检查初始化
- 平仓撮合
- 开仓和加仓撮合
……