Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Sì, tutto a causa di IMO una decisione di progettazione sconcertante:) Quindi il tempo del server potrebbe anche non corrispondere a nessun orologio mondiale conosciuto nel corso di un anno.
Ho un metodo per determinare accuratamente l'ora GMT, specialmente durante il backtesting. Questo metodo sembra funzionare per i broker che
ma l'approccio mi sembra ancora un po' da hacker.
Si trattava di scaricare le quotazioni basate su GMT da altre fonti (dukascopy), e confrontare l'ora di ogni massimo giornaliero. Funziona bene per il backtesting, ma al momento sto scaricando manualmente i dati orari e filtrando i massimi (usando uno script perl).
Una volta che posso ottenere automaticamente le quotazioni GMT H1 da almeno due fonti, allora sarò a mio agio con questo approccio per i miei scopi.
Come si potrebbe rendere MT4 più adeguato per fare questo? Non so voi, ma di sicuro non mi piacerebbe il compito di creare un calcolatore di offset GMT storico regionale. Ve lo immaginate? omg. Se mai lo farò, lo metterò sul mercato, è meglio che abbiate un bel libretto di assegni ;)
Un calcolatore storico GMT non è di per sé particolarmente difficile (il sistema operativo Windows contiene già tutti i dati necessari), ma non è il problema principale. Il problema è che puoi determinare l'offset attuale tra il tempo del broker e il GMT, ma non sai se/quando è cambiato. Usando l'esempio sopra, puoi vedere che il broker è attualmente su GMT+3 (assumendo che l'orologio del computer locale sia accurato...), ma non sai che il broker era su GMT+2 la settimana scorsa.
È molto probabile che il terminale client MT4 semplicemente non abbia queste informazioni.
Se le avesse, allora MT4 potrebbe fornire o i dati nudi che potreste elaborare voi stessi, o una funzione che vi permetta di dire "convertire qualsiasi data del broker nel passato in GMT". Una volta ottenuto questo, si potrebbe usare una tabella di ricerca (o l'API di Windows) per convertire l'ora GMT storica in un altro fuso orario come quello di Londra. Tuttavia, sarebbe preferibile che MT4 facesse anche questo per voi, ad esempio una coppia di funzioni come la seguente:
datetime ConvertToBrokerTime(datetime HistoricRegionalTime, SortSortOfTimeZoneInfo FromTimeZone);
datetime ConvertFromBrokerTime(datetime HistoricBrokerTime, SortSortOfTimeZoneInfo ToTimeZone);
Sì, tutto a causa di IMO una decisione di design sconcertante:)
(Suppongo che la ragione per non fissare su UTC è così che i broker possono correre a EET dando cinque candele D1 a settimana, evitando una sesta piccola candela che porta a sottostime sistematiche di cose come D1 ATR sui broker che usano GMTZ).
Avrei messo tutta quella roba nel client, ma rende il client più complicato in diversi punti :) Ma almeno tutte le variabili sono note.
Un altro approccio, secondo questa pagina ci sono solo 62 broker MT4? Quindi non sarebbe troppo difficile avere una tabella di ricerca per ogni broker e la loro definizione di tempo (se è basata su un fuso orario reale o su una combinazione di FXCM), e anche incorporare i cambiamenti storici (ala Alpari).
Questo è probabilmente l'approccio più robusto, e avrà solo bisogno di modifiche ogni volta che un broker decide che vuole confondere i suoi clienti un po' di più :)
gchrmt4:
[1] Il tempo del tuo server di GMT+3 può corrispondere a EEST nel senso che EEST è GMT+3 ma, secondo sia Wikipedia che worldclock.com, da nessuna parte dovrebbe essere ancora su EEST. Questo cambiamento non dovrebbe avvenire prima del 30 marzo. L'ora attuale a Cipro, Grecia, Israele ecc. è GMT+2.
[2] Quindi, quello che avete probabilmente è un broker che fa funzionare i suoi server a GMT+2, ma che passa all'ora legale nelle date statunitensi piuttosto che in quelle europee.
[3] Non è la stessa cosa di EET/EEST. (Ed è ancora meno prevedibile in termini di essere in grado di scrivere codice che regola automaticamente orari e date senza dover chiedere all'utente qualche tipo di input su quali impostazioni temporali il broker utilizza).
Un broker generalmente non cambia spesso il fuso orario del suo server, tranne che per regolare l'ora legale. Per la regolazione dell'ora legale, posso usare qualsiasi data/ora (dal 1987 (USA) e 1996 (UE) al 2020 e oltre) e calcolare, per gli USA e l'UE, il giorno in cui inizia l'ora legale e il giorno in cui finisce l'ora legale. Una volta che avete questo codice, tutto quello che dovete fare è aggiustare l'offset corrente al GMT per adattarlo all'ora legale per il tempo che state guardando.
Con TimeGMT(), che è nuovo nella build 600+, si calcola l'offset corrente del vostro broker rispetto al GMT. Ma non si può (per quanto ne so) determinare il fuso orario di un broker dal passato. Per esempio, ho avuto un broker che ha cambiato il fuso orario del suo server da GMT per il tempo standard a GMT+2 per il tempo standard. L'ho affrontato codificando un offset per il tempo prima del cambiamento perché tutti i dati della cronologia erano GMT, non GMT+2 (e non volevo modificare la cronologia per riflettere GMT+2). A questo proposito, credo che tu ed io siamo d'accordo. Finché un broker non cambia semplicemente il fuso orario (se non per adattarlo all'ora legale), dovresti essere in grado di calcolare l'offset rispetto a GMT e adattarlo all'ora legale.
Tutto quello che sto dicendo è che l'informazione che è possibile ottenere solo da MT4 stesso - l'offset attuale tra l'ora del broker e GMT - è inadeguata in pratica per fare cose come dire "calcola il prezzo di apertura a Londra mercoledì scorso".
Credo di non essere d'accordo con te. Finché il broker non cambia il fuso orario, tranne che per l'adeguamento all'ora legale, è possibile determinare l'offset rispetto al GMT, sia per il tempo corrente che per il tempo storico. Se la settimana scorsa, durante l'ora solare, il broker è GMT+2 e Londra è GMT, allora le 8 di Londra sarebbero le 10 del mattino del server. Il mese prossimo, durante l'ora legale, quando il broker è GMT+3 e Londra è GMT+1, le 8 del mattino di Londra corrisponderebbero alle 10 del mattino del server. Oggi, quando il broker è sull'ora legale e Londra è sull'ora standard, il broker è GMT+3 e Londra è GMT, quindi le 8 di Londra corrisponderebbero alle 11 dell'ora del server.
Se il broker è GMT-5 (EST) e Londra è GMT, le 8 di Londra sono le 3 del mattino, ora del server.
Un calcolatore storico GMT non è di per sé particolarmente difficile (il sistema operativo Windows contiene già tutti i dati necessari), ma non è il problema principale. Il problema è che puoi determinare l'offset attuale tra l'ora del broker e GMT, ma non sai se/quando è cambiato. Usando l'esempio sopra, puoi vedere che il broker è attualmente su GMT+3 (assumendo che l'orologio del computer locale sia accurato...), ma non sai che il broker era su GMT+2 la settimana scorsa.
È molto probabile che il terminale client MT4 semplicemente non abbia queste informazioni.
Se le avesse, allora MT4 potrebbe fornire o i dati nudi che potreste elaborare voi stessi, o una funzione che vi permetta di dire "convertire qualsiasi data del broker nel passato in GMT". Una volta ottenuto questo, si potrebbe usare una tabella di ricerca (o l'API di Windows) per convertire l'ora GMT storica in un altro fuso orario come quello di Londra. Tuttavia, sarebbe preferibile che MT4 facesse anche questo per voi, ad esempio una coppia di funzioni come la seguente:
datetime ConvertToBrokerTime(datetime HistoricRegionalTime, SortSortOfTimeZoneInfo FromTimeZone);
datetime ConvertFromBrokerTime(datetime HistoricBrokerTime, SortSortOfTimeZoneInfo ToTimeZone);
Sì, non sarebbe difficile se non ci fosse il DST, ma c'è lol... sarebbe un incubo da codificare. Le anomalie storiche sarebbero ovunque. Regioni che hanno cambiato il fuso orario che usano, regioni che hanno sperimentato di non usare affatto il DST e poi sono tornate al DST, regioni che rispettano il DST in alcuni posti ma non in altri, ci sarebbero così tante anomalie da prendere in considerazione, in tutto il mondo...
Un altro approccio, secondo questa pagina ci sono solo 62 broker MT4? Quindi non sarebbe troppo difficile avere una tabella di ricerca per ogni broker e la loro definizione di tempo (se è basata su un fuso orario reale o una combinazione ala FXCM), e anche incorporare i cambiamenti storici (ala Alpari).
Thirteen:
Se la settimana scorsa, durante l'orario standard, il broker è GMT+2 e Londra è GMT,
L'approccio di buon senso sarebbe per il server MT4 di utilizzare GMT tutto il tempo, ma si sa che non lo faranno.