Auto-apprentissage du langage MQL5 à partir de zéro - page 53

 
SanAlex:

Partie 3.


Vos dérapages sont un mauvais ton ici. Emballez le tout dans une pièce jointe
 
MrBrooklin:

Oui, Alexey, j'ai déjà vu ce code. C'est sous la forme d'un fichier d'inclusion. Pour être honnête, je n'y ai rien trouvé concernant le symbole, bien que je l'aie parcouru plusieurs fois. J'ai peut-être mal compris quelque chose ou je cherche mal.

Sincèrement, Vladimir.


Je vous répondrai dans la soirée. J'utilise la bibliothèque de chaluts et leurs types fournie par Yury Dzyuban sans aucun problème dans les robots de trading et que j'utilise sur MT4 jusqu'à présent.
Les approches y sont les mêmes que sur MT5.
 
Aleksey Masterov:

Votre façon de faire ici est un mauvais ton. Emballez le tout dans une pièce jointe

J'ai appris un nouveau mot pour moi - mauvais ton.

(Mauvaises manières ; comportement, manières et conduite considérés comme inappropriés, indécents, inacceptables dans une société donnée ; mauvais, mal élevé).



 
SanAlex:

J'ai appris un nouveau mot pour moi-même : la convoitise.

("mauvaises manières" ; comportement, manières et actions considérés comme inappropriés, indécents, inacceptables dans une société donnée ; mauvais, mal élevé).




Vos dérapages ne sont d'aucun intérêt pour quiconque ici. Il est d'usage de le poster en pièce jointe, si vous le postez de cette façon, cela ne signifie pas que plus de personnes prendront la peine de le lire...

Cela empêche de lire le fil de discussion et de répondre à la question.
 
Aleksey Masterov:

Personne ici ne s'intéresse à vos gribouillages. Il est d'usage de les poster en pièce jointe, si vous le faites, cela ne veut pas dire que plus de personnes qui veulent les lire...
.

Cela empêche de lire le fil de discussion et de répondre au sujet.

Je ne vous gênerai pas pour communiquer !

------------------------------------

bien que vous auriez pu ramasser quelque chose dans ces lambeaux...

 
Fast235:

i est égal au nombre de postes ouverts, donc beaucoup de cycles seront avec impression

Vous devez enlever le signe "=" dans la raison pour laquelle vous devez passer par la boucle lorsque le nombre de positions ouvertes est de 0. Sur cet appel nul, la deuxième impression est sortie.

Bonjour ! Merci beaucoup ! Maintenant je ne comprends pas pourquoi je pensais que le cycle commençait à "0" au lieu de "1". Pour faire court, je devrais arrêter d'étudier le soir, comme je le faisais dans ma jeunesse.

Salutations, Vladimir.

 
Aleksey Masterov:

Je vous répondrai dans la soirée. Avec la bibliothèque des chaluts et de leurs types de Yu. Dzyuban, qui fonctionne sur les robots de combat sans aucune question et que j'utilise en ce moment sur MT4.
Les approches sont les mêmes que sur MT5.

Bonjour Aleksey, je vous serai très reconnaissant pour toute aide.

Sincèrement, Vladimir.

 
MrBrooklin:

