Points_info

Author: © 2022, Alexey Viktorov
Price Data Components
Series array that contains open prices of each bar
0 Views
0 Downloads
0 Favorites
Points_info
ÿþ/********************************************************************\

|                                                    Points_info.mq5 |

|                                            © 2022, Alexey Viktorov |

|                       https://www.mql5.com/ru/users/alexeyvik/news |

\********************************************************************/

#property copyright "© 2022, Alexey Viktorov"

#property link      "https://www.mql5.com/ru/users/alexeyvik/news"

#property version   "1.01"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_plots   0

//---

double point[];

long chart_id = ChartID();

string textName = "P_I";

/********************************************************************\

|           Custom indicator initialization function                 |

\********************************************************************/

int OnInit()

 {

//---

  SetIndexBuffer(0, point, INDICATOR_DATA);

  IndicatorSetInteger(INDICATOR_DIGITS, 0);

  return(INIT_SUCCEEDED);

 }/******************************************************************/



/********************************************************************\

|              Custom indicator iteration function                   |

\********************************************************************/

int OnCalculate(const int rates_total,

                const int prev_calculated,

                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[])

 {

  MqlTick mqlTick;

  if(!SymbolInfoTick(_Symbol, mqlTick))

    return(rates_total);

  double dayOpen = iOpen(_Symbol, PERIOD_D1, 0);

  point[rates_total-1] = round((dayOpen-mqlTick.bid)/_Point);

  color colorText = dayOpen < mqlTick.bid ? clrGreen : clrRed;

  if(ObjectFind(chart_id, textName) < 0)

    ObjectCreate(chart_id, textName, OBJ_TEXT, 0, time[rates_total-1]+PeriodSeconds(), mqlTick.bid);

  ObjectSetInteger(chart_id, textName, OBJPROP_TIME, time[rates_total-1]+PeriodSeconds());

  ObjectSetDouble(chart_id, textName, OBJPROP_PRICE, mqlTick.bid);

  ObjectSetInteger(chart_id, textName, OBJPROP_COLOR, colorText);

  ObjectSetInteger(chart_id, textName, OBJPROP_ANCHOR, ANCHOR_LEFT);

  ObjectSetString(chart_id, textName, OBJPROP_TEXT, string(point[rates_total-1]));

  ChartRedraw();

//Comment(rates_total, "\n",

//        "");

//--- return value of prev_calculated for next call

  return(rates_total);

 }/******************************************************************



/********************************************************************\

|                  Expert deinitialization function                  |

\********************************************************************/

void OnDeinit(const int reason)

 {

  ObjectDelete(chart_id, textName);

  Comment("");

 }/******************************************************************/

Comments