MAMAXX_NK






/*
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