Comment coder ? - page 41

 

Plus d'EA

On ne peut télécharger que 5 ea.s à la fois.

Dossiers :
kehedge.mq4  12 kb
 

Comment écrire "Si la dernière transaction était gagnante" ?

Dans un EA comment écrire "Si la dernière transaction était gagnante" (pour cette paire) alors ...

Merci pour votre aide.

Jo

 

à propos de MarketInfo()

bonjour à tous !

//

double A = MarketInfo("EURUSD",MODE_BID) ;

doube B = MarketInfo("USDJPY",MODE_BID) ;

double C = MarketInfo("EURJPY",MODE_BID) ;

init()

{

A = MarketInfo("EURUSD",MODE_BID) ;

B = MarketInfo("USDJPY",MODE_BID) ;

C = MarketInfo("EURJPY",MODE_BID) ;

}

int start()

{

...

}

//

pourquoi ces codes ne fonctionnent pas ? quand ils sont conformes, il y a beaucoup d'erreurs :

'MarketInfo' - initialisation attendue

'A' - variable non définie ...

.....et ainsi de suite

 

Ceci a fonctionné pour moi

Jovager:
Dans un EA comment écrire "Si la dernière transaction était gagnante" (pour cette paire) alors ...

Merci pour votre aide.

Jo

double LotsOptimised()

{

double lots = InitialLots;//lots par défaut 0.1 - il n'y aura pas d'erreur si les lots ne sont pas définis par l'autre partie du code

// int total = OrdersHistoryTotal() ;

for(int i=0;i<OrdersHistoryTotal();i++) // analyse toutes les transactions fermées / annulées

{

OrderSelect(i, SELECT_BY_POS, MODE_HISTORY ) ;

if(OrderSymbol() == Symbol()&& OrderMagicNumber()==MagicNumber)

{

si(OrderProfit()<0)

{

lots = NormalizeDouble(OrderLots() * LotsFactor,2) ;

}

sinon

{

lots=LotsInitiaux ;

}

}

}

return(lots) ;

}

Je l'ai utilisé pour vérifier si la dernière transaction fermée était gagnante ou non. Si ce n'est pas le cas, je martingale les lots. J'espère que cela vous aidera.

 
Sendra:
Bonjour à tous

J'ai essayé de créer un EA, et j'ai obtenu le message d'erreur suivant :

'\end_of_program' - parenthèse finale '}' attendu C:\...\My_First_EA.mq4(96,1)

J'ai double-cliqué dessus, je suis arrivé à la ligne, puis je l'ai vérifiée avec les crochets d'ouverture-fermeture qui la précèdent, et je ne sais toujours pas où j'ai fait l'erreur.

C'est le deuxième EA que j'ai essayé, avec le même message d'erreur, basé sur le même indicateur.

Merci.

Sendra, envoyez le programme à mon adresse e-mail en pièce jointe et je l'examinerai pour essayer de le corriger. Normalement, le problème est l'absence d'une parenthèse après une instruction. Malheureusement, il s'agit d'un langage de bas niveau et comme il s'agit d'un langage de base, il ne peut pas souvent vous dire exactement où se trouve l'erreur, donc il se contente par défaut de l'erreur qu'il vous montre. Seule l'expérience du codage peut aider à résoudre ce type d'erreur.

Dave

<<<

ddiebold7@aol.com

 

Ralph, AIDE avec une logique de clôture quotidienne

Bonjour Ralph.

Peut-être, si vous le voulez bien, pourriez-vous me donner quelques conseils. Cela a été un peu un défi pour moi de comprendre ! Je veux définir certaines conditions que l'EA doit examiner pour déterminer si oui ou non il faut fermer une transaction ouverte. Prenons l'exemple d'un ordre d'achat (je sais que l'ordre de vente relève de la logique inverse). J'ai donc un ordre d'achat ouvert un lundi. Je veux que l'EA examine la clôture quotidienne au cours des X jours suivants. Si la clôture quotidienne de chacun des X jours suivants (disons 5 jours par exemple) est inférieure au prix d'ouverture de l'ordre de la transaction, alors je veux que l'EA exécute un OrderClose pour liquider la transaction. J'ai également pensé qu'une autre partie de cette condition que je pourrais vouloir que l'EA examine est si la clôture quotidienne de chacun des X jours suivants est inférieure à la clôture du jour précédent. De plus, mon EA fonctionne sur une échelle de temps d'une heure.

J'espère avoir expliqué ce que je veux accomplir assez clairement pour que vous puissiez comprendre.

Merci d'avance pour votre aide.

 

Aide au codage, s'il vous plaît

Je ne demande pas le codage d'un EA, juste un peu d'aide pour un problème.

Ce que je voudrais coder est le suivant : si j'ai un ordre long ouvert, je veux pouvoir appeler le prix le plus élevé que l'ordre a vu depuis l'ouverture de cet ordre long spécifique. Évidemment, lorsque l'ordre est ouvert pour la première fois, le prix d'ouverture est renvoyé. Si l'ordre augmente de 20 pips, le prix de OrderOpenPrice() + 20 pips sera renvoyé. Si le prix diminue ensuite de 10 pips, le prix OrderOpenPrice() + 20 sera toujours la valeur renvoyée. Je sais que cela peut être fait dans une barre spécifique en utilisant OrderOpenPrice() + High[0], mais lorsqu'une nouvelle barre est formée, High[0] devient High[1]. Je vais également utiliser la même logique en sens inverse pour renvoyer la valeur la plus basse qu'un ordre à découvert spécifique a vue. Lorsque l'ordre se ferme, les valeurs renvoyées sont remises à zéro.

J'ai du mal à comprendre ce problème, quelqu'un peut-il m'aider ?

Je vous remercie !

 

Sauvegardez la plus haute valeur de cotation de la barre actuelle dans une variable. Chaque fois que vous obtenez une nouvelle cotation, comparez-la avec la valeur de la variable. Si la nouvelle valeur est supérieure, enregistrez-la dans la variable. Si la nouvelle valeur est inférieure, gardez la même variable.

if(variable < newquote)

variable = nouvelle citation ;

J'espère que cela vous aidera !

 
jimven:
Enregistrez la plus haute valeur de cotation de la barre actuelle dans une variable. Chaque fois que vous obtenez une nouvelle cotation, comparez-la avec la valeur de la variable. Si la nouvelle valeur est supérieure, enregistrez-la dans la variable. Si la nouvelle valeur est inférieure, gardez la même variable.

if(variable < newquote)

variable = newquote ;

J'espère que cela vous aidera !

Merci pour votre aide, j'ai cependant une question. Que se passe-t-il lorsque la barre actuelle n'est plus la barre dans laquelle l'ordre s'est ouvert ? Que se passe-t-il si l'ordre s'est ouvert dans la barre il y a 5 barres ? Maintenant, je veux la valeur cotée la plus élevée des 5 barres, le prix coté le plus élevé depuis l'ouverture de l'ordre. Cela fonctionnera-t-il encore ?

Merci

Raison: