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

 
MrBrooklin:

Si le manuel de référence du langage de programmation MQL5 l'avait tout de suite écrit comme ça :

alors il n'y aurait pas tant de questions inutiles. Au moins, les débutants auraient moins de questions.

Sincèrement, Vladimir.

Tout y est bien écrit. S'il n'y a pas de parenthèses, l'instruction for fait uniquement référence à l'expression suivante.
Vous n'êtes pas stupide, essayez de trouver quelqu'un de votre âge, qui étudiera la programmation à partir de zéro.
 
Aliaksandr Hryshyn:
Tout y est bien écrit. S'il n'y a pas de parenthèses, cela signifie que l'opérateur for se réfère uniquement à l'expression suivante.
Et ne dites pas qu'il est stupide, essayez de trouver quelqu'un de votre âge qui apprendra la programmation en partant de zéro.

Vladimir n'a pas dit qu'il était muet, il a du mal parce que la méthode d'apprentissage express limitée dans le temps n'est pas facile.

Il s'est emparé des "outils" sans lire et comprendre le "mode d'emploi", et on lui en avait déjà parlé ; en ayant compris la syntaxe, il serait beaucoup plus facile de reconstituer le "puzzle".

Et il n'est jamais trop tard pour apprendre, si on le veut, il y a des exemples de défense d'un dessert ou d'apprentissage de langues étrangères à 65 ans, par exemple...

 
MrBrooklin:

Igor, le désir d'apprendre le langage MQL5 n'a pas disparu, au contraire, il n'a fait que s'intensifier. Je suis juste déchiré, pourquoi je suis si bête et ne peux pas comprendre les choses simples avec cet opérateur de boucle.

Vous n'êtes pas idiot, mais impatient. Vous essayez d'apprendre "la langue anglaise" avec un dictionnaire - vous essayez de mettre des mots étrangers dans les combinaisons que vous voulez, sans tenir compte du fait que les structures linguistiques peuvent être différentes.

Je veux dire, vous devez apprendre la syntaxe et les bases de la programmation en C, mais vous ne serez pas capable d'écrire quoi que ce soit d'utile ..... Outre ce "mystérieux" pour déclaration, il y aura un malentendu... par exemple, la portée des variables ? - comprendre ce que c'est ? - Ce n'est pas difficile, mais vous devez comprendre ce que la machine voit lorsqu'elle lit votre programme.


Je ne sais pas quel tutoriel je peux te conseiller. Je regarde parfois des trucs pointus icihttps://metanit.com/sharp/tutorial/1.1.php.

il y a aussi C et C++https://metanit.com/cpp/

Si vous l'utilisez, vous pouvez sauter les sections sur les pointeurs, les classes et la POO. Vous n'avez pas besoin de l'apprendre, vous devez juste organiser (systématiser) vos connaissances.

 
MrBrooklin:

Igor, le désir d'apprendre le langage MQL5 ne se perd pas, au contraire, il ne fait qu'augmenter. Je suis juste déchiré, pourquoi je suis si bête et ne peux pas comprendre des choses simples avec cet opérateur de boucle. L'essentiel est que, sans l'opérateur de boucle, le code fonctionne parfaitement, mais qu'avec la boucle, c'est un désordre complet. Je vais quand même aller au fond des choses. Cependant, j'ai beaucoup moins de temps pour l'auto-apprentissage depuis que la période de quarantaine est terminée et j'ai de rares moments au travail où je peux étudier la langue. La plupart du temps, j'étudie la langue le soir et tard dans la nuit.

Je dois résoudre deux tâches pour pouvoir enfin écrire le code du Trailing Stop :

  1. J'ai besoin d'écrire un code avec l'utilisation de l'opérateur for loop pour rechercher toutes les positions ouvertes pour tous les symboles, et s'il n'y en a pas, alors ouvrir une position d'achat entre 09:00:00 et 09:01:00, et la fermer de force à 23:50:00, si pendant la journée de trading un stop loss ne s'est pas déclenché. Sans l'opérateur for loop, comme je l'ai écrit précédemment, tout fonctionne parfaitement. Je veux maintenant obtenir le même résultat, mais en utilisant une boucle.
  2. Ecrivez 2 fonctions qui déterminent la direction de l'ouverture de la position par le premier tick qui apparaît dans le cadre temporel de 09:00:00 à 09:01:00. Si le premier tick est à la hausse, une position d'achat doit être ouverte ; si le premier tick est à la baisse, la position de vente doit être ouverte en conséquence. Ce n'est pas une stratégie, c'est juste mon "envie" de ne pas utiliser la condition aléatoire.
