Comment coder ? - page 273

 

takeprofit non exécuté

Il y a deux raisons possibles.

Premièrement, le takeprofit peut être considéré comme trop proche du prix d'ouverture pour que le courtier l'accepte.

Vérifiez la transaction pour voir si le takeprofit a une valeur.

Deuxièmement, les transactions de vente se terminent à l'Ask, l'Ask doit donc atteindre le niveau du takeprofit.

Quel est le spread de votre courtier pour cette paire et à ce moment-là ?

Cela signifie que la sortie réelle se fait à l'offre - spread.

Robert

 
LuisAY:

J'aimerais savoir comment lire ceux qui sont entourés en bleu clair,

Un exemple de code pour me mettre dans la bonne direction ?

Merci d'avance.

Le nom de l'indicateur n'est pas un commentaire.

Puisque le nom est visible, vous pouvez utiliser

double MaxValue, MinValue ;

int WindowNum = WindowFind("Volume") ; // renvoie -1 si non trouvé

si (WindowNum >= 0)

{

MaxValue = WindowPriceMax(WindowNum) ;

MinValue = WindowPriceMin(WindowNum) ;

}

J'espère que cela vous aidera.

BTW, Lorsque vous ouvrez l'éditeur MT4, il y a une fenêtre appelée Navigator qui liste les fonctions dans MT4 avec des descriptions et des exemples de la façon de les utiliser.

Robert Hill

Programmeur professionnel MT4

 

[langtitle=de]takeprofit non exécuté[/langtitle]

MrPip:
Il y a deux raisons possibles.

Tout d'abord, le takeprofit peut être considéré comme trop proche du prix d'ouverture pour que le courtier l'accepte.

Vérifiez la transaction pour voir si le takeprofit a une valeur.

Deuxièmement, les transactions de vente se terminent à l'Ask, donc l'Ask doit atteindre le niveau du takeprofit.

Quel est le spread de votre courtier pour cette paire et à ce moment-là ?

Cela signifierait que la sortie réelle serait à l'offre - spread.

Robert

