Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1386
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
È divertente) non dovrebbe esserlo)
Se la battaglia è finita - fare trading con uno spread normale, basta togliere il suo 'limite' nell'input e semplicemente ignorare il trade se lo spread è sopra il limite.
Gli spread possono essere allungati dai dilling senza rollover.
Ho un bel po' di oscillazioni di spread, da 10 unità a 45
Devo aspettare di proiettare il 45.
Allo stesso tempo la funzione conta una media di 17, che è abbastanza soddisfacente.
Sale a 100-140 per 1 ora dopo il rollover, eseguirò il codice e vedrò come si comporta.
Si potrebbe, tuttavia, prescrivere in questo modo:
Dovrebbe funzionare correttamente.
Non mi piace questa logica.
Il primo input della funzione:
res = 0;
Quindi la condizione
non è soddisfatto.
E non voglio entrare ulteriormente nei dettagli. A cosa serve questa condizione all'improvviso?
Non capisco la logica di tutto questo.Non mi piace questa logica.
Il primo input della funzione:
res = 0;
Di conseguenza, la condizione
non è soddisfatta.
E non voglio entrare ulteriormente nel merito. A cosa serve questa condizione all'improvviso?
Non capisco la logica di tutto questo.1. Questa condizione è solo per 1 ora dopo il rollover, quando il tempo è di 22 ore. Ma questo è solo al primo avvio, mentre il terminale funziona sempre con l'Expert Advisor, il che significa che è vuoto solo una volta.
Forse dovrebbe anche essere dichiarato come statico in caso di cambiamento del tempo
2. if(tc>LONG_MAX-1) = azzeriamo la variabile tc se abbiamo superato i limiti ammissibili di long. Questo è improbabile che accada, poiché il terminale a volte si sovraccarica, per esempio durante il fine settimana.
---
Codice modificato, questo deve essere definitivo:
P.S. Mettilo alla prova
P.S. Rivisto il codice
----
P.S.S.S. Ho aggiunto 1 ora di tempo in più dopo il rollover, altrimenti ho uno spread molto alto su alcuni dealer.
La variante finale ha lavorato 20 ore e il risultato è sorprendente
Lo spread medio giornaliero è di 10-45 pps, ma la maggior parte del tempo è di 10-17 pps, lo spread medio è stato calcolato come 19
Grazie a tutti per la vostra partecipazione, se avete qualcosa da aggiungere - scrivete!
Forse dovrebbe anche essere dichiarato statico, in caso di cambiamento del tempo
L'ho capito, sembra funzionare, mi rimangio "non dovrebbe"), ora devo solo capire i momenti di azzeramento/assegnazione.
Ho visto una discussione sul forum, ma non riesco a trovarla.
Bisogna limitarsi a una posizione su una barra che può essere aperta in qualsiasi momento, questa è l'opzione ora, ma è "pesante" secondo me
Come può essere sostituito per renderlo più leggero?
Ho visto una discussione sul forum, ma non riesco a trovarla.
Bisogna limitarsi a una posizione su una barra che può essere aperta in qualsiasi momento, questa è l'opzione ora, ma è "pesante" secondo me
Come può essere sostituito per renderlo più leggero?
"Devi limitarti a una posizione sulla barra, che può essere aperta in qualsiasi momento..."
troppo generico, vuoi dire che una volta sulla barra in questo simbolo si può inviare OrderSend?
"Devi limitarti a una posizione sulla barra, che può essere aperta in qualsiasi momento..."
la formulazione è troppo generica, vuoi dire che una volta per barra in questo simbolo si può inviare OrderSend?
Sì. L'Expert Advisor lavora sul timeframe H1 e può aprire una posizione alle 10:17, non deve aprirne un'altra prima delle 11:00, cioè sulla barra corrente.
Sì. L'EA lavora sul time frame H1 e può aprire una posizione alle 10:17, devi assicurarti che prima delle 11:00, cioè sulla barra corrente - non si apra più.
Sì, di nuovo, penso che il diavolo sia nei dettagli.
aprire una posizione - impostare una "bandiera di divieto" e/o salvare il "tempo" (non importa quale, purché sia lo stesso (fonte) per il confronto)
si apre un nuovo bar - il "ban flag" è impostato...
Domanda: e se la posizione è in qualche modo cambiata?
Esempio di come definisco una nuova barra - doTB divisor in secondi, per H1 è 3600.0
BARii[].time - tempo delle barre con M1, ma può essere arbitrario e con qualsiasi divisione, se è più o uguale a 1 significa il "tempo" da diverse "barre
Sì, di nuovo condizioni incomplete a mio parere, "il diavolo è nei dettagli", in parole povere se il testo
aperto una posizione - impostare una "bandiera di divieto" e/o salvare il "tempo" (non importa quale, purché sia lo stesso (fonte) per il confronto)
si apre un nuovo bar - il "ban flag" è impostato...
Domanda: e se la posizione è in qualche modo cambiata?
Esempio di come definisco una nuova barra - doTB divisor in secondi, per H1 è 3600.0
BARii[].time - tempo delle barre con M1, ma può essere arbitrario e con qualsiasi divisione, se è più o uguale a 1, significa il "tempo" da diverse "barre
In quel momento non ero soddisfatto dell'opzione che utilizzava le bandiere; non ricordo perché, ma l'ho sostituita con
OK, penserò a un'altra implementazione
All'epoca non ero contento dell'opzione delle bandiere, non ricordo perché, ma l'ho sostituita con
Ok, penserò a un'altra implementazione.
E cosa trattiene questa implementazione? Simile al mio codice determina due volte in una "barra" o in diverse. Solo nella mia variante "vero" quando in diverse "barre", nella tua variante "vero" quando in una barra, basta bypassare il confronto == con "0" specialmente intero, wo, e probabilmente posso cambiare condizione a >0.0 o >0.9, devo pensare...