[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 282

 

Messieurs, apprenez comment prendre un signal dedivergence d' un indicateur(FX5_Divergence_V2.1.mq4) à un EA.

Les tampons 2 et 3 de l'indicateur donnent EMPTY_VALUE.

 
Est-ce que quelqu'un a un collecteur de tick qui enregistre l 'historique du tick comme suit : heure d'arrivée du tick, asc, bid ? La base de code n'a qu'un collecteur de tick sans asc.
 
Sergey_Rogozin:

Messieurs, apprenez comment prendre un signal dedivergence d' un indicateur(FX5_Divergence_V2.1.mq4) à un EA.

Les tampons 2 et 3 de l'indicateur donnent EMPTY_VALUE.

J'ai écrit votre scénario ? Il y a tout dedans. Au lieu de la sortie du message d'Alert, écrivez votre traitement. Vous pouvez écrire huit dans DoubleToString() au lieu de six décimales s'il produit des zéros. Dans tous les cas, les signaux sont présents et le script les lit. Faites preuve d'esprit et d'effort.
 
artmedia70:
Je t'ai écrit un scénario ? Il y a tout dedans. Au lieu de produire un message avec Alert, écrivez votre traitement. Vous pouvez écrire huit dans DoubleToString() au lieu de six décimales s'il produit des zéros. Dans tous les cas, les signaux sont présents et le script les lit. Faites preuve d'esprit et d'effort.
Quel homme têtu. Laissez-moi lui expliquer à nouveau sur mes doigts.
Les valeurs vides des tampons avec des flèches sont remplies à la place des zéros avec des valeurs EMPTY_VALUE numériquement égales à 2147483647. Lorsqu'il y a des flèches, les valeurs sont différentes, par exemple 0,000031.
Nous devons filtrer les valeurs "vides" par programmation, car elles ressemblent au nombre 2147483647 en comparaison.
Par exemple, je le fais de cette façon et ça marche. Qui est plus intelligent, peut le rendre plus beau.

double buy=iCustom(NULL,0,"FX5_Divergence_V2.1",2,CountBar);
// отфильтровывает значения EMPTY_VALUE, заменяя их на 0 
if(buy==EMPTY_VALUE) buy=0.0;
// теперь значения buy могут быть либо 0, либо значением стрелки, например, 0,000032
 
granit77:
Quel homme têtu. Laissez-moi lui expliquer à nouveau sur mes doigts.
Les valeurs vides des tampons avec des flèches sont remplies au lieu de zéros avec des valeurs EMPTY_VALUE numériquement égales à 2147483647. Lorsqu'il y a des flèches, les valeurs sont différentes, par exemple 0,000031.
Nous devons filtrer les valeurs "vides" de manière programmatique, car elles ressemblent au nombre 2147483647 en comparaison.
Par exemple, je le fais de cette façon et ça marche. Qui est plus intelligent, peut le rendre plus beau.

Maintenant la personne va écrire que les tampons 2 et 3 ne produisent que des zéros :))))

Bon sang, une logique si simple : si la valeur du tampon n'est PAS égale à EMPTY_VALUE, cela signifie qu'il y a une flèche sur cette barre et donc un signal.
Et la manière de présenter cette valeur vide et de la comparer est une question de goût.

 
artmedia70:

C'est le bordel ici...


Sur l'île ! !! :)

J'ai les mêmes chiffres (via Expert Advisor) mais la fenêtre de données affiche EMPTY_VALUE ! Y a-t-il un moyen de résoudre ce problème ?


 
granit77:
Un homme têtu. Laissez-moi lui expliquer à nouveau sur mes doigts.
Les valeurs vides des tampons avec des flèches sont remplies avec EMPTY_VALUE numériquement égal à 2147483647 au lieu de zéros. Lorsqu'il y a des flèches, les valeurs sont différentes, par exemple 0,000031.
Nous devons filtrer les valeurs "vides" par programmation, car elles ressemblent au nombre 2147483647 en comparaison.
Par exemple, je le fais de cette façon et ça marche. Qui est plus intelligent, peut le rendre plus beau.



compris en gros.

 

A artmedia70.

Je ne pouvais vraiment pas utiliser le script. J'ai essayé de faire presque la même chose que granit77 ,mais ça n'a pas marché non plus.

Si(buy==EMPTY_VALUE) buy=0.0 ; - le résultat est toujours "0". J'ai des alertes provenant de l'indicateur mais l'alerte attachée au conseiller expert ne fonctionne pas.

Ok, merci, je vais continuer à "souffrir" ...))))

 
Sergey_Rogozin:

A artmedia70.

Je ne pouvais vraiment pas utiliser le script. J'ai essayé de faire presque la même chose que granit77 ,mais ça n'a pas marché non plus.

Si(buy==EMPTY_VALUE) buy=0.0 ; - le résultat est toujours "0". J'ai des alertes provenant de l'indicateur mais l'alerte attachée au conseiller expert ne fonctionne pas.

Ok, merci, je vais continuer à "souffrir" ...))))

vous n'êtes pas le seul - agonisant, je suis déjà en train de réparer l'indicateur :))))
 
todem:

J'ai les mêmes chiffres (via EA), mais la fenêtre de données affiche EMPTY_VALUE ! Y a-t-il un moyen de résoudre ce problème ?

Lorsque vous imprimez les valeurs de la mémoire tampon à l'écran, que faites-vous ? Ce sont les données numériques qui sont sorties de toute façon. Si vous voulez afficher une chaîne vide, ou "Empty Value" ou "EMPTY_VALUE", affichez-les en tant que variables de type chaîne.
C'est-à-dire :
chaîne val ;
si(valeur du tampon==EMPTY_VALUE) val="EMPTY_VALUE" ;
Mais si(valeur du tampon!=EMPTY_VALUE) val=DoubleToString(valeur du tampon, 8) ;
et afficher la valeur de la variable val au lieu de la valeur du tampon.
Par exemple : Commentaire ("Valeur = ", val) ;