FOREX MT4 INDICATORS DOWNLOAD
  • Donate to us
  • MT4 INDICATORS A
  • MT4 INDICATORS B
  • MT4 INDICATORS C
  • MT4 INDICATORS D
  • MT4 INDICATORS E
  • MT4 INDICATORS F
  • MT4 INDICATORS G
  • MT4 INDICATORS H
  • MT4 INDICATORS I
  • MT4 INDICATORS J
  • MT4 INDICATORS K
  • MT4 INDICATORS L
  • MT4 INDICATORS M
  • MT4 INDICATORS N
  • MT4 INDICATORS O
  • MT4 INDICATORS P
  • MT4 INDICATORS Q
  • MT4 INDICATORS R
  • MT4 INDICATORS S
  • MT4 INDICATORS T
  • MT4 INDICATORS U
  • MT4 INDICATORS V
  • MT4 INDICATORS W
  • MT4 INDICATORS X
  • MT4 INDICATORS Y
  • MT4 INDICATORS Z
  • MT4 INDICATORS NUM
  • MT4 INDICATORS SIGN

Elliot oscillator – waves 1.03_NRP.mq4

Elliot oscillator – waves 1.03_NRP.mq4 FOREX MetaTrader4 Indicators Download

Elliot oscillator – waves 1.03_NRP.mq4 download link will appear after 20 seconds.


Icon

Elliot oscillator - waves 1.03_NRP.mq4

1 file(s) 8.54 KB
Download


Elliot oscillator – waves 1.03_NRP.mq4 Programming source code.

//+------------------------------------------------------------------+
//|                                    elliot oscillator - waves.mq4 |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1  clrDeepSkyBlue
#property indicator_color2  clrPaleVioletRed
#property indicator_color3  clrGold
#property indicator_color4  clrGold
#property indicator_color5  clrDimGray
#property indicator_color6  clrDimGray
#property indicator_width1  2
#property indicator_width2  2
#property indicator_width3  2
#property indicator_width4  2
#property indicator_width5  2
#property indicator_width6  2
#property strict

//
//
//
//
//

extern int             shortPeriod      =  5;                // Short period
extern int             longPeriod       = 35;                // Long period 
extern ENUM_APPLIED_PRICE Price         = PRICE_MEDIAN;      // Price (original should be median)
extern ENUM_MA_METHOD  MaMethod         = MODE_SMA;          // Average method to use (original should be SMA)
extern string          linesIdentifier  = "elliotWaveLines"; // Unique ID for the indicator
extern color           linesColor       = clrBlack;          // Zigzag lines color
extern ENUM_LINE_STYLE linesStyle       = STYLE_DOT;         // Zigzag lines style
extern bool            alertsOn         = false;             // Turn alerts on?
extern bool            alertsOnCurrent  = true;              // Alerts on still opened bar?
extern bool            alertsMessage    = true;              // Alerts should display a message?
extern bool            alertsSound      = false;             // Alerts should play alert sound?
extern bool            alertsEmail      = false;             // Alerts should send email?
extern bool            alertsPush       = false;             // Alerts should send notification?

//
//
//
//
//

double ellBuffer[];
double ellUBuffer[];
double ellDBuffer[];
double mauBuffer[];
double madBuffer[];
double peakUp[];
double peakDn[];
double trend[];

//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//

int init()
{
   IndicatorBuffers(8);
   SetIndexBuffer(0,ellUBuffer); SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(1,ellDBuffer); SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexBuffer(2,peakUp);     SetIndexStyle(2,DRAW_HISTOGRAM);
   SetIndexBuffer(3,peakDn);     SetIndexStyle(3,DRAW_HISTOGRAM);
   SetIndexBuffer(4,mauBuffer);
   SetIndexBuffer(5,madBuffer);
   SetIndexBuffer(6,trend);
   SetIndexBuffer(7,ellBuffer); 
   IndicatorShortName("Elliot oscillator ( "+(string)shortPeriod+","+(string)longPeriod+")");
   return(0);
}
int deinit()
{
   string lookFor = linesIdentifier+":";
   for (int i=ObjectsTotal(); i>=0; i--)
      {
         string name = ObjectName(i);
         if (StringFind(name,lookFor)==0) ObjectDelete(name);
      }
   return(0); 
}

//
//
//
//
//

