Discussione sull’articolo "Forum sulla programmazione MQL5 Ora"

 

Il nuovo articolo Forum sulla programmazione MQL5 Ora è stato pubblicato:

L'articolo si concentra sulle funzioni MQL5 standard per lavorare con il tempo, nonché sulle tecniche di programmazione e sulle funzioni praticamente utili per lavorare con il tempo richiesto durante la creazione di Expert Advisor e indicatori. Particolare attenzione è rivolta alla teoria generale della misurazione del tempo. Questo articolo dovrebbe essere di interesse principalmente per i programmatori MQL5 alle prime armi.

MQL5 offre una serie di semplici funzioni per lavorare con il tempo e non dovresti trovare difficile familiarizzare con loro. La gamma di attività che richiedono l'uso di data e ora è piuttosto piccola. I compiti principali sono:

  • Per eseguire determinate azioni in un determinato momento (Fig. 1). Queste possono essere azioni eseguite alla stessa ora ogni giorno o in una data ora del giorno e un dato giorno della settimana su base settimanale o semplicemente eseguite in una determinata data e ora.

    Fig. 1. Punto nel tempo.
    Fig. 1. Punto nel tempo.

  • Per abilitare o disabilitare determinate azioni entro un determinato intervallo di tempo (sessione temporale). Ciò può includere una sessione temporale all'interno del giorno (ogni giorno da un punto nel tempo ad un altro), abilitando / disabilitando 1.determinate azioni in determinati giorni della settimana, 2. sessioni temporali da un dato momento in un dato giorno della settimana a un dato momento in un altro giorno della settimana e 3. solo azioni che rientrano in una data e un intervallo di tempo specificati.

    Fig. 2. Intervallo di tempo.
    Fig. 2. Range Temporale.

Autore: Dmitry Fedoseev

 
"01.12.2012 - primo gennaio 2012". - forse dicembre?
 
O forse 01.01.2012 :)
 
Aspettando... lo aggiusteranno.
[Eliminato]  
Integer:
O forse 01.01.2012 :)
Corretto, grazie.
 

Non avreste dovuto usare il termine" orainvernale" .

Dovrebbe chiamarsi ora solare , perché secondo le regole (e anche in Windows) si chiama ora solare.

Inverno è un nome comune, non è estate.

Quando la si chiama Estate o Standard, è subito chiaro che si tratta dell'ora legale non standard, che ha un'ora in più.

 
Cosa significa la frase "Tutti gli elementi del grafico sono impostati sul colore invisibile" e dove si trova nel codice dello script? Grazie.
 
Non è nel codice, è sull'immagine, per chiarezza, in modo che lo script possa essere visto meglio. È disabilitato manualmente.
 
Salve, onorato programmatore. Per me i programmatori sono come degli dei - creare qualcosa che funziona dal nulla, dall'aria e persino creare cose materiali è semplicemente fantastico... Tu determini solo il momento dall'inizio, ma come impostare la periodicità. Finora ho dovuto rinominare gli EA in modo che ognuno inizi e si fermi al proprio orario, ma poiché in MT5 c'è solo una coppia - un EA, devo cambiare manualmente. Grazie
 

Ottimo articolo. È bello quando tutto viene raccolto e dopo averlo letto si costruisce un sistema nella testa.

Vorrei maggiori informazioni sulla transizione (o meno) delle diverse borse all'ora legale.

Inoltre, mi interessa sapere come programmare i test tenendo conto dei fusi orari Forex, se alcune borse passano all'ora legale e altre no.

Allo stesso tempo, le date di transizione sono diverse dappertutto e le regole per selezionare queste date potrebbero essere cambiate nel corso degli anni.

Qualcuno ha codificato qualcosa di simile?

 

Aggiungerò il mio centesimo. Funzione per ottenere il parametro tempo (usarla nel codice è più compatto).

//=====================================================================================================================
// Restituisce il parametro temporale richiesto
// int TimeGet(datetime).year; // anno
// int TimeGet(datetime).mon; // mese
// int TimeGet(datetime).day; // day
// int TimeGet(datetime).hour; // ora
// int TimeGet(datetime).min; // minuti
// int TimeGet(datetime).sec; // secondi
// int TimeGet(datetime).day_of_week; // giorno della settimana (0-domenica, 1-lunedì, ...,6-sabato).
// int TimeGet(datetime).day_of_year; // numero ordinale dell'anno (il 1° gennaio ha il numero 0)
//=====================================================================================================================
MqlDateTime TimeGet(datetime par_time) {
   MqlDateTime stm;
   TimeToStruct(par_time, stm);
   return(stm);
}

Sembra funzionare, ma quando si inserisce un punto l'elenco a discesa degli elementi della struttura MqlDateTime non appare :(