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

 
BarCloseB1 = iClose(nameSym,xPeriod,xshiftBar);
BarCloseB1Signal = iClose(nameSymSignal,xPeriod,xshiftBar)

日安!

在打开一个新的小时条时,我学习了当前符号的收盘值和另一个(当前条的信号值)。

但实际上,当前仪器的数值是对应的,而信号仪器的数值则是前一个条形的数值,也就是说,如果xshiftBar=1,那么信号仪器的xshiftBar=2,也就是多一个条形。

 
Vitaly Muzichenko:

你只能提取你从这一资源中获得的收益,也就是销售软件、信号和计算机电源。输入的内容只能用于该资源。

维塔利,你搞错了。你必须先提款,然后当你需要的时候,你就可以存款。

 
Yerkin Sagandykov:

日安!

在打开一个新的小时条时,我学习了当前符号的收盘值和另一个(当前条的信号值)。

但实际上,当前仪器的数值是对应的,而信号仪器的数值则是前一个条形的数值,也就是说,如果xshiftBar=1,那么信号仪器的xshiftBar=2,也就是多一个条形。

为了检查这一点,用数值1和2替换变量。然后你就会知道错误在哪里。

 
Alekseu Fedotov:

使用iCustom

谢谢,但请你告诉我,为什么抽出的水平飞得太快了?
附加的文件:
snake.mq4  16 kb
 
Alexey Viktorov:

为了检查,用1和2替换变量。然后你就会知道错误在哪里。

我认为问题不在于变量值,我只是在我的代码中,在新的一小时到来时重新计算,结果是,根据当前的符号,新的酒吧 出现并计算酒吧=1的值,但根据信号符号,新的酒吧还没有形成或什么,计算酒吧=2的值。

 if  ( iTime(nameSym, LPeriod, 0 ) == counted_bar ) return; 
Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...
 
Yerkin Sagandykov:

在我看来,问题不在于变量的值,我只是在我的代码中进行了重新计算,结果发现,对于当前的符号,出现了一个新的条形,并计算出条形=1,但对于信号符号,一个新的条形还没有形成,并计算出条形=2的值。

我希望它是准确的,而不是 "根据我的意见"。 然后我可以肯定地说,新的条形图出现在信号符号上。并不知不觉地等待着这个新的酒吧。有几种选择,由你来决定使用哪一种。

 

问候。能否请你给我一个提示?

我需要计算某个特定EA的订单的最大缩水。

如果我按所有的顺序计算,那么我就这样做,这与MT本身的结果相吻合。

      if(AccountEquity()>max_equity){
         max_equity=AccountEquity();
      }   
      if(max_drawdown_total<max_equity-AccountEquity()){
         max_drawdown_total=max_equity-AccountEquity();
      } 

我对一个专家顾问是这样计算的。

      if(MoneyCount()>max_equity_1){
         max_equity_1=MoneyCount();
      }   
      if(max_drawdown_total_1<max_equity_1-MoneyCount()){
         max_drawdown_total_1=max_equity_1-MoneyCount();
      }

double MoneyCount(){
   double count=0;
   for(int i=OrdersTotal()-1; i>=0; i--){
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic){
            count+=(OrderProfit()+OrderSwap()+OrderCommission()); //
         }   
      }
   }
   return count;
}

我相信在测试器中的结果应该是一样的,但有一个超过百分之一的差异(不是立即)。我算错了什么?

 
下午好。能否请你告诉我更喜欢哪种语言mql4或5?还有,为什么mt4有一个内置的元编辑器5,或者也是针对mql4的?
 
你好,请问当一个指标叠加在另一个指标上时,如何在代码中反映指标值,例如ATR叠加在MA上,在MT4中是否可以?
 
ZahvatkiN:
你好,请问当一个指标叠加在另一个指标上时,如何在代码中反映指标值,例如ATR叠加在MA上,在MT4中是否可行?

对于MQL4,使用iMAOnArray(),对于MQL5 - 当创建iMA句柄时,指定先前创建的ATR句柄,而不是计算移动平均线 的价格。

原因: