/* Version November 28, 2007 Äëÿ ðàáîòû èíäèêàòîðà ñëåäóåò ïîëîæèòü ôàéëû PriceSeries.mqh â ïàïêó (äèðåêòîðèþ): MetaTrader\experts\include\ MAMA_NK.mq4 Heiken Ashi#.mq4 â ïàïêó (äèðåêòîðèþ): MetaTrader\indicators\ */ //+X================================================================X+ //| MAMAXX_NK.mq4 | //| MAMA skript: John Ehlers | //| MQL4 CODE: Copyright © 2007, Nikolay Kositsin | //| Khabarovsk, farria@mail.redcom.ru | //+X================================================================X+ #property link "farria@mail.redcom.ru/" //---- îòðèñîâêà èíäèêàòîðà â ãëàâíîì îêíå #property indicator_chart_window //---- êîëè÷åñòâî èíäèêàòîðíûõ áóôåðîâ #property indicator_buffers 2 //---- öâåòà èíäèêàòîðà #property indicator_color1 Blue #property indicator_color2 Red //---- òîëùèíà èíäèêàòîðíûõ ëèíèé #property indicator_width1 1 #property indicator_width2 1 //---- ÂÕÎÄÍÛÅ ÏÀÐÀÌÅÒÐÛ ÈÍÄÈÊÀÒÎÐÀ extern double FastLimit = 0.2; extern double SlowLimit = 0.05; extern int IPC = 4;/* Âûáîð öåí, ïî êîòîðûì ïðîèçâîäèòñÿ ðàñ÷¸ò èíäèêàòîðà (0-CLOSE, 1-OPEN, 2-HIGH, 3-LOW, 4-MEDIAN, 5-TYPICAL, 6-WEIGHTED, 7-Heiken Ashi Close, 8-SIMPL, 9-TRENDFOLLOW, 10-0.5*TRENDFOLLOW, 11-Heiken Ashi Low, 12-Heiken Ashi High, 13-Heiken Ashi Open, 14-Heiken Ashi Close, 15-Heiken Ashi Open0.) */ //---- èíäèêàòîðíûå áóôôåðû double FAMA[]; double MAMA[]; //+X================================================================X+ //| Îáúÿâëåíèå ôóíêöèè PriceSeries | //| Îáúÿâëåíèå ôóíêöèè PriceSeriesAlert | //+X================================================================X+ #include <PriceSeries.mqh> //+X================================================================X+ //| MAMAXX initialization function | //+X================================================================X+ int init() //----+ { //---- Ñòèëü èñïîëíåíèÿ ãðàôèêà SetIndexStyle(0, DRAW_LINE); SetIndexStyle(1, DRAW_LINE); //---- 2 èíäèêàòîðíûõ áóôôåðà èñïîëüçîâàíû äëÿ ñ÷¸òà SetIndexBuffer(0, FAMA); SetIndexBuffer(1, MAMA); //---- óñòàíîâêà çíà÷åíèé èíäèêàòîðà, êîòîðûå íå áóäóò âèäèìû íà ãðàôèêå SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0); //---- èìÿ äëÿ îêîí äàííûõ è ëýéáà äëÿ ñóáúîêîí IndicatorShortName("#MAMAXX"); SetIndexLabel(0, "#FAMAXX"); SetIndexLabel(1, "#MAMAXX"); //---- óñòàíîâêà íîìåðà áàðà, //íà÷èíàÿ ñ êîòîðîãî áóäåò îòðèñîâûâàòüñÿ èíäèêàòîð SetIndexDrawBegin(0, 50); SetIndexDrawBegin(1, 50); //---- óñòàíîâêà àëåðòîâ íà íåäîïóñòèìûå çíà÷åíèÿ âõîäíûõ ïàðàìåòðîâ PriceSeriesAlert(IPC); //---- çàâåðøåíèå èíèöèàëèçàöèè return(0); } //----+ //+X================================================================X+ //| MAMAXX iteration function | //+X================================================================X+ int start() //----+ { int BARS=Bars; //---- ïðîâåðêà êîëè÷åñòâà áàðîâ íà äîñòàòî÷íîñòü äëÿ ðàñ÷¸òà if(BARS <= 7) return(0); //----+ Ââåäåíèå öåëûõ ïåðåìåííûõ è ïîëó÷åíèå óæå ïîñ÷èòàííûõ áàðîâ int MaxBar, limit, bar, counted_bars=IndicatorCounted(); //---- ïðîâåðêà íà âîçìîæíûå îøèáêè if (counted_bars<0) return(-1); //---- ïîñëåäíèé ïîñ÷èòàííûé áàð äîëæåí áûòü ïåðåñ÷èòàí if (counted_bars>0) counted_bars--; //----+ Ââåäåíèå ïåðåìåííûõ ñ ïëàâàþùåé òî÷êîé double alpha; //---- îïðåäåëåíèå íîìåðà ñàìîãî ñòàðîãî áàðà, //íà÷èíàÿ ñ êîòîðîãî áóäåò ïðîèçâåä¸í ïîëíûé ïåðåñ÷¸ò âñåõ áàðîâ MaxBar=BARS-1-7; //---- îïðåäåëåíèå íîìåðà ñàìîãî ñòàðîãî áàðà, //íà÷èíàÿ ñ êîòîðîãî áóäåò ïðîèçåä¸í ïåðåñ÷¸ò òîëüêî íîâûõ áàðîâ limit = BARS - 1 - counted_bars; //---- èíèöèàëèçàöèÿ íóëÿ if(limit>=MaxBar) { for(bar = BARS - 1; bar > MaxBar; bar--) { MAMA[bar] = 0.0; FAMA[bar] = 0.0; limit = MaxBar; } } //---- for (bar=limit;bar>=0;bar--) { alpha = FastLimit; if (alpha < SlowLimit) alpha = SlowLimit; //---+ MAMA[bar] = alpha*PriceSeries(IPC, bar) + (1.0 - alpha)*MAMA[bar+1]; FAMA[bar] = 0.5*alpha*MAMA[bar] + (1.0 - 0.5*alpha)*FAMA[bar+1]; } return(0); } //----+ //+X================================================================X+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Implements a curve of type DRAW_LINE
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features:
It issuies visual alerts to the screen