Cordialement, Vladimir.
Cela ressemble déjà un peu à un cahier des charges. C'est l'objectif. Maintenant, l'algorithme de solution doit être formulé étape par étape.
Si quelque chose n'est pas clair, veuillez demander. Parfois, les choses simples prennent plus de temps que les choses compliquées.
 
VVT:

Vladimir n'a pas dit qu'il était stupide, il a du mal parce que la méthode d'apprentissage express limitée dans le temps n'est pas facile.

Il s'est emparé des "outils" sans lire et comprendre le "mode d'emploi", on lui a déjà dit qu'en ayant compris la syntaxe, il sera beaucoup plus facile de reconstituer le "puzzle".

Et il n'est jamais trop tard pour étudier, si on en avait l'envie, il existe des exemples de défense d'un dessert ou d'étude de langues étrangères à 65 ans, par exemple...

Nous devons appeler chaque chose par son nom propre - en ce moment, je suis aussi bête qu'un bouchon en programmation ! Je ne comprends pas les choses élémentaires. Bien que, dans le domaine de l'électronique, les connaissances que j'ai acquises dans ma jeunesse m'aident encore à réparer, par exemple, un bouton de radio à distance d'une sonnette. Le week-end dernier, j'ai utilisé un multimètre et la loupe de mon grand-père pour trouver un condensateur CMS défectueux de dimensions microscopiques. Il a montré une panne, un court-circuit ou "koza", comme on l'appelait autrefois de l'abréviation de court-circuit. Court-circuit. Voici une photo du condensateur SMD "perforé" avec un grossissement de 4X sur un smartphone et un traitement ultérieur dans Paint, car c'est un élément trop microscopique.


J'ai décidé de m'écarter un peu du sujet et de montrer au moins quelque chose !

Et concernant le désir d'apprendre le langage, je l'ai, ainsi que l'espoir de maîtriser les bases de la programmation.

Salutations, Vladimir

 
Igor Makanu:

vous n'êtes pas idiot, mais impatient, et vous essayez d'apprendre "la langue anglaise" avec seulement un dictionnaire - vous essayez de mettre des mots étrangers dans des combinaisons que vous voyez, sans considérer que les constructions linguistiques peuvent être différentes

Je veux dire, vous devez apprendre la syntaxe et les bases de la programmation en C, mais vous ne serez pas capable d'écrire quoi que ce soit d'utile ..... Outre ce "mystérieux" pour déclaration, il y aura un malentendu... par exemple, la portée des variables ? - comprendre ce que c'est ? - Ce n'est pas difficile, mais vous devez comprendre ce que la machine voit lorsqu'elle lit votre programme.


Je ne sais pas quel tutoriel je peux te conseiller. Je regarde parfois des trucs pointus icihttps://metanit.com/sharp/tutorial/1.1.php.

il y a aussi C et C++https://metanit.com/cpp/

Si vous l'utilisez, vous pouvez sauter les sections sur les pointeurs, les classes et la POO. Vous n'êtes pas obligé de l'étudier, vous devez juste organiser vos connaissances.

Merci, Igor, pour ton soutien et tes conseils permanents. Je me suis renseigné sur le C et le C++, mais je sens qu'une fois de plus, j'ai besoin de me reposer un peu, de digérer et de consolider ce que je comprends déjà. Et ensuite, recommencer à lire des livres.

Salutations, Vladimir.

 
Valeriy Yastremskiy:
Vous êtes déjà sur le RPT. C'est le but. Maintenant, l'algorithme de la solution doit être formulé étape par étape.
Si quelque chose n'est pas clair, veuillez demander. Parfois, les choses simples prennent plus de temps que les choses complexes.

Valéry, j'ai depuis longtemps les TdR(termes de référence) écrits dans mon conseiller, je ne les ai simplement pas postés dans le thème pour que tout le monde puisse les voir.

Salutations, Vladimir.

