交流Q群1064240775
一、前言
前面写了条件单的功能,发现只要稍微改一下就能做止盈止损了,不过止损有点麻烦,这里先做了止盈。主要思路如下:
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的功能,不过最终目标还是看看能不能通过量化的方式来减少滑点的损失,这就是个大学问了。
完整代码:文件分享