Price Data Components
Miscellaneous
0
Views
0
Downloads
0
Favorites
X-Clock
//+------------------------------------------------------------------+
//_X-Clock____________________ \¦/
//_http://www.forex-tsd.com__(ò ó)
//______________________o0o___(_)___o0o__
//___¦_____¦_____¦mladen¦_____¦_____¦_____¦
//¦_cja_¦_____¦_____¦_____¦_____¦_____¦__
//___¦_____¦_____¦_____¦_Xard¦777__¦_____¦
//¦____¦ihldiaf¦_____¦_____¦_____¦____¦__
//___¦_____¦_____¦_____¦Baba¦Master_¦____¦
//¦FxSniper___¦_____¦_igor_¦_____¦_____¦__
//+------------------------------------------------------------------+
#property indicator_chart_window
//+------------------------------------------------------------------+
#import "kernel32.dll"
void GetLocalTime(int& TimeArray[]);
void GetSystemTime(int& TimeArray[]);
int GetTimeZoneInformation(int& TZInfoArray[]);
#import
//+------------------------------------------------------------------+
#property indicator_buffers 1
//+------------------------------------------------------------------+
//---- input parameters
extern int corner=0;
extern int topOff=140;
extern int left=-230;
extern color labelColor=White;
extern color clockColor=Orange;
extern bool show12HourTime=false;
//+------------------------------------------------------------------+
//---- buffers
double ExtMapBuffer1[];
int LondonTZ = 1;
int TokyoTZ = 9;
int NewYorkTZ = -4;
int SydneyTZ = 10;
int ZurichTZ = 2;
//+------------------------------------------------------------------+
string TimeToString( datetime when ) {
if ( !show12HourTime )
return (TimeToStr( when, TIME_MINUTES ));
int hour = TimeHour( when );
int minute = TimeMinute( when );
string ampm = " AM";
string timeStr;
if ( hour >= 12 ) {
hour = hour - 12;
ampm = " PM";
}
if ( hour == 0 )
hour = 12;
timeStr = DoubleToStr( hour, 0 ) + ":";
if ( minute < 10 )
timeStr = timeStr + "0";
timeStr = timeStr + DoubleToStr( minute, 0 );
timeStr = timeStr + ampm;
return (timeStr);
}
//+------------------------------------------------------------------+
int start()
{
if ( !IsDllsAllowed() ) {
Alert( "Clock V1_2: DLLs are disabled. To enable tick the checkbox in the Common Tab of indicator" );
return;
}
int counted_bars=IndicatorCounted();
//+------------------------------------------------------------------+
int TimeArray[4];
int TZInfoArray[43];
int nYear,nMonth,nDay,nHour,nMin,nSec,nMilliSec;
string sMilliSec;
//+------------------------------------------------------------------+
GetLocalTime(TimeArray);
//---- parse date and time from array
nYear=TimeArray[0]&0x0000FFFF;
nMonth=TimeArray[0]>>16;
nDay=TimeArray[1]>>16;
nHour=TimeArray[2]&0x0000FFFF;
nMin=TimeArray[2]>>16;
nSec=TimeArray[3]&0x0000FFFF;
nMilliSec=TimeArray[3]>>16;
string LocalTimeS = FormatDateTime(nYear,nMonth,nDay,nHour,nMin,nSec);
datetime localTime = StrToTime( LocalTimeS );
//+------------------------------------------------------------------+
int gmt_shift=0;
int dst=GetTimeZoneInformation(TZInfoArray);
if(dst!=0) gmt_shift=TZInfoArray[0];
//Print("Difference between your local time and GMT is: ",gmt_shift," minutes");
if(dst==2) gmt_shift+=TZInfoArray[42];
//+------------------------------------------------------------------+
datetime brokerTime = CurTime();
datetime GMT = localTime + gmt_shift * 60;
datetime london = GMT + (LondonTZ + (dst - 1)) * 3600;
datetime tokyo = GMT + (TokyoTZ) * 3600;
datetime newyork = GMT + (NewYorkTZ + (dst - 1)) * 3600;
datetime sydney = GMT + (SydneyTZ + (dst - 1)) * 3600;
datetime zurich = GMT + (ZurichTZ + (dst - 1)) * 3600;
//+------------------------------------------------------------------+
//Print( brokerTime, " ", GMT, " ", local, " ", london, " ", tokyo, " ", newyork );
string zurichs = TimeToString( zurich );
string locals = TimeToString( localTime );
string londons = TimeToString( london );
string tokyos = TimeToString( tokyo );
string newyorks = TimeToString( newyork );
string sydneys = TimeToString( sydney );
string bars = TimeToStr( CurTime() - Time[0], TIME_MINUTES );
//+------------------------------------------------------------------+
ObjectSetText( "zurl", "Zurich", 11, "Arial Bold", labelColor );
ObjectSetText( "zurt", zurichs, 11, "Euro Ext Bold", clockColor );
ObjectSetText( "nyl", "New York", 11, "Arial Bold", labelColor );
ObjectSetText( "nyt", newyorks, 11, "Euro Ext Bold", clockColor );
ObjectSetText( "lonl", "London", 11, "Arial Bold", labelColor );
ObjectSetText( "lont", londons, 11, "Euro Ext Bold", clockColor );
ObjectSetText( "sydl", "Sydney", 11, "Arial Bold", labelColor );
ObjectSetText( "sydt", sydneys, 11, "Euro Ext Bold", clockColor );
ObjectSetText( "tokl", "Tokyo", 11, "Arial Bold", labelColor );
ObjectSetText( "tokt", tokyos, 11, "Euro Ext Bold", clockColor );
//----
return(0);
}
//+------------------------------------------------------------------+
int ObjectMakeLabel( string n, int xoff, int yoff ) {
ObjectCreate( n, OBJ_LABEL, 0, 0, 0 );
ObjectSet( n, OBJPROP_CORNER, corner );
ObjectSet( n, OBJPROP_XDISTANCE, xoff );
ObjectSet( n, OBJPROP_YDISTANCE, yoff );
ObjectSet( n, OBJPROP_BACK, true );
}
//+------------------------------------------------------------------+
string FormatDateTime(int nYear,int nMonth,int nDay,int nHour,int nMin,int nSec)
{
string sMonth,sDay,sHour,sMin,sSec;
//+------------------------------------------------------------------+
sMonth=100+nMonth;
sMonth=StringSubstr(sMonth,1);
sDay=100+nDay;
sDay=StringSubstr(sDay,1);
sHour=100+nHour;
sHour=StringSubstr(sHour,1);
sMin=100+nMin;
sMin=StringSubstr(sMin,1);
sSec=100+nSec;
sSec=StringSubstr(sSec,1);
//+------------------------------------------------------------------+
return(StringConcatenate(nYear,".",sMonth,".",sDay," ",sHour,":",sMin,":",sSec));
}
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
int top=topOff;
//+------------------------------------------------------------------+
ObjectMakeLabel( "zurl", left+705, top-120 );
ObjectMakeLabel( "zurt", left+700, top-105 );
ObjectMakeLabel( "lonl", left+588, top-120 );
ObjectMakeLabel( "lont", left+590, top-105 );
ObjectMakeLabel( "nyl", left+472, top-120 );
ObjectMakeLabel( "nyt", left+480, top-105 );
ObjectMakeLabel( "sydl", left+370, top-120 );
ObjectMakeLabel( "sydt", left+370, top-105 );
ObjectMakeLabel( "tokl", left+265, top-120 );
ObjectMakeLabel( "tokt", left+260, top-105 );
//+------------------------------------------------------------------+
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete( "zurl" );
ObjectDelete( "zurt" );
ObjectDelete( "nyl" );
ObjectDelete( "nyt" );
ObjectDelete( "lonl" );
ObjectDelete( "lont" );
ObjectDelete( "tokl" );
ObjectDelete( "tokt" );
ObjectDelete( "brol" );
ObjectDelete( "brot" );
ObjectDelete( "barl" );
ObjectDelete( "bart" );
ObjectDelete( "sydl" );
ObjectDelete( "sydt" );
//----
return(0);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---