Bonjour,
Je suis en train de créer mon EA et j'ai quelque soucis avec l'execution de celui ci.
Je stock dans un tableau à 2 dimensions les x dernières valeurs d'un indicateur. Ainsi je peux en parcourant le tableau identifier un changement de tendance et vérifier que celle-ci est confirmé.
Mon problème est que lorsque je l'execute en back test ou en démo, les "Print" (exemple de résultat ci-dessous") sont parfois incohérent. Comme si l'execution de ma boucle "for" était interrompu puis reprise un peu n'importe quand. Pendant un temps tout est correct puis tout devient incohérent je ne sais pas pourquoi.
Merci pour votre aide.
Code:
double stTampon[19][2];
int NbEntree = 20;
double tendance = 0;
bool tendanceChange = false;
double superTrend = 0;
int cptTemps = 0;
...
int init()
{
int countElement = ArrayResize(stTampon, NbEntree );
if (countElement < 0)
Print("Erreur redimensionnement");
Print("init");
return(0);
}
int start()
{
tendance = 0;
//indicateur programme
superTrend = iCustom(Symbol(),0,"SuperTrend",NbDePeriodes,Multiplier,0,0);
if (superTrend > 10000)
{
superTrend = iCustom(Symbol(),0,"SuperTrend",NbDePeriodes,Multiplier,1,0);
tendance = 0; //"tendance descendante";
}
else
{
superTrend = iCustom(Symbol(),0,"SuperTrend",NbDePeriodes,Multiplier,0,0);
tendance = 1; //"tendance montante";
}
Print("Couleur tendance : " + tendance);
//initialisation du tableau avec les valeurs de l'indicateur
if (cptTemps < NbEntree)
{
stTampon[cptTemps][0] = superTrend;
stTampon[cptTemps][1] = tendance;
cptTemps++;
}
//on décale les valeurs du tableau et
//on met la dernière valeur de l'indicateur dans la dernière entré du tableau
if (cptTemps == NbEntree)
{
for(int cpt=0; cpt<NbEntree; cpt++)
{
if (cpt<NbEntree- 1)
{
stTampon[cpt][0] = stTampon[cpt+1][0];
stTampon[cpt][1] = stTampon[cpt+1][1];
Print("stTampon " + cpt + " : " + stTampon[cpt][0] + " stTampon : " + (cpt) + " : " + stTampon[cpt][1]);
}
else
{
stTampon[cpt][0] = superTrend;
stTampon[cpt][1] = tendance;
Print("stTampon " + cpt + " : " + stTampon[cpt][0] + " stTampon : " + (cpt) + " : " + stTampon[cpt][1]);
}
}
Print("On sort de la boucle");
}
if (superTrendChange(stTampon)==true) // si la tendance change alors superTrendChange = vrai
tendanceChange = superTrendChange(stTampon);
Print("tendanceChange : " + tendanceChange);
Print("tendance confirmé : " + superTrendChange(stTampon));
if (tendanceChange==true && superTrendChange(stTampon)==false) // si la tendance est confirmé superTrendChange = faux et tendanceChange = vrai
{
CheckForClose();
if (MathAbs(CalculateCurrentOrders())<3)
CheckForOpen();
Print("Couleur tendance 1 : " + tendance);
tendanceChange = false;
}
}
...
2010.05.05 14:16:56 2010.04.12 00:04 Aupa_v10 EURUSD,M15: stTampon 3 : 1.35677000 stTampon : 3 : 1.00000000
2010.05.05 14:16:56 2010.04.12 00:04 Aupa_v10 EURUSD,M15: stTampon 2 : 1.35677000 stTampon : 2 : 1.00000000
2010.05.05 14:16:56 2010.04.12 00:04 Aupa_v10 EURUSD,M15: stTampon 1 : 1.35677000 stTampon : 1 : 1.00000000
2010.05.05 14:16:56 2010.04.12 00:04 Aupa_v10 EURUSD,M15: stTampon 0 : 1.35677000 stTampon : 0 : 1.00000000
2010.05.05 14:16:56 2010.04.12 00:04 Aupa_v10 EURUSD,M15: Couleur tendance : 1.00000000
2010.05.05 14:16:56 2010.04.12 00:04 Aupa_v10 EURUSD,M15: SuperTrend 0 : 1.35677000
2010.05.05 14:16:56 2010.04.12 00:04 Aupa_v10 EURUSD,M15: tendance confirmé : 1
2010.05.05 14:16:56 2010.04.12 00:04 Aupa_v10 EURUSD,M15: tendanceChange : 1
2010.05.05 14:16:55 2010.04.12 00:03 Aupa_v10 EURUSD,M15: stTampon 11 : 1.35677000 stTampon : 11 : 1.00000000
2010.05.05 14:16:55 2010.04.12 00:03 Aupa_v10 EURUSD,M15: stTampon 10 : 1.35677000 stTampon : 10 : 1.00000000
2010.05.05 14:16:55 2010.04.12 00:03 Aupa_v10 EURUSD,M15: stTampon 9 : 1.35677000 stTampon : 9 : 1.00000000
2010.05.05 14:16:55 2010.04.12 00:03 Aupa_v10 EURUSD,M15: stTampon 8 : 1.35677000 stTampon : 8 : 1.00000000
2010.05.05 14:16:55 2010.04.12 00:03 Aupa_v10 EURUSD,M15: stTampon 7 : 1.35677000 stTampon : 7 : 1.00000000
2010.05.05 14:16:55 2010.04.12 00:03 Aupa_v10 EURUSD,M15: stTampon 6 : 1.35677000 stTampon : 6 : 1.00000000
2010.05.05 14:16:55 2010.04.12 00:03 Aupa_v10 EURUSD,M15: stTampon 5 : 1.35677000 stTampon : 5 : 1.00000000
2010.05.05 14:16:55 2010.04.12 00:03 Aupa_v10 EURUSD,M15: stTampon 4 : 1.35677000 stTampon : 4 : 1.00000000
2010.05.05 14:16:54 2010.04.12 00:03 Aupa_v10 EURUSD,M15: stTampon 19 : 1.35677000 stTampon : 19 : 1.00000000
2010.05.05 14:16:54 2010.04.12 00:03 Aupa_v10 EURUSD,M15: stTampon 18 : 1.35677000 stTampon : 18 : 1.00000000
...