Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 566

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
Prova la funzione:
Non è così semplice se si usa la funzione sia sulle valute che sui futures. C'è una percentuale di margine da considerare.
Non è così semplice se si usa la funzione sia sulle valute che sui futures. Bisogna considerare la percentuale di margine.
Se stiamo parlando della perdita percentuale, non ci interessa il margine, esso ritornerà quando la posizione sarà chiusa
Se stiamo parlando di perdita percentuale, non ci interessa il margine, tornerà quando la posizione sarà chiusa
Forse
Mi dispiace che tu abbia notato solo questo).
E non sono l'unico, il terminale non riesce a vedere la differenza, di per sé. L'uscita fuori dalla matrice è ancora lì.
Prova la funzione:
Grazie per il vostro aiuto! Purtroppo non era possibile implementare una soluzione universale, ho dovuto farlo in questo modo:
Potete dirmi per favore se il mio broker ha una leva fluttuante, come posso tenerne conto nel calcolo dei lotti? O non influirà, se si va per l'opzione di cui sopra?
Un altro indicatore, anche array fuori portata.
Va sul grafico senza problemi, ma quando lo chiamo dall'EA dice ...array out of range in 'HiLo.mq4' (121,15)
Qual è il problema?
Un altro indicatore, anche array fuori portata.
Va sul grafico senza problemi, ma quando lo chiamo dall'EA dice ...array out of range in 'HiLo.mq4' (121,15)
Qual è il problema?
Non controlla se ci sono 1000 barre sul grafico. Per esempio, al momento dell'apertura del terminale ci sono 0 barre in tutti i grafici, ma il terminale ha già iniziato gli indicatori (non so perché lo fa, ma è un fatto). Pertanto, qualsiasi accesso ai buffer degli indicatori causa il superamento degli array di serie temporali.
Non c'è nessun controllo che ci siano 1000 barre sul grafico. Per esempio, al momento dell'apertura del terminale ci sono 0 barre in tutti i grafici, ma il terminale ha già iniziato gli indicatori (non è chiaro perché lo fa, ma è un fatto). Pertanto, qualsiasi accesso ai buffer degli indicatori causa l'uscita degli array di serie temporali.
Si blocca ancora.
Si blocca ancora.
Perché il controllo è fondamentalmente sbagliato. Diciamo che Bars restituisce 1000 e anche cb restituisce 1000. Poi nel ciclo sulla prima iterazione i ottiene il valore 1000. Nella prima condizione del corpo del ciclo:
Due uscite contemporaneamente fuori dall'array: l' accesso a una barra con indice 1000 e una con indice 1001. Se il grafico ha 1000 barre, la prima barra ha indice 0 e l'ultima ha indice 999.
Più avanti nel corpo dell'anello c'è un riferimento alle barre ancora più lontane della storia:
Tutto questo deve essere preso in considerazione nel controllo iniziale.
Per un controllo corretto, vedere l'esempio della funzione IndicatorCounted() in MQL4 Reference. Solo ora, IndicatorCounted() può essere sostituito dall'uso congiunto delle variabili rates_total (questo è Bars) e prev_calculated (questo è IndicatorCounted()).