[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 241

 
artmedia70:

你已经被告知原因是什么。问题不在于i++或i--,而在于我们应该从列表的哪一端开始删除订单--列表的开头(如你所做的)或从列表的结尾(如你在这个案例中必须做的)。

要了解当订单被删除时会发生什么,你需要知道并理解订单是如何存储在数组中的。

当你先删除第一个订单时(它的索引为i=0),所有订单的索引在数组中被移位--第一个订单变成空,第二个订单变成第一,第三个--第二,以此类推。这就是为什么所有的订单都没有被完全删除--事实上,当i变成6时,第六个订单被转移到订单阵列中的第五个位置,并且该订单没有被索引6选中。

当你从列表的末尾删除订单时,转变不会发生--第一个订单在列表中的位置为零,它将继续拥有这个位置。第10个订单的位置是9,它被删除了,然后第9个订单,它在列表中的位置是8,被删除了,以此类推,直到订单阵列中第一个位置是0的订单。

非常感谢artmedia70的全面答复,感谢ilunga ...也感谢Nadya的参与......祝福...
 
请指示,我已经设置了多货币工具,以便从一个窗口处理几种货币。但问题是,货币之间的切换非常快,以至于没有时间去开立订单。在3分钟内,有4个订单+4个待定订单被打开。而且有很多货币之间的转换。
 
volshebnik:
什么是更好的,什么是?)
制作独特的名字并记住它们。我不知道你的任务,也许你不需要知道。
 
forexnew:
请指示,我已经设置了多货币工具,以便从一个窗口处理几种货币。但问题是,货币之间的切换非常快,以至于没有时间去开立订单。在3分钟内,4个订单+4个挂单已经打开。而且有很多货币之间的转换。

http://vinin.ucoz.ru/forum/11
 

有两个用户修改,分别是Mod_1和Mod_2。

这两种情况都有修改条件。

double TS;
int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);

if (TS < Min_Dist)
TS=Min_Dist;

如何改变它,使修改不通过止损条件,对于买入止损 小于跟踪止损。

对于卖出来说,止损要比追踪止损大。

 

你好。

请帮助我找到一个错误。

下面的代码在测试器上不起作用,而在演示器上却没有这样的问题。记录本上没有错误。

提前感谢。

  //====================== Отлавливаем прибыль по рынку ===========================================
  if (RinProfit) {
    if(SchBuyLots>0 || SchBuyLots777>0)
     {
      if((SchSellStop_b(MAGIC)>0 && (maM_fast<maM_slow || maH_fast<maH_slow || maOtk_fast<maOtk_slow)) ||
         (SchSellStop_b(MAGIC)>0 && (speedup_H1_ff<(10000+H1_MA_factor_ff) || speedup_H1_ss<(10000+H1_MA_factor_ss) ||
                                     speedup_M15_ff<(10000+M15_MA_factor_ff) || speedup_M15_ss<(10000+M15_MA_factor_ss))) ||
         (SchSellStop_b(MAGIC)>0 && ((maHXX<=H1_point_min  && speedup_H1_ss<(10000+H1_MA_factor_ss)) || maHXX>=H1_point_max)) ||
         (SchSellStop_b(MAGIC)>0 && Fractal_fibo_buy>Fibo_prohibit) ||
         (SchSellStop_b(MAGIC)>0 && TF1S>0 && TF2S>0 && timf1s!=0 && timf2s!=0 && TF1S<TF2S) ||
         (SchSellStop_b(MAGIC)>0 && TF1S>0 && TF2S>0 && timf1s!=0 && timf2s!=0 && TF1S>=TF2S && Bid<price_S))
       {
        while (SchBuyLots+SchBuyLots777>0 && SchSellLots+SchSellLots777>0)
         {
          CloseVstrechnye(MAGIC);
          return (0);
         }
        CloseAll_bMAGIC(Proskalz, MAGIC);
        CloseAll777_b(Proskalz);
        DeleteOtlozhMAGIC(MAGIC);
        DeleteOtlozh777();
        Alert("Позиции Buy закрыты согласно рыночной ситуации.");
        RefreshRates();
        if (Timeout_Trade>0 && ProfHist<=0)
         {
          Comment (SMB,": ТАЙМАУТ ТОРГОВЛИ "); 
          Sleep (Timeout_Trade*60000);
         } 
        RefreshRates();
       }
    }
    if(SchSellLots>0 || SchSellLots777>0)
     {
      if((SchBuyStop_b(MAGIC)>0 && (maM_fast>maM_slow || maH_fast>maH_slow || maOtk_fast>maOtk_slow)) ||
         (SchBuyStop_b(MAGIC)>0 && (speedup_H1_ff>(10000-H1_MA_factor_ff) || speedup_H1_ss>(10000-H1_MA_factor_ss) ||
                                    speedup_M15_ff>(10000-M15_MA_factor_ff) || speedup_M15_ss>(10000-M15_MA_factor_ss))) ||
         (SchBuyStop_b(MAGIC)>0 && ((maHXX<=H1_point_min  && speedup_H1_ss>(10000-H1_MA_factor_ss)) || maHXX>=H1_point_max)) ||
         (SchBuyStop_b(MAGIC)>0 && Fractal_fibo_sell>Fibo_prohibit) ||
         (SchBuyStop_b(MAGIC)>0 && TF1B>0 && TF2B>0 && timf1b!=0 && timf2b!=0 && TF1B>TF2B) ||
         (SchBuyStop_b(MAGIC)>0 && TF1B>0 && TF2B>0 && timf1b!=0 && timf2b!=0 && TF1B<=TF2B && Bid>price_B))
       {
        while (SchBuyLots+SchBuyLots777>0 && SchSellLots+SchSellLots777>0)
         {
          CloseVstrechnye(MAGIC);
          return (0);
         }
        CloseAll_bMAGIC(Proskalz, MAGIC);
        CloseAll777_b(Proskalz);
        DeleteOtlozhMAGIC(MAGIC);
        DeleteOtlozh777();
        Alert("Позиции Sell закрыты согласно рыночной ситуации.");
        RefreshRates();
        if (Timeout_Trade>0 && ProfHist<=0)
         {
          Comment (SMB,": ТАЙМАУТ ТОРГОВЛИ "); 
          Sleep (Timeout_Trade*60000);
         } 
        RefreshRates();
       }
     } 
   }
  //===============================================================================================  
 

在MT4和MT5中从dll中调用函数有什么区别?我编译了dll,它在MT5中运行良好,但在MT4中却出现了错误。

2011.10.06 23:00:34 Solaris执行器EURUSDm,M1:无法从dll 'Solaris.dll'调用函数'InfoOfTrading'(错误127)。

这到底是什么?- 我一直在绞尽脑汁。:(

 
制作一个 Win32 dll项目
 
sergeev:
制作一个Win32 dll项目
但它在MT5中运行良好
 

我将继续我的上述问题。

我也在另一个EA中使用了上述代码。该EA的情况与上述情况类似,不同的是,代码条件完全以另一种方式得到满足(在演示中,同样,一切都在无错误地工作)。但有一天,测试器工作正常,代码按照给它的条件正常工作。

这是一种真正的神秘主义。

另外,由于某些原因,优化工作有时对我不起作用。有时它会重新计算一些东西,但由于某种原因将所有结果重置为零。在不同的经纪商的终端上都会出现这种情况。然而,当天空中所有的星星和星座大概汇聚在一起时,一切都开始正常工作。

原因: