Author: Copyright 2013, Totom Sukopratomo
Price Data Components
0 Views
0 Downloads
0 Favorites
b-clock
//+------------------------------------------------------------------+
//|                                                      b-clock.mq5 |
//|                                Copyright 2013, Totom Sukopratomo |
//|                        https://login.mql5.com/en/users/tomsuk001 |
//|                                      totom.sukopratomo@yahoo.com |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|                                                   Convert from : |
//+--------                                                          +
//|                                                      b-clock.mq4 |
//|                                     Core time code by Nick Bilak |
//|        http://metatrader.50webs.com/         beluck[at]gmail.com |
//|                                  modified by adoleh2000 and dwt5 | 
//+-----                                                             +
//|        Original MQL4 code found at: http://codebase.mql4.com/590 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, Totom Sukopratomo"
#property link      "https://login.mql5.com/en/users/tomsuk001"
#property version   "2.00"
#property indicator_chart_window
//--- input parameters
input bool     ShowComment=true;
input color    FontColor=clrDarkGray;
input int      FontSize=10;
input string   FontName="Tahoma";
input int      Offset=5;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                        |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   ObjectDelete(0,"time");
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   MqlRates rates[];
   MqlTick tick;
   SymbolInfoTick(Symbol(),tick);
   if(CopyRates(Symbol(),PERIOD_CURRENT,0,1,rates)<1)return(0);
   double i;
   long m,s;
   m=rates[0].time+GetMinute()*60-tick.time;
   i=m/60.0;
   s=m%60;
   m=(m-m%60)/60;

   if(ShowComment)
      Comment(IntegerToString(m,0,' ')+" minutes "+IntegerToString(s,0,' ')+" seconds left to bar end");

   string text="  <"+IntegerToString(m,0,' ')+":"+IntegerToString(s,0,' ');
   if(ObjectFind(0,"time")<1)
     {
      ObjectCreate(0,"time",OBJ_TEXT,0,rates[0].time,tick.bid+Point()*Offset);
      ObjectSetString(0,"time",OBJPROP_TEXT,text);
      ObjectSetInteger(0,"time",OBJPROP_COLOR,FontColor);
      ObjectSetInteger(0,"time",OBJPROP_FONTSIZE,FontSize);
      ObjectSetString(0,"time",OBJPROP_FONT,FontName);
     }
   else
     {
      ObjectSetString(0,"time",OBJPROP_TEXT,text);
      ObjectMove(0,"time",0,rates[0].time,tick.bid+Point()*Offset);
     }
//---

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

int GetMinute()
  {
   switch(Period())
     {
      case PERIOD_M1: return(1);
      case PERIOD_M2: return(2);
      case PERIOD_M3: return(3);
      case PERIOD_M4: return(4);
      case PERIOD_M5: return(5);
      case PERIOD_M6: return(6);
      case PERIOD_M10: return(10);
      case PERIOD_M12: return(12);
      case PERIOD_M15: return(15);
      case PERIOD_M20: return(20);
      case PERIOD_M30: return(30);
      case PERIOD_H1: return(60);
      case PERIOD_H2: return(120);
      case PERIOD_H3: return(180);
      case PERIOD_H4: return(240);
      case PERIOD_H6: return(360);
      case PERIOD_H8: return(480);
      case PERIOD_H12: return(720);
      case PERIOD_D1: return(1440);
      case PERIOD_W1: return(10080);
      case PERIOD_MN1: return(43200);
     }
   return(1);
  }
//+------------------------------------------------------------------+

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 ---