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

 
Valeriy Yastremskiy:

D'une manière générale, il existe deux motivations aux effets opposés. Un SL plus proche réduit la perte et rend la probabilité de conclure sur le SL plus élevée. Si le SL sera proche par rapport à la volatilité, alors bien sûr votre option est meilleure, si à un niveau normal et en remontant le SL n'affectera pas la fréquence de déclenchement, alors la mienne.

Vous êtes déjà dans le domaine de la stratégie ;) apprenez-moi à mettred'abord 1 bu et ensuite à le déplacer.

 
VVT:

Vous êtes déjà entré dans le domaine de la stratégie ;) apprenez-moi comment fixerd'abord 1 houlette et ensuite la déplacer.

D'un côté, vous avez raison - vous pouvez vous arrêter à un seul seuil de rentabilité et écrire un code uniquement pour celui-ci. Mais, à mon avis, si vous n'avez initialement aucune idée de la manière dont un stop suiveur doit fonctionner en général, ce n'est pas la meilleure option. En outre, presque tous les conseillers experts sont rédigés sur la base d'une stratégie clairement définie. Comme on dit dans ces cas-là, "il faut se mettre d'accord sur la côte".

J'ai l'impression de "réveiller" à nouveau le programmeur.

Salutations, Vladimir.

 
Vasiliy Sokolov:

C'est ce que j'ai compris. Vous avez deux fonctions de repositionnement des trailing stops. La première déplace le stop-loss de suivi vers le seuil de rentabilité, guidé par le paramètre "Trailing level", la seconde fonction tire le stop-loss plus loin derrière le prix, guidé par le paramètre "Trailing step". À mon avis, j'appellerais le premier paramètre "Stop Loss Breakeven Level" - parce qu'il ne s'agit pas d'un stop loss de suivi mais plutôt d'un transfert de stop loss.

Oui, Vasily, c'est ça ! Vous avez bien compris et formulé mon idée d'un trailing stop. Le paramètre aurait dû avoir le même nom depuis le début : "Niveau de stop loss de suivi jusqu'au seuil de rentabilité". Ma terminologie n'est toujours pas parfaite. Merci !

Sincèrement, Vladimir.

 
MrBrooklin:

D'un côté, vous avez raison - vous pouvez vous arrêter à un seul seuil de rentabilité et écrire un code uniquement pour celui-ci. Mais, à mon avis, si vous n'avez au départ aucune idée de la manière dont un stop suiveur doit fonctionner en général, ce n'est pas la meilleure option. En outre, presque tous les conseillers experts sont rédigés sur la base d'une stratégie clairement définie. Comme on dit dans ces cas-là, "nous devons nous mettre d'accord sur la côte".

J'ai l'impression de " réveiller " à nouveau le programmeur.

Salutations, Vladimir.

Bonjour ! Si vous apprenez à déplacer le Stop Loss pas à pas une fois, vous pourrez le déplacer 100 fois plus tard, si nécessaire, si vous avez assez de place pour cela ;)

Le conseiller expert s'adapte à la stratégie, et non l'inverse.

 
MrBrooklin:

Oui, Vasily, tout à fait exact ! Vous avez bien compris et formulé mon idée d'un trailing stop. À l'origine, le paramètre devait s'appeler "Niveau de seuil de déclenchement de la perte de suivi". Ma terminologie n'est toujours pas parfaite. Merci !

Sincèrement, Vladimir.


Bonjour, Vladimir. Regardez ce post. Vous pouvez modifier les chaluts à partir du niveau de profit et ne pas vous embêter avec le niveau de transfert dédié au seuil de rentabilité.
https://www.mql5.com/ru/forum/352460/page55#comment_18711100
 
Aleksey Masterov:

Bonjour, Vladimir. Jetez un coup d'œil à mon article. Là, dans les chaluts, vous pouvez modifier le niveau de profit et ne pas vous embêter avec le niveau de transfert mis en évidence pour atteindre le seuil de rentabilité.
https://www.mql5.com/ru/forum/352460/page55#comment_18711100

Bonjour Alexey ! Désolé de ne pas avoir réagi immédiatement à votre message. Ce lien est très intéressant. J'ai parcouru les 11 codes de queue et les bibliothèques de fonctions. Tout cela est très intéressant, même si c'est écrit en MQL4. Pour être honnête, je n'avais jamais imaginé qu'il existait autant de types de trailing stops. Merci beaucoup pour votre soutien !

Sincèrement, Vladimir.

 

Bonjour à tous et bonne humeur !

Je continue à apprendre le langage de programmation MQL5. En prenant en compte les corrections de Vasily Sokolov, l'algorithme de trailing Stop Loss sur les positions ouvertes se présente maintenant

comme suit :
  1. Créez un EA pour automatiser le travail de suivi (tracking) du niveau de Stop Loss d'une position ouverte.
  2. Dans le conseiller expert, créez un bloc de paramètres d'entrée avec deux paramètres : "Niveau de Stop Loss à Breakeven" et "Trailing Step".
  3. Lorsque de nouvelles cotations arrivent, traitez-les en utilisant OnTick( ). Le suivi ne s'arrête que lorsqu'un nouveau tick apparaît sur le symbole actuel.
  4. Nous demandons les données au moment de la réception de l'événement OnTick.
  5. Pour chaque position d'achat
  6. , nous déterminons où se situe le prix actuel par rapport au prix de la position ouverte.
  7. Si le prix actuel est supérieur au prix de la position ouverte, nous vérifions à quel niveau il a augmenté.
  8. Si le prix actuel a atteint le niveau "Stop Loss sans perte" spécifié dans les paramètres d'entrée, nous déplaçons le Stop Loss à un niveau sans perte égal au prix d'ouverture de la position d'achat. Sinon, nous ne faisons rien.
  9. Si le prix actuel a dépassé le "Niveau de seuil de déclenchement de la perte" d'une valeur égale au "Stop suiveur", le Stop Perte est déplacé du niveau de prix d'ouverture de la position d'achat d'une valeur égale au "Niveau de Stop suiveur" et ainsi de suite, jusqu'à ce que le prix atteigne le niveau de Prise de Profit, défini pour cette position
  10. .
  11. Si le prix tourne et atteint le niveau duStop Loss, la position est fermée
. [ Version simplifiée de la description du trailing stop de Vasily Sokolov :
  1. le trailing stop est traité à l'apparition d'un nouveau tick dans la fonction OnTick
.
  1. Trailing Stop se compose de deux parties consécutives :
  2. Partie 1
  3. .
  4. Pour chaque position ouverte
  5. , le prix est calculé, et dès qu'il est atteint, son stop-loss est déplacé vers le Breakeven.
  6. Partie 2. Une fois que le stop loss a été déplacé vers le breakeven, l'algorithme du stop pull-up est activé pour la position active, en suivant le prix.

Vous devez ensuite suivre le modèle suivant :

Partie 1. Breakeven :
  • Acheter ;
  • vendre ;
Partie 2. Pulling Stop :
  • Pour acheter ;
  • Pour vendre ;

Cette variante de l'algorithme du Trailing Stop Loss de la position ouverte est définitive

, et je continue à écrire le code du programme en le suivant.

Salutations, Vladimir.

 
VVT:

Si vous apprenez à déplacer le seuil de déclenchement étape par étape une fois, vous pouvez le déplacer 100 fois si nécessaire, tant qu'il y a de la place pour cela ;)

Le conseiller expert s'adapte à la stratégie, et non l'inverse.

Bonjour ! J'ai déjà mentionné dans mon post précédent que vous avez raison dans votre jugement. Le fait est qu'avec l'aide de Vasily Sokolov, j'ai assez rapidement formé un algorithme de trailing Stop Loss dans une position ouverte, donc je vais le suivre.

Salutations, Vladimir.

 
Vous avez une approche intelligente de la rédaction de l'Expert. Et vous n'aurez pas besoin d'un marché.
 

Je continue à apprendre le langage de programmation MQL5. Précédemment j'ai publié le code de la boucle qui démarre l'énumération des postes ouverts. Maintenant, une fois que la boucle a été lancée, nous commençons à travailler avec le symbole sur le graphique actuel :

     {
     /* Для работы с символом создадим переменную _Symbol, в которой будем хранить имя символа текущего графика.
        Делаем запрос на сервер. Сервер возвращает нам символ соответствующей открытой позиции и автоматически
        выбирает позицию для дальнейшей работы с ней при помощи функций PositionGetDouble, PositionGetInteger,
        PositionGetString. Если получим от сервера ответ о том, что для текущего символа была выбрана позиция для 
        дальнейшей работы с ней, то в торговом терминале выводим соответствующее сообщение во вкладке "Эксперт".*/
      if(_Symbol==PositionGetSymbol(i))
         Print("Выбираем позицию для дальнейшей работы с ней"); //
     }

Je posterai périodiquement le code écrit avec mes propres commentaires pour fournir un retour rapide. Je demande aux participants de ce sujet de me corriger, s'il y a des inexactitudes dans mon code ou mes commentaires.

Salutations, Vladimir.