Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
WcciChart_v4
//+------------------------------------------------------------------+
//| |
//| Copyright © 2000-2007, MetaQuotes Software Corp. |
//| http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Gaba"
#property link "http://www.metaquotes.net"
//----
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 Silver
#property indicator_color2 LimeGreen
#property indicator_color3 OrangeRed
#property indicator_color4 Silver
#property indicator_color5 Black
//
#property indicator_minimum -300
#property indicator_maximum 300
//
#property indicator_level1 200
#property indicator_level2 100
#property indicator_level3 -100
#property indicator_level4 -200
// Ïàðåìåòû
extern int fastPeriod =6;
extern int slowPeriod =14;
extern int histLength =500;
// Áóôåðû äàííûõ
double FastBuffer[]; // Áûñòðûé CCI
double SlowBuffer[]; // Ìåäëåííûé CCI
double HistBuffer[];
double UpTrBuffer[];
double DnTrBuffer[];
// Èíèöèàëèçàöèÿ
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
string short_name;
IndicatorBuffers(5);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
short_name="WoodiesCCI("+fastPeriod+","+slowPeriod+")";
IndicatorShortName(short_name);
// indicator lines ////////////////////////////////
SetIndexStyle(0, DRAW_HISTOGRAM);
SetIndexBuffer(0, HistBuffer);
SetIndexDrawBegin(0, slowPeriod);
SetIndexLabel(0,"SlowCCI histogram");
SetIndexEmptyValue(0, EMPTY_VALUE);
//
SetIndexStyle(1, DRAW_HISTOGRAM);
SetIndexBuffer(1, UpTrBuffer);
SetIndexDrawBegin(1, slowPeriod);
SetIndexLabel(1,"UpTrend histogram");
SetIndexEmptyValue(1, EMPTY_VALUE);
//
SetIndexStyle(2, DRAW_HISTOGRAM);
SetIndexBuffer(2, DnTrBuffer);
SetIndexDrawBegin(2, slowPeriod);
SetIndexLabel(2,"DnTrend histogram");
SetIndexEmptyValue(2, EMPTY_VALUE);
//
SetIndexStyle(3, DRAW_LINE,1,3);
SetIndexBuffer(3, SlowBuffer);
SetIndexDrawBegin(3, slowPeriod);
SetIndexLabel(3,"SlowCCI("+slowPeriod+")");
SetIndexEmptyValue(3, EMPTY_VALUE);
//
SetIndexStyle(4, DRAW_LINE);
SetIndexBuffer(4, FastBuffer);
SetIndexDrawBegin(4, slowPeriod);
SetIndexLabel(4,"FastCCI("+fastPeriod+")");
SetIndexEmptyValue(4, EMPTY_VALUE);
//----
return(0);
}
// Custor indicator deinitialization function
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int deinit()
{
// TODO: add your code here
return(0);
}
// Custom indicator iteration function
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
string symbolName;
int i, shift, checksum, counted_bars=IndicatorCounted();
double slowCCI=0.0;
if (Bars<slowPeriod) return(0);
// check for possible errors
if (counted_bars<0) return(-1);
// last counted bar will be recounted
if (counted_bars>0) counted_bars++;
int limit=Bars-counted_bars;
if (counted_bars<1 || checksum!=(histLength+fastPeriod+slowPeriod+Period()) || symbolName!=Symbol())
{
// Ïàðàìåòðû èçìåíåíû, ïðîâîäèì ðåèíèöèàëèçàöèþ
for(i=Bars-1; i<=Bars-histLength; i++)
{
FastBuffer[i]=EMPTY_VALUE; // Áûñòðûé CCI
SlowBuffer[i]=EMPTY_VALUE; // Ìåäëåííûé CCI
HistBuffer[i]=EMPTY_VALUE; // Ãèñòîãðàììà ìåäëåííîãî CCI
UpTrBuffer[i]=EMPTY_VALUE; // Íàïðàâëåíèå òðåíäà
DnTrBuffer[i]=EMPTY_VALUE; // Íàïðàâëåíèå òðåíäà
}
checksum=histLength+fastPeriod+slowPeriod+Period();
symbolName=Symbol();
limit=histLength;
}
for(shift=limit; shift>=0; shift--)
{
FastBuffer[shift]=iCCI(NULL,0,fastPeriod,PRICE_TYPICAL,shift);
SlowBuffer[shift]=iCCI(NULL,0,slowPeriod,PRICE_TYPICAL,shift);
HistBuffer[shift]=SlowBuffer[shift];
UpTrBuffer[shift]=EMPTY_VALUE;
DnTrBuffer[shift]=EMPTY_VALUE;
// Çàïîëíåíèå ìàññèâà òî÷åê è îïðåäåëåíèå òðåíäà
int a, up=0, dn=0;
for(a=0;a<8;a++)
{
slowCCI=iCCI(NULL,0,slowPeriod,PRICE_TYPICAL,shift+a);
if (slowCCI>0) up++;
if (slowCCI<=0) dn++;
}
if (up>=6) UpTrBuffer[shift]=SlowBuffer[shift];
if (dn>=6) DnTrBuffer[shift]=SlowBuffer[shift];
}
return(0);
}
//+------------------------------------------------------------------+
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
---