/*-----------------------------+ | | | Shared by www.Aptrafx.com | | | +------------------------------*/ //+------------------------------------------------------------------+ //| Elliott Wave Trend .mq4 | //| copyright " CONVERT BY "ENG.AED AL NAIRAB" | //| MT4 conversion dr. richard gaines | //+------------------------------------------------------------------+ #property link "http://www.nairab.com/" #include <stdlib.mqh> #property indicator_separate_window #property indicator_maximum 1.1 #property indicator_minimum -1.1 #property indicator_buffers 1 #property indicator_color1 Blue #property indicator_width1 2 //+------------------------------------------------------------------+ //| Variables | //+------------------------------------------------------------------+ extern int FastMa = 5; extern int SlowMa = 35; extern double trigger = 0.25; extern int back_test = 5; double ExtHistoBuffer[]; //+------------------------------------------------------------------+ //| Initialization | //+------------------------------------------------------------------+ int init() { SetIndexStyle(0, DRAW_LINE, STYLE_SOLID); SetIndexBuffer(0, ExtHistoBuffer); IndicatorDigits(MarketInfo(Symbol(),0)); return(0); } int start() { //+------------------------------------------------------------------+ //| Local variables | //+------------------------------------------------------------------+ int shift = 0; int i = 0; int limit; double llv = 0; double hhv = 0; double taiv = 0; double trend = 0; int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; // loop from last executed bar to current bar (with shift=0) for(shift=limit;shift>=0 ;shift--) { llv=iMA(NULL, 0, FastMa, 0, MODE_SMA, PRICE_MEDIAN, shift)-iMA(NULL, 0, SlowMa, 0, MODE_SMA, PRICE_MEDIAN, shift); hhv=iMA(NULL, 0, FastMa, 0, MODE_SMA, PRICE_MEDIAN, shift)-iMA(NULL, 0, SlowMa, 0, MODE_SMA, PRICE_MEDIAN, shift); for(i=shift;i<=shift+back_test ;i++) { llv=MathMin(iMA(NULL, 0, FastMa, 0, MODE_SMA, PRICE_MEDIAN, i)-iMA(NULL, 0, SlowMa, 0, MODE_SMA, PRICE_MEDIAN, i),llv); hhv=MathMax(iMA(NULL, 0, FastMa, 0, MODE_SMA, PRICE_MEDIAN, i)-iMA(NULL, 0, SlowMa, 0, MODE_SMA, PRICE_MEDIAN, i),hhv); } if((hhv == (iMA(NULL, 0, FastMa, 0, MODE_SMA, PRICE_MEDIAN, shift)-iMA(NULL, 0, SlowMa, 0, MODE_SMA, PRICE_MEDIAN, shift))&& trend == 0)) trend=1; if((llv == (iMA(NULL, 0, FastMa, 0, MODE_SMA, PRICE_MEDIAN, shift)-iMA(NULL, 0, SlowMa, 0, MODE_SMA, PRICE_MEDIAN, shift))&& trend == 0)) trend=-1; if((llv<0 && trend == -1 && (iMA(NULL, 0, FastMa, 0, MODE_SMA, PRICE_MEDIAN, shift)-iMA(NULL, 0, SlowMa, 0, MODE_SMA, PRICE_MEDIAN, shift))>-trigger*llv)) trend=1; if((hhv>0 && trend == 1 && (iMA(NULL, 0, FastMa, 0, MODE_SMA, PRICE_MEDIAN, shift)-iMA(NULL, 0, SlowMa, 0, MODE_SMA, PRICE_MEDIAN, shift))<-trigger*hhv)) trend=-1; ExtHistoBuffer[shift] = trend; } return(0); } //-----
Sample
Analysis
Market Information Used:
Indicator Curves created:
Implements a curve of type DRAW_LINE
Indicators Used:
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
Other Features: