excuse-moi pour mon mauvais francais
Code:
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;
}
}
je ne suis pas sur ce que tu veux faire, mais il me semble que ton code a des problemes logiques. Essaies de comprends le code ci-dessous, si c'est exactement ce que tu veux l'EA a faire, remplace la partie en rouge avec lui.
Code:
//indicateur programme
for(cptTemps = 0;cptTemps < NbEntree; cptTemps++)
{
superTrend = iCustom(Symbol(),0,"SuperTrend",NbDePeriodes,Multiplier,0,cptTemps);
if (superTrend > 10000)
{
superTrend = iCustom(Symbol(),0,"SuperTrend",NbDePeriodes,Multiplier,1,cptTemps);
tendance = 0; //"tendance descendante";
}
else tendance = 1; //"tendance montante";
Print("Couleur tendance : " + tendance);
stTampon[cptTemps][0] = superTrend;
stTampon[cptTemps][1] = tendance;
}