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
Hai detto che tutto dovrebbe funzionare in MQL4.
Ma questo script può essere eseguito anche in MQL5
Con exact=True e tempo futuro si dovrebbe restituire -1
Il mio script ha anche trovato uno strano errore:
Questo errore è confermato da questo controllo:
Quindi avevo ragione sull'esistenza di situazioni anomale nel vostro algoritmo, dopo tutto.È bello che tu abbia finalmente trovato l'errore
Lo controllerò, grazie.
Buona sera a tutti. Forse sto fraintendendo qualcosa, ma comunque - non è del tutto chiaro cosa ci sia di sbagliato nella funzione standard, che è già stata suggerita all'inizio di Bars(). L'ho usato tutto il tempo e non ha causato alcun problema. L'unica cosa è che si può incontrare "array out of range" o valore negativo quando si usa TimeCurrent(), ma allora bisogna fare un controllo per questo. Esempi:
Buona sera a tutti. Forse sto fraintendendo qualcosa, ma comunque - non è del tutto chiaro cosa ci sia di sbagliato nella funzione standard, che è già stata suggerita all'inizio di Bars(). L'ho usato tutto il tempo e non ha causato alcun problema. L'unica cosa è che si può incontrare "array out of range" o valore negativo quando si usa TimeCurrent(), ma allora bisogna fare un controllo per questo. Esempi:
A giudicare dal numero 32000000000 anche questa è una mia creazione. UINT_MAX è semplicemente più corto e dall'aspetto più solido. ))
Il punto è che questa variante è più corretta, come risulta:
piuttosto che
non c'è quasi nessuna differenza esterna. Ma la variante superiore ripete molto precisamente la funzione standard iBarShift di MQL4
A giudicare dal numero 32000000000, anche questa è una mia creazione. UINT_MAX sembra semplicemente più corto e solido. ))
Il punto è che questa variante è più corretta, come risulta:
piuttosto che
non c'è quasi nessuna differenza esterna. Ma la variante superiore ripete molto precisamente la funzione standard iBarShift di MQL4.
Allora, qual è il più facile e quello giusto?
Allora qual è la cosa più semplice e giusta da fare?
Finora questa variante, ma ora voglio integrarla per aggirare il bug del blocco della funzione Bars, di cui ho già riferito al Service Desk.
L'essenza di questo bug è che se nella funzione Bars siastart_time chestop_time sono dentro una barra o sono nel futuro (a destra della barra zero), allora questa funzione si blocca per più di 10 secondi.
Forse più tardi farò una versione più veloce ma più ingombrante.
Ho deciso di prendere un'altra strada.
Non rifarò iBarShift, ma rifarò la funzione Bars glitchata.
E la nuova funzione iBars non solo aggirerà il bug del singhiozzo, ma sarà anche più veloce delle Bars originali.
Altri saranno in grado di utilizzare questa funzione e gli algoritmi già esistenti lavoreranno più velocemente.
Ho solo bisogno di tempo. Sarò in grado di farlo non prima di un giorno.
Ho deciso di prendere una strada diversa.
Non rifarò iBarShift, ma rifarò la funzione Bars glitchata.
E la nuova funzione iBars non solo aggirerà il bug del singhiozzo, ma sarà anche più veloce delle Bars originali.
Altri saranno in grado di utilizzare questa funzione e gli algoritmi già esistenti lavoreranno più velocemente.
Ho solo bisogno di tempo. Non sarà in grado di farlo prima di un giorno.
Molto bene! Non vedo l'ora!
Da tutta l'analisi che ho fatto, possiamo concludere che questo analogo completo dell'iBarShift:
è di gran lunga il più corretto, e allo stesso tempo il più veloce e con l'algoritmo più semplice e breve.
È bello, ma qualcosa mi confonde...
dovrà testarlo)
La funzione iBars è abbastanza ingombrante, ma raccomando comunque di usarla al posto della normale Bars, finché MQ non risolve il bug di blocco in essa presente.
L'iBar si blocca quando logicamente dovrebbe restituire 0. Di regola, lo restituisce per più di 10 secondi. Non c'è un tale bug in MQL4.
Nella maggior parte dei compiti, iBars lavorerà più velocemente del normale Bars poiché non solo eviterà il bug, ma cercherà di non usare le funzioni Bars e SeriesInfoInteger quando possibile a causa dell'algoritmo di salvataggio dei valori precedenti.
Ho testato questa funzione su e giù. Sembra essere una copia completa di Bars.
Forse può essere fatto in un modo più elegante. Se avete un desiderio, siete i benvenuti. Se trovate degli errori, li correggeremo.
Quindi...
Allora l'analogo completo della funzione iBarsShift avrà la seguente forma:
E la variante senza ultimo parametro, che è usata nella stragrande maggioranza dei casi, avrà questa forma:
Indicatore che mostra le prestazioni della funzione iBars rispetto alle barre integrate e alla funzione iBarShift di @Alain Verleyen
Tempo di esecuzione della funzione in microsecondi.