ordertimealert

Author: Tapochun
Orders Execution
Checks for the total of open orders
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 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 ---