Questions des débutants MQL4 MT4 MetaTrader 4 - page 113
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
J'ai besoin que mon EA ouvre tous les ordres (Vente et Achat), même s'ils sont déjà ouverts et qu'il ne le fasse pas quand toutes les conditions convergent, mais sur la bougie suivante !!! Aidez-nous, s'il vous plaît ...... Je vous remercie d'avance...
Pour le moment, j'ai ceci dans mon code :
{
if(NewBar())
{
// algorithme lui-même etc.
}
}
bool NewBar()
{
staticdatetimelastbar=0;
datetime curbar=iTime(Symbol(),0,0) ;
if(lastbar!=curbar)
{
lastbar=curbar;
return(true) ;
}
return(false) ;
}
}
Voici la fonction.
Je pensais juste que le problème n'était pas dans le code car il n'y a pas d'erreurs en mode standard.
De toute façon, personne ne semble répondre...
De toute façon, personne ne semble répondre...
Il ne semble pas y avoir d'erreurs dans la fonction que vous avez postée. Je ne comprends pas l'utilisation de OrderTicket()!=Ticket pour éliminer les commandes adjacentes ayant le même ticket. Vérifiez et assurez-vous qu'il n'y a pas de tels ordres. Si le (69,25) est spécifié par le compilateur , regardez la position 25 de la ligne 69 - l'erreur est là. Tapez cette ligne.
Je me demande vraiment ce qu'il a en ligne 69
Ouf, je pensais que personne ne réagirait.
Voici cette partie du code :
66 double Volatility(int _period){
67 double summ = 0 ;
68 for(int i=1 ; i<=_period ; i++)
69 summ+=MathAbs(High[i]-Low[i])
70 return(NormalizeDouble(summ/_period, Digits))
71 }
Merci pour le conseil
Ouf, je pensais que personne ne réagirait.
Voici cette partie du code :
66 double Volatility(int _period){
67 double summ = 0 ;
68 for(int i=1 ; i<=_period ; i++)
69 summ+=MathAbs(High[i]-Low[i])
70 return(NormalizeDouble(summ/_period, Digits))
71 }
Merci pour le conseil.
Tout est clair. L'erreur se trouve dans la ligne summ+=MathAbs(High[i]-Low[i]) ; en comptant à 25 positions du bord, on arrivera probablement à High[i].
J'ai écrit Alert(Low[-1]) ; le compilateur exige un nombre positif. J'ai écrit int n=-1 ; Alert(Low[n]) ; - lors de l'exécution de Array hors rangre. Mais comment i<0 ? ?? peut-être est-ce le manque de données historiques ? vérifiez l'intervalle de date de ... à ...
VEUILLEZ INDIQUER QUEL TRADER CHOISIR OU LE NOM EXACT DU SERVEUR
Ouf, je pensais que personne ne réagirait.
Voici cette partie du code :
66 double Volatility(int _period){
67 double summ = 0 ;
68 for(int i=1 ; i<=_period ; i++)
69 summ+=MathAbs(High[i]-Low[i])
70 return(NormalizeDouble(summ/_period, Digits))
71 }
Merci pour le conseil.
Il semble que _period ait parfois une valeur supérieure aux éléments du tableau. D'où le dépassement du tableau.
Choisissez l'une des options.