Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 494
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
Fino a ieri, il mio EA ha aperto solo un ordine ciascuno e il prossimo non si aprirà fino a quando non piazzerò un ordine. Ora, come fare in modo che il mio EA apra gli ordini quando la barra precedente ha aperto sopra (sotto) il canale?
Se analizzate questo frammento di codice, allora, secondo questo codice, se la funzioneCountTrades() restituisce zero, la condizione if (CountTrades()==0) CheckForOpen()sarà eseguita, e la funzioneCheckForOpen() sarà chiamata.Al prossimo tick, se l'ordine è stato aperto, la funzioneCountTrades() dovrebbe restituire 1, e quindi la condizione else è soddisfatta
Se risulta che CountTrades()<max_trades, la funzioneCheckForOpen() sarà eseguita ancora una volta.Secondo il codice, il valore della variabile max_trades è uguale a 3. Così, avrete 4 ordini aperti.
Se l'EA non apre correttamente gli ordini, allora controlla la logica, in cui si definiscono le condizioni in cui le posizioni devono essere aperte nella funzione CheckForOpen(). E controlla anche le condizioni di tempo se (CurrTime < EaStartTime || CurrTime >= EaEndTime). Se fossi in voi, userei la funzione if (TimeHour(TimeCurrent()) = ora di inizio && TimeMinute(TimeCurrent()) = minuti di inizio ). L'ora e i minuti sono impostati in variabili di tipo int o uint.
Se Open Bar Number 1 è sopra/sotto il canale.
Così, avrete 4 ordini aperti.
Se l'EA non apre correttamente gli ordini, allora controlla la logica, dove specifichi le condizioni in cui le posizioni devono essere aperte nella funzione CheckForOpen(). E controlla anche le condizioni di tempo se (CurrTime < EaStartTime || CurrTime >= EaEndTime). Userei la funzione if (TimeHour(TimeCurrent()) = ora di inizio && TimeMinute(TimeCurrent()) = minuti di inizio ). L'ora e i minuti sono impostati in variabili di tipo int o uint.
Volevo aprire 3 ordini ma non era quello che intendevo; volevo fino a tre, ma un ordine per ogni nuova barra.
Non c'è nessun problema di tempo, funziona in un periodo di tempo strettamente specificato.
Volevo fino a tre ordini, ma un ordine per ogni nuova barra. Ci sono momenti in cui diverse barre di fila danno segnali positivi.
Non c'è nessun problema di tempo, funziona in un periodo di tempo strettamente specificato.
2016.01.13_05:14AM. Salve signor Karputov! Ho scritto in MQL4
.mq4, ha ottenuto il file .ex4. Ma non funziona nel tester di strategia. Finale
era scrivere un EA per MT4. In MQL5, ho ottenuto .mq5 e
.ex5. E il file .ex5 ha aperto gli scambi. La quarta versione è diversa da
La quarta versione ha alcune differenze rispetto alla quinta, e io non sono ancora un buon programmatore MQL, ecco perché ho ottenuto cattivi risultati.
Non ho capito cosa c'è di sbagliato ora, il file di log del tester è stato salvato. Я
Cercherò di tradurlo. Nel frattempo ti chiedo di dirmi
cosa c'è di sbagliato nel codice del programma? Mentre tu rispondi, proverò
per capirlo.
Sono stato sorpreso di trovare nella mia quarta versione dell'editor l'opzione per scrivere
Stavo per scriverlo. Ma non l'ho scritto io. Sto allegando
file di log del tester e uno screenshot. 05:30 MSC.
2016.01.13_05:14 ORA DI MOSCA. Salve signor Karputov! Ho scritto in MQL4
.mq4, ha ottenuto un file .ex4. Ma non funziona nel tester di strategia.
Dove posso trovare le descrizioni degli errori?
Non capisco cosa non piace al compilatore, perché mi avverte?
controllare la precedenza dell'operatore per un possibile errore; usare le parentesi per chiarire la precedenza
if(Low[X]>PriceBuy && High[X]>PriceBuy ||
Low[X]<PriceBuy && High[X]<PriceBuy)
calcBarX++;
e qui
l'espressione non ha effetto
for(calc_day;calc_day>0; calc_day--)
{
if(iLow(Symbol(),TF_3Day,calc_day)<iLow(Symbol(),TF_3Day,calc_day+1)) calc_day_OK++;
else break;
}
Dove posso trovare le descrizioni degli errori?
Non capisco cosa non piace al compilatore, perché mi avverte?
In realtà, oltre al testo dell'errore, il compilatore riporta anche il numero della linea di codice dove si trova l'errore e la sua posizione nella linea.