(SOLVED) Code is exporting wrong MA prices - why?

 

Hi 

i have a code that export prices of moving averages, worked well for a while, now i can't figure out why most export wrong prices. for example USDJPY, M1 MA 50 is at price of ca. 108.172 when i look at chart but it exports 108.088. How can i fix this issue? as far as i can see it's not a problem from the code..? (i know that i have set 5 digits at USDJPY, but other pairs with 5 digits have same issue.) 

Thank you very much! 


USDJPY

int start()
  {
 static int  flag;
 int handle;
  

  double USDCAD_M1_1_MA, USDCAD_M1_50_MA, USDCAD_M1_300_MA, USDCAD_M1_500_MA, 
         USDCAD_M5_50_MA, USDCAD_M5_300_MA, USDCAD_M5_500_MA, 
         USDCAD_M15_50_MA, USDCAD_M15_300_MA, USDCAD_M15_500_MA, 
         USDCAD_M30_50_MA, USDCAD_M30_300_MA, USDCAD_M30_500_MA,
         USDCAD_H1_50_MA, USDCAD_H1_300_MA, USDCAD_H1_500_MA,
         USDCAD_H4_50_MA, USDCAD_H4_300_MA, USDCAD_H4_500_MA,
         USDCAD_D1_50_MA, USDCAD_D1_300_MA, USDCAD_D1_500_MA,
         
         USDCAD_H4_ATR;
  
    
  
         USDCAD_M1_1_MA = iMA("USDCAD",PERIOD_M1,1,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_M1_50_MA = iMA("USDCAD",PERIOD_M1,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_M1_300_MA = iMA("USDCAD",PERIOD_M1,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_M1_500_MA = iMA("USDCAD",PERIOD_M1,400,0,MODE_SMA,PRICE_CLOSE,1);         
         USDCAD_M5_50_MA = iMA("USDCAD",PERIOD_M5,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_M5_300_MA = iMA("USDCAD",PERIOD_M5,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_M5_500_MA = iMA("USDCAD",PERIOD_M5,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_M15_50_MA = iMA("USDCAD",PERIOD_M15,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_M15_300_MA = iMA("USDCAD",PERIOD_M15,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_M15_500_MA = iMA("USDCAD",PERIOD_M15,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_M30_50_MA = iMA("USDCAD",PERIOD_M30,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_M30_300_MA = iMA("USDCAD",PERIOD_M30,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_M30_500_MA = iMA("USDCAD",PERIOD_M30,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_H1_50_MA = iMA("USDCAD",PERIOD_H1,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_H1_300_MA = iMA("USDCAD",PERIOD_H1,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_H1_500_MA = iMA("USDCAD",PERIOD_H1,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_H4_50_MA = iMA("USDCAD",PERIOD_H4,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_H4_300_MA = iMA("USDCAD",PERIOD_H4,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_H4_500_MA = iMA("USDCAD",PERIOD_H4,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_D1_50_MA = iMA("USDCAD",PERIOD_D1,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_D1_300_MA = iMA("USDCAD",PERIOD_D1,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCAD_D1_500_MA = iMA("USDCAD",PERIOD_D1,400,0,MODE_SMA,PRICE_CLOSE,1);
          
         
         
         USDCAD_H4_ATR= iATR("USDCAD",PERIOD_H4,24, 1);   
         
         
//===========================================================    

  double USDCHF_M1_1_MA, USDCHF_M1_50_MA, USDCHF_M1_300_MA, USDCHF_M1_500_MA, 
         USDCHF_M5_50_MA, USDCHF_M5_300_MA, USDCHF_M5_500_MA, 
         USDCHF_M15_50_MA, USDCHF_M15_300_MA, USDCHF_M15_500_MA, 
         USDCHF_M30_50_MA, USDCHF_M30_300_MA, USDCHF_M30_500_MA,
         USDCHF_H1_50_MA, USDCHF_H1_300_MA, USDCHF_H1_500_MA,
         USDCHF_H4_50_MA, USDCHF_H4_300_MA, USDCHF_H4_500_MA,
         USDCHF_D1_50_MA, USDCHF_D1_300_MA, USDCHF_D1_500_MA,
         
         USDCHF_H4_ATR;
  
    
  
         USDCHF_M1_1_MA = iMA("USDCHF",PERIOD_M1,1,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_M1_50_MA = iMA("USDCHF",PERIOD_M1,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_M1_300_MA = iMA("USDCHF",PERIOD_M1,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_M1_500_MA = iMA("USDCHF",PERIOD_M1,400,0,MODE_SMA,PRICE_CLOSE,1);         
         USDCHF_M5_50_MA = iMA("USDCHF",PERIOD_M5,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_M5_300_MA = iMA("USDCHF",PERIOD_M5,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_M5_500_MA = iMA("USDCHF",PERIOD_M5,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_M15_50_MA = iMA("USDCHF",PERIOD_M15,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_M15_300_MA = iMA("USDCHF",PERIOD_M15,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_M15_500_MA = iMA("USDCHF",PERIOD_M15,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_M30_50_MA = iMA("USDCHF",PERIOD_M30,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_M30_300_MA = iMA("USDCHF",PERIOD_M30,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_M30_500_MA = iMA("USDCHF",PERIOD_M30,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_H1_50_MA = iMA("USDCHF",PERIOD_H1,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_H1_300_MA = iMA("USDCHF",PERIOD_H1,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_H1_500_MA = iMA("USDCHF",PERIOD_H1,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_H4_50_MA = iMA("USDCHF",PERIOD_H4,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_H4_300_MA = iMA("USDCHF",PERIOD_H4,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_H4_500_MA = iMA("USDCHF",PERIOD_H4,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_D1_50_MA = iMA("USDCHF",PERIOD_D1,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_D1_300_MA = iMA("USDCHF",PERIOD_D1,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDCHF_D1_500_MA = iMA("USDCHF",PERIOD_D1,400,0,MODE_SMA,PRICE_CLOSE,1);
          
         
         
         USDCHF_H4_ATR= iATR("USDCHF",PERIOD_H4,24, 1);   
         
         
//===========================================================    

  double USDJPY_M1_1_MA, USDJPY_M1_50_MA, USDJPY_M1_300_MA, USDJPY_M1_500_MA, 
         USDJPY_M5_50_MA, USDJPY_M5_300_MA, USDJPY_M5_500_MA, 
         USDJPY_M15_50_MA, USDJPY_M15_300_MA, USDJPY_M15_500_MA, 
         USDJPY_M30_50_MA, USDJPY_M30_300_MA, USDJPY_M30_500_MA,
         USDJPY_H1_50_MA, USDJPY_H1_300_MA, USDJPY_H1_500_MA,
         USDJPY_H4_50_MA, USDJPY_H4_300_MA, USDJPY_H4_500_MA,
         USDJPY_D1_50_MA, USDJPY_D1_300_MA, USDJPY_D1_500_MA,
         
         USDJPY_H4_ATR;
  
    
  
         USDJPY_M1_1_MA = iMA("USDJPY",PERIOD_M1,1,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M1_50_MA = iMA("USDJPY",PERIOD_M1,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M1_300_MA = iMA("USDJPY",PERIOD_M1,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M1_500_MA = iMA("USDJPY",PERIOD_M1,400,0,MODE_SMA,PRICE_CLOSE,1);         
         USDJPY_M5_50_MA = iMA("USDJPY",PERIOD_M5,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M5_300_MA = iMA("USDJPY",PERIOD_M5,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M5_500_MA = iMA("USDJPY",PERIOD_M5,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M15_50_MA = iMA("USDJPY",PERIOD_M15,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M15_300_MA = iMA("USDJPY",PERIOD_M15,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M15_500_MA = iMA("USDJPY",PERIOD_M15,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M30_50_MA = iMA("USDJPY",PERIOD_M30,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M30_300_MA = iMA("USDJPY",PERIOD_M30,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M30_500_MA = iMA("USDJPY",PERIOD_M30,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_H1_50_MA = iMA("USDJPY",PERIOD_H1,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_H1_300_MA = iMA("USDJPY",PERIOD_H1,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_H1_500_MA = iMA("USDJPY",PERIOD_H1,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_H4_50_MA = iMA("USDJPY",PERIOD_H4,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_H4_300_MA = iMA("USDJPY",PERIOD_H4,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_H4_500_MA = iMA("USDJPY",PERIOD_H4,400,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_D1_50_MA = iMA("USDJPY",PERIOD_D1,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_D1_300_MA = iMA("USDJPY",PERIOD_D1,300,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_D1_500_MA = iMA("USDJPY",PERIOD_D1,400,0,MODE_SMA,PRICE_CLOSE,1);
          
         
         
         USDJPY_H4_ATR= iATR("USDJPY",PERIOD_H4,24, 1);   
         
         
//===========================================================   

 
//===========================================================                           
   handle=FileOpen("MA ATR.csv", FILE_CSV|FILE_WRITE, ',');
   if(handle>0)
    {
     FileWrite(handle, 
      DoubleToStr(USDCAD_M1_1_MA,5), DoubleToStr(USDCAD_M1_50_MA,5), DoubleToStr(USDCAD_M1_300_MA,5), DoubleToStr(USDCAD_M1_500_MA,5), 
      DoubleToStr(USDCAD_M5_50_MA,5), DoubleToStr(USDCAD_M5_300_MA,5), DoubleToStr(USDCAD_M5_500_MA,5), 
      DoubleToStr(USDCAD_M15_50_MA,5), DoubleToStr(USDCAD_M15_300_MA,5), DoubleToStr(USDCAD_M15_500_MA,5), 
      DoubleToStr(USDCAD_M30_50_MA,5), DoubleToStr(USDCAD_M30_300_MA,5), DoubleToStr(USDCAD_M30_500_MA,5),
      DoubleToStr(USDCAD_H1_50_MA,5), DoubleToStr(USDCAD_H1_300_MA,5), DoubleToStr(USDCAD_H1_500_MA,5),
      DoubleToStr(USDCAD_H4_50_MA,5), DoubleToStr(USDCAD_H4_300_MA,5), DoubleToStr(USDCAD_H4_500_MA,5),
      DoubleToStr(USDCAD_D1_50_MA,5), DoubleToStr(USDCAD_D1_300_MA,5), DoubleToStr(USDCAD_D1_500_MA,5),
         
      DoubleToStr(USDCAD_H4_ATR, 5)

     );

     FileWrite(handle, 
      DoubleToStr(USDCHF_M1_1_MA,5), DoubleToStr(USDCHF_M1_50_MA,5), DoubleToStr(USDCHF_M1_300_MA,5), DoubleToStr(USDCHF_M1_500_MA,5), 
      DoubleToStr(USDCHF_M5_50_MA,5), DoubleToStr(USDCHF_M5_300_MA,5), DoubleToStr(USDCHF_M5_500_MA,5), 
      DoubleToStr(USDCHF_M15_50_MA,5), DoubleToStr(USDCHF_M15_300_MA,5), DoubleToStr(USDCHF_M15_500_MA,5), 
      DoubleToStr(USDCHF_M30_50_MA,5), DoubleToStr(USDCHF_M30_300_MA,5), DoubleToStr(USDCHF_M30_500_MA,5),
      DoubleToStr(USDCHF_H1_50_MA,5), DoubleToStr(USDCHF_H1_300_MA,5), DoubleToStr(USDCHF_H1_500_MA,5),
      DoubleToStr(USDCHF_H4_50_MA,5), DoubleToStr(USDCHF_H4_300_MA,5), DoubleToStr(USDCHF_H4_500_MA,5),
      DoubleToStr(USDCHF_D1_50_MA,5), DoubleToStr(USDCHF_D1_300_MA,5), DoubleToStr(USDCHF_D1_500_MA,5),
         
      DoubleToStr(USDCHF_H4_ATR, 5)

     );

     FileWrite(handle, 
      DoubleToStr(USDJPY_M1_1_MA,5), DoubleToStr(USDJPY_M1_50_MA,5), DoubleToStr(USDJPY_M1_300_MA,5), DoubleToStr(USDJPY_M1_500_MA,5), 
      DoubleToStr(USDJPY_M5_50_MA,5), DoubleToStr(USDJPY_M5_300_MA,5), DoubleToStr(USDJPY_M5_500_MA,5), 
      DoubleToStr(USDJPY_M15_50_MA,5), DoubleToStr(USDJPY_M15_300_MA,5), DoubleToStr(USDJPY_M15_500_MA,5), 
      DoubleToStr(USDJPY_M30_50_MA,5), DoubleToStr(USDJPY_M30_300_MA,5), DoubleToStr(USDJPY_M30_500_MA,5),
      DoubleToStr(USDJPY_H1_50_MA,5), DoubleToStr(USDJPY_H1_300_MA,5), DoubleToStr(USDJPY_H1_500_MA,5),
      DoubleToStr(USDJPY_H4_50_MA,5), DoubleToStr(USDJPY_H4_300_MA,5), DoubleToStr(USDJPY_H4_500_MA,5),
      DoubleToStr(USDJPY_D1_50_MA,5), DoubleToStr(USDJPY_D1_300_MA,5), DoubleToStr(USDJPY_D1_500_MA,5),
         
      DoubleToStr(USDJPY_H4_ATR, 5)

     );
     FileClose(handle);
     Comment(" MA_ATR SENT ");
    }

    return(0);
  }
Export Prices - USA - MetaTrader 5 Help
Export Prices - USA - MetaTrader 5 Help
  • www.metatrader5.com
The indicator reflects the change in export prices for a month. It is an indicator of inflation. It has a limited impact on the market. With expectations of an increase in basic interest rates, the increase of the index leads to an increase in the rate of dollar.
 
  1. Why did you post your MT4 question in the Root / MT5 General section instead of the MQL4 section, (bottom of the Root page?)
              General rules and best pratices of the Forum. - General - MQL5 programming forum
    Next time post in the correct place. The moderators will likely move this thread there soon.

  2. On MT4: Unless the current chart is that specific pair/TF referenced, you must handle 4066/4073 errors before accessing candle/indicator values.
              Download history in MQL4 EA - Forex Calendar - MQL4 programming forum - Page 3 #26 № 4

 
William Roeder:
  1. Why did you post your MT4 question in the Root / MT5 General section instead of the MQL4 section, (bottom of the Root page?)
              General rules and best pratices of the Forum. - General - MQL5 programming forum
    Next time post in the correct place. The moderators will likely move this thread there soon.

  2. On MT4: Unless the current chart is that specific pair/TF referenced, you must handle 4066/4073 errors before accessing candle/indicator values.
              Download history in MQL4 EA - Forex Calendar - MQL4 programming forum - Page 3 #26 № 4

1. ok, thanks.

2. yes, the chart is that specific pair and TF referrenced :(

 
wow, i figured out that this is the MA 200 it is exporting, i had in previous code MA 200, how come it is still exporting MA 200 despite having changed it to 50? i closed and reopened terminal multiple times.
 

oh i found it... *shame*


thanks!

 
bosslife: 2. yes, the chart is that specific pair and TF referrenced :(
         USDJPY_M1_50_MA = iMA("USDJPY",PERIOD_M1,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M5_50_MA = iMA("USDJPY",PERIOD_M5,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M15_50_MA = iMA("USDJPY",PERIOD_M15,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_M30_50_MA = iMA("USDJPY",PERIOD_M30,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_H1_50_MA = iMA("USDJPY",PERIOD_H1,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_H4_50_MA = iMA("USDJPY",PERIOD_H4,200,0,MODE_SMA,PRICE_CLOSE,1);
         USDJPY_D1_50_MA = iMA("USDJPY",PERIOD_D1,200,0,MODE_SMA,PRICE_CLOSE,1);

Really? Explain how the chart can be the USDJPY M1, M5, M15, M30, H1, H4, and D1 all at the same time?

 
William Roeder:

Really? Explain how the chart can be the USDJPY M1, M5, M15, M30, H1, H4, and D1 all at the same time?

no, i meant USDJPY in image by "for example USDJPY, M1 MA 50 is at price of ca. 108.172 when i look at chart but it exports 108.088".

problem solved, thanks a lot!! <3

 
What part of "specific pair/TF" was unclear?
 
William Roeder:
What part of "specific pair/TF" was unclear?

probably both, i still don't get it.

never mind. thanks!

Reason: