零基础极星9.5量化入门二:滚动止盈策略

Posted cation

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础极星9.5量化入门二:滚动止盈策略相关的知识,希望对你有一定的参考价值。

一、前言

  所谓滚动止盈是我瞎起的名字,简单来说就这么个流程:

  1)基于某个价格A下N手单,每单间隔M。比如AP001当前价格是7555,那我就连下十手买单,并且价格递减:

  第一手价格:7555  第二手价格:7554  第三手价格:7553  第四手价格:7552  ...  第十手价格7546

  2)当合约的价格发生震荡,比如先持续下跌,会导致我们下的单依次成交,每当成交一手就自动提交一个止盈单比如

  第一手成交后自动提交一个7556的卖出单

  第二手成交后自动提交一个7555的卖出单

  第三手成交后自动提交一个7554的卖出单

  ...

  第十手成交后自动提交一个7557的卖出单

  3)然而若是止盈单撞大运成交了,立即又补一个买入单。

  7556的卖出单若成交就下一个7555的买入单

  依次类推

  如此就实现了所谓的滚动止盈,在震荡行情下可以来回收割一点点利润。

二、代码解析

  我们在量化启动时就立即挂单,所以不取历史数据,这里有个坑,代码中设置只取即时行情触发,但启动时窗口中勾选着“K线触发”,结果是即时行情和K线都触发。所以要把启动时窗口中的“K线触发”取消勾选。如果不取消勾选会发生什么呢?K线触发会优先于即时行情,导致先触发一个历史行情,如此量化启动后的批量下单就不是真下单了,变成了历史回测。

技术图片

  这里使用A_SendOrder函数下单,并将返回的下单编号存起来。

技术图片

 

  接着使用A_OrderStatus轮询订单状态,如果发现有已经成交的订单,就反向下一个卖出单,并将已成交的订单号剔除出轮询的list。另外还要记录下新的反向订单号。

技术图片

 

   接着遍历反向的订单号,如果发现又成交了,又下一个买入单,并添加到前面的买入订单list中。同样要将已成交的订单从list中剔除。

技术图片

 

  最后停止策略时需要将所有委托撤单,如果需要也可以把持仓都平掉。

 技术图片

 

 三、回顾

  其实整个过程挺简单的,完整代码关注公众号“零基础爱学习”回复LH2获得。

技术图片

 

以上是关于零基础极星9.5量化入门二:滚动止盈策略的主要内容,如果未能解决你的问题,请参考以下文章

零基础极星9.5量化基本入门教程

零基础极星量化入门五:实现自动止盈功能

零基础极星9.3止盈止损用法详解

零基础极星量化入门四:实现条件单功能

零基础极星量化入门八:简单的boll实盘

零基础极星量化小技巧:启动时自动轮换合约