Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
CCI_STD
//+------------------------------------------------------------------+
//| ZZZ_STF_CCI50_2PXNR_STD.mq4
//+------------------------------------------------------------------+
#property copyright "AHGduP"
#property link "ZZZ_STF_CCI50_2PXNR_STD"
#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Lime
#property indicator_color4 Red
#property indicator_color5 Aqua
#property indicator_color6 Magenta
#property indicator_color7 Aqua//Lime
#property indicator_color8 Magenta//Red
#property indicator_maximum 4.9
#property indicator_minimum 0.4
//===================================================================================
extern int CCI_WIN5_SM =1 ;
string Input1 = "== CCI ===";
extern int CCI50_1M = 50 ;
extern int CCI15_1M = 15;
extern int CCI50_5M = 50 ;
extern int CCI15_5M = 15 ;
extern int CCI50_15M = 50 ;
extern int CCI15_15M = 15 ;
extern int CCI50_30M = 50 ;
extern int CCI15_30M = 15 ;
extern int CCI50_60M = 50 ;
extern int CCI15_60M = 15 ;
//===================================================================================
extern int DotSize_110_167 = 110 ; //167
extern int ArrowSize = 6 ;
extern int CountBars = 600000 ;
extern int TFA = 5 ;//0 vir al 4.
extern int TFB = 15 ;
extern int TFC = 30 ;
extern int TFD = 60 ;
bool StepTFA_Up = true;
bool StepTFB_Up = true;
bool StepTFC_Up = true;
bool StepTFD_Up = true;
double cci50Am_up , cci50Am_dn ;
double cci15Am_up, cci15Am_dn;
double cci50Bm_up , cci50Bm_dn ;
double cci15Bm_up, cci15Bm_dn;
double cciCm_up , cciCm_dn ;
double cciDm_up , cciDm_dn ;
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
double ExtMapBuffer7[];
double ExtMapBuffer8[];
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,DotSize_110_167);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,DotSize_110_167);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexEmptyValue(1,0.0);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,DotSize_110_167);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexEmptyValue(2,0.0);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(3,DotSize_110_167);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexEmptyValue(3,0.0);
SetIndexStyle(4,DRAW_ARROW);
SetIndexArrow(4,DotSize_110_167);
SetIndexBuffer(4,ExtMapBuffer5);
SetIndexEmptyValue(4,0.0);
SetIndexStyle(5,DRAW_ARROW);
SetIndexArrow(5,DotSize_110_167);
SetIndexBuffer(5,ExtMapBuffer6);
SetIndexEmptyValue(5,0.0);
SetIndexStyle(6,DRAW_ARROW);
SetIndexArrow(6,DotSize_110_167);
SetIndexBuffer(6,ExtMapBuffer7);
SetIndexEmptyValue(6,0.0);
SetIndexStyle(7,DRAW_ARROW);
SetIndexArrow(7,DotSize_110_167);
SetIndexBuffer(7,ExtMapBuffer8);
SetIndexEmptyValue(7,0.0);
//------------------------------------
string short_name;
IndicatorShortName("CCI_STD");
SetIndexLabel(0,"CCI_STD");
//========================================================================================
switch(TFA) { case 1 : string TimeFrameStrA="Period_M1"; break;
case 5 : TimeFrameStrA="Period_M5"; break;
case 15 : TimeFrameStrA="Period_M15"; break;
case 30 : TimeFrameStrA="Period_M30"; break;
case 60 : TimeFrameStrA="Period_H1"; break;
case 240 : TimeFrameStrA="Period_H4"; break;
case 1440 : TimeFrameStrA="Period_D1"; break;
case 10080 : TimeFrameStrA="Period_W1"; break;
case 43200 : TimeFrameStrA="Period_MN1"; break;
default : TimeFrameStrA="Current Timeframe";
SetStepTFA_Up();
}
//=======================================================================================
switch(TFB) { case 1 : string TimeFrameStrB="Period_M1"; break;
case 5 : TimeFrameStrB="Period_M5"; break;
case 15 : TimeFrameStrB="Period_M15"; break;
case 30 : TimeFrameStrB="Period_M30"; break;
case 60 : TimeFrameStrB="Period_H1"; break;
case 240 : TimeFrameStrB="Period_H4"; break;
case 1440 : TimeFrameStrB="Period_D1"; break;
case 10080 : TimeFrameStrB="Period_W1"; break;
case 43200 : TimeFrameStrB="Period_MN1"; break;
default : TimeFrameStrB="Current Timeframe";
SetStepTFB_Up();
}
//=======================================================================================
switch(TFC) { case 1 : string TimeFrameStrC="Period_M1"; break;
case 5 : TimeFrameStrC="Period_M5"; break;
case 15 : TimeFrameStrC="Period_M15"; break;
case 30 : TimeFrameStrC="Period_M30"; break;
case 60 : TimeFrameStrC="Period_H1"; break;
case 240 : TimeFrameStrC="Period_H4"; break;
case 1440 : TimeFrameStrC="Period_D1"; break;
case 10080 : TimeFrameStrC="Period_W1"; break;
case 43200 : TimeFrameStrC="Period_MN1"; break;
default : TimeFrameStrC="Current Timeframe";
SetStepTFC_Up();
}
//=======================================================================================
switch(TFD) { case 1 : string TimeFrameStrD="Period_M1"; break;
case 5 : TimeFrameStrD="Period_M5"; break;
case 15 : TimeFrameStrD="Period_M15"; break;
case 30 : TimeFrameStrD="Period_M30"; break;
case 60 : TimeFrameStrD="Period_H1"; break;
case 240 : TimeFrameStrD="Period_H4"; break;
case 1440 : TimeFrameStrD="Period_D1"; break;
case 10080 : TimeFrameStrD="Period_W1"; break;
case 43200 : TimeFrameStrD="Period_MN1"; break;
default : TimeFrameStrD="Current Timeframe";
SetStepTFD_Up();
}
//=======================================================================================
}
return(0);
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int deinit()
{ Refresh();
return(0);
}
//+--------------------------------------------------------------------------------------+
int start()
{ Refresh();
datetime TimeArray[]; datetime TimeArray1[]; datetime TimeArray2[];datetime TimeArray3[];
double CCIAm_cci50,CCIAm_cci15;
double CCIBm_cci50,CCIBm_cci15;
double CCICm_cci50,CCICm_cci15;
double CCIDm_cci50,CCIDm_cci15;
int CCIAL=0,CCIAS=0, CCIBL=0,CCIBS=0, CCICL=0,CCICS=0, CCIDL=0,CCIDS=0 ;
int i,limit,counted_bars=IndicatorCounted();
int y=0,y1=0,y2=0,y3=0;
ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TFA);
ArrayCopySeries(TimeArray1,MODE_TIME,Symbol(),TFB);
ArrayCopySeries(TimeArray2,MODE_TIME,Symbol(),TFC);
ArrayCopySeries(TimeArray3,MODE_TIME,Symbol(),TFD);
limit=Bars-counted_bars;
//==============================================================================================
SetIndexDrawBegin(0,Bars-CountBars);
SetIndexDrawBegin(1,Bars-CountBars);
SetIndexDrawBegin(2,Bars-CountBars);
SetIndexDrawBegin(3,Bars-CountBars);
SetIndexDrawBegin(4,Bars-CountBars);
SetIndexDrawBegin(5,Bars-CountBars);
SetIndexDrawBegin(6,Bars-CountBars);
SetIndexDrawBegin(7,Bars-CountBars);
// ------------------ laat laaste 2 kerse repaint(smooth)--------------------------------
// if(counted_bars>0) limit++; else if (limit>100) limit=CountBars;
//====================== CHANGE PERIOD ===========================================================
switch(Period())
{ case 1: CCIAL = CCI50_1M; CCIAS = CCI15_1M; CCIBL = CCI50_5M; CCIBS = CCI15_5M; CCICL = CCI50_15M; CCIDL = CCI15_15M; CCIDL = CCI50_30M; CCIDS = CCI15_30M ; break;
case 5: CCIAL = CCI50_5M; CCIAS = CCI15_5M; CCIBL = CCI50_15M; CCIBS = CCI15_15M; CCICL = CCI50_30M; CCICS = CCI15_30M; CCIDL = CCI50_60M; CCIDS = CCI15_60M ; break;
case 15: CCIAL = CCI50_15M; CCIAS = CCI15_15M; CCIBL = CCI50_30M; CCIBS = CCI15_30M; CCICL = CCI50_60M; CCICS = CCI15_60M; CCIDL = CCI50_60M; CCIDS = CCI15_60M ; break;
case 30: CCIAL = CCI50_30M; CCIAS = CCI15_30M; CCIBL = CCI50_60M; CCIBS = CCI15_60M; CCICL = CCI50_60M; CCICS = CCI15_60M; CCIDL = CCI50_60M; CCIDS = CCI15_60M ; break;
case 60: CCIAL = CCI50_60M; CCIAS = CCI15_60M; CCIBL = CCI50_60M; CCIBS = CCI15_60M; CCICL = CCI50_60M; CCICS = CCI15_60M; CCIDL = CCI50_60M; CCIDS = CCI15_60M ; break;
case 240: CCIAL = CCI50_60M; CCIAS = CCI15_60M; CCIBL = CCI50_60M; CCIBS = CCI15_60M; CCICL = CCI50_60M; CCICS = CCI15_60M; CCIDL = CCI50_60M; CCIDS = CCI15_60M ; break;
case 1440: CCIAL = CCI50_60M; CCIAS = CCI15_60M; CCIBL = CCI50_60M; CCIBS = CCI15_60M; CCICL = CCI50_60M; CCICS = CCI15_60M; CCIDL = CCI50_60M; CCIDS = CCI15_60M ; break;
case 10080:CCIAL = CCI50_60M; CCIAS = CCI15_60M; CCIBL = CCI50_60M; CCIBS = CCI15_60M; CCICL = CCI50_60M; CCICS = CCI15_60M; CCIDL = CCI50_60M; CCIDS = CCI15_60M ; break;
case 43150:CCIAL = CCI50_60M; CCIAS = CCI15_60M; CCIBL = CCI50_60M; CCIBS = CCI15_60M; CCICL = CCI50_60M; CCICS = CCI15_60M; CCIDL = CCI50_60M; CCIDS = CCI15_60M ; break;
}
//====================================================================================================
for(i=0,y=0;i<limit;i++)
{
if (Time[i]<TimeArray[y]) y++;
if (Time[i]<TimeArray1[y1]) y1++;
if (Time[i]<TimeArray2[y2]) y2++;
if (Time[i]<TimeArray3[y3]) y3++;
//======================= HEADINGE =============================================================
{
ObjectCreate("HEAD_ZZZ_SMD", OBJ_LABEL,WindowFind("CCI_STD"), 0, 0);
ObjectSetText("HEAD_ZZZ_SMD", "CCI-STD_STF" , 8, "Tahoma Narrow", Gold);
ObjectSet("HEAD_ZZZ_SMD", OBJPROP_CORNER, 1);
ObjectSet("HEAD_ZZZ_SMD", OBJPROP_XDISTANCE, 20);
ObjectSet("HEAD_ZZZ_SMD", OBJPROP_YDISTANCE, 5 );
}
//===================== RSI A ========================================================================
CCIAm_cci50 = iCCI(NULL, TFA, CCIAL,PRICE_TYPICAL, y );
// CCIAm_cci15 = iCCI(NULL, TFA, CCIAS, PRICE_TYPICAL, y );
if ((CCIAm_cci50 > 0)){ cci50Am_up = 1; cci50Am_dn = 0; }
if ((CCIAm_cci50 < 0)){ cci50Am_up = 0; cci50Am_dn = 1; }
double totalcci50_UpA = 0.0; double totalcci50_DnA = 0.0;
if (( cci50Am_up ) == 1) totalcci50_UpA = 3 ;
if (( cci50Am_dn ) == 1) totalcci50_DnA = 3 ;
ExtMapBuffer1[i] = 0; ExtMapBuffer2[i] = 0;
if ( totalcci50_UpA == 3 || totalcci50_DnA == 3 ){ ExtMapBuffer1[i] = totalcci50_UpA; ExtMapBuffer2[i] = totalcci50_DnA; }
//===================================B MIN============================================
// CCIBm_cci50 = iCCI(NULL, TFB, CCIBL, PRICE_TYPICAL, y1 );
CCIAm_cci15 = iCCI(NULL, TFA, CCIAS, PRICE_TYPICAL, y ) ;
if ((CCIAm_cci15 > 0)){ cci15Am_up = 1; cci15Am_dn = 0; }
if ((CCIAm_cci15 < 0)){ cci15Am_up = 0; cci15Am_dn = 1; }
double totalcci15_UpA = 0.0; double totalcci15_DnA = 0.0;
if (( cci15Am_up ) == 1) totalcci15_UpA = 4 ;
if (( cci15Am_dn ) == 1) totalcci15_DnA = 4 ;
ExtMapBuffer3[i] = 0; ExtMapBuffer4[i] = 0;
if ( totalcci15_UpA == 4 || totalcci15_DnA == 4 ){ ExtMapBuffer3[i] = totalcci15_UpA; ExtMapBuffer4[i] = totalcci15_DnA; }
//======================================C MIN==========================================
CCIBm_cci50 = iCCI(NULL, TFB, CCIBL,PRICE_TYPICAL, y1 ) ;
// CCICm_cci15 = iCCI(NULL, TFC, CCICS, PRICE_TYPICAL,y2 ) ;
if ((CCIBm_cci50 > 0 )){ cci50Bm_up = 1; cci50Bm_dn = 0; }
if ((CCIBm_cci50 < 0)){ cci50Bm_up = 0; cci50Bm_dn = 1; }
double totalcci50_UpB = 0.0; double totalcci50_DnB = 0.0;
if (( cci50Bm_up ) == 1) totalcci50_UpB = 1 ;
if (( cci50Bm_dn ) == 1) totalcci50_DnB = 1 ;
ExtMapBuffer5[i] = 0; ExtMapBuffer6[i] = 0;
if ( totalcci50_UpB == 1 || totalcci50_DnB == 1 ){ ExtMapBuffer5[i] = totalcci50_UpB; ExtMapBuffer6[i] = totalcci50_DnB; }
//=====================================D MIN===========================================
// CCIDm_cci50 = iCCI(NULL, TFD, CCIDL, PRICE_TYPICAL,y3);
CCIBm_cci15 = iCCI(NULL, TFB, CCIBS, PRICE_TYPICAL,y1);
if ((CCIBm_cci15 > 0)){ cci15Bm_up = 1; cci15Bm_dn = 0; }
if ((CCIBm_cci15 < 0)){ cci15Bm_up = 0; cci15Bm_dn = 1; }
double totalcci15_UpB = 0.0; double totalcci15_DnB = 0.0;
if (( cci15Bm_up ) == 1) totalcci15_UpB = 2 ;
if (( cci15Bm_dn ) == 1) totalcci15_DnB = 2 ;
ExtMapBuffer7[i] = 0; ExtMapBuffer8[i] = 0;
if ( totalcci15_UpB == 2 || totalcci15_DnB == 2 ){ ExtMapBuffer7[i] = totalcci15_UpB ; ExtMapBuffer8[i] = totalcci15_DnB; }
//=====================================================================================
}
return(0);
}
//================================================================================== ++
void SetValuesA(int pA) { TFA = pA; }
void SetStepTFA_Up() { switch (Period() )
{ case PERIOD_M1 : SetValuesA(PERIOD_M1); break;
case PERIOD_M5 : SetValuesA(PERIOD_M5); break;
case PERIOD_M15 : SetValuesA(PERIOD_M15); break;
case PERIOD_M30 : SetValuesA(PERIOD_M30); break;
case PERIOD_H1 : SetValuesA(PERIOD_H1); break;
case PERIOD_H4 : SetValuesA(PERIOD_H4); break;
case PERIOD_D1 : SetValuesA(PERIOD_D1); break;
case PERIOD_W1 : SetValuesA(PERIOD_W1); break;
case PERIOD_MN1 : SetValuesA(PERIOD_MN1); break;
} }
//==============================step timeframe up TF1====================================
void SetValuesB(int pB) { TFB = pB; }
void SetStepTFB_Up() { switch (Period() )
{ case PERIOD_M1 : SetValuesB(PERIOD_M5); break;
case PERIOD_M5 : SetValuesB(PERIOD_M15); break;
case PERIOD_M15 : SetValuesB(PERIOD_M30); break;
case PERIOD_M30 : SetValuesB(PERIOD_H1); break;
case PERIOD_H1 : SetValuesB(PERIOD_H4); break;
case PERIOD_H4 : SetValuesB(PERIOD_D1); break;
case PERIOD_D1 : SetValuesB(PERIOD_W1); break;
case PERIOD_W1 : SetValuesB(PERIOD_MN1); break;
case PERIOD_MN1 : SetValuesB(PERIOD_MN1); break;
} }
//============================== TF2 ===================================================
void SetValuesC(int pC) { TFC = pC; }
void SetStepTFC_Up() { switch (Period() )
{ case PERIOD_M1 : SetValuesC(PERIOD_M15); break;
case PERIOD_M5 : SetValuesC(PERIOD_M30); break;
case PERIOD_M15 : SetValuesC(PERIOD_H1); break;
case PERIOD_M30 : SetValuesC(PERIOD_H4); break;
case PERIOD_H1 : SetValuesC(PERIOD_D1); break;
case PERIOD_H4 : SetValuesC(PERIOD_W1); break;
case PERIOD_D1 : SetValuesC(PERIOD_MN1); break;
case PERIOD_W1 : SetValuesC(PERIOD_MN1); break;
case PERIOD_MN1 : SetValuesC(PERIOD_MN1); break;
} }
//=============================== TF3 ==================================================
void SetValuesD(int pD) { TFD = pD; }
void SetStepTFD_Up() { switch (Period() )
{ case PERIOD_M1 : SetValuesD(PERIOD_M30); break;
case PERIOD_M5 : SetValuesD(PERIOD_H1); break;
case PERIOD_M15 : SetValuesD(PERIOD_H4); break;
case PERIOD_M30 : SetValuesD(PERIOD_D1); break;
case PERIOD_H1 : SetValuesD(PERIOD_W1); break;
case PERIOD_H4 : SetValuesD(PERIOD_MN1); break;
case PERIOD_D1 : SetValuesD(PERIOD_MN1); break;
case PERIOD_W1 : SetValuesD(PERIOD_MN1); break;
case PERIOD_MN1 : SetValuesD(PERIOD_MN1); break;
} }
//==================================================================================
//====================================================================
void Refresh()
{ ObjectDelete("HEAD_ZZZ_SMD");
}
//------------------------------------------------------------------------------------+
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
---