Prima si chiamava "zombie", forse una ricerca troverà ancora vecchi thread.
Questo succede quando gli esperti/indicatori si cancellano dal tumblr più volte di quanto si iscrivono.
Per esempio c'erano 2 esperti, ognuno iscritto una volta. Poi uno è stato chiuso e cancellato due volte. Il secondo esperto che è rimasto impiegato smette di ricevere aggiornamenti.
L'ho visto diverse volte.
Dopo aver regolato gli esperti il problema è scomparso e non si è ripresentato per più di un anno.
Prima si chiamava "zombie", forse una ricerca troverà ancora vecchi argomenti.
Succede quando gli esperti/indicatori si cancellano da un tumblr più volte di quanto si iscrivono.
In senso stretto, non ci sta. Ho una sottoscrizione fatta una volta in inite e una cancellazione fatta in deinite. Anche se non posso escludere la possibilità che DeInit sia in qualche modo chiamato più volte di OnInit.
In senso stretto, non ci sta. Ho fatto la sottoscrizione una volta in Init e la cancellazione in DeInit. Anche se non posso escludere la possibilità che DeInit sia in qualche modo chiamato più volte di OnInit.
Se si tratta di indicatori, guardate questo thread.
- 2017.04.07
- www.mql5.com
Sì, c'è stato un tale argomento, vi ho anche partecipato, ma apparentemente il problema rimane. Ma nel caso attuale, anche un Expert Advisor ha perso la sua sottoscrizione.
Ok, faremo la danza del tamburello.
Dopo aver iniziato a lavorare con il tumbler e aggiunto alcuni indicatori firmati a OnBookEvent, ho scoperto che alcuni di loro cadono silenziosamente, in particolare, 1 esperto e 1 indicatore su simboli diversi. Nessun errore nei log. Le citazioni continuavano. Altri simboli hanno continuato a lavorare. Dopo aver riavviato manualmente i programmi MQL inattivi, gli eventi della profondità del mercato hanno ripreso a funzionare.
Qualcuno ha osservato qualcosa di simile? Come proteggermi? Per ora, l'idea di guardare il timeout tra l'ultimo evento della tazza e i nuovi tick. Ma cosa fare se il timeout viene superato? È sufficiente chiamare nuovamente MarketBookAdd?
Ci sono due tipi di interruttori, un pulsante e un interruttore. Il primo invia un impulso e termina l'operazione, il secondo comporta un cambio di modalità operativa. Un esempio del primo è un campanello, che è l'evento ideale. Un esempio del secondo è un interruttore della luce - lo premi e si accende. Vedete, questo non è veramente un evento, ma qualcosa di più.
Gli interruttori sono di due tipi, pulsanti e interruttori. Il primo invia un impulso e termina il funzionamento, il secondo comporta un cambio di modalità operativa. Un esempio del primo è il campanello, che è l'evento ideale. Un esempio del secondo è un interruttore della luce - lo premi e si accende. Vedete, non è proprio un evento, è qualcosa di più.
No, non lo so. A giudicare dalla documentazione, la sottoscrizione aumenta il contatore interno, mentre la cancellazione della sottoscrizione lo diminuisce di 1. Una volta che raggiunge lo 0 - nessun evento viene inviato.
Ho messo le stampe. Ottenuta la riproduzione del problema quando sia l'EA che l'indicatore si trovano sullo stesso grafico. Ognuno di loro fa MarketBookAdd in OnInit e MarketBookRelease in OnDeinit. Così, dopo aver rimosso l'Expert Advisor dal grafico (una chiamata di MarketBookRelease), l'indicatore smette di ricevere la coppa (anche se in idea, la sua stessa chiamata di MarketBookAdd non è ancora cancellata). Al contrario, se cancelliamo l'indicatore, l'iscrizione si perde nell'Expert Advisor. Naturalmente, lo rilevo e mi iscrivo di nuovo, ma non dovrebbe funzionare così, imho.
No, non lo so. Secondo la documentazione, la sottoscrizione aumenta il contatore interno e la cancellazione della sottoscrizione lo diminuisce di 1. Quando raggiunge lo 0, nessun evento viene inviato.
Ho messo a posto le stampanti. Ottenuta la riproduzione del problema quando sia l'EA che l'indicatore si trovano sullo stesso grafico. Ognuno di loro fa MarketBookAdd in OnInit e MarketBookRelease in OnDeinit. Così, dopo aver rimosso l'Expert Advisor dal grafico (una chiamata di MarketBookRelease), l'indicatore smette di ricevere la tazza. Al contrario, se rimuovo l'indicatore, la sua sottoscrizione si perde nell'Expert Advisor. Naturalmente, lo rilevo e mi iscrivo di nuovo, ma non dovrebbe funzionare così, imho.
Ho già detto tutto. Non dirò una parola.
No, non lo so. Secondo la documentazione, la sottoscrizione aumenta il contatore interno e la cancellazione della sottoscrizione lo diminuisce di 1. Quando raggiunge lo 0, nessun evento viene inviato.
Ho messo a posto le stampanti. Ottenuta la riproduzione del problema quando sia l'EA che l'indicatore si trovano sullo stesso grafico. Ognuno di loro fa MarketBookAdd in OnInit e MarketBookRelease in OnDeinit. Così, dopo aver rimosso l'Expert Advisor dal grafico (una chiamata di MarketBookRelease), l'indicatore smette di ricevere la coppa (anche se in idea, la sua stessa chiamata di MarketBookAdd non è ancora cancellata). Al contrario, se cancelliamo l'indicatore, l'iscrizione si perde nell'Expert Advisor. Certo, lo rilevo già e mi iscrivo di nuovo, ma non dovrebbe funzionare così, imho.
L'evento BookEvent viene trasmesso. Leggete attentamente la descrizione di OnBookEvent qui.
- www.mql5.com
Dopo aver iniziato a lavorare con il tumbler e aver aggiunto alcuni indicatori firmati a OnBookEvent, ho scoperto che alcuni di essi cadono silenziosamente, in particolare, 1 esperto e 1 indicatore su diversi simboli. Nessun errore nei log. Le citazioni continuavano. Altri simboli hanno continuato a lavorare. Dopo aver riavviato manualmente i programmi MQL inattivi, gli eventi della profondità del mercato hanno ripreso a funzionare.
Qualcuno ha osservato qualcosa di simile? Come proteggermi? Per ora, l'idea di guardare il timeout tra l'ultimo evento della tazza e i nuovi tick. Ma cosa fare se il timeout viene superato? È sufficiente chiamare nuovamente MarketBookAdd?
Leggi questo
- 2016.09.06
- www.mql5.com
Grazie ;-). Naturalmente ho letto la documentazione e il forum. Se c'è una risposta alla mia domanda, sarebbe molto gentile ad articolarla o evidenziarla qui.
In particolare, c'è una frase affascinante nella documentazione:
В отличие от других событий, событие BookEvent является широковещательным. Это означает, что достаточно одному эксперту подписаться на получение события BookEvent с помощью функции MarketBookAdd, все остальные эксперты, имеющие обработчик OnBookEvent(), будут получать это событие.
A parte il fatto che lascia indovinare se continuare o meno con l'analogia che "basta che un esperto si disiscriva dal ricevere un evento, anche tutti gli altri esperti smetteranno di riceverlo"? Non credo che possa esistere una cosa del genere, sarebbe (o è) un bug.
- 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
Dopo aver iniziato a lavorare con il tumbler e aver aggiunto alcuni indicatori firmati a OnBookEvent, ho scoperto che alcuni di essi cadono silenziosamente, in particolare, 1 esperto e 1 indicatore su diversi simboli. Nessun errore nei log. Le citazioni continuavano. Altri simboli hanno continuato a lavorare. Dopo aver riavviato manualmente i programmi MQL inattivi, gli eventi della profondità del mercato hanno ripreso a funzionare.
Qualcuno ha osservato qualcosa di simile? Come proteggermi? Per ora, l'idea di guardare il timeout tra l'ultimo evento della tazza e i nuovi tick. Ma cosa fare se il timeout viene superato? È sufficiente chiamare nuovamenteMarketBookAdd?