Aide au codage - page 371

 

2014.10.15 12:36:23.875 Testeur : Impossible de charger l'EA d'experts Fisher Auto v1 m11

 

2014.10.15 12:36:23.875 Impossible d'ouvrir le fichier 'C:\Program Files\Forex Broker Inc MT4 Client Terminal\MQL4\Experts\Fisher Auto EA v1 m11.ex4' [2].

 
grego:
2014.10.15 12:36:23.875 Impossible d'ouvrir le fichier 'C:\Program Files\Forex Broker Inc MT4 Client Terminal\MQL4\Experts\Fisher Auto EA v1 m11.ex4' [2]

Si votre EA est compilé et comme je l'ai vu il peut être chargé sur un graphique en direct, la seule chose qui peut causer cela est un nouveau metatrader 4 et ses bugs de back tester. Mais vérifiez si l'EA est correctement compilé

 

la déclaration de 'LeftNum1' cache la déclaration globale à la ligne 20 fisher m111.mq4 119 8

peut-être un problème entre l'expert et l'indicateur ?

 
grego:
2014.10.15 12:36:23.875 Impossible d'ouvrir le fichier 'C:\Program Files\Forex Broker Inc MT4 Client Terminal\MQL4\Experts\Fisher Auto EA v1 m11.ex4' [2].

Test visuel rapide de cet EA

Il fonctionne et il ouvre (et ferme) des ordres. Paramètres par défaut utilisés

Dossiers :
backtest.gif  66 kb
 

Rebonjour les gars... une autre petite demande :

Quelqu'un peut-il me dire comment supprimer les valeurs en double d'un tableau de chaînes de caractères ?

S'il vous plaît

Merci !

 
AtApi:
Rebonjour les gars... une autre petite demande :

Quelqu'un peut-il me dire comment supprimer les valeurs en double d'un tableau de chaînes de caractères ?

Veuillez consulter le site

Merci !

Vous ne pouvez pas supprimer un ou plusieurs éléments d'un tableau, sauf si c'est / ils sont le ou les derniers éléments du tableau. Comme ce ne sera pas le cas dans 99,999% des cas, vous devez créer un nouveau tableau vide et ajouter seulement les éléments uniques du tableau existant à ce tableau nouvellement créé.

 

Merci mladen pour votre réponse... je dois donc faire quelque chose comme ça ?

int numDups = 0, prevIndex = 0;

string tempArray[];

for (int x = 0; x < ArraySize(myArray); x++)

{

bool foundDup = false;

for (int j = 0; j < x; j++)

{

if (myArray[x] == myArray[j])

{

foundDup = true;

numDups++; // Increment means Count for Duplicate found in array.

continue;

}

}

if (foundDup == false)

{

tempArray[prevIndex] = myArray[x]; prevIndex++;

}

}

 
AtApi:
Merci mladen pour votre réponse... alors dois-je faire quelque chose comme ça ?

int numDups = 0, prevIndex = 0;

string tempArray[];

for (int x = 0; x < ArraySize(myArray); x++)

{

bool foundDup = false;

for (int j = 0; j < x; j++)

{

if (myArray[x] == myArray[j])

{

foundDup = true;

numDups++; // Increment means Count for Duplicate found in array.

continue;

}

}

if (foundDup == false)

{

tempArray[prevIndex] = myArray[x]; prevIndex++;

}

}

[/CODE]

Essayez quelque chose comme ceci :

[CODE] chaîne de caractères tempArray[] ;

for (int i = 0 ; i < ArraySize(myArray) ; i++)

for (int j = i+1 ; j < ArraySize(myArray) ; j++)

if (myArray == myArray[j]) myArray[j]="remove" ;

for (i = 0 ; i < ArraySize(myArray) ; i++)

if (myArray != "remove") { ArrayResize(tempArray, ArraySize(tempArray)+1) ; tempArray[ArraySize(tempArray)-1]=myArray ; }

 
mladen:
Essayez quelque chose comme ceci :
string tempArray[];

for (int i = 0; i < ArraySize(myArray); i++)

for (int j = i+1; j < ArraySize(myArray); j++)

if (myArray == myArray[j]) myArray[j]="remove";

for (i = 0; i < ArraySize(myArray); i++)

if (myArray != "remove") { ArrayResize(tempArray, ArraySize(tempArray)+1); tempArray[ArraySize(tempArray)-1]=myArray; }

Merci mladen !

Le problème de cette façon est qu'elle ne supprime pas vraiment la chaîne du tableau, elle change juste la valeur de la chaîne en "remove" sur la valeur originale et le duplicata... donc si je veux les filtrer plus tard, je vais supprimer la valeur originale aussi... J'espère que je suis clair...