IMA пробую получить цену есть расхождения MT4 - 225 , где я ошибаюсь ?

 




// индикатор

//+------------------------------------------------------------------+
//|                                                          mmm.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#property indicator_chart_window
 int init()
  {
    return(0);
  }
 int deinit()
  {
    return(0);
  }
 
int start()
  {
   int    counted_bars=IndicatorCounted();
   double MA233 =  NormalizeDouble( iMA( Symbol(),PERIOD_M15, 233, 0, MODE_EMA, MODE_CLOSE, 0 ),5);  
   Print( " ST "+" MA0 "+ MA233);

   Comment( " "+MA233);

       
    return(0);
  }
 

ОШИБКА НАЙДЕНА СПАСИБО!!!!

double MA233 =  NormalizeDouble( iMA( Symbol(),PERIOD_M15, 233, 0, MODE_EMA, MODE_CLOSE, 0 ),5); 

опечатка - надо PRICE_CLOSE


double MA233 =  NormalizeDouble( iMA( Symbol(),PERIOD_M15, 233, 0, MODE_EMA, PRICE_CLOSE, 0 ),5); 
 
#property indicator_level1 0.0
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_width1 1
#property indicator_color2 Red
#property indicator_width2 1
double ExtMapBuffer1[];
double ExtMapBuffer2[];
int init()
  {
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexDrawBegin(0, 100);
   
   return(0);
  }
int start()
  {
   ArrayResize(ExtMapBuffer2, Bars);
   ArraySetAsSeries(ExtMapBuffer2,true);
   ArrayInitialize(ExtMapBuffer2,0);
   int counted_bars=IndicatorCounted();
   for(int i = Bars-counted_bars; i >= 0; i--) {
    ExtMapBuffer2[i] = Close[i];
   }
   for(i = Bars-counted_bars; i >= 0; i--) {
    ExtMapBuffer1[i] = 
        iMA(NULL,0,10,0,MODE_EMA,MODE_CLOSE,i) -
        iMAOnArray(ExtMapBuffer2,0,10,0,MODE_EMA, i);
   }
   return(0);
  }

График:


 
jartmailru >>:

График:


и что ?

 
YuraZ >>:

и что ?

Есть расхождение между значением средней, полученной при помощи iMA(...) и рассчитанной при помощи iMAOnArray(...). Должно-то - совпадать - а там- осцилятор какой-то...

 
YuraZ >>:




Все правильно у вас, получаете машку от PRICE_LOW. Ведь используется MODE_CLOSE = 3, вместо PRICE_CLOSE = 0

 
OneDepo >>:

Все правильно у вас, получаете машку от PRICE_LOW. Ведь используется MODE_CLOSE = 3, вместо PRICE_CLOSE = 0

М-да........ Спасибо, добрый человек.

И добрым метаквотам- тоже- спасибо. :-)

В общем, с PRICE_CLOSE разница 0 там.
 
OneDepo >>:

Все правильно у вас, получаете машку от PRICE_LOW. Ведь используется MODE_CLOSE = 3, вместо PRICE_CLOSE = 0

СПАСИБО!!!

опечатка, как много из них проблем!

поправил на PRICE_CLOSE и все встало на свои места!

 

Я думаю, это не опечатка. Такие названия констант- это умышленная диверсия против пользователей Mql.

И MODE_CLOSE обозначает ту же самую цену закрытия.

 
YuraZ >>:




необходимо заменить MODE_CLOCE на PRICE_CLOSE

 
forex-k >>:

необходимо заменить MODE_CLOCE на PRICE_CLOSE

да да Константин ... спасибо

и спасибо Игорю поправил!

---

Причина обращения: