L'iscrizione a OnBookEvent a volte cade - esiste una cosa del genere? - pagina 5

 
A100:
Domani verificherò il potere magico del tuo codice... nel frattempo vorrei la tua opinione su se la funzione di apertura/chiusura di una tazza può essere combinata con la funzione di iscrizione/disiscrizione a/da eventi in questa tazza o devono essere separate

Nel caso dei bicchieri, questo non può essere fatto, a causa delle peculiarità di ricevere i bicchieri da FORTS Plaza II gateway

 
prostotrader:

Sono sicuro che questa è la ragione dell'errore.

Non ho mai avuto un errore invalid_book_transaction, quindi è diverso.

 
prostotrader:

Se fai quello che scrivi sullo stesso simbolo, naturalmente l'abbonamento sarà distrutto da quel simbolo nello stesso terminale!

E questo è corretto.

Cosa c'è di così giusto? Un programma mette fuori gioco l'altro. Immaginate che l'Expert Advisor abbia impostato un timer per se stesso, mentre Vasya Pupkin ha disabilitato il timer nel suo script vicino. KOLOSSAL.

 
Stanislav Korotky:

Non ho mai avuto un errore invalid_book_transaction, quindi è diverso.

Aspettiamo la nuova costruzione.

 
Stanislav Korotky:

Qual è la cosa giusta da fare? Un programma mette fuori gioco l'altro. Immaginate che l'Expert Advisor abbia impostato un timer per se stesso, e che Vasya Pupkin abbia disabilitato questo timer nel suo script vicino. FALSO.

Usa l'abbonamento correttamente e non avrai bisogno di Vasya Pupkin.

Ho 82 EAs in esecuzione in due terminali (reali) su un computer e non ho MAI avuto il problema che descrivi.

Aggiunto

Sto parlando di abilitare/disabilitare l'abbonamento alla scommessa.

Due righe di codice:

Ecco un esempio

Codice

//+------------------------------------------------------------------+
//|                                                        Books.mq5 |
//|                                      Copyright 2018 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018 prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
bool is_book = false;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Add books
   is_book = MarketBookAdd(Symbol());
   if(is_book == true) Print(__FUNCTION__, ": Подписка на стакан добавлена. Символ ", Symbol());
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
    if(is_book == true)
{ MarketBookRelease(Symbol());
    Print(__FUNCTION__, ": Подписка на стакан удалена. Символ ", Symbol());}
  }

//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
   if(symbol == Symbol())
   {
     Print(__FUNCTION__, ": Подписка работает. Символ ", Symbol());
   }
   
  }
//+------------------------------------------------------------------+




Risultato

2018.07.24 13:51:19.719 Book_test (Si-9.18,M1)  OnInit: Подписка на стакан добавлена. Символ Si-9.18
2018.07.24 13:51:19.745 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:30.346 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:30.411 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:30.477 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:30.489 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:31.071 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:31.108 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:31.178 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:31.285 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:31.305 Book_test (Si-9.18,M1)  OnInit: Подписка на стакан добавлена. Символ Si-9.18
2018.07.24 13:51:31.549 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:31.549 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:31.877 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:31.877 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:31.909 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:31.909 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:32.046 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:32.046 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:32.217 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:32.217 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:32.687 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:32.687 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:32.761 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:32.761 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:32.969 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:32.969 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:33.036 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:33.036 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:33.220 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:33.220 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:33.259 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:33.259 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18

..............................

2018.07.24 13:51:44.888 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:44.939 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:44.939 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:45.959 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:45.959 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:45.991 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:45.991 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:46.251 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:46.251 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:48.952 Book_test (Si-9.18,M1)  OnDeinit: Подписка на стакан удалена. Символ Si-9.18
2018.07.24 13:51:49.048 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.176 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.382 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.493 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.517 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.551 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.630 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.651 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.706 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.726 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.791 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.890 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:49.928 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:50.170 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:50.582 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:50.908 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:51.041 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:51.080 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:51.112 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:51.362 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:51.457 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:51.470 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:51.523 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:51.771 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:51.850 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:52.221 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:52.240 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:52.392 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:52.688 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:53.013 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:53.169 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:53.328 Book_test (Si-9.18,M1)  OnBookEvent: Подписка работает. Символ Si-9.18
2018.07.24 13:51:54.185 Book_test (Si-9.18,M1)  OnDeinit: Подписка на стакан удалена. Символ Si-9.18
 
prostotrader:

Usate bene il vostro abbonamento e non avrete bisogno di un Papkin.

Ho 82 EAs in esecuzione in due terminali (reali) sullo stesso computer e non ho MAI avuto il problema che descrivi.

Aggiunto

Sto parlando di abilitare/disabilitare l'abbonamento alla scommessa.

Due righe di codice:

In primo luogo, sembra esserci un errore qui?

if(is_book = true) MarketBookRelease(Symbol());

Dovrebbe essere così:

if(is_book == true) MarketBookRelease(Symbol());

o

if(is_book) MarketBookRelease(Symbol());

E in secondo luogo, a cosa serve questo assegno? Se l'abbonamento in questo EA non è collegato, rimuoverà quello di qualcun altro?

 
Sergey Savinkin:

Prima di tutto, sembra esserci un errore qui?

Dovrebbe essere così:

o

E in secondo luogo, perché questo controllo? Se l'abbonamento in questo EA non è collegato, rimuoverà quello di qualcun altro?

Grazie, è davvero un errore di battitura.

C'è un contatore di sottoscrizioni per il simbolo.

 
prostotrader:

C'è un contatore di sottoscrizioni di simboli.

Può spiegarci come è organizzato?

 
Sergey Savinkin:

Può spiegarci come è organizzato?

Non sono uno sviluppatore, ma penso che quando MarketBookAdd() viene chiamato, il contatore delle sottoscrizioni sul simbolo aumenta,

Di conseguenza, quando MakerBookRelease() viene chiamato, diminuisce e l'abbonamento viene fermato se il contatore è zero.

 
prostotrader:

Non sono uno sviluppatore, ma penso che quando MarketBookAdd() viene chiamato, il contatore degli abbonamenti del personaggio aumenta,

Di conseguenza, quando si chiama MakerBookRelease() diminuisce e smette di sottoscrivere se il contatore è zero.

Vorrei un commento da parte degli sviluppatori, perché non c'è nulla nella documentazione su questo.

Motivazione: