13 【信号】TurtleSignal类信号逻辑的拆解(二):入场和离场

这集里面我们将会随着上一集的内容继续来介绍海龟信号相关的逻辑,这一节的重点将集中在入场和离场上。

【点击】传送门-加入 从0到1跑通量化交易 >>>>

<限前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的对象。代码上可能稍微多一点,比起之前函数可能长一些,有几十行,但是整体上从逻辑上如果你要分的话也就是三块:

    • 检查初始化
    • 平仓撮合
    • 开仓和加仓撮合

    ……