Unisciti alla nostra fan page
- Visualizzazioni:
- 16
- Valutazioni:
- Pubblicato:
-
Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance
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 è arrivato al di fuori della 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
...
Le nuove funzioni MQL5 sono utilizzate per leggere la sessione di trading di qualsiasi giorno, compresi i fine settimana.
Funziona il più velocemente possibile, viene effettuato solo un controllo su ogni tick all'interno della sessione di trading:
.
if(time < this.NextTradeStop ) { return true; }Dove NextTradeStop è l'ora di fine della sessione di trading corrente.
Ad ogni tick al di fuori della sessione di trading viene effettuato 1 controllo:
if(time < this.NextTradeStart ) { return false; }Solo al passaggio tra le sessioni si accede agli array per ottenere l'ora della sessione successiva.
Ad esempio, sul mio DC la sessione di trading va dalle 00:15 alle 23:55. Con il primo tick dopo le 00:15 NextTradeStop verrà impostato alle 23:55 e quindi verrà controllata solo questa condizione per tutto il giorno.
Le vostre sessionidi trading
È anche possibile specificare manualmente l'orario delle sessioni di trading. Per attivare questa opzione, aggiungere la riga
.
#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ì:

E questo è il modo in cui verrà visualizzato nel log:
TradeSessionsTuesday=00:15-23:55
TradeSessionsWednesday=00:10-17:45,17:55-23:00,23:05-23:55
TradeSessionsThursday=00:15-17:45,17:55-23:55
TradeSessionsFriday=00:15-23:55
TradeSessionsSaturday=00:15-23:55
TradeSessionsSunday=
EURUSD : i tick reali iniziano dal 2022.05.10 00:00:00, ogni generazione di tick utilizzata
2022.01.10 00:05:00 Giorno: 1 Sessioni di trading: 1: 00:15-17:45, 2: 17:55-23:55
2022.01.10 00:05:00 Giorno: 2 Sessioni di trading: 1: 00:15-23:55
2022.01.10 00:05:00 Giorno: 3 Sessioni di trading: 1: 00:10-17:45, 2: 17:55-23:00, 3: 23:05-23:55
2022.01.10 00:05:00 Giorno: 4 Sessioni di trading: 1: 00:15-17:45, 2: 17:55-23:55
2022.01.10 00:05:00 Giorno: 5 Sessioni di trading: 1: 00:15-23:55
2022.01.10 00:05:00 Giorno: 6 Sessioni di trading: 1: 00:15-23:55
2022.01.10 00:05:00 Mercato chiuso. Ritorno OnTick
...
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 controllare 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.
MA_AC_Stochastic_Signal
This indicator shows trend direction (Moving Average) and trading signals (Stochastic + Accelerator).