Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 113
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
Ho bisogno che il mio EA apra tutti gli ordini (Sell e Buy), anche se sono già aperti e che lo faccia non quando tutte le condizioni convergono, ma sulla candela successiva!!! Aiuto plz...... Sono grato in anticipo...
Al momento ho questo nel mio codice:
{
if(NewBar())
{
// algoritmo stesso ecc.
}
}
bool NewBar()
{
staticdatetimelastbar=0;
datetime curbar=iTime(Symbol(),0,0);
if(lastbar!=curbar)
{
lastbar=curbar;
return(true);
}
return(false);
}
}
Ecco la funzione.
Ho solo pensato che il problema non fosse nel codice, dato che non ci sono errori in modalità standard.
Comunque, nessuno sembra rispondere...
Comunque, nessuno sembra rispondere...
Non sembrano esserci errori nella funzione che hai postato. Sono confuso dall'uso di OrderTicket()!=Ticket per setacciare gli ordini adiacenti con lo stesso ticket. Controlla e assicurati che non ci siano ordini di questo tipo. Se il (69,25) è specificato dal compilatore , guarda la posizione 25 della linea 69 - l'errore è lì. Scrivi questa riga.
Mi chiedo davvero che cosa ha in linea 69
Uff, pensavo che nessuno avrebbe reagito.
Ecco quella parte di codice:
66 doppio Volatilità(int _periodo){
67 doppio summ = 0;
68 for(int i=1; i<=_periodo; i++)
69 summ+=MathAbs(High[i]-Low[i])
70 return(NormalizeDouble(summ/_period, Digits))
71 }
Grazie per il suggerimento
Uff, pensavo che nessuno avrebbe reagito.
Ecco quella parte di codice:
66 doppio Volatilità(int _periodo){
67 doppio summ = 0;
68 for(int i=1; i<=_periodo; i++)
69 summ+=MathAbs(High[i]-Low[i])
70 return(NormalizeDouble(summ/_period, Digits))
71 }
Grazie per il suggerimento.
Tutto è chiaro. L'errore è nella linea summ+=MathAbs(High[i]-Low[i]); contando 25 posizioni dal bordo si ritorna probabilmente a High[i].
Ho scritto Alert(Low[-1]); il compilatore richiede un numero positivo. Ho scritto int n=-1; Alert(Low[n]); - quando si esegue Array out of rangre. Ma come può i<0?? forse è la mancanza di dati storici? controllare l'intervallo di date da ... a ...
SI PREGA DI CONSIGLIARE QUALE TRADER SCEGLIERE O IL NOME ESATTO DEL SERVER
Uff, pensavo che nessuno avrebbe reagito.
Ecco quella parte di codice:
66 doppio Volatilità(int _periodo){
67 doppio summ = 0;
68 for(int i=1; i<=_periodo; i++)
69 summ+=MathAbs(High[i]-Low[i])
70 return(NormalizeDouble(summ/_period, Digits))
71 }
Grazie per il suggerimento.
Sembra che _period a volte abbia un valore più grande degli elementi dell'array. Da qui il superamento dell'array.
Scegliere una delle opzioni.