//+------------------------------------------------------------------+ //| i-GentorLSMA&EMA_v.0.2.mq4 | //| FX Sniper, KimIV | //| 2005.08.20 KimIV v.0.0 | //| Ñîåäèíèë â LSMA è EMA | //| 2005.08.20 KimIV v.0.2 | //| Ñèíõðîíèçèðîâàë íóìåðàöèþ âåðñèé ñ i-GentorCCIM_v.0.2.mq4 | //+------------------------------------------------------------------+ #property copyright "FX Sniper, KimIV" #property link "http://www.kimiv.ru" //---- #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Yellow #property indicator_color2 Blue #property indicator_color3 Red #property indicator_color4 Lime //---- Âíåøíèå ïàðàìåòðû --------------------------------------------- extern int EMAPeriod =34; // Ïåðèîä ÅÌÀ extern int LSMAPeriod=25; // Ïåðèîä LSMA //---- Áóôåðû èíäèêàòîðà --------------------------------------------- double LineHighEMA[]; double LineLowEMA[]; double LSMABuffer1[]; double LSMABuffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void init() { IndicatorDigits(2); SetIndexStyle (0, DRAW_LINE, STYLE_SOLID, 3); SetIndexBuffer(0, LineHighEMA); SetIndexStyle (1, DRAW_LINE, STYLE_SOLID, 3); SetIndexBuffer(1, LineLowEMA); SetIndexBuffer(2, LSMABuffer1); SetIndexStyle (2, DRAW_LINE, STYLE_SOLID, 3); SetIndexBuffer(3, LSMABuffer2); SetIndexStyle (3, DRAW_LINE, STYLE_SOLID, 3); Comment(""); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ void deinit() { Comment(""); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i, shift, counted_bars=IndicatorCounted(); int Draw4HowLong, loopbegin; double sum, lengthvar, tmp, wt; //---- if (counted_bars<0) return; if (counted_bars>0) counted_bars--; counted_bars=Bars - counted_bars; for(shift=0; shift<counted_bars; shift++) { LineLowEMA[shift]=-1; LineHighEMA[shift]=-1; //---- double EmaValue=iMA(NULL, 0, EMAPeriod, 0, MODE_EMA, PRICE_TYPICAL, shift); if (Close[shift] > EmaValue) LineHighEMA[shift]=EMPTY_VALUE; else if (Close[shift] < EmaValue) LineLowEMA[shift]=EMPTY_VALUE; } Draw4HowLong=Bars-LSMAPeriod - 5; loopbegin=Draw4HowLong - LSMAPeriod - 1; //---- for(shift=loopbegin; shift>=0; shift--) { sum=0; for(i=LSMAPeriod; i>=1; i--) { lengthvar=LSMAPeriod + 1; lengthvar/=3; tmp=0; tmp=(i - lengthvar)*Close[LSMAPeriod-i+shift]; sum+=tmp; } wt=sum*6/(LSMAPeriod*(LSMAPeriod+1)); //---- LSMABuffer1[shift]=1; LSMABuffer2[shift]=1; //---- if (wt > Close[shift]) LSMABuffer2[shift]=EMPTY_VALUE; else if (wt < Close[shift]) LSMABuffer1[shift]=EMPTY_VALUE; } } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains close prices for each bar
Indicator Curves created:
Indicators Used:
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
Other Features: