在实盘运行中,发现图表价与实际提交委托价相差很大的问题。
图表价格是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作为委托价,然后再价格偏移报单。
另外一个帖子回过你了
你这里开了委托偏移,参考委托偏移的说明分析