[Merci pour votre réponse rapide.

J'ai un courtier ECN (FXOpen) (5digits). Je pense que vous avez raison concernant le spread. Mais c'est une valeur constante de 102 (=(Ask - Bid)*(1/Point)) et ne change pas tout le temps pendant l'exécution du testeur de stratégie. Pourquoi ? Sur les systèmes réels, le spread change presque en permanence. En outre, pourquoi je n'obtiens pas d'erreur OrderSend 130 ?

Merci pour votre aide[/lang].

 
MrPip:
Le nom de l'indicateur n'est pas un commentaire.

Puisque le nom est visible, vous pouvez utiliser

double MaxValue, MinValue ;

int WindowNum = WindowFind("Volume") ; // renvoie -1 si non trouvé

si (WindowNum >= 0)

{

MaxValue = WindowPriceMax(WindowNum) ;

MinValue = WindowPriceMin(WindowNum) ;

}

J'espère que cela vous aidera.

BTW, Lorsque vous ouvrez l'éditeur MT4, il y a une fenêtre appelée Navigator qui liste les fonctions dans MT4 avec des descriptions et des exemples de la façon de les utiliser.

Robert Hill

Programmeur professionnel MT4

C'est exactement ce que je cherchais. J'espérais simplement que les rédacteurs techniques du fichier d'aide avaient le bon sens que vous montrez dans l'exemple.

L'autre question que je me pose est la suivante : le commentaire ou la note qui sert de nom dans l'indicateur personnalisé est nommé "IndicatorShortName" et contient une valeur, maintenant, je voudrais lire cette valeur. Je pourrais trouver un moyen de contourner ce problème en créant une variable qui contiendrait également cette valeur lorsque je la déclare, mais le bon sens me dit qu'il doit y avoir un moyen d'utiliser la valeur de "IndicatorShortName".

Merci

 

haha , je l'ai trouvé -- le codage que j'ai fait (mais je ne l'utilise pas ces jours-ci)

il ne devrait pas donner une SUGGESTION ENTRY , jusqu'à ce qu'il y ait une certaine consolidation observée (donc il est en quelque sorte intelligent -- la logique simple utilisée cependant)

reformulez vos questions -- pas clair

tiny.cc/imtran

====

c'est une recherche, pour montrer que je fais un peu de codage

j'ai passé 1 mois sur cet indicateur (que j'ai construit moi-même)

ce qu'il fait, c'est utiliser le texte blanc du commentaire

pour me dire à quel niveau de prix placer un ordre Limit.

Je vous laisse ces 3 liens, si vous aimez lire des choses, ouvrez l'IDE METAEDITOR et apprenez le codage mq4 -- vous devriez utiliser un meilleur exemple d'indicateur -- c'est comme suit

définir la couleur et l'épaisseur

dessiner des choses sur le graphique

compter le nombre de bougies

exécuter une formule arithmétique (si difficile)

faire plus de calculs et de "ifthenelse

la plupart des indicateurs MQ4 sont dans ce format, donc faites attention à >> dessiner des trucs sur le graphique

---- il pourrait être un peu implicite, ou autorun pour un dessin final, mais les MQ4 sont comme ça ---

http://tiny.cc/linsay3

http://tiny.cc/linsay2

http://tiny.cc/linsay1

Je ne donne pas facilement mon STUFF de développement.

- cela peut ne pas être utile dans le commerce (mais j'ai beaucoup appris sur MQ4, le compilateur n'est pas si dur)

Il y a un membre qui s'appelle WID - je ne suis pas sûr de ses capacités de codage, s'il est bon et qu'il respecte l'accord de confidentialité, je pense que je lui donnerais l'ensemble de l'indicateur (mais c'est une bonne chose pour jouer).

===

En fait, j'ai un point ici

COMMENT -- aucune autre fonction MQ4 n'est plus facile que celle-ci

très similaire à PRINT ("oooh, forex bluffer, good time to enter at price" ; perfectpriceVariable) ;

c'est-à-dire qu'elle peut être utilisée comme un conseiller TEXTE, un déclencheur, montrant n'importe quelle valeur de variable, etc.

Il suffit de l'ajouter à votre indicateur préféré, puis vous pouvez le faire apparaître et disparaître et vous donner le TRIGGER

-- comparaison avec quelques heures auparavant etc === tous ces codages sont CHILDPLAY

Cependant, si vous avez votre indicateur favori, vous devez d'abord comprendre cet indicateur favori à l'intérieur et à l'extérieur.

par exemple, quel SIGNE vous cherchez, comment la variable va changer

AVANT de pouvoir ajouter une ligne de commentaire (.... ....) [ J'ai un exemple ici dans le ScreenCap ].

J'aimerais juste que plus de gens aiment coder, plutôt que de se plaindre -- en écrivant ceci

==== supposons que "IndicatorShortName" est vraiment une variable dans MQ4

vous pourriez la mettre quelque part en commentaire ("\n", " cette variable a une valeur approximative dans cette barre de bougie est ", IndicatorShortName) ;

ceci dit, vous devez chercher "IndicatorShortName" dans tout l'indicateur MQ4 pour voir ce que c'est ! ! est-ce une variable ou est-ce qu'elle apparaît vraiment dans l'indicateur ou c'est un appel externe -- l'appel externe peut être difficile, les gens écrivent quelque chose comme ça pour que ça ressemble à de la POO

 
coollex:
[lang=de]Merci pour votre réponse rapide.

J'ai un courtier ECN (FXOpen) (5digits). Je pense que vous avez raison concernant le spread. Mais c'est une valeur constante de 102 (=(Ask - Bid)*(1/Point)) et ne change pas tout le temps pendant l'exécution du testeur de stratégie. Pourquoi ? Sur les systèmes réels, le spread change presque en permanence. En outre, pourquoi je n'obtiens pas l'erreur 130 d'OrderSend ?

Merci de votre aide[/lang].

Cela signifie simplement que la première raison n'est pas le problème.

Donc avec la raison 2, le TP est de 1.44743 et le spread est de 102 points. Cela signifie que l'offre doit être à 1,44641 lorsque l'offre atteint le point de contrôle pour sortir de la transaction. D'après l'image de votre graphique, il semble que cela ne se soit pas produit.

N'oubliez pas que les barres sur le graphique sont créées à partir du Bid.

Robert

 

iCustom, indicateur et EA pour ouvrir des ordres

Bonjour à tous,

Je suis nouveau dans la programmation mql.

J'ai une fonction dans indi qui détermine la puissance de toutes les devises. Ce que je veux faire, c'est ouvrir des ordres pour les paires rentables. Pour cela, j'ai une boucle 'for' qui détermine la devise la plus puissante et ensuite une autre boucle 'for' qui détermine la devise la plus faible.

Je suis bloqué sur ce qu'il faut faire dans l'indice qui peut être utilisé plus tard dans l'EA pour ouvrir des ordres de paires rentables...

veuillez vérifier le code de la fonction ci-dessous....

allcurr = toutes les devises

cpow = puissance de la devise

void pro (int allcurr, double cpow)

{

for (allcurr=0; allcurr<CurrencyCount; allcurr++)

{

if (cpow > 150 || cpow >160)

{

for (allcurr=0; allcurr<CurrencyCount; allcurr++)

{

if (cpow > 40 || cpow > 0)

{

I AM STUCK HERE

} // end for weak if

} // end for weak

} // end for max if

} // end for max

} // end void pro
 

iCustom, indicateur et EA pour ouvrir des ordres

Bonjour à tous,

Je suis nouveau dans la programmation mql.

J'ai une fonction dans indi qui détermine la puissance de toutes les devises. Ce que je veux faire, c'est ouvrir des ordres pour les paires rentables. Pour cela, j'ai une boucle 'for' qui détermine la devise la plus puissante et ensuite une autre boucle 'for' qui détermine la devise la plus faible.

Je suis bloqué sur ce qu'il faut faire dans l'indice qui peut être utilisé plus tard dans l'EA pour ouvrir des ordres de paires rentables...

veuillez vérifier le code de la fonction ci-dessous....

allcurr = toutes les devises

cpow = puissance d'une devise

void pro (int allcurr, double cpow)

{

for (allcurr=0; allcurr<CurrencyRepeat; allcurr++)

{

if (cpow > 150 || cpow >160)

{

for (allcurr=0; allcurr<CurrencyRepeat; allcurr++)

{

if (cpow > 40 || cpow > 0)

{

I AM STUCK HERE

} // end for weak if

} // end for weak

} // end for max if

} // end for max

} // end void pro
 

Modification de OrderComment ?

Bonjour,

Existe-t-il un moyen de modifier l'OrderComment, après que l'ordre ait été créé ?

J'ai un EA qui crée des ordres en attente dans des points clés qui sont susceptibles d'être atteints, cependant parfois ces ordres doivent être annulés/supprimés en raison de mouvements rapides indésirables sur les graphiques, il n'est donc pas possible d'utiliser le numéro de ticket pour identifier chaque ordre, parce que chaque ordre de point clé peut être ouvert et annulé/supprimé plusieurs fois, L'EA utilise donc un OrderComment unique pour identifier chaque ordre, mais de temps en temps, l'ordinateur qui exécute l'EA tombe en panne ou la connexion Internet est interrompue, ce qui perturbe l'identification de l'ordre clé et il serait donc utile de modifier l'OrderComment pour éviter les erreurs causées par le désordre qui se crée lorsque l'EA redémarre sans avoir terminé l'exécution précédente.

Très déroutant, non ?

P.S. Le numéro magique est utilisé pour identifier les ordres créés par l'EA, je ne peux donc pas utiliser ce numéro pour identifier chaque ordre individuellement.

Si quelqu'un pouvait me dire s'il existe un moyen de modifier les OrderComments, je l'apprécierais,

Merci d'avance.

 

Je ne sais pas si je vous ai bien compris, mais au moment où vous faites quelque chose avecle tampon de l'indicateur, vous devez réfléchir à la valeur que vous voulez avoir dans ce/ces tampon(s).

Ensuite, regardez ce morceau de code :

if (cpow > 150 || cpow >160)

if (cpow > 40 || cpow > 0)

[/CODE]

this same effect will be when You change it for:

[CODE]

if (cpow > 150)

if (cpow > 0)

edit : Je ne sais pas quel effet vous voulez mais essayez d'utiliser des Arrays - ce sera probablement nécessaire.

Grandes salutations

étudiant polonais de l'informatique depuis avec une grande expérience dans MQL peut code pour vous.

devis par mail : gaa1(at)poczta(dot)fm

Bon marché, bon, rapide && et professionnel.

Raison: