Errori, bug, domande - pagina 2490
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ha letto attentamente la mia citazione nel post qui sotto?
Questo comportamento è sempre stato presente dall'introduzione dell'impostazione " numero massimo di barre per grafico", cioè dall'inizio di MT4. E abbiamo spiegato molte volte in questi 15 anni perché non riduciamo ogni volta il numero di barre in base a quell'impostazione. E ora non tagliamo ogni volta.
Nessuno legge la documentazione. Ma è un paradosso. Ci chiedono ancora di scrivere qualcos'altro nella documentazione che non leggono.
Slava, non ho lamentele. Ho letto attentamente e non solo la tua citazione e questa
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Bug, bug, domande
Slava, 2019.06.29 18:25
rates_total mostra sempre il numero di barre disponibili sul grafico corrente.
Non capisco il significato della sua affermazione
e questo
Forum sul trading, sistemi di trading automatico e test di strategia
Bug, bug, domande
Slava, 2019.06.29 18:42
Non ho il terminale client a portata di mano in questo momento per citare la guida. Da dispositivo mobile in due clichttps://www.metatrader5.com/ru/terminal/help/startworking/settings#max_bars
Paragrafo appositamente evidenziato.
Per un calcolo più economico, gli indicatori possono avere più barre disponibili di quanto specificato nel parametro "Max bars in window". Man mano che arrivano nuove barre, quelle più vecchie non vengono immediatamente rimosse dalla cache dei dati. Questo permette di non ricalcolare completamente l'indicatore ad ogni nuova barra, ma solo di calcolare ulteriormente i suoi valori per le nuove barre.
Naturalmente, non capisco qualcosa, è per questo che chiedo di nuovo e cerco di capire. Credo che non ci saranno cambiamenti. Per favore, non prendete le mie dichiarazioni come una lamentela.
Il riferimento non è corretto, è fuorviante, ho scrittohttps://www.mql5.com/ru/forum/304239/page57#comment_11519307
In MQL5 i buffer in generale funzionano come i soliti array, in MT4 il terminale trattava i buffer - li resettava a EMPTY_VALUE, poi ... Non ricordo dove ho scritto della differenza tra gli indicatori MT5 e MT4
Devi cancellare i buffer - li cancelli come un normale array, il terminale imposta solo la dimensione dell'array-buffer stesso.
Igor, puoi spiegare in russo semplice: se ogni buco del buffer dell'indicatore sarà riempito con alcuni valori, che sostituiranno la spazzatura contenuta lì, qual è lo scopo di forzare questi buchi prima di riempirli con i valori giusti? Per la perdita di velocità di esecuzione?
Igor, puoi spiegare in un semplice russo: se ogni buco del buffer dell'indicatore sarà riempito con alcuni valori che sostituiranno la spazzatura ivi contenuta, qual è lo scopo di pulire forzatamente questi buchi prima di riempirli con i valori necessari? Per la perdita di velocità di esecuzione?
Il riempimento dei "buchi" è critico solo in un indicatore con "frecce", in MT4 durante l'inizializzazione dell'indicatore questi "buchi" saranno riempiti automaticamente dal valore EMPTY_VALUE
in MT5 deve essere fatto dal programmatore
o in MT5 il programmatore dovrebbe riempire i buffer degli indicatori tramite il costrutto if() else
cioè questo funzionerà in MT4:
if(...) Buf[i] = high[i];
in MT5 si deve scrivere:
o in MT5 è necessario cancellare i buffer dell'indicatore, altrimenti l'indicatore disegnerà "spazzatura" dall'array, che è legato al buffer dell'indicatore ...., quando si passa al TF. è una questione di gusto come scrivere e cosa prendere in considerazione
SZY: velocità? Beh, misurate la velocità, nel 99% dei casi le funzioni integrate sono più veloci, ma non c'è differenza di prestazioni tra riempire ogni barra nel ciclo EMPTY_VALUE e una inizializzazione con ArrayInitialize(Buf,EMPTY_VALUE)
Il riempimento dei "buchi" è critico solo in un indicatore con "frecce", in MT4 durante l'inizializzazione dell'indicatore questi "buchi" saranno riempiti automaticamente dal valore EMPTY_VALUE
in MT5 deve essere fatto dal programmatore
o in MT5 il programmatore dovrebbe riempire i buffer degli indicatori tramite il costrutto if() else
cioè questo funzionerà in MT4:
in MT5 si deve scrivere:
o in MT5 è necessario cancellare i buffer dell'indicatore, altrimenti l'indicatore disegnerà "spazzatura" dall'array, che è legato al buffer dell'indicatore ...., quando si passa al TF. è una questione di gusto come scrivere e cosa prendere in considerazione
Bene, misurate la velocità, nel 99% dei casi le funzioni incorporate girano più velocemente, ma non c'è differenza di prestazioni tra riempire ogni barra nel ciclo EMPTY_VALUE e inizializzarla una volta con ArrayInitialize(Buf,EMPTY_VALUE).
Tutto questo è solo un assillo. È così che era, è così che voglio, è difficile cambiare le mie abitudini e altre ragioni.
Il costrutto if else può essere facilmente sostituito con
Buf[i] = условие ? high[i] : EMPTY_VALUE;
È solo un assillo. È così che è stato, è così che voglio, è difficile cambiare le mie abitudini e altre ragioni.
Il costrutto if else è facilmente sostituibile con
Se siete pignoli, i consigli per aumentare le prestazioni in C++ o C# raccomandano solo di non usare "l'operatore condizionale ? Credo di aver letto un articolo su Habra una volta (non l'ho provato, scrivo il più conveniente possibile)
;)
Se devo essere pignolo, il consiglio su come migliorare le prestazioni in C++ o C# è di non usare "l'operatore condizionale ? Credo di aver letto un articolo su Habra una volta (non l'ho testato, io stesso scrivo il più convenientemente possibile)
;)
Beh, il compilatore qui non è un idiota, e ottimizza meglio dei "guru" su hubr
In queste occasioni ripeto sempre: "Il sole sorge al mattino e tramonta alla sera..." - Vedi un po' di logica qui? - Sì, è logico, ma ci sono informazioni nella mia frase? - Non c'è.
Non lo testerò? : , compilatore macchina.... Hubr, bene...
Non farò il test? :
Testato MT5:
2019.06.30 13:37:04.230 tst (EURUSD,H1) Testing if() cycles=9999999999999999 time=10859 ms
2019.06.30 13:37:15.116 tst (EURUSD,H1) Testing ? : cicli=99999999999999 tempo=10891 ms
2019.06.30 13:38:05.348 tst (EURUSD,H1) Testing if() cycles=9999999999999999 time=10843 ms
2019.06.30 13:38:16.190 tst (EURUSD,H1) Testing ? : cicli=99999999999999 tempo=10844 ms
2019.06.30 13:38:32.111 tst (EURUSD,H1) Testing if() cycles=9999999999999999 time=10860 ms
2019.06.30 13:38:42.955 tst (EURUSD,H1) Testing ? : cicli=99999999999999 tempo=10843 ms
2019.06.30 13:46:09.087 tst EURUSD,H1: Testing ? : cicli=99999999999999 tempo=33234 ms
2019.06.30 13:45:35.854 tst EURUSD,H1: Testing if() cycles=9999999999999999 time=32953 ms
2019.06.30 13:44:43.421 tst EURUSD,H1: Testing ? : cicli=99999999999999 tempo=333298 ms
2019.06.30 13:44:10.094 tst EURUSD,H1: Testing if() cycles=9999999999999999 time=33016 ms
2019.06.30 13:42:56.925 tst EURUSD,H1: Testing ? : cicli=99999999999999 tempo=33344 ms
2019.06.30 13:42:23.584 tst EURUSD,H1: Testing if() cycles=9999999999999999 time=32953 ms
Ho notato da molto tempo che l'evidenziazione dei nomi delle macro definite dall'utente in un grande progetto non sempre funziona. Molte macro definite in altri file non vengono evidenziate per qualche motivo. Non riesco ancora a trovare uno schema. Tutto quello che vedo è che tutte le macro definite in un certo file smettono di essere evidenziate in altri file dopo una certa linea. Qualcun altro ha visto questo accadere a se stesso?
Ho notato che se si scrive come parametro di qualsiasi funzione, non si accende. Penso che questo sia dovuto a un tipo di partita non completo. O come chiamarlo più precisamente non so.