Errori, bug, domande - pagina 1400

 

Dopo l'aggiornamento alla nuova build(1178), quando carico l'EA sul grafico, ottengo il seguente errore nel log con lo scarico del programma dal grafico:

2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)        
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)        00: 0x00000000028E1F21
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)        
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F37 C6467000          mov        byte [rsi+0x70], 0x0
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F30 C686AD02000000    mov        byte [rsi+0x2ad], 0x0
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)        
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F2E 7 CA0              jl         0x28e1ed0
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F2C 39 C3              cmp        ebx, eax
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F26 8 B868B000000      mov        eax, [rsi+0x8b]
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F24 FFC3              inc        ebx
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)           crash -->  00000000028 E1F21 FF5728            call       qword near [rdi+0x28]
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)        Access violation at 0x00000000028E1F21 read to 0x0000000D5D01E928 in 'D:\#MetaTrader\MetaTrader 5 Test\MQL5\Experts\#TestLibrary\Article02\TestLibrary.ex5'

//---

Per quanto ho capito, questa situazione si verifica quando si cerca di nascondere oggetti grafici usando il metodoCChartObject::Timeframes(OBJ_NO_PERIODS).

P.S. Anche se no, il problema è molto probabilmente dovuto a qualche altra ragione. Cercando di localizzare, continuerà in servicedesk, ha aperto un'applicazione.

 
transcendreamer:
l'autore è già consapevole di questo e sta pensando intensamente a come possa essere successo

l'autore ha pensato bene e ha risolto questo punto, apparirà nel prossimo aggiornamento

il difetto era una caratteristica non registrata del broker

 
costruire 1178. Errore di compilazione:'B' - template mismatch
class A { template<typename T> A( T ) {} };
class B;
class B {};
Tutto andava bene prima
 
A100:
costruire 1178. Errore di compilazione:'B' - template mismatch
ma prima andava bene
Grazie, lo controlleremo.
 
Perché l'evento OnTimer non viene attivato negli indicatori chiamati tramite iCustom?
 
Ilya Malev:
Perché l'evento OnTimer non viene attivato negli indicatori, chiamati attraverso iCustom?
Architettonicamente l'evento timer è un evento grafico, quindi in questo caso gli indicatori non possono riceverlo.
 
Anton:
Architettonicamente l'evento timer è un evento grafico, quindi in questo caso gli indicatori non possono riceverlo.
Come posso programmaticamente fare in modo che l'indicatore, chiamato tramite iCustom, venga disegnato (cioè provocare la chiamata OnCalculate), in caso di assenza di tick (per esempio nel fine settimana)?
 
Se questo indicatore chiama a sua volta altri indicatori, allora alla prima chiamata automatica di OnCalculate subito dopo aver lasciato OnInit i dati di questi indicatori non saranno calcolati, e inoltre l'indicatore non può "aspettare" il loro calcolo senza uscire da OnCalculate. E non ci sarà una prossima chiamata di OnCalculate fino alla fine del fine settimana, quando inizieranno i primi ticchettii. In questo caso né OnTimer, né OnChartEvent funzionano in questo indicatore per chiamare il repaint quando i dati vengono ricevuti. Alla fine, l'unico modo che posso vedere - attraverso la DLL per chiamare "Refresh" nel grafico dal menu contestuale della finestra - non credo che gli sviluppatori abbiano previsto questo metodo per il normale lavoro degli indicatori in MT5. Altrimenti, l'utente dovrà premere questo pulsante fino a quando l'indicatore sarà reso, il che difficilmente lo renderà felice.
 
Ilya Malev:
Se questo indicatore chiama a sua volta altri indicatori, allora alla prima chiamata automatica di OnCalculate subito dopo aver lasciato OnInit, i dati di questi indicatori non saranno calcolati, e inoltre l'indicatore non potrà "aspettare" il loro calcolo senza uscire da OnCalculate. E non ci sarà una prossima chiamata di OnCalculate fino alla fine del fine settimana, quando inizieranno i primi ticchettii. In questo caso né OnTimer, né OnChartEvent funzionano in questo indicatore per chiamare il repaint quando i dati vengono ricevuti. Alla fine, l'unico modo che posso vedere - attraverso la DLL per chiamare "Refresh" nel grafico dal menu contestuale della finestra - non credo che gli sviluppatori abbiano previsto questo metodo per il normale lavoro degli indicatori in MT5. Altrimenti, l'utente dovrà aspettare davanti al grafico premendo questo pulsante fino a quando l'indicatore viene reso, il che difficilmente lo renderà felice.

Se per MT4:

questo non funzionerà? https://www.mql5.com/ru/code/11678

ChartRefresh
ChartRefresh
  • voti: 11
  • 2014.08.13
  • Alexandr Bryzgalov
  • www.mql5.com
Скрипт для принудительно обновления текущего графика.
 
Alexandr Bryzgalov:
non funziona così? https://www.mql5.com/ru/code/11678

Questo script è per MetaTrader 4 :)

In MT4 solo tutti i dati sono calcolati dal terminale prima di essere ricevuti nei programmi mql4