Orders Execution
0
Views
0
Downloads
0
Favorites
ordertimealert
//+------------------------------------------------------------------+
//| OrderTimeAlert.mq4 |
//| Tapochun |
//| https://www.mql5.com/ru/users/tapochun |
//+------------------------------------------------------------------+
#property copyright "Tapochun"
#property link "https://www.mql5.com/ru/users/tapochun"
#property version "1.01"
#property strict
#property description "Çâóêîâîé ñèãíàë ïî ïðîøåñòâèè Õ ñåêóíä îò îòêðûòèÿ îðäåðà"
#property description "v 1.01 - äîáàâëåíà âîçìîæíîñòü âûáîðà çâóêà (êàòàëîã òåðìèíàëà/Sounds)"
//+------------------------------------------------------------------+
//| Ãëîáàëüíûå ïåðåìåííûå |
//+------------------------------------------------------------------+
string globGVName="PTA_lastOrderTicket";
//+------------------------------------------------------------------+
//| Âõîäíûå ïàðàìåòðû |
//+------------------------------------------------------------------+
input int inpNum = 10; // Êîëè÷åñòâî ñåêóíä (Õ) äëÿ àëåðòà
input int inpTimerFreqSec = 1; // ×àñòîòà òàéìåðà (ïðîâåðêè), ñåê
input int inpMagic = 0; // Ìàäæèê ýêñïåðòà äëÿ îòñëåæèâàíèÿ (0 - ôèëüòðà íåò)
input string inpSymbol = ""; // Ñèìâîë äëÿ îòñëåæèâàíèÿ (ïóñòî - ôèëüòðà íåò)
input bool inpUsePrint = true; // Ïðèíò â æóðíàë
input string inpSoundName = "Alert2.wav"; // Èìÿ ôàéëà - çâóêà
//+------------------------------------------------------------------+
//| Ôóíêöèÿ èíèöèàëèçàöèè ýêñïåðòà |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Ãåíåðèðóåì ñîáûòèå òàéìåðà
EventSetTimer(inpTimerFreqSec);
//--- Ïðîâåðêà ãëîáàëüíîé ïåðåìåííîé òåðìèíàëà
if(!GlobalVariableCheck(globGVName ) ) // Åñëè ïåðåìåííàÿ íå ñóùåñòâóåò
GlobalVariableSet( globGVName,0 ); // Ñîçäàåì ïåðåìåííóþ
return( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Ôóíêöèÿ - òàéìåð |
//+------------------------------------------------------------------+
void OnTimer()
{
int total = OrdersTotal(); // Îáùåå êîëè÷åñòâî îðäåðîâ
if(total <= 0 ) return; // Åñëè îðäåðà íå îáíàðóæåíû - âûõîäèì
int oType; // Òèï îðäåðà
int oTicket; // Òèêåò îðäåðà
datetime oTime; // Âðåìÿ îòêðûòèÿ îðäåðà
datetime currentTime; // Òåêóùåå âðåìÿ
int lastOrderTicket=int(GlobalVariableGet(globGVName)); // Óñòàíàâëèâàåì òèêåò ïîñëåäíåãî "îçâó÷åííîãî" îðäåðà (äëÿ ñðàâíåíèÿ)
for(int i=total-1; i>=0; i--) // Öèêë ïî âñåì îðäåðàì
{
if(OrderSelect(i,SELECT_BY_POS)) // Åñëè îðäåð âûáðàí
{
if(inpSymbol=="" || inpSymbol==OrderSymbol()) // Åñëè íàø ñèìâîë, ëèáî ôèëüòð ïî ñèìâîëó íå óñòàíîâëåí
{
oType = OrderType(); // Çàïîìèíàåì òèï îðäåðà
if( oType == OP_BUY || oType == OP_SELL ) // Åñëè îðäåð ðûíî÷íûé (ïîêóïêà/ïðîäàæà)
{
if(inpMagic==0 || inpMagic==OrderMagicNumber())// Åñëè íàø ìàäæèê, ëèáî ôèëüòð ïî ìàäæèêó íå óñòàíîâëåí
{
oTime=OrderOpenTime(); // Çàïîìèíàåì âðåìÿ îòêðûòèÿ îðäåðà
currentTime= TimeCurrent(); // Çàïîìèíàåì òåêóùåå âðåìÿ
oTicket = OrderTicket(); // Çàïîìèíàåì òèêåò îðäåðà
if( currentTime - oTime >= inpNum && lastOrderTicket < oTicket ) // Åñëè ñ ìîìåíòà îòêðûòèÿ îðäåðà ïðîøëî áîëüøå inpNum ñåê. è..
{ // .. îðäåð ðàíåå íå îáðàáîòàí ýêñïåðòîì
if( inpUsePrint ) // Åñëè óñòàíîâëåí ïàðàìåòð çàïèñè â æóðíàë
Print(_Symbol+": c ìîìåíò îòêðûòèÿ îðäåðà #",OrderTicket()," ïðîøëî íå ìåíåå ",inpNum," ñåêóíä!");
if(!PlaySound(inpSoundName)) // Åñëè ôàéë íå íàéäåí - ñîîáùåíèå îá îøèáêå
Print("ÎØÈÁÊÀ! Çâóêîâîé ôàéë "+inpSoundName+" íå íàéäåí! Ïðîâåðüòå ïðàâèëüíîñòü èìåíè. Ôàéë â ïàïêå êàòàëîã òåðìèíàëà/Sounds");
GlobalVariableSet(globGVName,oTicket); // Óñòàíàâëèâàåì íîâûé òèêåò â ÃÏÒ
break; // Âûõîäèì èç öèêëà ïåðåáîðà îðäåðîâ
}
else if(lastOrderTicket>=oTicket) break; // Åñëè îðäåð ðàíåå îáðàáîòàí - âûõîäèì
}
}
}
}
else // Åñëè îðäåð íå âûáðàí - ñîîáùåíèå îá îøèáêå â æóðíàë
Print("ÎØÈÁÊÀ #",_LastError,"! Îðäåð #",i," c òèêåòîì #",OrderTicket()," íå âûáðàí!");
}
}
//+------------------------------------------------------------------+
//| Ôóíêöèÿ äåèíèöèàëèçàöèè ýêñïåðòà |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) // Ïðè÷èíà äåèíèöèàëèçàöèè
{
if(reason == REASON_REMOVE || // Åñëè ýêñïåðò óäàëåí ñ ãðàôèêà èëè..
reason == REASON_ACCOUNT || // .. àêòèâèðîâàí äð. ñ÷åò/ïåðåïîäêë. ê òîðãîâîìó ñåðâåðó èëè..
reason == REASON_TEMPLATE ) // .. èçìåíåí øàáëîí ãðàôèêà
{
//--- Óäàëÿåì ãëîáàëüíóþ ïåðåìåííóþ òåðìèíàëà
GlobalVariableDel(globGVName);
}
//--- Ïåðåñòàåì ãåíåðèðîâàòü ñîáûòèå òàéìåðà
EventKillTimer();
}
//+------------------------------------------------------------------+
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
---