/* Краткое описание советника Trailing_Stop. Код советника разрабатывается в соответствии с
   планом самообучения языку программирования MQL5. В советнике применена неттинговая система
   учёта позиций. Эта система учета подразумевает, что в один момент времени на счете может быть
   только одна открытая позиция по одному и тому же символу (финансовому инструменту). Алгоритм
   работы советника прост: один раз в торговый день ровно в 9 ч. 00 мин. по московскому времени
   будет открываться одна позиция в ту сторону, куда будет направлен первый тик. Например, если
   первый тик будет направлен вверх, то значит откроется позиция BUY, если первый тик будет вниз,
   то значит откроется позиция SELL. У открытой позиции сразу будет устанавливаться ордер Stop Loss
   фиксированного размера для минимизации потерь в том случае, если цена финансового инструмента
   станет двигаться в убыточном направлении. Если цена инструмента достигнет этого уровня, то
   позиция полностью закроется автоматически. Если цена финансового инструмента будет двигаться
   в прибыльном направлении, то тогда автоматически включится в работу Trailing_Stop (Трейлинг Стоп).
   Схема работы Трейлинг Стоп:
   1. С приходом новых котировок советник проверяет, прибыльна ли открытая позиция.
   2. Как только прибыль (в пунктах) станет равной либо большей той величины, которая указана во
      входном параметре советника "Уровень перестановки Stop Loss в безубыток", автоматически
      поступит команда для перемещения ордера Stop Loss на тот уровень цены, по которому открылась
      существующая позиция, т.е. в безубыток.
   3. Если цена и дальше продолжит движение с увеличением прибыльности позиции, то при превышении
      величины, указаной во входном параметре советника "Уровень перестановки Stop Loss в безубыток"
      на величину, которая указана во входном параметре "Шаг трейлинг стопа", Stop Loss вслед за
      текущей ценой автоматически переместится с уровня безубытка на величину этого шага.
   4. Если прибыльность позиции уменьшится, то модификации ордера происходить не будет. Таким
      образом, будет автоматически фиксироваться прибыль торговой позиции.
   Если в течении торгового дня открытая позиция не закроется по Stop Loss или Trailing_Stop, то в
   23 ч. 50 мин. советник принудительно закроет эту позицию.

   ВАЖНО!!! Советник создан для демо-счёта исключительно в учебных целях!
            Не предназначен для торговли на реальном счёте и извлечения прибыли!*/
 
MrBrooklin:

Valéry, j'ai depuis longtemps les TdR(termes de référence) écrits dans mon conseiller, je ne les ai simplement pas postés dans le fil de discussion pour que tout le monde puisse les voir.

Salutations, Vladimir.

Le programme de travail est plutôt un objectif. Ce n'est même pas une déclaration de problème. La solution est d'abord un algorithme, un algorithme général. Il s'agit d'un énoncé de problème. Et ensuite les algorithmes pour résoudre ces problèmes.
 
Valeriy Yastremskiy:
Un programme de travail s'apparente davantage à un objectif. Ce n'est même pas une déclaration de problème. La solution est un algorithme général. Il s'agit d'un énoncé de problème. Et ensuite les algorithmes pour résoudre ces problèmes.

Je vois.

Respectueusement, Vladimir.

 
Valeriy Yastremskiy:

L'opérateur de boucle et les opérateurs dans le corps de la boucle. Pas vraiment du russe classique.

Tout est bon, bien sûr, mais où se trouve l'itérateur i dans le corps de la boucle ? Et pour obtenir le symbole de position et son numéro magique, il faut d'abord le sélectionner. La description de la position est une structure (dans µl5 toute la structure et les ordres et le temps et les affaires) et elle est remplie par la sélection, par l'itérateur qui n'est pas le ticket de position, mais le numéro de position. Et nous devons nous rappeler que dans la structure de la description de la position, c'est toujours la dernière sélection de position.

MrBrooklin:

Bonne journée et bonne humeur à tous !

Je continue à étudier le langage de programmation MQL5. J'ai commencé une étude détaillée de l'opérateur de boucle for... S'il vous plaît, envoyez-moi des suggestions, pas du code corrigé, mais des mots, ou je n'étudierai jamais MQL5.

Sincèrement, Vladimir.

Ici - permettez-moi de ne pas être d'accord avec vous, vous pouvez et devez coder, ce qui vous empêche d'entrer dans son essence... comprendre et ainsi de suite ... aussi IMHO, il y a des articles, il y a des robots dans kodobase - lire, analyser le code déjà prêt - apprendre le style d'écriture tout de suite. Pourquoi vouloir réinventer la roue ? Apprenez directement à partir d'un code lettré.

Voici un chalutage de V. Karputov - il est dans ROBOTS, regardez - ajustez-le à vos besoins (termes et vos fantasmes).

P.S. Grâce à vous, le sujet de cette branche, j'ai commencé à comprendre le code, ses fonctionnalités ..., à étudier les articles et à répéter les choses de base pour moi-même ...

Merci pour le conseil ! :-) (sans blague)

TrailingStop
TrailingStop
  • www.mql5.com
Это простой пример советника с реализацией трейлинг-стопа. В нем всего два параметра: TrailingStop — собственно отступ между ценой и уровнем StopLoss. TrailingStep — защита от чрезмерно частой модификации позиции.  Как работает TrailingStop (трейлинг, TrailingStop) — на примере позиции Buy: ...
Raison: