zoukankan      html  css  js  c++  java
  • 【零基础】极星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中剔除。

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

     

     三、回顾

      其实整个过程挺简单的,完整代码:https://share.weiyun.com/5ovI5aG

  • 相关阅读:
    NOIP201208同余方程
    NOIP模拟赛 最佳组合
    NOIP模拟赛 拓展
    CF1253E Antenna Coverage(DP)
    LOJ6033「雅礼集训 2017 Day2」棋盘游戏 (博弈论,二分图,匈牙利算法)
    CF582E Boolean Function(DP,状态压缩,FMT)
    CF750G New Year and Binary Tree Paths(DP)
    Codeforces Round 596 题解
    AGC008E Next or Nextnext(组合计数,神奇思路)
    ARC082E ConvexScore(神奇思路)
  • 原文地址:https://www.cnblogs.com/cation/p/12185279.html
Copyright © 2011-2022 走看看