Errori, bug, domande - pagina 1787

 
fxsaber:
Sarebbe anche logico aggiungere il numero della spunta nella coda attuale.

Allora scrivo direttamente a ServiceDesk#1666680

Si prega di considerare di cambiare il modo in cui la funzione funziona

bool SymbolInfoTick( string symbol, MqlTick& tick );

in modo che negli indicatori (compreso il corpo OnCalculate) restituisca i prezzi correnti secondo la sua descrizione

completando allo stesso tempo il linguaggio con la funzione

bool SymbolInfoTick_OnCalculate( string& symbol, MqlTick& tick ); //(*)

che restituirebbe il simbolo e il tick che hanno causato la chiamata alla funzione OnCalculate

o in alternativa (*): potete aggiungere questi parametri alla chiamata OnCalculate.

OnCalculate( ..., const string& symbol, const MqlTick& tick );
 

Ho una domanda: è possibile utilizzare gli strumenti di mql5 per identificare tutti i programmi in esecuzione sui grafici e i loro nomi? In particolare, come posso ottenere i nomi di tutti gli indicatori sul grafico corrente?

 
Alexey Kozitsyn:

Ho una domanda: è possibile utilizzare gli strumenti di mql5 per identificare tutti i programmi in esecuzione sui grafici e i loro nomi? In particolare, come posso ottenere i nomi di tutti gli indicatori sul grafico corrente?

https://www.mql5.com/ru/docs/chart_operations/chartindicatorstotal

https://www.mql5.com/ru/docs/chart_operations/chartindicatorname

https://www.mql5.com/ru/docs/chart_operations/chartgetstring

https://www.mql5.com/ru/docs/constants/chartconstants/enum_chart_property#enum_chart_property_string
Документация по MQL5: Операции с графиками / ChartIndicatorName
Документация по MQL5: Операции с графиками / ChartIndicatorName
  • www.mql5.com
Операции с графиками / ChartIndicatorName - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Si prega di avvisare, se nell'Expert Advisor MT4 si chiama in serie un indicatore personalizzato che ha più di un buffer grafico, il ricalcolo viene eseguito ad ogni chiamata o tutti i buffer vengono calcolati in una volta sola e si può applicare all'indicatore nel codice molte volte e non aspettarsi che ci sia uno spreco di risorse. Un'altra domanda interessante è cosa succede se il codice non smette di essere eseguito (gira più a lungo di un tick) ma il valore dell'indicatore cambia.

 
A100:

Allora scrivo direttamente a ServiceDesk#1666680

Si prega di considerare di cambiare il modo in cui la funzione funziona

bool SymbolInfoTick( string symbol, MqlTick& tick );

in modo che negli indicatori (compreso il corpo OnCalculate) restituisca i prezzi correnti secondo la sua descrizione

completando allo stesso tempo il linguaggio con la funzione

bool SymbolInfoTick_OnCalculate( string& symbol, MqlTick& tick ); //(*)

che restituirebbe il simbolo e il tick che hanno causato la chiamata alla funzione OnCalculate

o in alternativa (*): aggiungere questi parametri alla chiamata a OnCalculate

OnCalculate( ..., const string& symbol, const MqlTick& tick );
Mi associo a questa evidente insolenza! ))
 
Alexey Kozitsyn:
Questo è molto poco. Misurare per diverse ore. Su diversi strumenti.
Ops
Test_SymbolInfoTcick (Si-3.17,M1)       OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
Test_SymbolInfoTcick (Si-3.17,M1)       OnCalculate: Текущее время мс = 1486493406313 (2017.02.07 18:50:06), предыдущее = 1486493406315
Test_SymbolInfoTcick (Si-3.17,M1)       OnTick: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
Test_SymbolInfoTcick (Si-3.17,M1)       OnTick: Текущее время мс = 1486493406313 (2017.02.07 18:50:06), предыдущее = 1486493406315
Test_SymbolInfoTcick (Si-3.17,M1)       OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
Test_SymbolInfoTcick (Si-3.17,M1)       OnCalculate: Текущее время мс = 1486495281212 (2017.02.07 19:21:21), предыдущее = 1486495281213
Test_SymbolInfoTcick (Si-3.17,M1)       OnTick: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
Test_SymbolInfoTcick (Si-3.17,M1)       OnTick: Текущее время мс = 1486495281212 (2017.02.07 19:21:21), предыдущее = 1486495281213
Problemi anche in OnTick. Secondo il log di diverse ore , OnCalculate ha problemi tre volte più spesso di OnTick. Il problema OnTick si ripete sempre su OnCalculate, ma non viceversa.
 
fxsaber:
Oops
Problemi anche in OnTick. Secondo il log di diverse ore, OnCalculate ha problemi tre volte più spesso di OnTick. Allo stesso tempo il problema OnTick si ripete sempre anche su OnCalculate, ma non viceversa.
Si scopreche SymbolInfoTick() è asincrono...
 
-Aleks-:

Si prega di avvisare, se nell'Expert Advisor MT4 si chiama in serie un indicatore personalizzato che ha più di un buffer grafico, il ricalcolo viene eseguito ad ogni chiamata o tutti i buffer vengono calcolati in una volta sola e si può applicare all'indicatore nel codice molte volte e non aspettarsi che ci sia uno spreco di risorse. Un'altra domanda interessante è cosa succede se il codice non smette di essere eseguito (gira più a lungo di un tick) ma il valore dell'indicatore cambia.

Tutti i buffer sono calcolati in una volta sola. Interrogare tranquillamente i valori dell'indicatore - non ci sarà nessun ricalcolo

In MT4 l'indicatore, chiamato dall'Expert Advisor, lavora nel flusso di questo stesso Expert Advisor e su una copia dei suoi dati storici. Puoi mettere in loop l'Expert Advisor, ma allo stesso tempo riceverai i dati dell'indicatore calcolati al momento della chiamata OnTick. Finché non si chiama RefreshRates. RefreshRates aggiorna i dati storici dell'Expert Advisor, dopo di che tutti i suoi dati saranno ricalcolati alla prima chiamata dell'indicatore
 
Slawa:
Tutti i buffer sono calcolati in una volta sola. Richiama tranquillamente i valori dell'indicatore - non ci sarà nessun ricalcolo

In MT4 l'indicatore chiamato dall'Expert Advisor lavora nel flusso di questo stesso Expert Advisor e su una copia dei suoi dati storici. Puoi mettere in loop l'Expert Advisor, ma allo stesso tempo riceverai i dati dell'indicatore calcolati al momento della chiamata OnTick. Finché non si chiama RefreshRates. RefreshRates aggiorna i dati storici dell'Expert Advisor, dopo di che tutti i suoi dati saranno ricalcolati alla prima chiamata dell'indicatore

Grazie per la vostra risposta!

Prima ero anche interessato all'indicatore ZigZag che lampeggia in MT5 (nessun effetto simile in MT4) - molto fastidioso - di cosa si tratta?