QMT量化策略实盘(二)交易触发定时器run_time

上一篇分享中,介绍了QMT量化实盘中最常用的下单函数passorder,和它主要的参数。


如果再结合一个交易触发函数,就可以实现简单的量化交易策略了!比如下面的代码可以实现:

在集合竞价期间以指定价买入中信证券100股

#coding:gbk

import time
c = 0
s = '600030.SH'
def init(ContextInfo):
    # 设置定时器,历史时间表示会在一次间隔时间后开始调用回调函数 比如本例中 5秒后会后第一次触发myHandlebar调用 之后五秒触发一次
    ContextInfo.run_time("myHandlebar","5nSecond","2019-10-14 13:20:00")


def myHandlebar(ContextInfo):
    global c
    now = time.strftime('%H%M%S')
    if c ==0 and '092500' >= now >= '091500':
        c += 1
        passorder(23,1101,account,s,11,14.00,100,2,ContextInfo) # 立即下单

def handlebar(ContextInfo):
    return

喜欢我分享的内容的话,请记得关注哦。完整代码可以关注私信领取哦。

如果有需要开通QMT的也可以私信我哦


最后说一下开通量化交易的条件,仅需要在券商开户,资金量达到合规门槛既可申请免费使用。佣金费用为万一,
非常厚道,有更多交易的客制化需求或者想深入了解系统可联系我:XD1996CD
 

量化交易中可以说最重要的部分,就是设定交易触发条件。


 ContextInfo.run_time - 设置定时器


设置定时器函数,可以指定时间间隔,定时触发用户定义的回调函数。适用与在盘中,持续判断交易信号的模型。

用法: ContextInfo.run_time(funcName,period,startTime) 定时触发指定的 funcName函数, funcName函数由用户定义, 入参为ContextInfo对象。

有三个参数:

funcName:回调函数名
period:重复调用的时间间隔,'5nSecond'表示每5秒运行1次回调函数,'5nDay'表示每5天运行一次回调函数,'500nMilliSecond'表示每500毫秒运行1次回调函数
startTime:表示定时器第一次启动的时间,如果要定时器立刻启动,可以设置历史的时间

注意

模型回测时无效
定时器没有结束方法,会随着策略的结束而结束。

喜欢我分享的内容的话,请记得关注哦。完整代码可以关注私信领取哦。

如果有需要开通QMT的也可以私信我哦


最后说一下开通量化交易的条件,仅需要在券商开户,资金量达到合规门槛既可申请免费使用。佣金费用为万一,
非常厚道,有更多交易的客制化需求或者想深入了解系统可联系我:XD1996CD
 

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的带5%止损及20%止盈的QMT交易事件网格策略,它会在满足触发条件时自动买入或卖出,同时设置止损和止盈: ``` import qmt # 连接QMT交易API qmt.connect("your_api_key", "your_secret_key") # 定义止损和止盈比例 stop_loss_ratio = 0.05 take_profit_ratio = 0.2 # 定义网格交易策略 def grid_strategy(kline): # 判断K线阳包阴的情况 if kline.close > kline.open and kline.close < kline.high: # 计算买入价格和止损/止盈价格 buy_price = kline.close stop_loss_price = buy_price * (1 - stop_loss_ratio) take_profit_price = buy_price * (1 + take_profit_ratio) # 下单买入 qmt.buy("symbol", "amount", buy_price) # 设置止损和止盈 qmt.stop_loss("symbol", stop_loss_price) qmt.take_profit("symbol", take_profit_price) # 判断K线阴包阳的情况 elif kline.close < kline.open and kline.close > kline.low: # 计算卖出价格和止损/止盈价格 sell_price = kline.close stop_loss_price = sell_price * (1 + stop_loss_ratio) take_profit_price = sell_price * (1 - take_profit_ratio) # 下单卖出 qmt.sell("symbol", "amount", sell_price) # 设置止损和止盈 qmt.stop_loss("symbol", stop_loss_price) qmt.take_profit("symbol", take_profit_price) # 订阅K线数据,并执行网格交易策略 qmt.subscribe_kline("symbol", "interval", grid_strategy) ``` 需要注意的是,这段代码仅提供一个简单的示例,际应用中还需要考虑更多的因素,比如交易手续费、资金管理、市场风险等。同时,也需要根据际情况调整止损和止盈比例,以及其他参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值