Indicators Used
2
Views
0
Downloads
0
Favorites
iCCI_NR
//+------------------------------------------------------------------+
//| ProjectName |
//| Copyright 2012, CompanyName |
//| http://www.companyname.net |
//+------------------------------------------------------------------+
/*
âûçîâ èç êîäîâ:
iCustom(
string symbol, // ñèìâîëüíîå èìÿ èíñòðóìåíòà (NULL- òåêóùèé)
int timeframe, // òàéì-ôðåéì (0- òåêóùèé)
"iCCI.Gap", // èìÿ ýòîãî èíäèêàòîðà
//
int CCIperiod // ïåðèîä èíäèêàòîðà
int Price, // òèï öåíû:
// 0 - PRICE_CLOSE - öåíà çàêðûòèÿ
// 1 - PRICE_OPEN - öåíà îòêðûòèÿ
// 2 - PRICE_HIGH - ìàêñ.öåíà
// 3 - PRICE_LOW - ìèí.öåíà
// 4 - PRICE_MEDIAN - ñðåäíÿÿ öåíà,(high+low)/2
// 5 - PRICE_TYPICAL - òèïè÷íàÿ öåíà,(high+low+close)/3
// 6 - PRICE_WEIGHTED - âçâåøåííàÿ öåíà çàêðûòèÿ,(high+low+close+close)/4
double Sens, // ïîðîã ÷óâñòâèòåëüíîñòè â ïï.
//
int mode, // mode - íîìåð áóôåðà èíäèêàòîðà: 0 - CCI
int shift // ñäâèã
);
==============
iCustom(NULL,0,"iCCI.NR", CCIperiod,Price,Sens, 0,i);
*/
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 LightSeaGreen
#property indicator_maximum 300
#property indicator_minimum -300
#property indicator_level1 100
#property indicator_level2 0
#property indicator_level3 -100
// âõîäíûå ïàðàìåòðû
// MA
int MAperiod=1; // ïåðèîä ïðåäâàðèòåëüíîãî ñãëàæèâàíèÿ
int MAmethod=0; // ìåòîä ïðåäâàðèòåëüíîãî ñãëàæèâàíèÿ
// CCI
extern int CCIperiod=10; // ïåðèîä èíäèêàòîðà
extern int Price=5; // òèï öåíû
extern double Sens=0; // ïîðîã â ïï.
double sens; // ïîðîã â öåíàõ
// ìàññèâû èíä.áóôåðîâ
double Ind[]; // èíäèêàòîðà
double price[]; // áåçãýïîâûõ êîòèðîâîê
double Mov[]; // îïîðíàÿ MA
double mul; // íîðìèðóþùèé ìíîæèòåëü
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void init()
{
mul=0.015/CCIperiod; // íîðìèðóþùèé ìíîæèòåëü
sens=Sens*CCIperiod*Point;
string short_name="CCI("+CCIperiod+")";
// áóôåðû
IndicatorBuffers(3);
SetIndexBuffer(0,Ind); // èíäèêàòîðà
SetIndexLabel(0,short_name);
SetIndexBuffer(1,price); // áåçãýïîâûõ êîòèðîâîê
SetIndexBuffer(2,Mov); // îïîðíîé MA
// êîðîòêîå èìÿ
if(Sens>0) short_name=DoubleToStr(Sens,1)+" "+short_name;
IndicatorShortName(short_name);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
if(counted_bars==0) limit-=1+CCIperiod;
// çàïîëíåíèå ìàññèâà çíà÷åíèÿìè MA
for(int i=limit; i>=0; i--)
price[i]=iMA(NULL,0,MAperiod,0,MAmethod,Price,i);
// îïîðíàÿ MA ïî ìàññèâó price[]
for(i=limit; i>=0; i--)
Mov[i]=iMAOnArray(price,0,CCIperiod,0,0,i);
for(i=limit; i>=0; i--)
{
double div=0,dif;
double ma=Mov[i];
// ìîäóëü îòêëîíåíèé
for(int j=i+CCIperiod-1;j>=i;j--) div+=MathAbs(price[j]-ma);
div=mul*MathMax(div,sens); // øóìîïîäàâëåíèå
dif=price[i]-ma; // îòêëîíåíèÿ
// ðàñ÷åò îñöèëëÿòîðà
if(div==0) Ind[i]=0;
else Ind[i]=dif/div;
}
}
//+------------------------------------------------------------------+
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
---