Comment coder ? - page 89

 
shanyang:
J'ai téléchargé un indicateur qui affiche une flèche verte/rouge lorsque le signal d'achat/de vente est émis.

maintenant je veux programmer mon propre EA basé sur cet indicateur.

Mais je n'ai que le fichier ex4 de cet indicateur (pas de code source).

Je veux que mon EA lise la flèche de l'indicateur sur le graphique principal et envoie l'ordre d'achat/de vente (flèche verte==>achat, flèche rouge==>vente).

Existe-t-il une méthode pour obtenir les informations de la flèche de l'indicateur sur le graphique principal ?

merci

Une flèche peut être dessinée comme une valeur d'un des tampons de l'indicateur ; dans ce cas, la couleur dans les propriétés de l'indicateur devrait vous donner le numéro du tampon, ce qui est suffisant pour l'appeler par la fonction "ICustom()" ; Vous devez également remplir toutes les valeurs de l'onglet "Input" comme paramètres de l'appel ICustom().

Si la flèche n'est pas une valeur d'un tampon, c'est un objet. Sélectionnez-le pour voir ses propriétés. La plupart du temps, il est facile de comprendre comment les noms sont générés et il sera alors possible d'utiliser ObjectFind().

L'EA doit surveiller ObjectsTotal(), et seulement quand il est incrémenté, il peut essayer de reconnaître le dernier objet. Si le nom est inconnu, l'EA ne peut pas utiliser OjectFind() et doit scanner tous les objets pour identifier le dernier. Le dernier objet n'est pas forcément celui qui a l'indice le plus élevé (ObjectsTotal() - 1), mais il est préférable de commencer à scanner à partir de l'indice le plus élevé, car vous pourrez probablement casser plus rapidement. Maintenant vous devez comparer OBJPROP_TIME1 obtenu par ObjectGet() à Time[0] ou Time[1] par exemple, et vérifier la couleur ou le type de flèche, ou une sous-chaîne du nom, pour identifier un signal d'achat ou de vente.

Cela semble complexe mais ne l'est pas. Essayez de l'écrire et n'hésitez pas à demander plus de précisions si nécessaire.

 
Big Be:
La réponse précédente était incomplète.

Si l'indicateur est standard dans MT4, il apparaîtra à l'endroit normal. S'il est appelé par iCustom, il s'affichera également, s'il est bien codé.

Les indicateurs des EAs suivants s'affichent même dans la fenêtre du graphique. Étudiez-les pour savoir comment :

bouncingPipEA_mpowerV42.mq4

bouncingPipEA_BigBear_v23.mq4

Big Be

Merci Big Be, je vais les étudier.

 
Michel:
Une flèche peut être dessinée comme une valeur d'un des buffers de l'indicateur ; dans ce cas, la couleur dans les propriétés de l'indicateur devrait vous donner le numéro du buffer, ce qui est suffisant pour l'appeler par la fonction "ICustom()" ; Vous devez également remplir toutes les valeurs de l'onglet "Input" comme paramètres de l'appel ICustom().

Si la flèche n'est pas une valeur d'un tampon, c'est un objet. Sélectionnez-le pour voir ses propriétés. La plupart du temps, il est facile de comprendre comment les noms sont générés et il sera alors possible d'utiliser ObjectFind().

L'EA doit surveiller ObjectsTotal(), et seulement quand il est incrémenté, il peut essayer de reconnaître le dernier objet. Si le nom est inconnu, l'EA ne peut pas utiliser OjectFind() et doit scanner tous les objets pour identifier le dernier. Le dernier objet n'est pas forcément celui qui a l'indice le plus élevé (ObjectsTotal() - 1), mais il est préférable de commencer à scanner à partir de l'indice le plus élevé, car vous pourrez probablement casser plus rapidement. Maintenant vous devez comparer OBJPROP_TIME1 obtenu par ObjectGet() à Time[0] ou Time[1] par exemple, et vérifier la couleur ou le type de flèche, ou une sous-chaîne du nom, pour identifier un signal d'achat ou de vente.

Cela semble complexe mais ne l'est pas. Essayez de l'écrire et n'hésitez pas à demander plus de précisions si nécessaire.

Excellente explication Michel ... 100% plus complète que la mienne !

Merci pour ceux qui sont intéressés.

FerruFx

 

changer l'indicateur dans un EA

je voudrais changer l'indicateur dans un EA que j'ai, mais je ne sais pas comment le faire

je ne suis pas un programmeur, en fait je ne connais pas grand chose à ce genre de chose, ci-dessous est la seule partie qui concerne l'indicateur je veux changer le DiMA en MFA(14)

je veux acheter @ >60 et vendre@<40

double diClose0=iClose(NULL,5,0) ;

double diMA1=iMA(NULL,5,7,0,MODE_SMA,PRICE_OPEN,0) ;

double diClose2=iClose(NULL,5,0) ;

double diMA3=iMA(NULL,5,6,0,MODE_SMA,PRICE_OPEN,0) ;

if(AccountFreeMargin()<(1000*Lots)){

Print("Nous n'avons pas d'argent. Marge libre = ", AccountFreeMargin()) ;

return(0) ;

}

if (!ExistPositions()){

if ((diClose0<diMA1)){

OpenBuy() ;

return(0) ;

}

if ((diClose2>diMA3)){

OpenSell() ;

return(0) ;

}

}

quelqu'un peut-il m'aider ?

denis

 

Veuillez poster votre indicateur d'AMF. J'ai besoin de voir les tampons. Dans quelle logique voulez-vous changer d'indicateur ?

Dave

 

Bonjour Dave, je ne peux pas afficher l'indicateur MFI, il n'est pas dans le dossier des indicateurs. Vous pouvez obtenir l'indicateur dans la barre d'outils sous les volumes, je ne sais pas ce que vous voulez dire par "sous quelle logique".

denis

 
denis68:
Bonjour Dave, je ne peux pas afficher l'indicateur MFI, il n'est pas dans le dossier des indicateurs, vous pouvez obtenir l'indicateur à partir de la barre d'outils sous les volumes, je ne sais pas ce que vous voulez dire par sous quelle logique. denis

Celui-ci ? Market Facilitation Index

Dossiers :
mfi.mq4  3 kb
 

salut linuxer je ne pense pas que ce soit le bon mais merci quand même, celui que j'ai s'appelle money flow index.

denis

 
denis68:
salut linuxer je ne pense pas que ce soit celui là mais merci quand même, celui que j'ai s'appelle money flow index. denis

Désolé, j'ai mal orthographié le nom, c'est celui-là.

Money Flow Index.mq4 aka MFI.mq4