//+------------------------------------------------------------------+ //| i-GentorCCIM_v.1.1.mq4 | //| Egorov Gennadiy | //| 2005.08.20 KimIV v.0.0 | //| Íåìíîãî ìîäåðíèçèðîâàë, äîáàâèâ LSMA è ïîìåíÿâ å¸ ìåñòàìè ñ ÅÌÀ | //| 2005.08.20 KimIV v.0.1 | //| Îñâîáîäèë îäèí áóôåð | //| 2005.08.20 KimIV v.0.2 | //| Óáðàë LSMA è EMA. | //| Ñäåëàë ñèãíàëüíûé øåñòîé áàð è òðåíäîâóþ ðàñêðàñêó | //| 2005.08.20 KimIV v.0.3 | //| Ïîïûòêà óáðàòü ãëþê ñ òðåíäîâîé îêðàñêîé. | //| 2005.08.21 KimIV v.0.4 | //| Ïîñëåäîâàòåëüíîñòü îòðèñîâêè ëèíèé (TCCI ïîâåðõ îñòàëüíûõ). | //| Êîììåíòàðèè. | //| 2005.08.21 KimIV v.1.0 | //| Íîìåð ñèãíàëüíîãî áàðà è äåëüòó âî âíåøíèå ïàðàìåòðû. | //| 2005.08.21 KimIV v.1.1 | //|  êîììåíòû âûâåë ðàññòîÿíèÿ ìåæäó EMA, LSMA è Close. | //+------------------------------------------------------------------+ #property copyright "Egorov Gennadiy, FX Sniper, KimIV" #property link "http://www.kimiv.ru" #property indicator_separate_window #property indicator_buffers 7 #property indicator_color1 Silver #property indicator_color2 Yellow #property indicator_color3 Lime #property indicator_color4 Red #property indicator_color5 Black #property indicator_color6 Red #property indicator_color7 Aqua #property indicator_level1 300 #property indicator_level2 200 #property indicator_level3 100 #property indicator_level4 50 #property indicator_level5 -50 #property indicator_level6 -100 #property indicator_level7 -200 #property indicator_level8 -300 //------- Âíåøíèå ïàðàìåòðû ------------------------------------------ extern int SlowCCIPeriod = 14; // Ïåðèîä ìåäëåííîãî CCI extern int FastCCIPeriod = 6; // Ïåðèîä áûñòðîãî CCI extern int NSignalBar = 6; // Íîìåð ñèãíàëüíîãî áàðà extern int Delta = 3; // Äîïóñê â áàðàõ extern bool ShowComment = True; // Ïîêàçûâàòü êîììåíòàðèè extern bool ShowPoint = False; // Ïîêàçûâàòü òî÷êè Ãåíòîðà extern string FileNameLSMAEMA = "i-GentorLSMA&EMA_v.1.1"; //------- Áóôåðû èíäèêàòîðà ------------------------------------------ double HistCCI[]; double SignalBar[]; double TrendUp[]; double TrendDn[]; double SlowCCI[]; double FastCCI[]; double PG[]; //------- Ãëîáàëüíûå ïåðåìåííûå -------------------------------------- //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void init() { IndicatorDigits(2); SetIndexBuffer(0, HistCCI); SetIndexStyle (0, DRAW_HISTOGRAM, STYLE_SOLID, 1); SetIndexBuffer(1, SignalBar); SetIndexStyle (1, DRAW_HISTOGRAM, STYLE_SOLID, 2); SetIndexBuffer(2, TrendUp); SetIndexStyle (2, DRAW_HISTOGRAM, STYLE_SOLID, 2); SetIndexBuffer(3, TrendDn); SetIndexStyle (3, DRAW_HISTOGRAM, STYLE_SOLID, 2); SetIndexBuffer(4, SlowCCI); SetIndexLabel (5, "CCI"); SetIndexStyle (4, DRAW_LINE, STYLE_SOLID, 2); SetIndexBuffer(5, FastCCI); SetIndexLabel (5, "TCCI"); SetIndexStyle (5, DRAW_LINE, STYLE_SOLID, 1); SetIndexBuffer(6, PG); SetIndexStyle (6, DRAW_ARROW); SetIndexArrow (6, 108); Comment(""); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ void deinit() { Comment(""); } //+------------------------------------------------------------------+ //| Óñòàíîâêà òî÷åê Ãåíòîðà | //+------------------------------------------------------------------+ void SetPointGentor(int i) { PG[i] = EMPTY_VALUE; if (MathAbs(SlowCCI[i])<100) { if (SlowCCI[i]>0 && SlowCCI[i]>SlowCCI[i-1] && SlowCCI[i]>SlowCCI[i+1]) { PG[i] = SlowCCI[i]; } if (SlowCCI[i]<0 && SlowCCI[i]<SlowCCI[i-1] && SlowCCI[i]<SlowCCI[i+1]) { PG[i] = SlowCCI[i]; } } if (FastCCI[i]>100 && FastCCI[i]>FastCCI[i-1] && FastCCI[i]>FastCCI[i+1]) { PG[i] = FastCCI[i]; } if (FastCCI[i]<-100 && FastCCI[i]<FastCCI[i-1] && FastCCI[i]<FastCCI[i+1]) { PG[i] = FastCCI[i]; } } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { bool fcu=False, fcd=False, fup=False, fdn=False; int shift, ss; string comm; // int counted_bars=IndicatorCounted(); // if (counted_bars<0) return; // if (counted_bars>0) counted_bars--; // for (shift=counted_bars; shift>=0; shift--) { for (shift=Bars; shift>=0; shift--) { TrendUp[shift] = 0; TrendDn[shift] = 0; FastCCI[shift] = iCCI(NULL, 0, FastCCIPeriod, PRICE_TYPICAL, shift); SlowCCI[shift] = iCCI(NULL, 0, SlowCCIPeriod, PRICE_TYPICAL, shift); HistCCI[shift] = SlowCCI[shift]; if (HistCCI[shift+1]*HistCCI[shift]<0) { if (ss<=Delta) { if (fup && HistCCI[shift]>0) fcu = True; else fcu = False; if (fdn && HistCCI[shift]<0) fcd = True; else fcd = False; } else { if (ss<NSignalBar) { fup = False; fdn = False; fcu = False; fcd = False; comm = "No Trend"; } } ss = 1; } else ss++; if (ss==NSignalBar) SignalBar[shift] = HistCCI[shift]; else SignalBar[shift] = 0; if ((ss>NSignalBar || fcu) && HistCCI[shift]>0) { TrendUp[shift] = HistCCI[shift]; fup = True; fdn = False; fcd = False; comm = "Up Trend "+(ss-NSignalBar); } if ((ss>NSignalBar || fcd) && HistCCI[shift]<0) { TrendDn[shift] = HistCCI[shift]; fdn = True; fup = False; fcu = False; comm = "Down Trend "+(ss-NSignalBar); } if (ShowPoint) SetPointGentor(shift); } if (ShowComment) { int dema = iCustom(NULL, 0, FileNameLSMAEMA, 4, 0); int dlsma = iCustom(NULL, 0, FileNameLSMAEMA, 5, 0); comm = comm + ", EMA " + dema + ", LSMA " + dlsma; Comment(comm); } } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Commodity channel index
Custom Indicators Used:
FileNameLSMAEMA
Order Management characteristics:
Other Features: