Comment coder ? - page 131

 

Perte des valeurs des variables de l'EA lors de la fermeture de MT4

Bonjour à tous,

J'ai cherché et essayé un certain nombre de solutions à ma question, mais je n'en trouve aucune qui fonctionne.

Je programme un EA et les transactions sont gérées par leurs numéros de tickets. Les numéros de tickets sont stockés dans une variable int. Cela fonctionne bien dans Strategy Tester ou sur un MT4 continu et ininterrompu, mais si vous fermez MT4, bien sûr les tickets sont perdus et quand MT4 se recharge, les numéros de tickets ont été perdus, donc l'EA ne sait pas quels trades sont actuellement ouverts et commence à en ouvrir de nouveaux. Même si les ordres en attente ou ouverts sont déjà en cours de négociation.

J'espère que cela a un sens.

J'ai essayé les variables statiques et je connais les variables globales, mais je préférerais ne pas les utiliser, car chaque numéro de ticket et chaque variable doit être propre au graphique TF et au symbole sur lequel l'EA est exécuté.

Quelqu'un a-t-il une solution simple ? Je sais que vous pourriez probablement exporter les numéros de tickets dans un fichier que l'EA peut ensuite ouvrir et lire, mais cela semble être un long chemin. Je teste actuellement une autre solution, pas si simple, qui consiste à utiliser la fonction SELECT_BY_POS au démarrage du programme, en recherchant chaque transaction dont le numéro magique est le même, mais cela ne permet pas d'utiliser toutes les fonctionnalités de l'EA, car il m'arrive de lancer deux achats en même temps et il est difficile d'identifier lequel est lequel.

Merci pour toute réponse.

 
mach_one_man:
Bonjour à tous,

J'ai cherché et essayé un certain nombre de solutions à ma question, mais je n'en ai trouvé aucune qui fonctionne.

Je programme un EA et les transactions sont gérées par leur numéro de ticket. Les numéros de tickets sont stockés dans une variable int. Cela fonctionne bien dans Strategy Tester ou sur un MT4 continu et ininterrompu, mais si vous fermez MT4, bien sûr les tickets sont perdus et quand MT4 se recharge, les numéros de tickets ont été perdus, donc l'EA ne sait pas quels trades sont actuellement ouverts et commence à en ouvrir de nouveaux. Même si les ordres en attente ou ouverts sont déjà en cours de négociation.

J'espère que cela a un sens.

J'ai essayé les variables statiques et je connais les variables globales, mais je préférerais ne pas les utiliser, car chaque numéro de ticket et chaque variable doit être propre au graphique TF et au symbole sur lequel l'EA est exécuté.

Quelqu'un a-t-il une solution simple ? Je sais que vous pourriez probablement exporter les numéros de tickets dans un fichier que l'EA peut ensuite ouvrir et lire, mais cela semble être un long chemin. Une autre solution, pas si simple, que je suis en train de tester, consiste à utiliser la fonction SELECT_BY_POS au démarrage du programme, en recherchant chaque transaction ayant un numéro magique identique, mais cela ne permet pas d'utiliser toutes les fonctionnalités de l'EA, car il m'arrive de lancer deux achats en même temps et il est difficile d'identifier lequel est lequel.

Merci pour toutes les réponses.

Au lieu de numéros de tickets, essayez de garder la trace de vos ordres en utilisant des numéros magiques. C'est le meilleur moyen que j'ai trouvé.

 
FerruFx:
Modifier comme ceci :

if(Show_Settings) subPrintDetails() ; else Comment("") ;

FerruFx

Merci beaucoup ! Je vais le tester dimanche soir. J'apprécie vraiment votre aide ! Passez un bon week-end !

Dave

 

Modification de l'EA

Bonjour

J'apprécierais beaucoup si quelqu'un pouvait m'aider. Il y a cet EA que j'ai obtenu d'un autre forum FX. Il a l'air génial mais j'apprécierais que quelqu'un puisse m'aider à y apporter quelques modifications.

J'ai essayé le peu que je pense savoir mais il continue à me donner des erreurs de parenthèses déséquilibrées e.t.c.

L'EA ouvre 5 lots et prend des profits d'un lot chacun à une valeur incrémentale spécifiée (disons 50 points/pips). Il ferme donc 1 lot chaque fois que le profit augmente d'un nombre spécifié et permet finalement au cinquième/dernier lot de fonctionner jusqu'à ce qu'il y ait un signal opposé.

Modifications :

Je veux qu'il ouvre seulement 3 lots,

Ferme 1 lot chaque fois que le profit augmente d'un nombre spécifié de pips.

Une fois que les deux premiers points de prise de bénéfices ont été atteints, un stop suiveur doit être utilisé pour le troisième.

Illustration :

3 lots

Point TP incrémentiel = 40 pips

1er lot TP = 40, stoploss déplacé à BE

2ème lot TP= 80

3ème lot = Trailing stop activé

Tout le reste est déjà dans l'EA, mais j'ai juste besoin de changer la taille du lot et d'ajouter un trailing stop.

Merci

Dossiers :
stoch_ac.txt  7 kb
 
Dave137:
Merci beaucoup ! Je vais le tester dimanche soir. J'apprécie vraiment votre aide ! Passez un bon week-end ! Dave

De rien, Dave. Profitez de votre dimanche !

FerruFx

 

tracer une ligne et dessiner une flèche haut/bas sur une bougie

J'essaie de programmer un indicateur très simple pour dessiner une ligne et une flèche vers le haut ou le bas sur une bougie.

Je n'arrive pas à comprendre comment utiliser les styles, l'index, le dessin, etc.

J'ai une instruction if très simple à l'intérieur de Start(), alors que dois-je ajouter avant Start(), et à l'intérieur du if de Start(), pour dessiner une ligne, une flèche vers le haut et une flèche vers le bas ?

Merci.

 
MoreYummy:
J'essaie de programmer un indicateur très simple qui dessine une ligne et une flèche vers le haut ou vers le bas sur une bougie.

Je n'arrive pas à comprendre comment utiliser ces styles, ces index, ces dessins, etc.

J'ai une instruction if très simple à l'intérieur de Start(), alors que dois-je ajouter avant Start(), et à l'intérieur du if de Start(), pour dessiner une ligne, une flèche vers le haut et une flèche vers le bas ?

Merci.

Avant d'essayer de dessiner avec certaines conditions dans la fonction Start(), vous devez définir/initialiser les buffers[].

Coder un indicateur n'est pas un travail simple. Vous devrez peut-être apprendre quelques bases du codage mql.

Je vous souhaite le meilleur dans votre processus d'apprentissage.

FerruFx

 

aide

Bonjour, chers collègues programmeurs,

J'ai un EA qui traite l'EURUSD lorsque je l'attache au graphique EURUSD. La question est la suivante : comment puis-je négocier plusieurs paires sans avoir à attacher mon EA à plusieurs graphiques ?

Quelque chose comme ceci ?

string pairs = "GBPUSD;EURUSD;USDCHF;USDJPY;USDCAD;GBPJPY;EURJPY;GBPCHF;EURAUD;EURCHF;EURGBP;AUDUSD;CHFJPY" ;

Merci d'avance,

LF

 

Ayez votre code pour négocier une paire spécifique lorsque vous envoyez votre ordre, c'est très simple, directement dans la documentation.

 

Utilisez un tableau au lieu d'une chaîne de caractères, puis bouclez dans le tableau en plaçant un ordre pour chaque paire à chaque itération. Si vous n'avez jamais utilisé de tableaux auparavant, consultez le fichier d'aide. C'est assez simple.

Bonne chance

Lux

Raison: