Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
cci_wcci_iGentorWCCIv1.1M_mtf
//+------------------------------------------------------------------+
//| mtf 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. |
//+------------------------------------------------------------------+
//mod2008fxtsd ki
#property copyright "Egorov Gennadiy, FX Sniper, KimIV"
#property link "http://www.kimiv.ru"
#property indicator_separate_window
#property indicator_maximum 300
#property indicator_minimum -300
#property indicator_buffers 7
#property indicator_color1 Silver
#property indicator_color2 Yellow
#property indicator_color3 MediumSeaGreen
#property indicator_color4 DarkOrchid
#property indicator_color5 DarkSlateGray
#property indicator_color6 Red
#property indicator_color7 DarkOrange
#property indicator_width1 1
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 2
#property indicator_width5 1
#property indicator_width6 1
#property indicator_width7 1
#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
#property indicator_levelcolor DarkOliveGreen
//------- Âíåøíèå ïàðàìåòðû ------------------------------------------
extern int FastCCIPeriod = 6; // Ïåðèîä áûñòðîãî CCI
extern int SlowCCIPeriod = 14; // Ïåðèîä ìåäëåííîãî CCI
extern int NSignalBar = 5; // Íîìåð ñèãíàëüíîãî áàðà
extern int Delta = 6; // Äîïóñê â áàðàõ
extern bool MarkBarClose = true;
extern int MarkLevel = -25;
extern int timeFrame = 0;
extern string timeFrames = "M1;5,15,30,60H1;240H4;1440D1;10080W1;43200MN|0-CurrentTF";
//------- Áóôåðû èíäèêàòîðà ------------------------------------------
double HistCCI[];
double SignalBar[];
double TrendUp[];
double TrendDn[];
double SlowCCI[];
double FastCCI[];
string IndicatorFileName;
double BarCloseMark[];
//------- Ãëîáàëüíûå ïåðåìåííûå --------------------------------------
//---
void init() {
IndicatorDigits(2);
SetIndexBuffer(0, HistCCI);
SetIndexBuffer(1, SignalBar);
SetIndexBuffer(2, TrendUp);
SetIndexBuffer(3, TrendDn);
SetIndexBuffer(4, SlowCCI);
SetIndexBuffer(5, FastCCI);
SetIndexBuffer(6,BarCloseMark);
SetIndexStyle (0, DRAW_HISTOGRAM);
SetIndexStyle (1, DRAW_HISTOGRAM);
SetIndexStyle (2, DRAW_HISTOGRAM);
SetIndexStyle (3, DRAW_HISTOGRAM);
SetIndexStyle (4, DRAW_LINE);
SetIndexStyle (5, DRAW_LINE);
SetIndexStyle (6, DRAW_ARROW);
SetIndexArrow (6, 158);
SetIndexEmptyValue(4,EMPTY_VALUE);
SetIndexEmptyValue(5,EMPTY_VALUE);
SetIndexEmptyValue(6,EMPTY_VALUE);
SetIndexLabel (0, "");
SetIndexLabel (1, "");
SetIndexLabel (2, "");
SetIndexLabel (3, "");
SetIndexLabel (4, "trendCCI");
SetIndexLabel (5, "turboCCI");
SetIndexLabel (6, "");
switch(timeFrame)
{
case 1 : string TimeFrameStr= "M1"; break;
case 5 : TimeFrameStr= "M5"; break;
case 15 : TimeFrameStr= "M15"; break;
case 30 : TimeFrameStr= "M30"; break;
case 60 : TimeFrameStr= "H1"; break;
case 240 : TimeFrameStr= "H4"; break;
case 1440 : TimeFrameStr= "D1"; break;
case 10080 : TimeFrameStr= "W1"; break;
case 43200 : TimeFrameStr= "MN1"; break;
default : TimeFrameStr= "TF0";
}
IndicatorShortName("iGenWCCIv1.1M [" + TimeFrameStr + "] (" + FastCCIPeriod + ","+SlowCCIPeriod+") ");
IndicatorFileName = WindowExpertName();
timeFrame = MathMax(timeFrame,Period());
if( MarkBarClose && timeFrame > Period())
SetIndexStyle(6,DRAW_ARROW); else SetIndexStyle(6,DRAW_NONE);
SetIndexShift(6, timeFrame/Period());
}
//---
int start()
{
bool fcu=False, fcd=False, fup=False, fdn=False;
int shift, ss;
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
if (timeFrame != Period())
{
datetime TimeArray[];
limit = MathMax(limit,timeFrame/Period());
ArrayCopySeries(TimeArray ,MODE_TIME ,NULL,timeFrame);
for(i=0,int y=0; i<limit; i++)
{
if(Time[i]<TimeArray[y]) y++;
HistCCI[i] = iCustom(NULL,timeFrame,IndicatorFileName,FastCCIPeriod,SlowCCIPeriod,
NSignalBar,Delta,MarkBarClose,MarkLevel, 0,y);
SignalBar[i] = iCustom(NULL,timeFrame,IndicatorFileName,FastCCIPeriod,SlowCCIPeriod,
NSignalBar,Delta,MarkBarClose,MarkLevel, 1,y);
TrendUp[i] = iCustom(NULL,timeFrame,IndicatorFileName,FastCCIPeriod,SlowCCIPeriod,
NSignalBar,Delta,MarkBarClose,MarkLevel, 2,y);
TrendDn[i] = iCustom(NULL,timeFrame,IndicatorFileName,FastCCIPeriod,SlowCCIPeriod,
NSignalBar,Delta,MarkBarClose,MarkLevel, 3,y);
SlowCCI[i] = iCustom(NULL,timeFrame,IndicatorFileName,FastCCIPeriod,SlowCCIPeriod,
NSignalBar,Delta,MarkBarClose,MarkLevel, 4,y);
FastCCI[i] = iCustom(NULL,timeFrame,IndicatorFileName,FastCCIPeriod,SlowCCIPeriod,
NSignalBar,Delta,MarkBarClose,MarkLevel, 5,y);
if(Time[i]==TimeArray[y])
BarCloseMark[i] = iCustom(NULL,timeFrame,IndicatorFileName,FastCCIPeriod,SlowCCIPeriod,
NSignalBar,Delta,MarkBarClose,MarkLevel, 6,y);
}
return(0);
}
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];
BarCloseMark[shift] =MarkLevel;
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;
}
}
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;
}
if ((ss>NSignalBar || fcd) && HistCCI[shift]<0) {
TrendDn[shift] = HistCCI[shift];
fdn = True; fup = False; fcu = False;
}
}
}
//---
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---