新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1748

 
MakarFX #:

你能告诉我如何正确操作吗?

不需要输入我想加的所有元素,只需指定5个元素即可。

#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
int Label1Buffer[];
int Label2Buffer[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   int i=0,
       f=0,
       limit=9;
   ArrayResize(Label1Buffer,limit);
   ArrayResize(Label2Buffer,limit);
   for(i=limit-1; i>=0; i--)
     {
Label1Buffer[i]= 3;
 if(i<=4) f+=Label1Buffer[i];
Label2Buffer[i]= f;
      Print(Label2Buffer[i]);
     }
Print("   !  ",Label2Buffer[0]);
  }
//+------------------------------------------------------------------+
 
Galim_V #:

不,不是这样的。到目前为止,我已经做了这些

   for(i=limit;i>=0;i--)
     {
      Label1Buffer[i] = MathRand();
      tmp = 0.0; 
      for(int a=Input1; a>0; a--)
        {
         tmp +=  Label1Buffer[i+a];
        } 
      Label2Buffer[i] = tmp;
     }
 
iHigh(NULL,PERIOD_H1,i)和 double H=iHigh(NULL,PERIOD_H1,i); 不是一回事?

由于某些原因,在while循环之后,它们给出了不同的结果。

,我想对它进行优化,这样我就不会不断地写一个长行iHigh(NULL,PERIOD_H1,i),而是将 存储在一个变量中把它改成循环中的一个变量,结果就不同了。
 
Ivan Butko iHigh(NULL,PERIOD_H1,i)和 double H=iHigh(NULL,PERIOD_H1,i); 不是一回事?由于某些原因,在while循环之后,它们给出了不同的结果。 ,我想对它进行优化,这样我就不会不断地写一个长行



iHigh(NULL,PERIOD_H1,i),而是将 存储在一个变量中。把它改成循环中的一个变量,结果就不同了

取决于考虑什么背景...

如果你的while循环播放i,那么iHigh(NULL,PERIOD_H1,i)和H将是不同的。因为H存储了其他i的数据

 
Nikolay Ivanov iHigh(NULL,PERIOD_H1,i)和H将是不同的。因为H存储的是另一个i的数据

是的,你是对的,它在玩I。我是说,谢谢你。

 
有什么办法可以削减历史吗?当你下载它时,它是20年前的,但你需要它2-3年前的...
 
Ivan Butko #:
有什么办法可以削减历史吗?当你下载它时,它是20年前的,但你需要它2-3年前的...

使用 "Shift "键选择你不想要的数据并删除它。

 
MakarFX #:

使用 "Shift "键选择你不想要的数据并删除它。

谢谢你

 
下午好。
void CloseAll()
{
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         {
            if (OrderType() == OP_BUY)
            {
               if (!OrderClose(OrderTicket(),OrderLots(), Bid, Slippage))
               Print (" Не удалось закрыть ордер на покупку!");
            }
            if (OrderType() == OP_SELL) 
            {
               if (!OrderClose(OrderTicket(),OrderLots(), Ask, Slippage))
               Print (" Не удалось закрыть ордер на продажу!");
            }
         }
      }
   }
}
我使用这个代码来关闭所有的订单。但我注意到,如果有很多人,并不是所有的人都是封闭的。我可以添加什么来关闭所有的人,即使不是第一次。如果可能的话,请举例说明。
 

下午好,再次)

第二个问题:
,我想部分关闭订单。但有一个问题,当部分关闭订单时,按照我的理解,订单票改变了,由此最后一个变成了第一个,而对我来说最主要的是要保持开盘的顺序。为了让最后的人留在最后。我们可以如何追踪之前的订单。开盘价 有变化吗?如果可能的话,请举例说明)
,提前感谢。

原因: