double iMAMql4(string Symb,int TimFrame,int iMAPeriod,int ma_shift,ENUM_MA_METHOD ma_method,ENUM_APPLIED_PRICE applied_price,int Shift) { ENUM_TIMEFRAMES TimFram=FixTF(TimFrame); double mass[1]; int handle=iMA(Symb,TimFram,iMAPeriod,ma_shift,ma_method,applied_price); if(handle<0) { Print("Failed to create the iMA object: Error ",GetLastError()); return(0); } else if(CopyBuffer(handle, 0, Shift, 1, mass) <= 0)
Perhaps you should read the manual, especially the examples.
How To Ask Questions The Smart Way. (2004)
How To Interpret Answers.
RTFM and STFW: How To Tell You've Seriously Screwed Up.
They all (including iCustom) return a handle (an int). You get that in OnInit. In OnTick/OnCalculate (after the indicator has updated its buffers), you use the handle, shift and count to get the data.
Technical Indicators - Reference on algorithmic/automated trading language for MetaTrader 5
Timeseries and Indicators Access / CopyBuffer - Reference on algorithmic/automated trading language for MetaTrader 5
How to start with MQL5 - General - MQL5 programming forum - Page 3 #22 (2020)
How to start with MQL5 - MetaTrader 5 - General - MQL5 programming forum - Page 7 #61 (2020)
MQL5 for Newbies: Guide to Using Technical Indicators in Expert Advisors - MQL5 Articles (2010)
How to call indicators in MQL5 - MQL5 Articles (2010)
![MQL5 - Language of trade strategies built-in the MetaTrader 5 client terminal](https://c.mql5.com/i/registerlandings/logo-2.png)
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I've tried recreating an Indicator by copy and pasting. It works just fine when debugging on historical data, but works terribly on live cahrt (if it shows up it shows one bar).
Please ignore the terrible Coding Style, since I don't really know MQL5 I just tried wielding the Power of Copy and Paste.
Since you probably have way more experience than I have, I hope you could help me in finding my mistakes.Thanks in advance.