Price Data Components
Series array that contains open time of each bar
2 Views
0 Downloads
0 Favorites
ABLine_HL
//+------------------------------------------------------------------+
//|                                        Andre Boyka Lines ABL.mq4 |
//|                                                 Swan © 2010-2011 |
//|                                                                  |
//|     Èäåÿ - renee (Romania)                                       |
//|   - http://www.onix-trade.net/forum/index.php?showtopic=81964    |
//|     òåõçàäàíèå - ïîðó÷èê - http://www.onix-trade.net/forum       |
//|     ïàìÿòè Áîéêè Andre                                           |
//|     îïòèìèçàöèÿ ForexGrail                                       |
//+------------------------------------------------------------------+
#property copyright "Swan © 2010" // êîïèðàéò àâòîðà èíäèêàòîðà
#property link      "http://forum.mql4.com/ru"  // ëèíê
#property indicator_chart_window   // èíäèêàòîð âûâîäèòñÿ â îêíå ãðàôèêà

// Ïàðàìåòðû èíäèêàòîðà

extern string TimeFrame="H1"; //ïåðèîä ãðàôèêà "M5", "M15", "M30", "H1" ...
extern color Pitchfork_1=Red;  // öâåò 1 âèë Ýíäðþñà
extern color Pitchfork_2=Blue; //  öâåò 2 âèë Ýíäðþñà
extern color Boyka_Line=Gold;  // öâåò âèë Ýíäðþñà ñ íàçâàíèåì Boyka_Line
extern color HLine=Red;  // öâåò 1 âèë Ýíäðþñà
extern color LLine=Blue; //  öâåò 2 âèë Ýíäðþñà
extern int Line_Width=2; // òîëùèíà ëèíèé âèë Ýíäðþñà ñ íàçâàíèåì Boyka_Line
extern int Boyka_Line_Width=2; // òîëùèíà ëèíèé âèë Ýíäðþñà ñ íàçâàíèåì Boyka_Line
extern bool DrawVLine=true; // ñòèëü true - îòîáðàæàòü â ôîíîâîì ðåæèìå âåðòèêàëüíûå ëèíèè
extern color VLine=Green; // öâåò âåðòèêàëüíûõ ëèíèé


int TF;
int nTF = 1; // äåñÿòè÷íûå ÷èñëîâûå ïåðåìåííûå TF - êîëè÷åñòâî ìèíóòíûõ áàðîâ â ñâå÷å, nTF - õç... òîæå ñàìîå âðîäè
string sTF, PeriodName; // ñòðîêîâàÿ ïåðåìåííàÿ
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- Ïðèñâàèâàåì çíà÷åíèÿ ïåðåìåííûì èñõîäÿ èç óñòàíîâëåííîãî TimeFrame

if(StringSubstr(TimeFrame,0,2)=="M5"){sTF="M5"; TF=5;}
if(StringSubstr(TimeFrame,0,3)=="M15"){sTF="M15"; TF=15;}
if(StringSubstr(TimeFrame,0,3)=="M30"){sTF="M30"; TF=30;}
if(StringSubstr(TimeFrame,0,2)=="H1"){sTF="H1"; TF=60;}
if(StringSubstr(TimeFrame,0,2)=="H4"){sTF="H4"; TF=240;}
if(StringSubstr(TimeFrame,0,2)=="D1"){sTF="D1"; TF=1440;}
if(StringSubstr(TimeFrame,0,2)=="W1")  {sTF="W1"; TF=10080;}
if(StringSubstr(TimeFrame,0,2)=="MN") {sTF="MN"; TF=43200;}
if(StringSubstr(TimeFrame,0,1)=="Y")  {sTF="Y"; TF=120960;}

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
//---- Ïðè óäàëåíèè èíäèêàòîðà ñ ãðàôèêà óäàëÿåì ãðàôè÷åñêèå îáúåêòû êîòîðûå îí íàëîæèë íà ãðàôèê

