//+------------------------------------------------------------------+
//| Andre Boyka Lines ABL.mq4 |
//| Swan © 2010 |
//| |
//| Èäåÿ - renee (Romania) |
//| - http://www.onix-trade.net/forum/index.php?showtopic=81964 |
//| òåõçàäàíèå - ïîðó÷èê - http://www.onix-trade.net/forum | |
//| ïàìÿòè Áîéêè Andre |
//+------------------------------------------------------------------+
#property copyright "Swan © 2010"
#property link "http://forum.mql4.com/ru"
#property indicator_chart_window
extern string ÒàéìÔðåéì="M5";//D-äåíü,W-íåäåëÿ,MN-Ìåñÿö,Y-ãîä. ÷èñëî-êîëè÷åñòâî
extern color Pitchfork_1=Red;
extern color Pitchfork_2=Blue;
extern color Boyka_Line=Gold;
extern int Boyka_Line_Width=2;
extern bool DrawVLine=true;
extern color VLine=Green;
int TF=5,nTF=1;
string sTF="M5";
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
if(StringSubstr(ÒàéìÔðåéì,0,1)=="M5"){sTF="M5"; nTF=StrToInteger(StringSubstr(ÒàéìÔðåéì,1,0));TF=5;}
if(StringSubstr(ÒàéìÔðåéì,0,1)=="W") {sTF="W"; nTF=StrToInteger(StringSubstr(ÒàéìÔðåéì,1,0));TF=10080;}
if(StringSubstr(ÒàéìÔðåéì,0,2)=="MN") {sTF="MN";nTF=StrToInteger(StringSubstr(ÒàéìÔðåéì,2,0));TF=43200;}
if(StringSubstr(ÒàéìÔðåéì,0,1)=="Y") {sTF="Y"; nTF=StrToInteger(StringSubstr(ÒàéìÔðåéì,1,0));TF=120960;}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete(ÒàéìÔðåéì+"_b0");
ObjectDelete(ÒàéìÔðåéì+"_b1");
ObjectDelete(ÒàéìÔðåéì+"_b2");
ObjectDelete(ÒàéìÔðåéì+"_b3");
ObjectDelete(ÒàéìÔðåéì+"_Pitchfork_1");
ObjectDelete(ÒàéìÔðåéì+"_Pitchfork_2");
ObjectDelete(ÒàéìÔðåéì+"_Boyka_Line");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
if(TF<=Period()) return(0);
int b0,b1,b2,b3;
double H1,H2,L1,L2;
int iH1,iH2,iL1,iL2;
if(sTF=="Y")
{
int Y=TimeYear(iTime(NULL,0,0));
b0=iBarShift(NULL,0,StrToTime(Y+".0.0 00:00"));Y-=nTF;
b1=iBarShift(NULL,0,StrToTime(Y+".0.0 00:00"));Y-=nTF;
b2=iBarShift(NULL,0,StrToTime(Y+".0.0 00:00"));Y-=nTF;
b3=iBarShift(NULL,0,StrToTime(Y+".0.0 00:00"));
}
else if(sTF=="MN")
{
b0=iBarShift(NULL,0,iTime(NULL,TF,0));
if(TimeDay(Time[b0])!=1) b0--;
b1=iBarShift(NULL,0,iTime(NULL,TF,nTF));
if(TimeDay(Time[b1])!=1) b1--;
b2=iBarShift(NULL,0,iTime(NULL,TF,2*nTF));
if(TimeDay(Time[b2])!=1) b2--;
b3=iBarShift(NULL,0,iTime(NULL,TF,3*nTF));
if(TimeDay(Time[b3])!=1) b3--;
}
else if(sTF=="W")
{
b0=iBarShift(NULL,0,iTime(NULL,TF,0));
if(TimeHour(Time[b0])!=0) b0--;
b1=iBarShift(NULL,0,iTime(NULL,TF,nTF));
if(TimeHour(Time[b1])!=0) b1--;
b2=iBarShift(NULL,0,iTime(NULL,TF,2*nTF));
if(TimeHour(Time[b2])!=0) b2--;
b3=iBarShift(NULL,0,iTime(NULL,TF,3*nTF));
if(TimeHour(Time[b3])!=0) b3--;
}
else
{
b0=iBarShift(NULL,0,iTime(NULL,TF,0));
if(TimeMinute(Time[b0])!=0) b0--;
b1=iBarShift(NULL,0,iTime(NULL,TF,nTF));
if(TimeMinute(Time[b1])!=0) b1--;
b2=iBarShift(NULL,0,iTime(NULL,TF,2*nTF));
if(TimeMinute(Time[b2])!=0) b2--;
b3=iBarShift(NULL,0,iTime(NULL,TF,3*nTF));
if(TimeMinute(Time[b3])!=0) b3--;
}
//----
if(DrawVLine){
ObjectDelete(ÒàéìÔðåéì+"_b0");
ObjectDelete(ÒàéìÔðåéì+"_b1");
ObjectDelete(ÒàéìÔðåéì+"_b2");
ObjectDelete(ÒàéìÔðåéì+"_b3");
ObjectCreate(ÒàéìÔðåéì+"_b0",OBJ_VLINE,0,Time[b0],1.0);
ObjectCreate(ÒàéìÔðåéì+"_b1",OBJ_VLINE,0,Time[b1],1.0);
ObjectCreate(ÒàéìÔðåéì+"_b2",OBJ_VLINE,0,Time[b2],1.0);
ObjectCreate(ÒàéìÔðåéì+"_b3",OBJ_VLINE,0,Time[b3],1.0);
ObjectSet(ÒàéìÔðåéì+"_b0",OBJPROP_COLOR,VLine);
ObjectSet(ÒàéìÔðåéì+"_b1",OBJPROP_COLOR,VLine);
ObjectSet(ÒàéìÔðåéì+"_b2",OBJPROP_COLOR,VLine);
ObjectSet(ÒàéìÔðåéì+"_b3",OBJPROP_COLOR,VLine);
ObjectSet(ÒàéìÔðåéì+"_b0",OBJPROP_BACK,true);
ObjectSet(ÒàéìÔðåéì+"_b1",OBJPROP_BACK,true);
ObjectSet(ÒàéìÔðåéì+"_b2",OBJPROP_BACK,true);
ObjectSet(ÒàéìÔðåéì+"_b3",OBJPROP_BACK,true);
}
iH1=iHighest(NULL,0,MODE_HIGH,b1-b0,b0+1); H1=High[iH1];
iL1=iLowest(NULL,0,MODE_LOW,b1-b0,b0+1); L1=Low[iL1];
iH2=iHighest(NULL,0,MODE_HIGH,b2-b1,b1+1); H2=High[iH2];
iL2=iLowest(NULL,0,MODE_LOW,b2-b1,b1+1); L2=Low[iL2];
ObjectDelete(ÒàéìÔðåéì+"_Pitchfork_1");
ObjectCreate(ÒàéìÔðåéì+"_Pitchfork_1",OBJ_PITCHFORK,0,Time[iL2],L2,Time[iH1],H1,Time[iL1],L1);
ObjectSet(ÒàéìÔðåéì+"_Pitchfork_1",OBJPROP_COLOR,Pitchfork_1);
ObjectDelete(ÒàéìÔðåéì+"_Pitchfork_2");
ObjectCreate(ÒàéìÔðåéì+"_Pitchfork_2",OBJ_PITCHFORK,0,Time[iH2],H2,Time[iH1],H1,Time[iL1],L1);
ObjectSet(ÒàéìÔðåéì+"_Pitchfork_2",OBJPROP_COLOR,Pitchfork_2);
ObjectDelete(ÒàéìÔðåéì+"_Boyka_Line");
ObjectCreate(ÒàéìÔðåéì+"_Boyka_Line",OBJ_PITCHFORK,0,Time[(b1+b2)/2],(H2+L2)/2,Time[iH1],H1,Time[iL1],L1);
ObjectSet(ÒàéìÔðåéì+"_Boyka_Line",OBJPROP_COLOR,Boyka_Line);
ObjectSet(ÒàéìÔðåéì+"_Boyka_Line",OBJPROP_WIDTH,Boyka_Line_Width);
WindowRedraw();
return(0);
}
//+------------------------------------------------------------------+
Comments