组织订单周期 - 页 15

 
Alexey Viktorov:

用常规的OnTradeTransaction 代替GetAmountPositions如何?

大约是这样的。

这不会有帮助。特别是,在你的变体中,OnTick之间根本就没有独立性。

 
fxsaber:

这不会有帮助。特别是在你的版本中,OnTick之间根本没有独立性。

嗯,是的。我没有考虑到这样一个事实,即它与蜱虫仿真的距离就像月球与火星的距离一样远。

无论你做了多少延迟,在OnTradeTransaction 被执行之前,OnTick事件都不会发生,历史上也不会有任何记载。

 
fxsaber:

你可以做这样的事情。

   if(Trade.Buy(volume,_Symbol,OP,SL,TP))
     {
      uint retcode=Trade.ResultRetcode();
      if(retcode==TRADE_RETCODE_PLACED||retcode==TRADE_RETCODE_DONE)
         {
         ulong ticket=Trade.ResultDeal();
         for(int n=0;n<500;n++)
            {
            if(!PositionSelectByTicket(ticket)) Sleep(10);
            else return(true);
            }
         }
      else return(false);
     }
   else return(false);
也就是说,我们只需等待,直到该位置出现在列表中
 
Aleksey Lebedev:

你可以做这样的事情。

也就是说,我们只需等待,直到该位置出现在列表中
ulong ticket=Trade.ResultDeal(); // В этом месте может быть ноль
 

fxsaber:

它可能是零

不太可能,通过retcode,订单要么被执行,要么被放置。

如果是零,我们就等待5秒,等待周期的结束(也许2-3秒就够了)。

在此期间,职位清单将有望得到更新。

 
Aleksey Lebedev:

在此期间,姿势清单有望得到更新。

在胆量上。

 
fxsaber:

敢于担当。

不,平均上限的科学方法)