![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
O forse per il tempo reale, invece di
utilizzare
Perché copiare quando si può ottenere immediatamente il prezzo corrente?
In teoria, CopyTicks ha nelle sue viscere controlli di parametri extra, aumentando così la lunghezza del codice nel corpo della funzione.
Ma SymbolInfoTick non ha parametri aggiuntivi, e in teoria, l'implementazione di questa funzione dovrebbe contenere meno codice.
Meno codice significa un'esecuzione più veloce.
L'unica cosa negativa è che la funzione SymbolInfoTick non ha una documentazione dettagliata come CopyTicks e non è completamente chiaro come funziona.
Fa la cache o restituisce immediatamente i dati grezzi.
Solo il vetro è immediatamente disponibile, tutto il resto viene controllato ulteriormente.
Nessuno rivelerà la documentazione dettagliata - è un segreto dietro i 7 sigilli ))))
Solo il vetro viene consegnato subito, tutto il resto viene controllato ulteriormente.
Nessuno rivelerà la documentazione dettagliata - è un segreto dietro sette sigilli ))))
SymbolInfoTick() in linea di principio non può restituire lo stack, penso che intendessimo BestBid, BestAsk.
La struttura di MqlTick non è riempita completamente da BestBid, BestAsk?
Cosa le fa pensare che altri membri della struttura abbiano bisogno di un controllo supplementare?
Se volete ottenere l'intero bicchiere per tutte le banche, dovreste usare
Restituisce un array di strutture MqlBookInfo contenenti voci del simbolo specificato.
SymbolInfoTick() non può in linea di principio dare la tazza, probabilmente intendeva BestBid, BestAsk.
La struttura di MqlTick non è riempita completamente da BestBid, BestAsk?
Perché pensa che il resto dei membri della struttura abbia bisogno di un controllo aggiuntivo?
E se vuoi ottenere il tumblr completo per tutte le bande, dovresti usare
Restituisce una matrice di strutture MqlBookInfo, contenente i record di una pila di prezzi di un simbolo specificato.
Non so cosa intendi.
OnBook e OnTick sono thread diversi, se MQ li ha sincronizzati è molto brutto.
A giudicare dalla foto che ho dato sopra, non sono completamente sincronizzati.
Anche il test di fxsaber ispira fiducia:
Il risultato è pessimo: in OnTick/OnBookEvent, i tick ricevuti con metodi diversi molto spesso non coincidono all'interno di una funzione On. E non si può dire quale metodo per ottenere la zecca sia rilevante e quale no. Terribile vaghezza.
Quindi, chi vuole cosa:
- se hai bisogno di prezzi migliori - OnBook,
- se hai bisogno di una scheggia di accordi - CopyTick,
- e se non avete bisogno di nulla - OnTick, può saltare i tick e ritardare il flusso di informazioni, perché lavora in un processo in linea con altre funzioni On.
p.s. Tutto quello che ho scritto qui riguarda solo i conti di scambio, ai forexisti non interessa (nessuna differenza), i forexisti passano.
Per un momento è sembrato che lei abbia il desiderio di capire e questo aiuterà a domare il suo orgoglio.
No, sembrava così e basta.
La questione è risolta, e chiunque può guardare i tuoi, quelli di fxsaber e i miei codici e trarre conclusioni.
Con te smetto di dialogare, non arriva altro che un forte grido da parte tua, e alla ricezione delle informazioni il tuo cervello non funziona affatto.
Buona fortuna per i FORTI.
Andrey!
Sei ingiustamente offeso dalle mie osservazioni sul FOREX, non hanno nulla a che fare con te.
Abbiamo sempre avuto dialoghi costruttivi, ma se ti ha offeso in qualche modo, allora
Mi scuso con te personalmente!
Non so cosa intendi.
OnBook e OnTick sono thread diversi, se MQ li ha sincronizzati è un peccato.
Dai miei recenti test (dopo aver corretto un bug nel codice),
è molto chiaro che OnTick() viene attivato prima o allo stesso tempo di OnBookEvent(),
ma nelle stampanti OnTick() è sempre la prima.
Sembra che quando arriva un nuovo gruppo di zecche,
allora la funzione che li gestisce prima "tira" OnTick() e poi "intrufola" i dati
dove deve andare :)
O forse per il tempo reale, invece di
utilizzare
Perché copiare quando si può ottenere il prezzo corrente immediatamente?
A quale mercato è interessato?
Dai miei recenti test (dopo aver risolto un bug nel codice),
è molto chiaro che OnTick() viene attivato prima o allo stesso tempo di OnBookEvent(),
ma nelle stampanti OnTick() è sempre il primo.
Sembra che quando arriva un nuovo gruppo di zecche,
allora la funzione che li gestisce prima "tira" OnTick() e poi "invia" i dati
dove deve andare :)
Sì, più o meno lo stesso.
Il terminale è asincrono a thread singolo, elabora tutti gli eventi a turno.
Per la purezza dell'esperimento, chi è più veloce OnBook o OnTick, dovremmo eseguire due terminali in un broker.
In un EA soloOnBook senzaOnTick .
Nell'altro,soloOnTick senza OnBook.
E sommare i prezzi con l'ora locale in millisecondi in un file. Allora si vedrà la vera differenza.
Altrimenti, senza tempo di magazzino, è impossibile capire la differenza.
Sì, è più o meno lo stesso pensiero.
Il terminale è asincrono a thread singolo, gestisce tutti gli eventi a turno.
Per la purezza dell'esperimento, chi è più veloce OnBook o OnTick, dovremmo eseguire due terminali in un broker.
In un EA soloOnBook senzaOnTick .
Nell'altro,soloOnTick senza OnBook.
E sommare i prezzi con l'ora locale in millisecondi in un file. Allora si vedrà la vera differenza.
Altrimenti, senza tempo di magazzino, non si può capire la differenza.
Nessun problema, cercherò di eseguirlo lunedì (ho tre terminali sul reale).
Non so cosa intendi.
OnBook e OnTick sono thread diversi, se MQ li ha sincronizzati è un peccato.
A giudicare dalla foto che ho dato sopra, non sono completamente sincronizzati.
Anche il test di fxsaber ispira fiducia:
Quindi, chi vuole cosa:
- se hai bisogno di prezzi migliori - OnBook,
- se hai bisogno di una scheggia di accordi - CopyTick,
- e se non avete bisogno di nulla - OnTick, può saltare i tick e ritardare il flusso di informazioni, perché lavora in un processo in linea con altre funzioni On.
p.s. Tutto quello che ho scritto qui riguarda solo i conti di scambio, ai commercianti di forex non importa (nessuna differenza), i commercianti di forex passano.
Mi riferivo aSymbolInfoTick, hai scritto che " Solo la tazza è data immediatamente, tutto il resto è controllato in aggiunta".
Ti ho dato la struttura di MqlTick per mostrarti in cosa consiste, non c'è nessuna tazza, solo i migliori prezzi. E non ci sono controlli aggiuntivi.
Il suo commento mi ha stupito, forse si è sbagliato.
L'OnBook e l'OnTick sono socket diversi, perché in qualsiasi protocollo di scambio i trade avvengono in un socket, e il Level2 (mercato) in un altro.
Questo significa che solo la migliore offerta, l'ultima, ecc. vengono inviate al socket OnTick. Pertanto l'OnTick ha il proprio gestore per questo socket.
Per il livello 2, il socket è diverso e di conseguenza ha un gestore diverso. In idea, non dovrebbero essere sincronizzati forzatamente sul lato del terminale.
Va bene, usiamo esattamente quello che vogliamo, i trade inSymbolInfoTick o CopyTick, vetro in MarketBookGet.
A quale mercato è interessato?
Non uso il forex commerciale.
Nell'esempio siottiene solo un ultimo elemento della struttura daCopyTick, infatti, solo i prezzi migliori.
Così ho pensato, perché copiare i dati da uno spazio di memoria all'altro,
, quando c'èSymbolInfoTick che dà i prezzi migliori senza copiare da nessuna parte. Potrei sbagliarmi su come funzionano le funzioni, è solo una mia ipotesi.
Anche se è possibile che queste due funzioni lavorino allo stesso modo, l'unica differenza è cheCopyTick può richiedere un intervallo di tick.
Ed è inutileusare i loop per elaborare i tick.