ObjectDelete(TimeFrame+"_b0");
ObjectDelete(TimeFrame+"_b1");
ObjectDelete(TimeFrame+"_b2");
ObjectDelete(TimeFrame+"_b3");
ObjectDelete(TimeFrame+"_Pitchfork_1");
ObjectDelete(TimeFrame+"_Pitchfork_2");
ObjectDelete(TimeFrame+"_Boyka_Line");
ObjectDelete(TimeFrame+"_H1");
ObjectDelete(TimeFrame+"_L1");
Comment("");
//----
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=="W1")// ðàñ÷åò áàðîâ äëÿ íåäåëè
   {
   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(TimeMinute(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(Period()==1)PeriodName ="Ì1";
  if(Period()==5)PeriodName ="Ì5";
  if(Period() == 15)PeriodName ="Ì15";
  if(Period() == 30)PeriodName ="Ì30";
   if(Period()==60) PeriodName ="H1";
   if(Period() == 240)PeriodName ="H4";
    if(Period()==1440)PeriodName ="D1";
     if(Period()==10080)PeriodName ="W1";
     if(Period()==43200)PeriodName ="MN";
 Comment("\nÂòîðàÿ ëèíèÿ ñìåùåíà îò ïåðâîé íà - " + (b1-b0)+ " áàðîâ íàçàä, ïîòîìó ÷òî â îäíîì áàðå ãðàôèêà " + TimeFrame + " ñîäåðæèòñÿ " + (TF/Period())+ " áàðîâ ãðàôèêà "+ PeriodName +"\nÒðåòüÿ ëèíèÿ ñìåùåíà îò âòîðîé íà - " + (b2-b1) + " áàðîâ íàçàä, ïîòîìó ÷òî â îäíîì áàðå ãðàôèêà " + TimeFrame + " ñîäåðæèòñÿ " + (TF/Period())+ " áàðîâ ãðàôèêà "+ PeriodName +"\n \nÑëåäóþùåå ïåðåñòðîåíèå ãðàôè÷åñêèõ îáúåêòîâ áóäåò ÷åðåç " + ((b1-b0)-b0) +" áàð(îâ)");
  
 
//----Ðèñóåì âåðòèêàëüíûå ëèíèè
if(DrawVLine){

ObjectDelete(TimeFrame+"_b0");
ObjectDelete(TimeFrame+"_b1");
ObjectDelete(TimeFrame+"_b2");
ObjectDelete(TimeFrame+"_b3");



ObjectCreate(TimeFrame+"_b0",OBJ_VLINE,0,Time[b0],1.0);
ObjectCreate(TimeFrame+"_b1",OBJ_VLINE,0,Time[b1],1.0);
ObjectCreate(TimeFrame+"_b2",OBJ_VLINE,0,Time[b2],1.0);
ObjectCreate(TimeFrame+"_b3",OBJ_VLINE,0,Time[b3],1.0);


ObjectSet(TimeFrame+"_b0",OBJPROP_COLOR,VLine);
ObjectSet(TimeFrame+"_b1",OBJPROP_COLOR,VLine);
ObjectSet(TimeFrame+"_b2",OBJPROP_COLOR,VLine);
ObjectSet(TimeFrame+"_b3",OBJPROP_COLOR,VLine);


ObjectSet(TimeFrame+"_b0",OBJPROP_BACK,true);
ObjectSet(TimeFrame+"_b1",OBJPROP_BACK,true);
ObjectSet(TimeFrame+"_b2",OBJPROP_BACK,true);
ObjectSet(TimeFrame+"_b3",OBJPROP_BACK,true);

}

iH1=iHighest(NULL,0,MODE_HIGH,b1-b0,b0+1); H1=High[iH1];// ñ 1-5 áàð ïîèñê õàÿ
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]; // ñ 6-10 áàð ïîèñê õàÿ
iL2=iLowest(NULL,0,MODE_LOW,b2-b1,b1+1);   L2=Low[iL2];


ObjectDelete(TimeFrame+"_Pitchfork_1");
ObjectCreate(TimeFrame+"_Pitchfork_1",OBJ_PITCHFORK,0,Time[iL2],L2,Time[iH1],H1,Time[iL1],L1);
ObjectSet(TimeFrame+"_Pitchfork_1",OBJPROP_COLOR,Pitchfork_1);

ObjectDelete(TimeFrame+"_Pitchfork_2");
ObjectCreate(TimeFrame+"_Pitchfork_2",OBJ_PITCHFORK,0,Time[iH2],H2,Time[iH1],H1,Time[iL1],L1);
ObjectSet(TimeFrame+"_Pitchfork_2",OBJPROP_COLOR,Pitchfork_2);

ObjectDelete(TimeFrame+"_Boyka_Line");
ObjectCreate(TimeFrame+"_Boyka_Line",OBJ_PITCHFORK,0,Time[(b1+b2)/2],(H2+L2)/2,Time[iH1],H1,Time[iL1],L1);
ObjectSet(TimeFrame+"_Boyka_Line",OBJPROP_COLOR,Boyka_Line);
ObjectSet(TimeFrame+"_Boyka_Line",OBJPROP_WIDTH,Boyka_Line_Width);

ObjectDelete(TimeFrame+"_H1");
ObjectCreate(TimeFrame+"_H1",OBJ_TREND,0,Time[b1],H1,Time[0],H1);
ObjectSet(TimeFrame+"_H1",OBJPROP_COLOR,HLine);
ObjectSet(TimeFrame+"_H1",OBJPROP_RAY,false);
ObjectDelete(TimeFrame+"_L1");
ObjectCreate(TimeFrame+"_L1",OBJ_TREND,0,Time[b1],L1,Time[0],L1);
ObjectSet(TimeFrame+"_L1",OBJPROP_COLOR,LLine);
ObjectSet(TimeFrame+"_L1",OBJPROP_RAY,false);

WindowRedraw();
  return(0);
 }
//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---