Author: Copyright 2021, Ve
Price Data Components
Series array that contains the highest prices of each barSeries array that contains the lowest prices of each barSeries array that contains open prices of each barSeries array that contains close prices for each bar
0 Views
0 Downloads
0 Favorites
Capture
ÿþ//+------------------------------------------------------------------+

//|                                                      Capture.mq4 |

//|                                               Copyright 2021, Ve |

//|                                             kupiscript@yandex.ru |

//+------------------------------------------------------------------+

#property copyright "Copyright 2021, Ve"

#property link      "kupiscript@yandex.ru"

#property version   "1.00"

#property strict

#property indicator_chart_window

#property description "=48:0B>@ =0E>48B A25G=CN <>45;L ?>3;>I5=85 =0 AB0@H5< B09<-D@59<5"

#property description "8 >:@0H8205B ?5@8>4 =0 <;04H5<"





extern ENUM_TIMEFRAMES TF  = PERIOD_D1;  // "09<-D@59<

extern int   NumberOfDays = 200;        // >;8G5AB2> 4=59

extern color BUOVB=clrCornflowerBlue;    //F25B,KGL5 ?>3;>I5=85

extern color BEOVB=clrDarkSalmon;        //F25B,54256L5 ?>3;>I5=85

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int OnInit()

  {

    for (int i=1; i<NumberOfDays; i++) 

     {

      CreateObjects("BUOVB"+(string)i,BUOVB);//BUOVB

      CreateObjects("BEOVB"+(string)i,BEOVB);//BEOVB

     }

   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| Custor indicator deinitialization function                       |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

   ObjectsDeleteAll();

  }

//+------------------------------------------------------------------+

//| !>740=85 >1J5:B>2 8=48:0B>@0                                     |

//+------------------------------------------------------------------+

void CreateObjects(string no,color cl) 

  {

   ObjectCreate(no,OBJ_RECTANGLE,0,0,0,0,0);

   ObjectSet(no,OBJPROP_STYLE,STYLE_SOLID);

   ObjectSet(no,OBJPROP_COLOR,cl);

   ObjectSet(no,OBJPROP_BACK,True);

  }

//+------------------------------------------------------------------+

//| @>@8A>2:0 >1J5:B>2 =0 3@0D8:5                                   |

//+------------------------------------------------------------------+

void DrawObjects(string no,datetime dt1,datetime dt2)

  {

   double p1,p2;

   int b1,b2;

  

   b1=iBarShift(NULL,0,dt2);

   b2=iBarShift(NULL,0,dt1);

   p1=iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,b1-b2,b2));

   p2=iLow(NULL,0,iLowest (NULL,0,MODE_LOW,b1-b2,b2));

  

   ObjectSet(no,OBJPROP_TIME1 ,dt2);

   ObjectSet(no,OBJPROP_PRICE1,p1);

   ObjectSet(no,OBJPROP_TIME2 ,dt1);

   ObjectSet(no,OBJPROP_PRICE2,p2);

  }

//+----------------------------------------------------------------------------+

//| function: start()                                                          |

//+----------------------------------------------------------------------------+

int start() 

  {

   datetime dt1,dt2;  

   for(int i=1; i<NumberOfDays; i++)

     {

      if(iOpen(NULL,TF,i)>iClose(NULL,TF,i) && iOpen(NULL,TF,i+1)<iClose(NULL,TF,i+1) && iClose(NULL,TF,i)<iLow(NULL,TF,i+1))

        {

          dt1=iTime(NULL,TF,i-1);

          dt2=iTime(NULL,TF,i+1);

          DrawObjects("BUOVB"+(string)i,dt1,dt2);

        }

       if(iOpen(NULL,TF,i)<iClose(NULL,TF,i) && iOpen(NULL,TF,i+1)>iClose(NULL,TF,i+1) && iClose(NULL,TF,i)>iHigh(NULL,TF,i+1))

        {

          dt1=iTime(NULL,TF,i-1);

          dt2=iTime(NULL,TF,i+1);

          DrawObjects("BEOVB"+(string)i,dt1,dt2);

        }

     }

   return(0);

  }

Comments