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
Si tratta di 2 terminali su 1 computer. A tutti i suggerimenti del terminale per aggiornare - rispondo "sì".
Il file è stato trasferito su flash da un altro computer come .mql5, aperto e compilato da diversi editor di due terminali.
In generale, come ho capito, ho bisogno di aggiornare MT...
Se stai aggiornando manualmente, devi anche trasferire la cartella /MQL5, perché contiene un gran numero di librerie standard che stai usando.
Dato che hai trasferito solo gli eseguibili e il tuo codice sorgente come file mq5, hai fatto un errore.
Aggiornato a bild 695. Un errore è apparso durante la compilazione di Object.mqh.
Aggiornato a bild 695. Un errore ha iniziato ad apparire durante la compilazione di Object.mqh.
Hai aggiornato automaticamente o hai solo spostato i file?
Se lo avete fatto automaticamente, quando memorizzate i file in UserData, copiate la directory /MQL5 dalla radice del programma alla directory dei dati (potete aprirla dal menu File).
Che fine ha fatto il calendario economico, esiste?
Domanda supplementare: su quali dati si basava e come può essere "collegato" alla DC?
Questa è la condizione
if( mn < STP || mn >= STP )
- Per quale motivo è formulato in questo modo? Così com'è, funzionerà per qualsiasi mn e STP. Perché abbiamo bisogno di introdurlo? E le prossime due opzioni - c'è un cutoff specifico di certe situazioni.
Ma tutto sembra logico: uno + due == tri (senza entrare nei dettagli dei calcoli uno, due e tre) in tutte e tre le varianti.
Ecco di cosa sto parlando. Voglio dividere lo spazio comune (caso 1) in due gruppi (casi 2 e 3). Logicamente, l'espressione uno + due == tri dovrebbe essere vera, ma non lo è. Nella prima condizione uno=148, e nella seconda 172. Inoltre non c'è partita per due e per tre. Non so quale sia il problema.
Forse il problema sta in una condizione comune? Questo codice dipende da qualcos'altro?
Solo un esempio banale:
condizione (a): aprire se la barra su H1 sale. TP=SL=100
condizione (b): aprire se la barra su H1 diminuisce. TP=SL=100
Condizione aggiuntiva: non controlliamo le condizioni per la seconda volta, se abbiamo già una posizione.
Quindi se abilitiamo (a) più (b) apriremo ogni volta che il TP/SL viene attivato.
se includiamo (a) apriremo in tutte le prime volte più (!!!!) alcune altre volte in cui non abbiamo aperto perché abbiamo aperto prima con la condizione (b)
e per includere solo la condizione (b), allo stesso modo
Guardate più da vicino: questo è esattamente il confronto (uno + due == tri) che viene eseguito, per ciascuna delle opzioni.
Bene, questa è un'altra domanda, cioè perché il valore di uno della prima variante non è uguale al valore di uno della seconda e della terza variante.
State introducendo una condizione restrittiva nella seconda e terza variante rispetto alla prima. Considerate perché, per esempio, nella seconda variante il valore di uno aumenta rispetto alla prima variante. Non è chiaro dalla parte citata del codice finora.
Al post precedente.
Nel terzo caso: uno=0, due=124, tri=124.
I dati non corrispondono, ma dovrebbero, perché il secondo e il terzo caso sono parti separate della prima condizione. Non riesco a capire qual è il problema.
PS: ingresso int STP=200;
1. Scelgo sia lo spazio2 (uno) che lo spazio3 (due); 230 = 148 + 82, cioè spazio2 (uno) = 148 e spazio3 (due)=82.
2. ... Dovrebbe rimanere 148, ed è diventato 172.
3. ... Dovrebbe rimanere 82, e diventa 124.
È di questo che sto parlando: la domanda per voi èperché il valore di uno della prima opzione non è uguale al valore di uno della seconda e della terza opzione.
Per trovare un errore in questo presupposto logico, suggerisco di fare molto semplicemente: stampare ogni caso di aumento di "spaziX" in tutte e tre le varianti, confrontare i risultati e analizzare per quale motivo i "valori di spazi2 e spazi3" non sono uguali.
Addendum. ilunga ha già accennato al fatto che alcune transazioni potrebbero essere perse quando si passa da una variante all'altra. Avete una funzione/metodo killer OpenPosition() incorporata nel corpo dell'operatore if(). E funziona in tempi diversi a seconda della condizione controllata dall'operatore if().