Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
00CCIarrowLv
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#property copyright ""
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Green
#property indicator_color4 SlateGray
#property indicator_color5 DimGray
#property indicator_style4 2
#property indicator_style5 2
double dUpCCIBuffer[];
double dDownCCIBuffer[];
double dSellBuffer[];
double dUpCCIBufferSL[];
double dDnCCIBufferSL[];
extern int CCI_Period = 14; //This value sets the CCI Period Used, The default is 21
extern int PointLevel = 10;
//extern int atrlevel = 0.7;
int RowNum = 0;
int LastTrend = -1;
int UP_IND = 1;
int DOWN_IND = 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicator buffers mapping
SetIndexBuffer(0,dUpCCIBuffer);
SetIndexBuffer(1,dDownCCIBuffer);
SetIndexBuffer(2,dSellBuffer);
SetIndexBuffer(3,dUpCCIBufferSL);
SetIndexBuffer(4,dDnCCIBufferSL);
//---- drawing settings
/*
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,233); //241 option for different arrow head
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,234); //242 option for different arrow head
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,252); //251 x sign or 252 green check
SetIndexStyle(3,DRAW_LINE);
*/
//----
SetIndexEmptyValue(0,0.0);
SetIndexEmptyValue(1,0.0);
SetIndexEmptyValue(2,0.0);
SetIndexEmptyValue(3,0.0);
SetIndexEmptyValue(4,0.0);
//---- name for DataWindow
SetIndexLabel(0,"CCI Buy");
SetIndexLabel(1,"CCI Sell");
SetIndexLabel(2,"Exit");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int nBars,nCountedBars;
nCountedBars=IndicatorCounted(); //ncountedbars 655
//---- check for possible errors
if(nCountedBars<0) return(-1);
//---- last counted bar will be recounted
if(nCountedBars<=3)
nBars=Bars-nCountedBars-4;
if(nCountedBars>2)
{
nCountedBars--;
nBars=Bars-nCountedBars-1; //number of bars in current chart-655-1
}
int lastCloseLong=0;
int lastCloseShort=0;
for (int ii=Bars; ii>0; ii--)
{
dUpCCIBuffer[ii]=dUpCCIBuffer[ii+1];
dDownCCIBuffer[ii]=dDownCCIBuffer[ii+1];
dUpCCIBufferSL[ii]=dUpCCIBufferSL[ii+1];
dDnCCIBufferSL[ii]=dDnCCIBufferSL[ii+1];
double myCCInow = iCCI(NULL,0,CCI_Period,PRICE_CLOSE,ii);
double myCCI2 = iCCI(NULL,0,CCI_Period,PRICE_CLOSE,ii+1); //CCI One bar ago
if (myCCInow>=0) //is going long
{
if(myCCInow>0 && myCCI2<0) //did it cross from below 50
{
dUpCCIBuffer[ii] = High[ii] + PointLevel * MarketInfo(Symbol(),MODE_POINT);
dUpCCIBufferSL[ii] = Low[ii] - PointLevel * MarketInfo(Symbol(),MODE_POINT);
dDownCCIBuffer[ii] =0.0;
dDnCCIBufferSL[ii] =0.0;
}
}
if(myCCInow<0) //is going short
{
if(myCCInow<0 && myCCI2>0) //did it cross from above 50
{
dDownCCIBuffer[ii] = Low[ii]- PointLevel * MarketInfo(Symbol(),MODE_POINT);
dDnCCIBufferSL[ii] = High[ii]+ PointLevel * MarketInfo(Symbol(),MODE_POINT);
dUpCCIBufferSL[ii]=0.0;
dUpCCIBuffer[ii] = 0.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
---