Aide au codage - page 300

 

Je l'ai testé avec les builds 625, 646 et 650 et je joins les résultats (en utilisant l'indicateur ci-joint).

Dossiers :
test_2.mq4  1 kb
test_650.gif  102 kb
test_646.gif  103 kb
test_625.gif  102 kb
 

Merci mladen pour vos tests !

J'utilise le Build 646 et ces 3 codelines fonctionnent dans un indicateur, mais pas dans une ea.

Je peux le mettre dans l'init ou dans la fonction start et j'obtiens toujours la même impression d'erreur que sur ma capture d'écran.

Quand je change la valeur de "99.40" à "99.4", c'est pareil. Mais toutes ( ?!) les autres valeurs fonctionnent comme elles le devraient.

Je veux dire, c'est vraiment un bug étrange...

 

J'ai une autre question...

Que signifient les trois valeurs sur la première page du testeur de stratégie:

1 088 / 1 280 (39 204)

OK, la première est le nombre réel d'exécutions.

Et peut-être 39204 le nombre d'exécutions à faire avec toutes les connexions ?

Parfois la valeur entre parenthèses est plus petite que la précédente.

Le testeur n'a fait que 134 essais. J'ai activé "show useless results".

 
sunshineh:
J'ai une autre question...

Que signifient les trois valeurs figurant sur la première page du testeur de stratégie :

1 088 / 1 280 (39 204)

OK, la première est le nombre réel d'exécutions.

Et peut-être 39204 le nombre d'exécutions à faire avec toutes les connexions ?

Parfois la valeur entre parenthèses est plus petite que la valeur précédente.

Le testeur n'a fait que 134 passages. J'ai activé l'option "montrer les résultats inutiles".

Alors il semble que les installations metatrader de différents courtiers ne fonctionnent pas de la même manière. Ce serait la seule explication

 

Cher SIR MLADEN,

J'essaie d'effectuer un classement des valeurs actuelles du tableau et j'ai inséré le code suivant dans mon indicateur.....

Malheureusement le bouton compiler n'est pas actif.....

int rank (double value)

{

// The above 2 lines probably should be elsewhere and set as global variables

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

{

if (RankValues == value)

{

return (i+1);

}

}

return (0);

}

Pourriez-vous S'IL VOUS PLAÎT me dire ce qui s'est mal passé.... et comment faire pour classer cette valeur par ordre décroissant...

Votre temps et votre expertise sont très appréciés...

Merci....

Meilleures salutations

AZRUL...

Dossiers :
 

Bonjour Mladen,

Je voudrais un petit indicateur qui, sur l'image de temps 5 min, me montre quand le stoc 5-3-3 est en dessous de 20 sur l'image de temps 15 min.

Je ne veux pas de stoc multitimeframe.... mais un signal d'un time frame supérieur sur un time frame inférieur.

Merci d'avance

 

mladen, mrtool...

j'ai besoin d'aide pour modifier/ajouté une règle de changement de couleur par 2 moyennes mobiles (MA période 8 et MA période 24).

si MA8 > MA24, histo couleur=vert.

si MA8 < MA24, histo couleur=rouge.

Voici le lien de l'indicateur : https://www.mql5.com/en/code/download/7992/BW_MFI.mq4

 
12BPRO:
Cher SIR MLADEN,

J'essaie de faire un classement des valeurs actuelles du tableau et j'ai inséré le code suivant dans mon indicateur.....

Malheureusement le bouton de compilation n'est pas actif.....

int rank (double value)

{

// The above 2 lines probably should be elsewhere and set as global variables

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

{

if (RankValues == value)

{

return (i+1);

}

}

return (0);

}

Pourriez-vous S'IL VOUS PLAÎT me conseiller sur ce qui s'est mal passé.... et sur la façon de procéder pour classer cette valeur par ordre décroissant...

Votre temps et votre expertise sont très appréciés...

Merci....

Meilleures salutations

AZRUL...

AZRUL

Vous ne fournissez pas la valeur que vous voulez rechercher à la ligne 180 (cette ligne :

int ranking = rank() ;

donc la fonction rank ne peut comparer à aucune valeur. Votre appel doit être sous la forme suivante :

int ranking = rank(someValueToRank) ;

 

Bonjour Mladen

L'indien était-il correct ?

 

Bonjour,

J'utilise les fonctions de fichier et elles fonctionnent bien !

J'utilise des fichiers assez volumineux et je travaille avec une boucle for.

À chaque cycle, je lis une ligne du fichier. Parfois, je veux changer un mot dans l'une de ces lignes.

Existe-t-il un moyen simple de le faire ? Si je ferme le fichier en lecture et l'ouvre en écriture, mon pointeur de fichier va à la fin du fichier.

Mais y a-t-il une possibilité d'obtenir la position réelle du pointeur de fichier ? Ainsi, je peux aussi écrire directement, par exemple au milieu du fichier.