关于实盘交易中图表信号价与实际委托价相差很大的问题

在实盘运行中,发现图表价与实际提交委托价相差很大的问题。 图表价格是4158,实际提交委托价位4133 下单部分代码原代码: // 开空单的条件 If( Close < ma1Value and rocCalc[1] < 0 And Low <= dnBand[1] And Low < LowestValue[1] And MarketPosition != -1){ buyPrice = Min(Open,dnBand[1]); Commentary(\"开盘价:\"+text(Open)+\",下轨价:\"+text(dnBand[1])+\",购买价格:\"+text(buyPrice)); SellShort(lots,buyPrice); } 实际上我也找到部分问题所在修正后的代码: // 开空单的条件 If( Close[1] < ma1Value And Low <= dnBand[1] And Low < LowestValue[1] And MarketPosition != -1){ buyPrice = Min(Open,dnBand[1]); buyPrice = Min(buyPrice,LowestValue[1]); // -------------->把这个打开,图表价格就和实际成交的委托价格相符合 Commentary(\"开盘价:\"+text(Open)+\",下轨价:\"+text(dnBand[1])+\",购买价格:\"+text(buyPrice)); SellShort(lots,buyPrice); } 我目前发现可能出现的问题1. Close < ma1Value 价格出现闪烁,但是根据当前画线数据来看,不存在信号闪烁. // 不是本次价格偏差的原因。 2. 判断条件中 Low < LowestValue[1] ,但是实际下单为buyPrice = Min(Open,dnBand[1]);,存在偷价,增加buyPrice = Min(buyPrice,LowestValue[1]); 即可,我发现,如果价上这个代码,实际委托价和图表中的价格就相对一致了。 通过检查发现,出现信号的时候,价格应当是4133,但是我委托价填写的是4158,但是实际报单依然以4133来提交委托的,所以我想问, 所以,假如我做空,现在最低价是4133,出信号的时候 我委托4158空, SellShort(lots,4158) 这个可以吗? 还是说,你们会自动改价格为 SellShort(lots,4133)转换为代码就是:If(low <4133 And MarketPosition != -1){ SellShort(1,4158);} 我想问,不考虑价格偏移的情况,此时委托价到底是多少,到底是4158还是4133我理解的SellShort函数,就是以填写的价格提交委托,但是目前看又不是的,咨询客服,客服说,出现信号的时候是4133,所以以4133作为委托价,然后再价格偏移报单。 在实盘运行中,发现图表价与实际提交委托价相差很大的问题。 图表价格是4158,实际提交委托价位4133 下单部分代码原代码: // 开空单的条件 If( Close < ma1Value and rocCalc[1] < 0 And Low <= dnBand[1] And Low < LowestValue[1] And MarketPosition != -1){ buyPrice = Min(Open,dnBand[1]); Commentary(\"开盘价:\"+text(Open)+\",下轨价:\"+text(dnBand[1])+\",购买价格:\"+text(buyPrice)); SellShort(lots,buyPrice); } 实际上我也找到部分问题所在修正后的代码: // 开空单的条件 If( Close[1] < ma1Value And Low <= dnBand[1] And Low < LowestValue[1] And MarketPosition != -1){ buyPrice = Min(Open,dnBand[1]); buyPrice = Min(buyPrice,LowestValue[1]); // -------------->把这个打开,图表价格就和实际成交的委托价格相符合 Commentary(\"开盘价:\"+text(Open)+\",下轨价:\"+text(dnBand[1])+\",购买价格:\"+text(buyPrice)); SellShort(lots,buyPrice); } 我目前发现可能出现的问题1. Close < ma1Value 价格出现闪烁,但是根据当前画线数据来看,不存在信号闪烁. // 不是本次价格偏差的原因。 2. 判断条件中 Low < LowestValue[1] ,但是实际下单为buyPrice = Min(Open,dnBand[1]);,存在偷价,增加buyPrice = Min(buyPrice,LowestValue[1]); 即可,我发现,如果价上这个代码,实际委托价和图表中的价格就相对一致了。 通过检查发现,出现信号的时候,价格应当是4133,但是我委托价填写的是4158,但是实际报单依然以4133来提交委托的,所以我想问, 所以,假如我做空,现在最低价是4133,出信号的时候 我委托4158空, SellShort(lots,4158) 这个可以吗? 还是说,你们会自动改价格为 SellShort(lots,4133)转换为代码就是:If(low <4133 And MarketPosition != -1){ SellShort(1,4158);} 我想问,不考虑价格偏移的情况,此时委托价到底是多少,到底是4158还是4133我理解的SellShort函数,就是以填写的价格提交委托,但是目前看又不是的,咨询客服,客服说,出现信号的时候是4133,所以以4133作为委托价,然后再价格偏移报单。

写了很多 但是不知所云“我理解的SellShort函数,就是以填写的价格提交委托,但是目前看又不是的,咨询客服,客服说,出现信号的时候是4133,所以以4133作为委托价,然后再价格偏移报单。”默认状态下,图表上信号的价格,由sellshort等函数的第二个参数决定,然后实盘自动交易发单以图表上信号的价格决定。这种情况下,sellshort价格参数 = 图上信号价格 = 委托价格如果你开启了委托偏移,那么图上信号价格还是等于函数的价格参数,但是委托价格和它们就无关了,委托价格以报单时刻的盘口对手价为基准,比如买入就看卖一,卖出就看买一。如果你不仅开启了委托偏移,还设置了点数,比如10跳,那么委托价格就等于盘口对手价加对应的跳数,买入就是卖一加十跳,卖出就是买一减10跳。

回复:我大致理解你的意思了.但是不清楚对不对,我用代码说明一下If(low <4133 And MarketPosition != -1){ SellShort(1,4158);}同样是上面这个代码.场景一:【未开启委托偏移】low = 4122,满足开空条件,则以挂单价 SellShort(1,4158); 提交委托单。且,图表中价格为4158.场景二:【开启委托偏移,设置偏移价格为10】low = 4122, 此时,最新价格为4122,由于开启了委托偏移,则在最新价格4122对手价上减去10,比如4112的价格进行开空(而不是在委托价4158上偏移开空)。我理解的委托偏移,是指在图表的委托价格上再进行偏移,而实际上的委托偏移,是在出信号的那一刻的最新价格的基础上进行委托偏移。我这样的理解没错吧?