Un minuto e mezzo di differenza tra l'ora locale e l'ora fresca di zecca. Cosa fare. - pagina 5
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
Lo so. Dove vuoi arrivare?
A cosa:
Nella panoramica del mercato ci sono ancora le colonne "Volume" "Ultimo scambio" C'è il sospetto che questa funzione restituisca semplicemente l'ora dell'ultimo tick.
La funzioneSymbolInfoInteger(_Symbol,SYMBOL_TIME) restituisce solo il tempo dell'ultimo tick. Perché il cambiamento di una citazione provoca l'apparizione di un nuovo tick informativo.
Si vuole misurare il tempo tra l'arrivo dell'ultima citazione e il tempo dell'ultimo tick. In secondi, sembra essere sempre 0. Quindi, il terminale restituisce tutto prontamente.
A:
La funzioneSymbolInfoInteger(_Symbol,SYMBOL_TIME) restituisce solo il tempo dell'ultimo tick. Perché il cambiamento di una citazione porta a un nuovo tick informativo.
Si vuole misurare il tempo tra l'arrivo dell'ultima citazione e il tempo dell'ultimo tick. In secondi, sembra essere sempre 0. Quindi, il terminale restituisce tutto prontamente.
Ancora una volta quello che vedo come il problema.
Dato:
L'ora locale e l'ora del server sono più o meno in sincronia, cioè la differenza tra .time_msc dei nuovi tick e l'ora locale è di pochi secondi.
Alle 18:00:00 ora locale stai cercando di ottenere un nuovo tick dal simbolo SBER con SymbolInfoTick, ottieni un tick con tempo 17:57:00
Alle 18:00:01 la volta che cerchiamo di ottenere un nuovo tick con SymbolInfoTick, otteniamo un tick con il tempo 17 :58:30
Non credo che questo possa essere definito operativo.
Ora mi sono allontanato dall'ora locale del computer e uso invece il tempo massimo dell'ultimo tick tra tutti i simboli dalla panoramica del mercato.
Ancora una volta, quello che vedo come il problema.
Dato:
L'ora locale e l'ora del server sono più o meno sincronizzate, cioè la differenza tra .time_msc del nuovo tick e l'ora locale è di pochi secondi.
Alle 18:00:00 ora locale stai cercando di ottenere un nuovo tick dal simbolo SBER con SymbolInfoTick, ottieni un tick con tempo 17:57:00
Alle 18:00:01 la volta che cerchiamo di ottenere un nuovo tick con SymbolInfoTick, otteniamo un tick con il tempo 17 :58:30
Non credo che questo possa essere definito operativo.
Ora mi sono allontanato dall'ora locale del computer e uso invece il tempo massimo dell'ultimo tick tra tutti i simboli dalla panoramica del mercato.
Capite che potete impostare qualsiasi orario del computer? Non potete usarlo. Questo vi è già stato detto. Questa è la prima cosa.
In secondo luogo, il tempo massimo dell'ultimo tick tra tutti i simboli della panoramica del mercato non può essere utilizzato. Si vuole trovare il ritardo del tempo dell'ultimo tick del simbolo SBER (SymbolInfoTick) dal tempo dell'ultima quotazione del simbolo SBER (SymbolInfoInteger). Cioè devi farlo all'incirca come ho scritto (all'incirca perché devi usare un buratto per una maggiore precisione, come ti è stato consigliato).
In terzo luogo, questo:
Si afferma senza prove. Se consideri il tuo codice come una prova, vedi "secondo".
Vi rendete conto che potete impostare il tempo del computer su qualsiasi cosa? Non si può essere legati ad esso. Te l'hanno già detto. Prima di tutto.
Non si può impostare su un tempo qualsiasi se si parla di millisecondi o addirittura di secondi. Parlare di ritardi di minuti è abbastanza possibile. Non sto misurando la differenza con esso ora, ma con il tempo massimo .time_msc dell'ultimo tick per tutti i simboli dalla panoramica del mercato.
Si vuole trovare il ritardo del tempo dell'ultimo tick del simbolo SBER (SymbolInfoTick) dal tempo dell'ultima quotazione del simbolo SBER (SymbolInfoInteger).
Io no.
In secondo luogo, non puoi nemmeno usare il tempo massimo dell'ultimo tick tra tutti i simboli della panoramica del mercato.
Perché? Non sto confrontando il tempo dell'ultimo tick (per computer), sto confrontando il time_msc.
Non posso usare il tuo codice senza prove. Se consideri il tuo codice come una prova - vedi "secondo".
Di solito gli sviluppatori chiedono del codice per riprodurre il problema. Ecco un ritardo di 2 secondi catturato di recente.
(più o meno perché è necessario utilizzare un tumbler per una maggiore precisione, come ti è stato consigliato).
pivomoe:
Solo da queste righe, sembra chiaro quello che vuoi. Lei è interessato a qualcosa come la sincronizzazione intersimbolo. Cioè, la rilevanza generale dei dati sugli strumenti che volete.
Non posso aiutarti in questo momento, non sono stato coinvolto in questa domanda. Chiedete agli sviluppatori.
Solo da queste righe, sembra chiaro quello che vuoi. Lei è interessato a qualcosa come la sincronizzazione intersimbolo. Cioè, la rilevanza generale dei dati sugli strumenti che volete.
Non posso aiutarti in questo momento, non sono stato coinvolto in questa domanda. Indirizzo agli sviluppatori.
Alexey (non voleva partecipare, ma...).
Non è il codice "rilevanza" (NEW_TICK) della pagina 2 di questo thread?
Aggiunto
Con CUR_TICK, potete ancora fare dei controlli che sia lo stesso tick che era o
il nuovo pacchetto di tick contiene un tick che non era nel precedente.
Alexey (non voleva essere coinvolto, ma...).
Non è il codice "rilevanza" (NEW_TICK) della pagina 2 di questo thread?
A quanto pare no. Da quando:
TimeTradeServer
Restituisce l'ora corrente stimata del server commerciale. A differenza diTimeCurrent(), il valore del tempo è calcolato nel terminale client e dipende dalle impostazioni del tempo sul computer dell'utente.
Cioè dipende dal tempo del computer (non dovrebbe essere così per la precisione della misurazione).
La cosa buona qui, naturalmente, è controllarela correttezza del codicepivomoe, e se c'è davvero un bug - contattare gli sviluppatori.
Il controllo sembra dover essere fatto tramite TimeGMTOffset. Più tardi farò un esempio.
A quanto pare no. Perché:
Guardate attentamente il codice!
TimeTradeServer() è preso solo per determinare il giorno e basta (questo controllo è fatto "per sicurezza")!
TimeTradeServer() potrebbe non essere fatto affatto!
Aggiunto da
Ripeto
"Con CUR_TICK, potete ancora controllare che sia lo stesso tick che era, o
il nuovo pacchetto di tick contiene un tick non passato nel pacchetto precedente, e il pacchetto contiene 1 tick("vecchio")".
La cosa buona qui, naturalmente, è controllarela correttezza del codicepivomoe e, se c'è davvero un bug, contattare gli sviluppatori.
Il bug appare sia se ci sono decine di caratteri nella recensione del mercato o se ci sono diversi caratteri aperti nella recensione, ma ci sono diverse decine di schede nel browser dell'opera. Ho scritto agli sviluppatori via messaggio privato.
Come ho scritto prima, il problema si risolve con uno Sleep abbastanza grande tra le chiamate, per 40 caratteri sleep(10) è sufficiente. Man mano che il numero di personaggi cresce, è necessario dormire sempre di più.