Libreria per il controllo delle sessioni di trading. All'avvio conta gli orari delle sessioni di trading per tutti i 7 giorni della settimana (possono esserci scambi di criptovalute il sabato e la domenica), fino a 10 sessioni al giorno. Poi in OnTick() si possono fare dei controlli e se un tick è uscito dalla sessione di trading, si può uscire dall'ulteriore elaborazione.
Esempio di utilizzo:
//+------------------------------------------------------------------+ //|testControl_Trade_Sessions.mq5 | //+------------------------------------------------------------------+ // #define LoadSessionFromInputs // Leggere le sessioni dagli ingressi #include <Forester\Control_Trade_Sessions.mqh> // collegamento del codice per il controllo della sessione di trading int OnInit() { return(INIT_SUCCEEDED); } void OnTick() { static TRADE_SESSIONS TradeSession(_Symbol);// ottiene gli orari di apertura/chiusura del mercato e li salva in array per giorni della settimana. Richiamato una volta all'avvio dell'Expert Advisor (vedi statica). if(!TradeSession.isSessionTrade(TimeCurrent())){Print("Market closed. OnTick return"); return;} // le vostre azioni }
Il risultato è una stampa come questa:
2022.01.10 00:05:00 Day: 0 Trade sessions: 1: 00:00-00:00 - это воскресенье
2022.01.10 00:05:00 Day: 1 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 2 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 3 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 4 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 5 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 6 Trade sessions: 1: 00:00-00:00
2022.05.30 00:05:00 Market closed. OnTick return
2022.05.30 00:05:01 Market closed. OnTick return
...
2022.05.30 00:14:36 Market closed. OnTick return
2022.05.30 00:14:40 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
...
2022.05.30 23:59:30 Market closed. OnTick return
2022.05.31 00:00:01 Market closed. OnTick return
...
if(time < this.NextTradeStop ) { return true; }Dove NextTradeStop è l'ora di fine della sessione di trading corrente.
if(time < this.NextTradeStart ) { return false; }Solo al passaggio tra le sessioni si accede agli array per ottenere l'ora della sessione successiva.
#define LoadSessionFromInputs // Leggere le sessioni dagli ingressi
Verranno creati 7 input per inserire le sessioni di trading in base ai giorni della settimana.
Inserire gli orari delle sessioni senza spazi, rigorosamente con : - e ,
Nella scheda dei parametri si presenta così:

Se l'ora di fine della sessione è inferiore a quella di inizio, ad esempio 20:00-8:00, la sessione continuerà fino alle 8:00 del giorno successivo. Questo può essere utile nei casi in cui la sessione di trading si trovi in un fuso orario diverso da quello del server.
L'orario delle sessioni di trading può anche essere specificato nel codice senza input. A questo scopo è stata creata la funzione LoadFromInputs(). Può essere richiamata senza input, ma direttamente dal codice con un array di stringhe, come nell'esempio.
string s=["00:15-17:45,17:55-23:55","00:00-24:00",....] void LoadFromInputs(string &s[]){...}
Se l'Expert Advisor è multicurrency e i diversi strumenti hanno orari di sessione di trading diversi, è possibile creare un'istanza separata di TRADE_SESSIONS per ogni strumento e chiamare LoadFromInputs() con i dati della sessione e verificare isSessionTrade(). Per fare ciò, è necessario modificare il codice in modo simile a questo esempio.
Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/48059
Tandem
Pair trading. Copertura. Strategie neutrali rispetto al mercato
SetSellStopLimitOrder
Questo script è progettato per impostare l'ordine SellStopLimit con valori fissi dei livelli di attivazione, del livello di stop loss e del livello di take profit in pip dal prezzo corrente e dai prezzi di attivazione dell'ordine.
Moving Averages-14 different types
Si tratta di un indicatore che calcola 14 tipi di medie mobili in base al prezzo di chiusura.
EMDcotir (Empirical Mode Decomposition)
Decomposizione di modo empirico dello strumento attuale.