Dolly_Graphics_v11 GMTShift Indicator For MT5
The Dolly_Graphics_v11 GMTShift Indicator For MT5 tells you where to open a long position or a short position in the Forex market. It is a Pivot Point based system, and comes loaded with a GMT time shift feature. Traders should preferably apply this system on USD pairs only. The best chart time frame for trading is 15 minutes.
1. Long Entry Rule - Go long at Buy Stop-1 and place your Stop Loss (SL) and Take Profit Level (TP).
2. Short Entry Rule - Go short at Sell Stop-1 and place your Stop Loss (SL) and Take Profit Level (TP).
Installing the Dolly_Graphics_v11 GMTShift Indicator For MT5
After you downloaded the indicator via the form above you need to unzip the zip-file. Then you need to copy the file Dolly_Graphics_v11-GMTShift.mq5 into the folder MQL5\Indicators of your MT5 installation. After that please restart MT5 and then you will be able to see the indicator in the list of indicators.
Parameters of the Dolly_Graphics_v11 GMTShift Indicator For MT5
The Dolly_Graphics_v11 GMTShift Indicator For MT5 has 40 parameters to configure.
input int GMTshift=0;
input bool Using_OpenGraphics=true;
input bool Dolly_GRAPHICS=true;
input bool Alert_ON=false;
input bool Auto_Signals=true;
input bool Show_DollyCOMMENTS=true;
input color BUY_Color_2=C 0,0,150 ;
input color BUY_Color_1=C 0,0,100 ;
input color SELL_Color_1=C 120,0,0 ;
input color SELL_Color_2=C 180,0,0 ;
input int BUY_Target_2 =50;
input int BUY_Target_1 =40;
input int BUY_Area =20;
input int SELL_Area =20;
input int SELL_Target_1 =40;
input int SELL_Target_2 =50;
input int SHIFT_DailyText=0;
input bool Show_DailyAverageGRAPHICS=true;
input bool Daily_AverageGRAPHICS=true;
input color DAILY_Av_UP_Color_150=C 0,110,255 ;
input color DAILY_Av_UP_Color_125=C 0,70,255 ;
input color DAILY_Av_UP_Color_100=C 20,20,255 ;
input color DAILY_Av_UP_Color_75=C 0,0,210 ;
input color DAILY_Av_DN_Color_75=C 220,0,0 ;
input color DAILY_Av_DN_Color_100=C 255,0,10 ;
input color DAILY_Av_DN_Color_125=C 255,70,0 ;
input color DAILY_Av_DN_Color_150=C 255,110,0 ;
input int SHIFT_DailyAverageText=28;
input bool Show_PivotLines=false;
input bool Show_M_PivotLines=false;
input int SHIFT_Pivot_PointText=0;
input int Pivot_Point_ExtendLINE=0;
input bool Show_FibLines=false;
input bool Show_EXTRAFibLines=false;
input int SHIFT_FibText=65;
input int FIB_ExtendDISPLAY=1;
input bool Show_Daily_HI_LOW=false;
input int SHIFT_HI_LOW_TEXT=50;
input bool Show_Daily_OPEN=false;
input int SHIFT_Daily_OPEN_TEXT=0;
Buffers of the Dolly_Graphics_v11 GMTShift Indicator For MT5
The Dolly_Graphics_v11 GMTShift Indicator For MT5 provides 0 buffers.
Main Parts Of The Code
int OnCalculate(const int rates_total, // : gt ;8G5AB2 gt 8AB gt @88 2 10@0E =0 B5:CI5 lt B8:5
const int prev_calculated,// : gt ;8G5AB2 gt 8AB gt @88 2 10@0E =0 ?@54K4CI5 lt B8:5
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
Bid=close[rates_total-1];
Ask=Bid+_Point*spread[rates_total-1];
CreateP();
//----
ChartRedraw(0);
//----
return(rates_total);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CreateP()
{
ObjectsDeleteAll(0,-1,OBJ_TRENDBYANGLE);
DeleteCreatePivots1();
CreateDL();
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void DeleteCreatePivots1()
{
ObjectDelete(0,P1);
ObjectDelete(0,DHI);
ObjectDelete(0,DLO);
ObjectDelete(0,DO);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CreateDL()
{
ObjectsDeleteAll(0,-1,OBJ_RECTANGLE);
DeleteDollyGraphics();
CreateAL();
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void DeleteDollyGraphics()
{
ObjectDelete(0,DollyBUY3);
ObjectDelete(0,DollyBUY2);
ObjectDelete(0,DollyBUY1);
ObjectDelete(0,DollySELL1);
ObjectDelete(0,DollySELL2);
ObjectDelete(0,DollySELL3);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CreateAL()
{
ObjectsDeleteAll(0,-1,OBJ_RECTANGLE);
DeleteAvGraphics();
CreatePP();
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void DeleteAvGraphics()
{
ObjectDelete(0,AvBUY150); ObjectDelete(0,AvBUY125); ObjectDelete(0,AvBUY100); ObjectDelete(0,AvBUY75);
ObjectDelete(0,AvSELL75); ObjectDelete(0,AvSELL100); ObjectDelete(0,AvSELL125); ObjectDelete(0,AvSELL150);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CreatePP()
{
ObjectsDeleteAll(0,-1,OBJ_TRENDBYANGLE);
DeleteCreatePivots();
CreateFIB();
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void DeleteCreatePivots()
{
ObjectDelete(0,PP1); ObjectDelete(0,RR3); ObjectDelete(0,RR2); ObjectDelete(0,RR1);
ObjectDelete(0,SS1); ObjectDelete(0,SS2); ObjectDelete(0,SS3); ObjectDelete(0,P1);
ObjectDelete(0,MM1); ObjectDelete(0,MM2); ObjectDelete(0,MM3);
ObjectDelete(0,MM4); ObjectDelete(0,MM5); ObjectDelete(0,MM0);
ObjectDelete(0,DDHI); ObjectDelete(0,DDLO);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CreatePivots1(string Pivots1, double start, double end,int w, int s,color clr)
{
ObjectCreate(0,Pivots1, OBJ_TRENDBYANGLE, 0, iTime(NULL,PERIOD_D1,0)+GMTshift*3600, start, iTime(NULL,PERIOD_CURRENT,0),w,s, end);
ObjectSetInteger(0,Pivots1, OBJPROP_COLOR, clr);
ObjectSetInteger(0,Pivots1,OBJPROP_RAY,false);
ObjectSetInteger(0,Pivots1,OBJPROP_BACK,true);
ObjectSetInteger(0,Pivots1,OBJPROP_WIDTH,w);
ObjectSetInteger(0,Pivots1,OBJPROP_STYLE,s);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CreateDollyGraphics(string Dolly, double start, double end, color clr)
{
ObjectCreate(0,Dolly, OBJ_RECTANGLE, 0, iTime(NULL,PERIOD_D1,0)+GMTshift*3600, start, iTime(NULL,PERIOD_CURRENT,0), end);
ObjectSetInteger(0,Dolly, OBJPROP_COLOR, clr);
ObjectSetInteger(0,Dolly,OBJPROP_BACK,Dolly_GRAPHICS);
ObjectSetInteger(0,Dolly,OBJPROP_WIDTH,2);
ObjectSetInteger(0,Dolly,OBJPROP_STYLE,0);
ObjectSetInteger(0,Dolly,OBJPROP_FILL,true);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CreateAvGraphics(string DailyAv, double start, double end, color clr)
{
ObjectCreate(0,DailyAv, OBJ_RECTANGLE, 0, iTime(NULL,PERIOD_D1,0)+GMTshift*3600, start, iTime(NULL,PERIOD_CURRENT,0), end);
ObjectSetInteger(0,DailyAv, OBJPROP_COLOR, clr);
ObjectSetInteger(0,DailyAv,OBJPROP_BACK,Daily_AverageGRAPHICS);
ObjectSetInteger(0,DailyAv,OBJPROP_WIDTH,0);
ObjectSetInteger(0,DailyAv,OBJPROP_STYLE,0);
ObjectSetInteger(0,DailyAv,OBJPROP_FILL,true);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CreatePivots(string Pivots, double start, double end,int w, int s,color clr)
{
ObjectCreate(0,Pivots, OBJ_TRENDBYANGLE, 0, iTime(NULL,PERIOD_D1,Pivot_Point_ExtendLINE+0), start, iTime(NULL,PERIOD_CURRENT,0),w,s, end);
ObjectSetInteger(0,Pivots, OBJPROP_COLOR, clr);
ObjectSetInteger(0,Pivots,OBJPROP_RAY,false);
ObjectSetInteger(0,Pivots,OBJPROP_WIDTH,w);
ObjectSetInteger(0,Pivots,OBJPROP_STYLE,s);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CreateFibs(string FibLevels, double start, double end,int w, int s,color clr)
{
ObjectCreate(0,FibLevels, OBJ_TRENDBYANGLE, 0, iTime(NULL,PERIOD_D1,FIB_ExtendDISPLAY), start, iTime(NULL,PERIOD_CURRENT,0),w,s, end);
ObjectSetInteger(0,FibLevels, OBJPROP_COLOR, clr);
ObjectSetInteger(0,FibLevels,OBJPROP_RAY,false);
ObjectSetInteger(0,FibLevels,OBJPROP_WIDTH,w);
ObjectSetInteger(0,FibLevels,OBJPROP_STYLE,s);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void DeleteCreateFibs()
{
ObjectDelete(0,Fib100); ObjectDelete(0,Fib764); ObjectDelete(0,Fib618); ObjectDelete(0,Fib50);
ObjectDelete(0,Fib236); ObjectDelete(0,Fib0); ObjectDelete(0,Fib382);
ObjectDelete(0,FibP100); ObjectDelete(0,FibP618); ObjectDelete(0,FibP50); ObjectDelete(0,FibP382);
ObjectDelete(0,FibM100); ObjectDelete(0,FibM618); ObjectDelete(0,FibM50); ObjectDelete(0,FibM382);
ObjectDelete(0,FibP236); ObjectDelete(0,FibM236); ObjectDelete(0,FibP764); ObjectDelete(0,FibM764);
ObjectDelete(0,FibP150); ObjectDelete(0,FibM150); ObjectDelete(0,FibP200); ObjectDelete(0,FibM200);
ObjectDelete(0,FibP250); ObjectDelete(0,FibM250); ObjectDelete(0,FibP300); ObjectDelete(0,FibM300);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CreateFIB()
{
ObjectsDeleteAll(0,-1,OBJ_TRENDBYANGLE);
DeleteCreateFibs();
//---- Get new daily prices & calculate pivots
day_high=0;
day_low=0;
yesterday_open=0;
today_open=0;
cur_day=0;
prev_day=0;
//----
int cnt=720;
while(cnt!= 0)
{
MqlDateTime tm;
TimeToStruct(iTime(NULL,PERIOD_CURRENT,cnt),tm);
if (tm.day_of_week==0)
{
cur_day=prev_day;
}
else
{
MqlDateTime tm1;
TimeToStruct(iTime(NULL,PERIOD_CURRENT,cnt)-GMTshift*3600,tm1);
cur_day=tm1.day;
}
if (prev_day!=cur_day)
{
yesterday_close=iClose(NULL,PERIOD_CURRENT,cnt+1);
today_open=iOpen(NULL,PERIOD_CURRENT,cnt);
yesterday_high=day_high;
yesterday_low=day_low;
day_high=iHigh(NULL,PERIOD_CURRENT,cnt);
day_low =iLow(NULL,PERIOD_CURRENT,cnt);
prev_day=cur_day;
}
if (iHigh(NULL,PERIOD_CURRENT,cnt) gt day_high)
{
day_high=iHigh(NULL,PERIOD_CURRENT,cnt);
}
if (iLow(NULL,PERIOD_CURRENT,cnt) lt day_low)
{
day_low=iLow(NULL,PERIOD_CURRENT,cnt);
}
cnt--;
}
double P=(yesterday_high + yesterday_low + yesterday_close)/3;//Pivot
//Pivots & M Pivots
double r3 =(2 * P)+(yesterday_high -(2 * yesterday_low ));
double r2=P +(yesterday_high - yesterday_low );
double r1 =(2 * P)- yesterday_low;
double s1 =(2 * P)- yesterday_high;
double s2=P -(yesterday_high- yesterday_low);
double s3 =(2 * P)-(( 2 * yesterday_high)- yesterday_low );
//----
double m0=(s2 + s3)/2;
double m1=(s1 + s2)/2;
double m2=(P + s1)/2;
double m3=(P + r1)/2;
double m4=(r1 + r2)/2;
double m5=(r2 + r3)/2;
//----
double OPEN=today_open;
double HI2=iHigh(NULL,PERIOD_D1,0);
double LOW2=iLow(NULL,PERIOD_D1,0);
double HI3=yesterday_high;
double LOW3=yesterday_low;
double HI4=iHigh(NULL,PERIOD_D1,0);
double LOW4=iLow(NULL,PERIOD_D1,0);
double HI5=iHigh(NULL,PERIOD_D1,2);
double LOW5=iLow(NULL,PERIOD_D1,2);
double HI6=iHigh(NULL,PERIOD_D1,3);
double LOW6=iLow(NULL,PERIOD_D1,3);
double HI7=iHigh(NULL,PERIOD_D1,4);
double LOW7=iLow(NULL,PERIOD_D1,4);
double HI8=iHigh(NULL,PERIOD_D1,5);
double LOW8=iLow(NULL,PERIOD_D1,5);
double HI9=iHigh(NULL,PERIOD_D1,6);
double LOW9=iLow(NULL,PERIOD_D1,6);
double HI10=iHigh(NULL,PERIOD_D1,7);
double LOW10=iLow(NULL,PERIOD_D1,7);
double HI11=iHigh(NULL,PERIOD_D1,8);
double LOW11=iLow(NULL,PERIOD_D1,8);
double HI12=iHigh(NULL,PERIOD_D1,9);
double LOW12=iLow(NULL,PERIOD_D1,9);
double HI13=iHigh(NULL,PERIOD_D1,10);
double LOW13=iLow(NULL,PERIOD_D1,10);
double HI14=iHigh(NULL,PERIOD_D1,11);
double LOW14=iLow(NULL,PERIOD_D1,11);
double HI15=iHigh(NULL,PERIOD_D1,12);
double LOW15=iLow(NULL,PERIOD_D1,12);
double HI16=iHigh(NULL,PERIOD_D1,13);
double LOW16=iLow(NULL,PERIOD_D1,13);
double HI17=iHigh(NULL,PERIOD_D1,14);
double LOW17=iLow(NULL,PERIOD_D1,14);
double HI18=iHigh(NULL,PERIOD_D1,15);
double LOW18=iLow(NULL,PERIOD_D1,15);
double HI19=iHigh(NULL,PERIOD_D1,16);
double LOW19=iLow(NULL,PERIOD_D1,16);
double HI20=iHigh(NULL,PERIOD_D1,17);
double LOW20=iLow(NULL,PERIOD_D1,17);
double HI21=iHigh(NULL,PERIOD_D1,18);
double LOW21=iLow(NULL,PERIOD_D1,18);
double HI22=iHigh(NULL,PERIOD_D1,19);
double LOW22=iLow(NULL,PERIOD_D1,19);
double HI23=iHigh(NULL,PERIOD_D1,20);
double LOW23=iLow(NULL,PERIOD_D1,20);
//----
double ONE=(HI3-LOW3);
double FIVE=((HI3-LOW3)+(HI5-LOW5)+(HI6-LOW6)+(HI7-LOW7)+(HI8-LOW8))/5;
double TEN=((HI3-LOW3)+(HI5-LOW5)+(HI6-LOW6)+(HI7-LOW7)+(HI8-LOW8)+
(HI9-LOW9)+(HI10-LOW10)+(HI11-LOW11)+(HI12-LOW12)+(HI13-LOW13))/10;
double TWENTY=((HI3-LOW3)+(HI5-LOW5)+(HI6-LOW6)+(HI7-LOW7)+(HI8-LOW8)+
(HI9-LOW9)+(HI10-LOW10)+(HI11-LOW11)+(HI12-LOW12)+(HI13-LOW13)+
(HI14-LOW14)+(HI15-LOW15)+(HI16-LOW16)+(HI17-LOW17)+(HI18-LOW18)+
(HI19-LOW19)+(HI20-LOW20)+(HI21-LOW21)+(HI22-LOW22)+(HI23-LOW23))/20;
double AV=(ONE+FIVE+TEN+TWENTY)/4;// New Setting AV = (FIVE+TEN+TWENTY)/3;
//Add for Open Graphics - hymns
double DollyOpenGraphics;
if (Using_OpenGraphics==true) { DollyOpenGraphics=OPEN; }
else { DollyOpenGraphics=P; }
//Tweak for Open Graphics - hymns
double AvDN150=DollyOpenGraphics-AV/2*3;
double AvUP150=DollyOpenGraphics+AV/2*3;
double AvDN125=DollyOpenGraphics-AV/4*5;
double AvUP125=DollyOpenGraphics+AV/4*5;
double AvDN100=DollyOpenGraphics-AV;
double AvUP100=DollyOpenGraphics+AV;
double AvDN75=DollyOpenGraphics-AV/4*3;
double AvUP75=DollyOpenGraphics+AV/4*3;