//+------------------------------------------------------------------+
//| i-GentorCCIM_v.0.2.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. |
//| ������ ���������� ������ ��� � ��������� ��������� |
//+------------------------------------------------------------------+
#property copyright "Egorov Gennadiy, FX Sniper, KimIV"
#property link "http://www.kimiv.ru"
#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Black
#property indicator_color3 Silver
#property indicator_color4 Yellow
#property indicator_color5 Lime
#property indicator_color6 Red
#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
//------- ������ ���������� ------------------------------------------
double FastCCI[];
double SlowCCI[];
double HistCCI[];
double SignalBar[];
double TrendUp[];
double TrendDown[];
//------- ���������� ���������� --------------------------------------
bool fct=False, fup=False, fdn=False;
int ss=1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
void init() {
IndicatorDigits(2);
SetIndexStyle (0, DRAW_LINE, STYLE_SOLID, 1);
SetIndexBuffer(0, FastCCI);
SetIndexStyle (1, DRAW_LINE, STYLE_SOLID, 2);
SetIndexBuffer(1, SlowCCI);
SetIndexStyle (2, DRAW_HISTOGRAM, STYLE_SOLID, 1);
SetIndexBuffer(2, HistCCI);
SetIndexStyle (3, DRAW_HISTOGRAM, STYLE_SOLID, 2);
SetIndexBuffer(3, SignalBar);
SetIndexStyle (4, DRAW_HISTOGRAM, STYLE_SOLID, 2);
SetIndexBuffer(4, TrendUp);
SetIndexStyle (5, DRAW_HISTOGRAM, STYLE_SOLID, 2);
SetIndexBuffer(5, TrendDown);
Comment("");
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start() {
int shift;
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;
TrendDown[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<=3) {
if ((fup && HistCCI[shift]>0)
|| (fdn && HistCCI[shift]<0)) fct = True;
} else fct = False;
ss = 1;
}
if (ss==6) SignalBar[shift] = HistCCI[shift];
else SignalBar[shift] = 0;
if (ss>6 || fct) {
if (HistCCI[shift]>=0) {
TrendUp[shift] = HistCCI[shift];
fup = True; fdn = False;
} else {
TrendDown[shift] = HistCCI[shift];
fdn = True; fup = False;
}
}
ss++;
}
}
//+------------------------------------------------------------------+