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

一、前言

  前面写了条件单的功能,发现只要稍微改一下就能做止盈止损了,不过止损有点麻烦,这里先做了止盈。主要思路如下:

  1、使用A_SendOrder发送一个委托后,对这个委托进行监控

  2、若发现被监控委托“完全成交”就按此前的设置自动发送一个止盈单

  3、这个止盈单就是个普通的反向委托,所以是否成交就不管了

二、代码解析

1、简述

  与条件单一样,定义了一个类,除初始化外定义了两个函数

  class StopProfitOrder(object):

    #初始化

    def __init__(self,contractID='',userNo='',localOrderId='',StopPriceStr=''):

    #发送反向委托

    def sendOrder(self):

    #行情触发时执行此函数

    def handle(self):  

  使用方式:

   参数释义:

  contractID 合约编号
  localOrderId 被监控的委托号码
  StopPriceStr 止盈价格
    filledPrice+1 成交价+1*最小变动价
    filledPrice-2 成交价-2*最小变动价
    limit=100 限价100

2、__init__初始化函数

  初始化仅将设置的参数记录下来,不做其他工作

3、handle函数

  这里就是不断检查被监控的委托是否完全成交,完全成交的话就调用sendOrder函数发送一个止盈委托。

  依然是将此函数放入到handle_data中

4、sendOrder函数

  在handle中发现被监控委托完全成交后就调用此函数实现止盈委托,最后将止盈委托返回。

三、回顾

  自动止盈策略大体与条件单结构类似,后面继续实现自动止损、自定义套利等9.3的功能,不过最终目标还是看看能不能通过量化的方式来减少滑点的损失,这就是个大学问了。

  完整代码:

https://share.weiyun.com/5I6sily

 

原文地址:https://www.cnblogs.com/cation/p/12389933.html