int start()
{
   double alpha     = 2.0/(1.0+longPeriod+MathCeil(shortPeriod/2.0));
   int counted_bars = IndicatorCounted();
      if(counted_bars < 0) return(-1);
      if(counted_bars > 0) counted_bars--;
           int limit = MathMin(Bars-counted_bars,Bars-longPeriod);
        
   //
   //
   //
   //
   //

      int      count         = 0;
      int      direction     = 0;   
      int      startFrom     = 0;
      double   lastPeakPrice = 0;
      datetime lastPeakTime  = 0;
           for (;limit<(Bars-longPeriod); limit++)
               {
                  if (peakDn[limit]!=EMPTY_VALUE) { if (count==0) { count ++; continue; } direction=-1; startFrom = limit; break; }
                  if (peakUp[limit]!=EMPTY_VALUE) { if (count==0) { count ++; continue; } direction= 1; startFrom = limit; break; }
               }

   //
   //
   //
   //
   //
   
   for(int i = limit; i >= 0; i--)
   {
      ellBuffer[i]  = iMA(NULL,0,shortPeriod,1,MaMethod,Price,i)-iMA(NULL,0,longPeriod,1,MaMethod,Price,i);
      ellUBuffer[i] = EMPTY_VALUE;
      ellDBuffer[i] = EMPTY_VALUE;

         if (mauBuffer[i+1]==EMPTY_VALUE) if (ellBuffer[i]>0) mauBuffer[i+1] = ellBuffer[i]; else  mauBuffer[i+1] = 0;
         if (madBuffer[i+1]==EMPTY_VALUE) if (ellBuffer[i]<0) madBuffer[i+1] = ellBuffer[i]; else  madBuffer[i+1] = 0;
            
      madBuffer[i] = madBuffer[i+1];
      mauBuffer[i] = mauBuffer[i+1];
      trend[i]     = trend[i+1];
      peakUp[i]    = EMPTY_VALUE;
      peakDn[i]    = EMPTY_VALUE;
         
      //
      //
      //
      //
      //
         
      if (ellBuffer[i] < 0) { madBuffer[i] = madBuffer[i+1]+alpha*(ellBuffer[i]-madBuffer[i+1]); ellDBuffer[i] = ellBuffer[i]; }
      if (ellBuffer[i] > 0) { mauBuffer[i] = mauBuffer[i+1]+alpha*(ellBuffer[i]-mauBuffer[i+1]); ellUBuffer[i] = ellBuffer[i]; }
         
         
         //
         //
         //
         //
         //
         
         ObjectDelete(linesIdentifier+":"+(string)Time[i]);
         if (ellBuffer[i] > 0 && ellBuffer[i]>mauBuffer[i])
         {
            if (direction < 0) { markLow(i,startFrom,lastPeakPrice,lastPeakTime); startFrom = i; }
                direction = 1; trend[i] = 1;
         }
         if (ellBuffer[i] < 0 && ellBuffer[i] 0) { markHigh(i,startFrom,lastPeakPrice,lastPeakTime); startFrom = i; }
                direction = -1;  trend[i] = -1;
         }
   }
   if (direction > 0) markHigh(0,startFrom,lastPeakPrice,lastPeakTime); 
   if (direction < 0) markLow (0,startFrom,lastPeakPrice,lastPeakTime); 
   if (alertsOn)
   {
      int whichBar = 1; if (alertsOnCurrent) whichBar = 0;
      if (trend[whichBar] != trend[whichBar+1])
      {
         if (trend[whichBar] == 1) doAlert(whichBar,DoubleToStr(mauBuffer[whichBar],5)+" crossed up");
         if (trend[whichBar] ==-1) doAlert(whichBar,DoubleToStr(madBuffer[whichBar],5)+" crossed down");
      }         
   }      
   return(0);      
}

//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//

void markLow(int tstart, int end, double& lastPeakPrice, datetime& lastPeakTime)
{
   while (ellBuffer[tstart+1]>0 && tstart0 && end   
Ehlers Fisher transform 2.4 mtf.mq4 ELR color.mq4

Related Posts

METATRADER4E

envelopes_of_stochastic.mq4

METATRADER4E

eMacd.mq4

METATRADER4E

EMA_Cross_RSI_Trend_Spotter_Edit.mq4

METATRADER4E

ELR color.mq4

METATRADER4E

Ehlers Fisher transform 2.4 mtf.mq4

METATRADER4E

EATA pollan vers mod 2_2 (mq4).mq4

METATRADER4E

EATA _Alert2.mq4

METATRADER4E

EasyTrendVisualizer.ex4

How to use this site.
  1. Subscribe YouTube
  2. Subscribe Facebook
  3. Subscribe Instagram
  4. Download MT4
  5. Watch Youtube Video
  6. Downliad Indicator and Try Trading
  7. Donate to us for update

Recent News

  • i-g-cci2.mq4
  • haosvisual_27jk8.mq4
  • HamaSystem separate window.ex4
  • HalfTrend 2.mq4
  • Gitalovsa.mq4

Donate