Grazie per questo articolo.
Una piccola precisazione sull'errore:
Все программы, работающие по данным стакана, по форме будут являться советниками, ведь обработчик события BookEvent есть только в советниках. Правда, можно сделать связку "советник-индикатор", где истинный индикатор сможет принимать данные от советника и обрабатывать состояние стакана.
Non è vero, l'indicatore può gestire anche OnBookEvent.
angevoyageur:
Una precisazione sull'errore:
Non è vero, l'indicatore può gestire anche OnBookEvent.
Alain, grazie per il messaggio. Sì, è vero, mi sbaglio. Funziona anche negli indicatori... Mi sono basato sull'elenco dei gestori al momento della creazione di un indicatore, tra i quali non c'è OnBookEvent().
E la cosa più importante è che la documentazione dice:
Alain, grazie per il messaggio. Sì, è vero, mi sbaglio. Funziona anche negli indicatori... Mi sono basato sull'elenco dei gestori al momento della creazione di un indicatore, tra i quali non c'è OnBookEvent().
E la cosa più importante è che la documentazione lo dice:
Giusto, la documentazione deve essere corretta. State scrivendo il ServiceDesk a questo proposito?
A titolo informativo, c'è un piccolo errore in questo articolo:
All programs working with Depth of Market data will have a form of an Expert Advisor, as only Expert Advisors feature the event handler of BookEvent. There is a possibility, however, to write an "Expert-Indicator" pair , where the indicator can receive data from the EA and process the Depth of Market state.
Non è vero, gli indicatori possono elaborare anche BookEvent. Questo errore si basa su un errore della documentazione e dovrebbe essere corretto a breve. L'autore dell'articolo e il ServiceDesk sono stati contattati.
Buon pomeriggio, grazie per l'articolo, molto utile!
una domanda, supponiamo che io elabori l'evento BookEvent, e che il mio gestore cancelli, inserisca ordini, che a loro volta avvieranno di nuovo questo evento..... poi nel momento in cui scade il termine per inserire (cancellare ordini) e si forma di nuovo un nuovo evento BookEvent, la mia procedura iniziale si interrompe? perché ho notato che l'esecuzione del codice non arriva alla fine.... non tutto viene eseguito ... Spero di aver reso l'idea ))
Buon pomeriggio, grazie per l'articolo, molto utile!
una domanda, supponiamo che io elabori l'evento BookEvent, e che il mio gestore cancelli, inserisca ordini, che a loro volta avvieranno di nuovo questo evento..... poi nel momento in cui scade il termine per l'inserimento (cancellazione degli ordini) e si forma di nuovo un nuovo evento BookEvent, la mia procedura iniziale si interrompe? perché ho notato che l'esecuzione del codice non arriva alla fine.... non tutto viene eseguito ... Spero di essere stato chiaro ))
Grazie per la tua opinione!
No, mentre un evento viene elaborato, il controllo del programma non viene trasferito automaticamente a un altro gestore quando viene generato un nuovo evento... è possibile verificarlo con la funzione Print() (ed è meglio aggiungere una pausa Sleep()).
Esiste un concetto di "coda di eventi".
Secondo la documentazione:
Il programma riceve eventi solo dal grafico su cui è in esecuzione. Tutti gli eventi vengono elaborati uno dopo l'altro nell'ordine di ricezione. Se nella coda è già presente un evento NewTick o questo evento è in stato di elaborazione, il nuovo evento NewTick non viene inserito nella coda di mql5-program. Analogamente, se nella coda del programma mql5 è già presente un evento ChartEvent o se questo evento è in fase di elaborazione, un nuovo evento di questo tipo non viene inserito nella coda. Gli eventi Timer vengono elaborati secondo lo stesso schema: se un evento Timer è in coda o è già stato elaborato, un nuovo evento Timer non viene messo in coda.
Le code di eventi hanno una dimensione limitata ma sufficiente, per cui è improbabile che la coda trabocchi in un programma scritto correttamente. Se la coda trabocca, i nuovi eventi vengono scartati senza essere accodati.
Le code di eventi hanno una dimensione limitata ma sufficiente, quindi l'overflow della coda è improbabile per un programma scritto correttamente. Quando la coda trabocca, i nuovi eventi vengono scartati senza essere accodati.
Quindi i miei timori non sono infondati dopo tutto )) Ho scritto uno spreader per i futures usd\rub per mantenere i prezzi migliori nello stack per tutto il tempo.... allora ci sarà sicuramente un overflow della coda, perché la scommessa viene aggiornata un sacco di volte al secondo, e questo senza il fatto che ho anche messo qualcosa lì, cancellare ... e con me non sarà sicuramente in tempo..... e questo è solo demo... e sul mercato reale c'è una scommessa folle))
grazie per aver indirizzato i miei pensieri nella giusta direzione )
Buon pomeriggio. Articolo molto informativo. Ho la seguente domanda.
Si tratta di filtrare le operazioni eseguite su uno strumento in base al tipo di ordini con cui sono state eseguite (mercato/limitato).
Come posso collegare gli eventi OnBookEvent e OnTick per risolvere questo compito, cioè come posso determinare quali tipi di ordini sono stati coinvolti nell'operazione? Per quanto ne so, questo compito non può essere risolto solo con OnBookEvent.
Rubick:
...Come collegare gli eventi OnBookEvent e OnTick per risolvere questo problema, cioè come determinare quali tipi di ordini sono stati coinvolti nella transazione? Per quanto ne so, un compito del genere non può essere risolto solo con OnBookEvent.

- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Il nuovo articolo Manuale MQL5: Gestione di BookEvent è stato pubblicato:
Questo articolo parla di BookEvent - un evento Depth of Market e il principio della sua elaborazione. Un programma MQL che serve a gestire gli stati di Depth of Market, servirà da esempio. È scritto utilizzando l'approccio orientato agli oggetti. I risultati della gestione vengono visualizzati sullo schermo come un pannello e livelli di Depth of Market.
Secondo la Documentazione, questo evento viene generato quando cambia lo stato di Depth of Market. Siamo d'accordo che BookEvent è un evento Depth of Market.
La Depth of Market è una serie di ordini, che differiscono per direzione (vendita e acquisto), prezzo e volume. I prezzi in Depth of Market sono vicini a quelli di mercato e quindi sono considerati i migliori.
Fig.1 Depth of Market in MetaTrader 5
Autore: Denis Kirichenko