策略写完之后,QMT里的风控代码该加在哪几处
发布时间:15分钟前阅读:5
新手写策略,注意力几乎全在买点卖点上。但真正决定你能不能长期跑下去的,往往是风控那几行代码。它们不产生收益,只负责在你写错、行情异常、程序跑飞的时候,把损失关在笼子里。
一、单笔仓位上限
第一处要加的是单笔委托的金额校验。很多人算仓位时用的是计划资金,但实际可用资金会因为冻结、在途、其他策略占用而变化。
写法很简单:发单前先算一遍这笔委托占总资产的比例,超过预设上限就直接跳过,并打一条日志。这一步能挡住大部分因为参数填错导致的巨额下单。
二、总仓位上限
单笔控住了,还要控总量。多标的同时触发时,单笔都不超标,加起来可能已经满仓。
建议在init里维护一个总仓位计数,每次发单前累加,超过上限就拒绝新开仓,只允许减仓。
三、单日亏损熔断
给自己定一条线:当日亏损达到总资产的某个比例,就停止开新仓,只保留平仓权限。
这条线的意义不在于数字精确,而在于它强制你在情绪最差的时候退出决策。没有这条线,亏损很容易从可控滑向失控。
四、重复下单拦截
同一个信号在连续几根K线里都成立时,最容易连发委托。处理办法是把已下单状态记在全局变量里,发单成功后置位,成交或撤单后再复位。
判断依据不要用持仓数量,因为委托到成交之间有延迟,持仓还没变化,第二笔就已经发出去了。
五、异常价格校验
行情偶尔会出现异常值,比如瞬间的极端价格。如果你的策略按最新价市价委托,一笔异常行情就能造成远超预期的成交。
建议在发单前加一条价格合理性检查:委托价与最近若干根K线的均价偏离超过多少比例,就放弃这笔交易。
六、日志与告警
每一笔委托、每一次拒绝、每一个异常,都要写进日志。日志不是给程序看的,是给你第二天复盘看的。
如果能做到每天收盘后扫一眼日志里的报错和废单,大部分隐患会在爆发前被发现。
七、最后一条,也是最重要的
不要在实盘里直接改代码。要改先在模拟环境验证,验证通过再替换。生产环境里的一次手滑,代价可能是一整年的利润。
风控代码写起来不性感,但它是你唯一能提前控制的东西。收益由市场决定,亏损的下限由你自己决定。
股票开户欢迎找我!可以申请万0.854的股票佣金、etf 可转债佣金万0.5、国债逆回购一折(百万分之一)!量化软件QMT+ptrade免费使用!还有888、999资金靓号等你选!
温馨提示:投资有风险,选择需谨慎。



问一问
从业认证

+微信
分享该文章