Ainsi, sur la base de la littérature que j'ai lue, j'ai écrit un court algorithme pour créer un Expert Advisor avec la fonction trailing stop :

  1. Créons un Conseiller Expert pour automatiser le travail de suivi (tracking) du niveau de Stop Loss d'une position ouverte avec des niveaux de Take Profit et Stop Loss déjà spécifiés. Et quelle est la différence si les niveaux Take Profit et Stop Loss sont déjà définis pour la position ou non ? Si le niveau de stop n'est pas spécifié, il sera fixé par l'Expert Advisor ; s'il l'est, il sera transformé en un nouveau niveau selon l'algorithme. Le Conseiller Expert sera indifférent au niveau de prise de profit de la position.
  2. Dans l'Expert Advisor, créez un bloc de paramètres d'entrée avec deux paramètres : " Niveau du Trailing Stop" et "Etape du Trailing". En fait, nous parlons de deux algorithmes en un : le premier déplace le stop jusqu'au Breakeven, le second le suit plus loin dans le mouvement. Dans la zone négative, le stop n'est pas trailing.
  3. Lorsque de nouvelles cotations arrivent, nous les traitons en utilisant OnTick( ). Le suivi ne fonctionne que lorsqu'un nouveau tick apparaît pour le symbole actuel.
  4. Créons et exécutons une boucle pour rechercher toutes les positions.
  5. Si nous ne trouvons soudainement aucune position ouverte, nous retournons à la boucle
  6. Rafraîchissons les citations. Il n'est pas nécessaire de mettre à jour quoi que ce soit. L'environnement commercial est mis à jour automatiquement. Nous avons juste besoin de demander les données au moment de l'événement OnTick.
  7. S'il y a un poste ouvert, nous continuons. Pourquoi tous ces détails du point 4 au point 7 ? Au lieu de cela, nous devrions écrire simplement : Pour chaque position d'achat, nous définissons... et ensuite du point 9
  8. Déterminer le type de position ouverte : Acheter ou Vendre.
  9. Si la position est achetée, nous définissons où se situe le prix actuel par rapport au prix de la position ouverte.
  10. Si le prix actuel est supérieur au prix de la position ouverte, nous vérifions son niveau.
  11. Si le prix actuel a atteint le niveau de suivi spécifié dans les paramètres d'entrée, nous déplaçons le Stop Loss au niveau sans perte égal au prix d'ouverture de la position d'achat. Sinon, nous ne faisons rien.
  12. Si le prix actuel a dépassé le niveau du Trailing Stop de la valeur égale au niveau duTrailing Stop, leStop Loss est déplacé du niveau du prix d'ouverture de la position d'achat de la valeur égale au niveau du Trailing Stop et ainsi de suite jusqu'à ce que le prix atteigne le niveau du Take Profit spécifié pour cette position .
  13. Si le prix tourne et atteint le niveau duStop Lossdéjà déplacé , la position est fermée .
  14. (Une description similaire suit pour un poste de Sell.)
  15. Si la position Sell est ouverte, nous définissons où se trouve le prix actuel par rapport au prix de la position ouverte.
  16. Si le prix actuel est inférieur au prix de la position ouverte, nous vérifions à quel niveau il est tombé.
  17. Si le prix actuel a atteint le niveau de suivi spécifié dans les paramètres d'entrée, nous déplaçons le Stop Loss vers le niveau sans pertes égal au prix d'ouverture de la position de vente. Sinon, nous ne faisons rien.
  18. Si le prix actuel a dépassé le niveau du Trailing Stop Loss de la valeur égale à l'étape du Trailing Stop Loss, le Stop Loss sera déplacé du niveau de la position de vente d'ouverture de la valeur égale au niveau du Trailing Stop et ainsi de suite jusqu'à ce que le prix atteigne le niveau du Take Profit spécifié pour cette position.
  19. Si le prix tourne et atteint le niveau du Stop Loss déjà déplacé, la position est fermée.


J'ai fait quelques corrections

 
Voici une version simplifiée de la description de la traînée :
  1. Les trailing stops sont traités lorsqu'un nouveau tick est reçu, dans la fonction OnTick.
  2. Un stop suiveur se compose de deux parties consécutives :
  3. Partie 1. Pour chaque position ouverte, le prix est calculé, et lorsqu'il est atteint, son stop-loss est déplacé vers le Breakeven.
  4. Partie 2. Après que le stop loss ait été déplacé vers le breakeven, l'algorithme de stop pulling suivant le prix est activé pour la position active.

Je ne décrirai pas en détail les algorithmes de transfert des arrêts pour les parties un et deux. Vous les avez déjà correctement décrits en général. Si vous les décrivez, vous devez continuer à suivre le modèle :

Partie 1. Le seuil de rentabilité :
  • Pour avoir acheté ;
  • A vendre ;
Partie 2. J'ai remonté l'arrêt :
  • Acheter ; Vendre ;
  • Pour vendre ;
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
MrBrooklin:

Bonjour Alexey, je vous serais très reconnaissant de toute aide que vous pourriez m'apporter.

Salutations, Vladimir.

Vous avez deux erreurs majeures dans votre description du RPT :

1. Tu t'attardes trop sur les détails de bas niveau. Pourquoi, par exemple, écrire (de manière incorrecte, d'ailleurs) "vous devez revenir à la boucle si aucune position n'est trouvée". S'il n'y a pas de postes, il n'y aura rien à traiter. Il n'est pas nécessaire de revenir à la boucle, il suffit de sortir et d'attendre un nouveau tic-tac, peut-être que quelque chose y apparaîtra, peut-être pas. Vous n'avez pas besoin de décrire des cas de "et si...". - Il existe un nombre infini de cas de ce type, vous ne pouvez pas tous les décrire. Au lieu de cela, concentrez-vous sur les "et si".

2. Les TDR montrent clairement une volonté de cohérence. Ne faites pas cela. Passez du général au spécifique :"J'ai besoin d'un stop qui a) se transfère au Breakeven, et b) lorsqu'il est transféré au Breakeven, il est remonté par le chalut. Les règles de transfert au Breakeven et de remontée du stop, jointes ci-dessous..." . - Je vous assure qu' un tel TOR sera compris par n'importe quel programmeur indépendant, et pour lui, le programmeur, un tel TOR sera beaucoup plus facile et plus clair que de comprendre des cycles, qui reviennent à eux-mêmes, s'il n'y a pas de position, etc.