【零基礎】極星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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM