MT4-Cams-Pivots

Indikátor vykreslující Camarilla Pivots.

 

 

//+——————————————————————+
//|                                             Camarilla Pivots.mq4 |
//|  modified from Pivots.mq4 found on MT yahoo group by forex2stay  |
//|                                                                  |
//+——————————————————————+
#property copyright „forex2stay“
#property link      “ “

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 EMPTY
extern bool camarilla = true;
extern int gmt_offset = 7;

double day_high=0;
double day_low=0;
double yesterday_high=0;
double yesterday_open=0;
double yesterday_low=0;
double yesterday_close=0;
double today_open=0;
double today_high=0;
double today_low=0;
double P=0;
double wP=0;
double Q=0;
double CH4,CH3,CH2,CH1,CL4,CL3,CL2,CL1;
double nQ=0;
double nD=0;
double D=0;
double rates_h1[2][6];
double ExtMapBuffer1[];
//+——————————————————————+
//| Custom indicator initialization function                         |
//+——————————————————————+
int init(){
IndicatorBuffers(4);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,159);
SetIndexBuffer(0, ExtMapBuffer1);

//—- indicators
CH4=0; CH3=0; CH2=0; CH1=0; CL4=0; CL3=0; CL2=0; CL1=0;
//—-
return(0);
}
//+——————————————————————+
//| Custor indicator deinitialization function                       |
//+——————————————————————+
int deinit(){
//—- TODO: add your code here
ObjectDelete(„CH4 Label“);
ObjectDelete(„CH4 Line“);
ObjectDelete(„CH3 Label“);
ObjectDelete(„CH3 Line“);
ObjectDelete(„CH2 Label“);
ObjectDelete(„CH2 Line“);
ObjectDelete(„CH1 Label“);
ObjectDelete(„CH1 Line“);
ObjectDelete(„CL1 Label“);
ObjectDelete(„CL2 Line“);
ObjectDelete(„CL3 Label“);
ObjectDelete(„CL3 Line“);
ObjectDelete(„CL4 Label“);
ObjectDelete(„CL4 Line“);
//—-
return(0);
}
//+——————————————————————+
//| Custom indicator iteration function                              |
//+——————————————————————+
int start(){

//—- TODO: add your code here

//—- exit if period is greater than daily charts
if(Period() > 1440){
Print(„Error – Chart period is greater than 1 day.“);
return(-1); // then exit
}

//—- Get new daily prices
ArrayCopyRates(rates_h1, Symbol(), PERIOD_H1);
for(int i=0;i < 24;i++){
if((TimeHour(rates_h1[i][0]) – gmt_offset) == 0){
yesterday_open = rates_h1[i+24][1];
yesterday_close = rates_h1[i][1];
today_open = rates_h1[i][1];
yesterday_high = rates_h1[i+1][3];
yesterday_low = rates_h1[i+1][2];
for(int j=0;j < 24;j++){
if(rates_h1[i+j][3] > yesterday_high) yesterday_high = rates_h1[i+j][3];
if(rates_h1[i+j][2] < yesterday_low) yesterday_low = rates_h1[i+j][2];
}
day_high = rates_h1[i][3];
day_low = rates_h1[i][2];
while(i>=0){
if(rates_h1[i][3] > day_high) day_high = rates_h1[i][3];
if(rates_h1[i][2] < day_low) day_low = rates_h1[i][2];
i–;
}
break;
}
}
//—- Calculate Pivots

CH4 = (((yesterday_high-yesterday_low)* 1.1)/2)+ yesterday_close;
CH3 = (((yesterday_high-yesterday_low)* 1.1)/4)+ yesterday_close;
CH2 = (((yesterday_high-yesterday_low)* 1.1)/6)+ yesterday_close;
CH1 = (((yesterday_high-yesterday_low)* 1.1)/12)+ yesterday_close;
CL1 = yesterday_close-(((yesterday_high-yesterday_low) * 1.1)/12);
CL2 = yesterday_close-(((yesterday_high-yesterday_low) * 1.1)/6);
CL3 = yesterday_close-(((yesterday_high-yesterday_low)* 1.1)/4);
CL4 = yesterday_close-(((yesterday_high-yesterday_low) * 1.1)/2);

if (Q > 5) {
nQ = Q;
} else {
nQ = Q*10000;
}

if (D > 5){
nD = D;
} else {
nD = D*10000;
}
Comment(„High= „,yesterday_high,“    Previous Days Range= „,nQ,“\nLow= „,yesterday_low,“    Current Days Range= „,nD,“\nClose= „,yesterday_close);
//Comment(„High= „,yesterday_high,“    Previous Days Range= „,nQ,“\nLow= „,yesterday_low,“\nClose= „,yesterday_close);
//Comment(„High= „+yesterday_high+“    Low= „+yesterday_low+“    Open= „+today_open);

//—- Set line labels on chart window

//—– Camarilla Lines

if (camarilla==true){
if(ObjectFind(„CH4label“) != 0){
ObjectCreate(„CH4label“, OBJ_TEXT, 0, Time[20], CH4);
ObjectSetText(„CH4label“, “ H4″, 8, „Arial“, EMPTY);
} else {
ObjectMove(„CH4label“, 0, Time[20], CH4);
}

if(ObjectFind(„CH3 label“) != 0){
ObjectCreate(„CH3 label“, OBJ_TEXT, 0, Time[20], CH3);
ObjectSetText(„CH3 label“, “ H3″, 8, „Arial“, DarkGray);
} else {
ObjectMove(„CH3 label“, 0, Time[20], CH3);
}

if(ObjectFind(„CH2 label“) != 0){
ObjectCreate(„CH2 label“, OBJ_TEXT, 0, Time[20], CH2);
ObjectSetText(„CH2 label“, “ H2″, 8, „Arial“, DarkGray);
} else {
ObjectMove(„CH2 label“, 0, Time[20], CH2);
}

if(ObjectFind(„CH1 label“) != 0){
ObjectCreate(„CH1 label“, OBJ_TEXT, 0, Time[20], CH1);
ObjectSetText(„CH1 label“, “ H1″, 8, „Arial“, DarkGray);
} else {
ObjectMove(„CH1 label“, 0, Time[20], CH1);
}

if(ObjectFind(„CL1 label“) != 0){
ObjectCreate(„CL1 label“, OBJ_TEXT, 0, Time[20], CL1);
ObjectSetText(„CL1 label“, “ L1″, 8, „Arial“, DarkGray);
} else {
ObjectMove(„CL1 label“, 0, Time[20], CL1);
}

if(ObjectFind(„CL2 label“) != 0){
ObjectCreate(„CL2 label“, OBJ_TEXT, 0, Time[20], CL2);
ObjectSetText(„CL2 label“, “ L2″, 8, „Arial“, DarkGray);
} else {
ObjectMove(„CL2 label“, 0, Time[20], CL2);
}

if(ObjectFind(„L3 label“) != 0){
ObjectCreate(„L3 label“, OBJ_TEXT, 0, Time[20], CL3);
ObjectSetText(„L3 label“, “ L3″, 8, „Arial“, DarkGray);
} else {
ObjectMove(„L3 label“, 0, Time[20], CL3);
}

if(ObjectFind(„L4 label“) != 0){
ObjectCreate(„L4 label“, OBJ_TEXT, 0, Time[20], CL4);
ObjectSetText(„L4 label“, “ L4″, 8, „Arial“, DarkGray);
} else {
ObjectMove(„L4 label“, 0, Time[20], CL4);
}

//—- Draw Camarilla lines on Chart
if(ObjectFind(„CH4 line“) != 0){
ObjectCreate(„CH4 line“, OBJ_HLINE, 0, Time[40], CH4);
ObjectSet(„CH4 line“, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet(„CH4 line“, OBJPROP_COLOR, Navy);
} else {
ObjectMove(„CH4 line“, 0, Time[40], CH4);
}

if(ObjectFind(„CH3 line“) != 0){
ObjectCreate(„CH3 line“, OBJ_HLINE, 0, Time[40], CH3);
ObjectSet(„CH3 line“, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet(„CH3 line“, OBJPROP_COLOR, Navy);
} else {
ObjectMove(„CH3 line“, 0, Time[40], CH3);
}

if(ObjectFind(„CH2 line“) != 0){
ObjectCreate(„CH2 line“, OBJ_HLINE, 0, Time[40], CH2);
ObjectSet(„CH2 line“, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet(„CH2 line“, OBJPROP_COLOR, FireBrick);
} else {
ObjectMove(„CH2 line“, 0, Time[40], CH2);
}

if(ObjectFind(„CH1 line“) != 0){
ObjectCreate(„CH1 line“, OBJ_HLINE, 0, Time[40], CH1);
ObjectSet(„CH1 line“, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet(„CH1 line“, OBJPROP_COLOR, FireBrick);
} else {
ObjectMove(„CH1 line“, 0, Time[40], CH1);
}

if(ObjectFind(„CL1 line“) != 0){
ObjectCreate(„CL1 line“, OBJ_HLINE, 0, Time[40], CL1);
ObjectSet(„CL1 line“, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet(„CL1 line“, OBJPROP_COLOR, FireBrick);
} else {
ObjectMove(„CL1 line“, 0, Time[40], CL1);
}

if(ObjectFind(„CL2 line“) != 0){
ObjectCreate(„CL2 line“, OBJ_HLINE, 0, Time[40], CL2);
ObjectSet(„CL2 line“, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet(„CL2 line“, OBJPROP_COLOR, FireBrick);
} else {
ObjectMove(„CL3 line“, 0, Time[40], CL2);
}

if(ObjectFind(„CL3 line“) != 0){
ObjectCreate(„CL3 line“, OBJ_HLINE, 0, Time[40], CL3);
ObjectSet(„CL3 line“, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet(„CL3 line“, OBJPROP_COLOR, Navy);
} else {
ObjectMove(„CL3 line“, 0, Time[40], CL3);
}

if(ObjectFind(„CL4 line“) != 0){
ObjectCreate(„CL4 line“, OBJ_HLINE, 0, Time[40], CL4);
ObjectSet(„CL4 line“, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet(„CL4 line“, OBJPROP_COLOR, Navy);
} else {
ObjectMove(„CL4 line“, 0, Time[40], CL4);
}
}
//——-End of Draw Camarilla Lines

//—- End Of Program
return(0);
}
//+——————————————————————+

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *