Price Data Components
0
Views
0
Downloads
0
Favorites
TimeOut
//+------------------------------------------------------------------+
//| TimeOut.mq4 |
//| Äîáðîæåëàòåëü, thanks to: komposter |
//| mailto:komposterius@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Äîáðîæåëàòåëü, thanks to: komposter"
#property link "mailto:komposterius@mail.ru"
#property indicator_separate_window
#property indicator_minimum -1
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Lime
string name = "TimeOut";
bool first = true;
int Max_TimeOut;
datetime Max_TimeOut_Time;
double buf0[];
double buf1[];
double SummTimeOut, Average_TimeOut;
int Counted;
// ×àñîâîé ïîÿñ ( äëÿ Ìîñêâû GMT_shift = 3 )
extern int GMT_shift = 3;
// Êîë-âî îòðèñîâûâàåìûõ áàðîâ èíäèêàòîðà
extern int DrawBars = 333;
extern color OKColor = Lime;
extern color StandartColor = White;
extern color AttentionColor = Yellow;
extern color WarningColor = Red;
int init()
{
IndicatorShortName( name );
IndicatorDigits ( 3 );
SetIndexBuffer ( 0 , buf0 );
SetIndexStyle ( 0 , DRAW_HISTOGRAM );
SetIndexLabel ( 0 , "TimeOut" );
SetIndexBuffer ( 1 , buf1 );
SetIndexStyle ( 1 , DRAW_LINE );
SetIndexLabel ( 1 , "Average TimeOut" );
SetIndexEmptyValue ( 1, 0 );
for ( int i = MathMax( Bars, DrawBars ); i >= 0; i -- )
{ buf0[i] = 0; buf1[i] = 0; }
first = true;
return(0);
}
int start()
{
if ( DrawBars > Bars && Bars > 0 ) { DrawBars = Bars - 1; }
// èíèöèàëèçàöèÿ ïåðåìåííûõ
// öâåò âûâîäèìîé èíôîðìàöèè ïðè çíà÷åíèè èíäèêàòîðà <= 2
color _color = OKColor;
// ðàçìåð øðèôòà âûâîäèìîé èíôîðìàöèè ïðè çíà÷åíèè èíäèêàòîðà <= 2
double size = 13;
//ïðè ïåðâîì çàïóñêå â îêíå èíäèêàòîðà ñîçäà¸ì "òåêñòîâûå ìåòêè", â êîòîðûå áóäóò âûâîäèòüñÿ ðåçóëüòàòû.
if ( first == true )
{
//ïîèñê îêíà èíäèêàòîðà ïî èìåíè
int window = WindowFind(name);
//åñëè îêíî íå íàéäåíî - "òåêñòîâûå ìåòêè" áóäóò ñîçäàíû â îêíå ãðàôèêà
if( window < 0) { window = 0; }
ObjectCreate( name + "_1", OBJ_LABEL, window,0,0,0,0,0,0);
ObjectSet( name + "_1", OBJPROP_CORNER, 0);
ObjectSet( name + "_1", OBJPROP_XDISTANCE, 0);
ObjectSet( name + "_1", OBJPROP_YDISTANCE, 20);
ObjectSetText( name + "_1", "Last tick: ", 13, "Arial", StandartColor);
ObjectCreate( name + "_2", OBJ_LABEL, window,0,0,0,0,0,0);
ObjectSet( name + "_2", OBJPROP_XDISTANCE, 0);
ObjectSet( name + "_2", OBJPROP_YDISTANCE, 40);
ObjectSetText( name + "_2", "Last TimeOut: ", 13, "Arial", StandartColor);
ObjectCreate( name + "_3", OBJ_LABEL, window,0,0,0,0,0,0);
ObjectSet( name + "_3", OBJPROP_XDISTANCE, 0);
ObjectSet( name + "_3", OBJPROP_YDISTANCE, 60);
ObjectSetText( name + "_3", "Max TimeOut: ", 13, "Arial", StandartColor);
ObjectCreate( name + "_4", OBJ_LABEL, window,0,0,0,0,0,0);
ObjectSet( name + "_4", OBJPROP_XDISTANCE, 0);
ObjectSet( name + "_4", OBJPROP_YDISTANCE, 80);
ObjectSetText( name + "_4", "Ave TimeOut: ", 13, "Arial", StandartColor);
ObjectCreate( name + "_1_1", OBJ_LABEL, window,0,0,0,0,0,0);
ObjectSet( name + "_1_1", OBJPROP_XDISTANCE, 100);
ObjectSet( name + "_1_1", OBJPROP_YDISTANCE, 20);
ObjectSetText( name + "_1_1", "", 13, "Arial", WarningColor);
ObjectCreate( name + "_2_1", OBJ_LABEL, window,0,0,0,0,0,0);
ObjectSet( name + "_2_1", OBJPROP_XDISTANCE, 100);
ObjectSet( name + "_2_1", OBJPROP_YDISTANCE, 40);
ObjectSetText( name + "_2_1", "", size, "Arial", _color);
ObjectCreate( name + "_3_1", OBJ_LABEL, window,0,0,0,0,0,0);
ObjectSet( name + "_3_1", OBJPROP_XDISTANCE, 100);
ObjectSet( name + "_3_1", OBJPROP_YDISTANCE, 60);
ObjectSetText( name + "_3_1", "", 13, "Arial", WarningColor);
ObjectCreate( name + "_4_1", OBJ_LABEL, window,0,0,0,0,0,0);
ObjectSet( name + "_4_1", OBJPROP_XDISTANCE, 100);
ObjectSet( name + "_4_1", OBJPROP_YDISTANCE, 80);
ObjectSetText( name + "_4_1", "", 13, "Arial", WarningColor);
for ( int u = Bars-1; u >= 0; u -- )
{ buf0[u] = 0; buf1[u] = 0; }
first = false;
return(0);
}
//ïðîèçâîäèì ïîäñ÷¸òû
// - çàäåðæêà êîòèðîâêè
int luft = ( LocalTime() - GMT_shift*3600 ) - ( CurTime() - 3600 );
// - âðåìÿ è çíà÷åíèå ìàêñèìàëüíîé çàäåðæêè
if ( Max_TimeOut <= luft || Max_TimeOut == 0 ) { Max_TimeOut = luft; Max_TimeOut_Time = CurTime(); }
// - îáùàÿ çàäåðæêà
SummTimeOut += luft;
// - êîë-âî òèêîâ
Counted ++;
// - ñðåäíÿÿ çàäåðæêà
Average_TimeOut = SummTimeOut / Counted;
if ( luft > 2 )
{
if ( luft < 5 )
// öâåò è ðàçìåð øðèôòà âûâîäèìîé èíôîðìàöèè ïðè çíà÷åíèè èíäèêàòîðà îò 2 äî 5
{ _color = AttentionColor; /*size = 15;*/ }
else
// öâåò è ðàçìåð øðèôòà âûâîäèìîé èíôîðìàöèè ïðè çíà÷åíèè èíäèêàòîðà >= 5
{ _color = WarningColor; /*size = 20;*/ }
}
// èçîáðàæåíèå íà ãðàôèêå - îäíà ñâå÷à ñîîòâåòñòâóåò îäíîìó òèêó
// õðàíÿòñÿ ïîñëåäíèå DrawBars òèêîâ
for ( int i = DrawBars; i >= 0; i -- )
{ buf0[i+1] = buf0[i]; buf1[i+1] = buf1[i]; }
buf0[0] = luft;
buf1[0] = Average_TimeOut;
// âûâîä èíôîðìàöèè â "òåêñòîâûå ìåòêè"
ObjectSetText( name + "_1_1", TimeToStr( CurTime(), TIME_SECONDS ), 13, "Arial", OKColor);
ObjectSetText( name + "_2_1", luft + " ñåê", size, "Arial", _color);
ObjectSetText( name + "_3_1", Max_TimeOut + " ñåê" + " ( " + TimeToStr( Max_TimeOut_Time, TIME_SECONDS ) + " )", 13, "Arial", OKColor);
ObjectSetText( name + "_4_1", DoubleToStr( Average_TimeOut, 3 ) + " ñåê" + " ( çà " + Counted + " òèê(-à, -îâ) )", 13, "Arial", OKColor);
return(0);
}
int deinit()
{
// ïðè äåèíèöèàëèçàöèè - óäàëÿåì ñîçäàííûå "òåêñòîâûå ìåòêè"
ObjectDelete ( name );
ObjectDelete ( name + "_1" );
ObjectDelete ( name + "_2" );
ObjectDelete ( name + "_3" );
ObjectDelete ( name + "_4" );
ObjectDelete ( name + "_1_1" );
ObjectDelete ( name + "_2_1" );
ObjectDelete ( name + "_3_1" );
ObjectDelete ( name + "_4_1" );
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
---