DASTrader热键脚本止损单未触发,疑STOP语法有误求排查
DASTrader止损单未触发问题排查
你作为DASTrader交易员兼开发者,实现的头寸止盈止损热键脚本中止损单未触发,先贴出你的脚本:
ROUTE=MARKET;Share=100;TIF=DAY+;BUY=Send; OCO=RT:STOP STOPTYPE:LIMIT STOPPRICE:(AvgCost*0.95) PX:(AvgCost*0.949) ACT:SELL QTY:Pos TIF:DAY+ RT:LMT PX:(AvgCost*1.08) ACT:SELL QTY:Pos TIF:DAY+;
以下是具体排查方向:
止损单类型逻辑偏差
你用了STOPTYPE:LIMIT(止损限价单),触发规则是价格触及STOPPRICE(AvgCost0.95)后,以PX(AvgCost0.949)的限价挂单。如果价格直接跳空跌破0.949,限价单会因无对手盘无法成交,看起来像“未触发”。若需要价格到0.95就立即成交,改用STOPTYPE:MARKET(止损市价单),删除PX参数即可。AvgCost变量时效性问题
AvgCost是头寸平均成本,但如果热键在建仓前执行,此时AvgCost可能为0或旧头寸成本,导致止损价格计算异常。必须确保执行热键时,目标头寸已建立,AvgCost能读取到正确数值。OCO组语法格式错误
DASTrader的OCO指令要求订单参数格式严格规范,你的脚本中第二个订单有换行缩进,可能导致平台解析失败。尝试将两个订单合并到同一行,格式如下:OCO=RT:STOP STOPTYPE:LIMIT STOPPRICE:(AvgCost*0.95) PX:(AvgCost*0.949) ACT:SELL QTY:Pos TIF:DAY+;RT:LMT PX:(AvgCost*1.08) ACT:SELL QTY:Pos TIF:DAY+;TIF参数权限问题
TIF=DAY+对应“当日延长时段有效”,若你的账户未开通盘前盘后交易权限,该参数会导致订单无法生效。先改用标准的TIF=DAY测试,确认是否是权限或参数兼容性问题。Pos变量取值异常
QTY:Pos用于获取当前头寸数量,如果热键执行时Pos未正确读取到头寸规模,会导致止损单数量为0,自然不会触发。可以先手动替换为固定数值(比如100)测试,验证是否是变量取值问题。
内容的提问来源于stack exchange,提问作者Artyom Gishyan
相关产品推荐
相关产品推荐

