Questions des débutants MQL5 MT5 MetaTrader 5 - page 1247

 
MrBrooklin:

Bonsoir à tous !

Dans ma vieillesse, j'essaie de maîtriser les bases de MQL5. Ma curiosité me tue - je me demande si je ne pourrais pas maîtriser la programmation à l'âge de 60 ans. Bien que je me sois fait des amis avec le HTML simple, j'ai même créé mes propres sites web avec. Simple, vraiment, mais quand même... Si mes questions risquent de vous irriter, dites-le moi immédiatement, je ne poserai plus de questions naïves et je n'irriterai plus les gens.

Donc, j'ai ouvert le premier code que j'ai vu. J'ai commenté la signification d'une ligne de ce code en utilisant Google Translator et la référence MQL5. Que dois-je demander à la communauté ? Regardez les commentaires et s'ils sont faux, veuillez corriger ma pensée :

C'est un livre ouvert pour certains, mais pour moi, ça ressemble aux mêmes caractères chinois. S'il vous plaît, ne riez pas trop fort.

Pourquoi est-ce que je fais ça ? Ainsi, j'essaie juste de découvrir par moi-même à quel point je suis désespéré en programmation.

Salutations, Vladimir.

Je recommande d'utiliser l'aide ME - elle décrit le but de tous les opérateurs et fonctions du langage.

https://www.mql5.com/ru/docs/trading/positionselect

Документация по MQL5: Торговые функции / PositionSelect
Документация по MQL5: Торговые функции / PositionSelect
  • www.mql5.com
Выбирает открытую позицию для дальнейшей работы с ней. Возвращает true при успешном завершении функции. Возвращает false при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError(). При независимом представлении позиций (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) по каждому символу одновременно...
 
MrBrooklin:

Bonsoir à tous !

Dans ma vieillesse, j'essaie de maîtriser les bases de MQL5. Ma curiosité me tue - je me demande si je ne pourrais pas maîtriser la programmation à l'âge de 60 ans. Bien que je me sois fait des amis avec le HTML simple, j'ai même créé mes propres sites web avec. Simple, vraiment, mais quand même... Si mes questions risquent de vous irriter, dites-le moi immédiatement. Ainsi, je ne poserai pas d'autres questions naïves et je ne rendrai pas les gens nerveux.

Donc, j'ai ouvert le premier code que j'ai vu. J'ai commenté la signification d'une ligne de ce code en utilisant Google Translator et la référence MQL5. Que dois-je demander à la communauté ? Regardez les commentaires et s'ils sont faux, veuillez corriger ma pensée :

C'est un livre ouvert pour certains, mais pour moi, ça ressemble aux mêmes caractères chinois. S'il vous plaît, ne riez pas trop fort.

Pourquoi est-ce que je fais ça ? Ainsi, j'essaie juste de découvrir par moi-même à quel point je suis désespéré en programmation.

Salutations, Vladimir.

Si vous en avez la volonté, c'est meilleur pour votre cerveau que de résoudre des mots croisés. Essayez de comprendre tout de suite que les comptes Hadge sont écrits différemment des comptes Netting. Cette ligne de code

if(PositionSelect(_Symbol)) // если выбираем открытую позицию на графике текущего символа

est utilisé pour le Netting, mais peut provoquer des erreurs dans les comptes Hadge si plus d'une position est ouverte.

 
Aleksey Vyazmikin:

Je vous recommande d'utiliser l'aide ME - le but de tous les opérateurs et les fonctions du langage y sont décrits.

https://www.mql5.com/ru/docs/trading/positionselect

Salut Alexey !

Merci pour vos commentaires. J'utilise l'aide de MetaEditor. Pour l'instant, le principal problème est de comprendre le but des opérateurs et des fonctions, ainsi que la raison pour laquelle j'ai besoin d'un certain opérateur ou d'une certaine fonction à un certain endroit du code du programme. Tout est décrit dans la FAQ, mais si je comprends bien, ces informations ne sont pas destinées à ceux qui commencent à entrer dans les détails à partir de zéro, mais à ceux qui ont déjà une certaine expérience de la programmation dans d'autres langages.

Salutations, Vladimir.

 
Alexey Viktorov:

Si vous le voulez, c'est mieux pour votre cerveau que de faire des mots croisés. Essayez de comprendre tout de suite que les comptes Hadge ne sont pas écrits de la même manière que les comptes Netting. Cette ligne de code

Cette ligne de code est utilisée pour le Netting mais peut provoquer des erreurs dans les comptes Hadge si plus d'une position est ouverte.

Bonjour Alexey !

Merci pour le conseil sur les comptes Hadge et Netting, ainsi que pour le soutien.

J'ai compris que s'il n'y a pas de correction dans les commentaires d'une ligne de code, c'est déjà bon. Cela signifie que j'ai compris l'essence de cette ligne de code aussi étroitement que possible. Je vais continuer à étudier la programmation MQL5 et poster occasionnellement mes commentaires. Peut-être qu'à un moment donné, au cours de mon auto-apprentissage, je serai en mesure de développer un code simple de conseiller expert par moi-même.

Sincèrement, Vladimir.

Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
  • www.mql5.com
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан MetaQuotes Software Corp. для собственной торгово-информационной платформы. Синтаксис языка максимально близок...
 

Bonjour à tous !

Je continue à apprendre MQL5 et voici une nouvelle ligne de code, qui n'est pas claire même après avoir travaillé avec elle via l'aide et Google Translate.

FileSeek(FileHandle,0,SEEK_SET); // перемещаем положение указателеля в файле с уникальным указателем на "0" байт в начале файла

Le commentaire est fait par moi, mais sa signification n'est pas totalement claire. J'ai à peine compris ce qu'est FileHandle. Divisez-le en deux mots : File et Handle. Google l'a traduit comme un descripteur de fichier. Qu'est-ce qu'un descripteur et à quoi sert-il ? Il est bon que l'auteur de l'article expliqué ici https://www.mql5.com/ru/articles/496 que Handle est un pointeur unique vers quelque chose (un fichier, un indicateur, etc.) en russe.

Il reste maintenant à comprendre la signification de tout ce code. Je demande l'aide de la communauté, j'ai passé tellement de temps avec ce code jusqu'à 3 heures du matin, et ma tête est complètement maladroite.

Salutations, Vladimir.

Быстрый старт или краткий курс для начинающих
Быстрый старт или краткий курс для начинающих
  • www.mql5.com
Здравствуй дорогой читатель. В данной статье я попробую рассказать и покажу как можно просто и быстро освоить принципы построения торговых советников, работу с индикаторами и т.д. Эта статья ориентирована на новичков, в ней не будет сложных и трудных для понимания примеров. Скорей всего, она не будет интересной и познавательной для тех, кто уже...
 
MrBrooklin:

Bonjour à tous !

Je continue à apprendre MQL5 et voici une nouvelle ligne de code, qui n'est pas claire même après avoir travaillé avec elle via l'aide et Google Translate.

Le commentaire est fait par moi, mais sa signification n'est pas totalement claire. J'ai à peine compris ce qu'est FileHandle. Divisez-le en deux mots : File et Handle. Google l'a traduit comme un descripteur de fichier. Qu'est-ce qu'un descripteur et à quoi sert-il ? Il est bon que l'auteur de l'article expliqué ici https://www.mql5.com/ru/articles/496 que Handle est un pointeur unique vers quelque chose (un fichier, un indicateur, etc.) en russe.

Il reste maintenant à comprendre la signification de tout ce code. Je demande l'aide de la communauté, j'ai passé tellement de temps avec ce code jusqu'à 3 heures du matin, et ma tête est complètement maladroite.

Sincèrement, Vladimir.

Mais pourquoi traduire quelque chose dans google quand la documentation est écrite en russe ?

Déplace la position du pointeur de fichier du nombre d'octets spécifié par rapport à la position spécifiée.

Et je traduirais votre commentaire comme suit : "Déplace le pointeur de fichier du début de 0 octet. En d'autres termes, au début du fichier."

Point de référence pour le décalage. Peut prendre une des valeurs de ENUM_FILE_POSITION

Identifiant

Description

SEEK_SET

Début du fichier

SEEK_CUR

Position actuelle du pointeur de fichier

SEEK_END

Fin du dossier

Документация по MQL5: Файловые операции / FileSeek
Документация по MQL5: Файловые операции / FileSeek
  • www.mql5.com
//|                                                Demo_FileSeek.mq5 | //|                        Copyright 2013, MetaQuotes Software Corp. | //|                                              https://www.mql5.com | //| Script program start function                                    |...
 
Alexey Viktorov:

Et pourquoi traduire quelque chose avec google, quand la documentation dit tout en russe ?

Et je traduirais votre commentaire comme suit : "Déplace le pointeur de fichier du début à 0 octet. En d'autres termes, au début du fichier."

Identifiant

Description

SEEK_SET

Début du fichier

SEEK_CUR

Position actuelle du pointeur de fichier

SEEK_END

Fin du dossier

Bonjour Alexey !

J'ai cherché sur Google la signification de la combinaison de mots FileHandle. Je voulais comprendre ce que c'était et d'où ça venait. L'aide ne m'a pas aidé, j'ai donc dû utiliser Google. Lorsque j'ai compris, il s'est avéré que l'auteur du code avait lui-même créé une variable pour stocker le fichier avec un pointeur unique. En ce qui concerne FileSeek et SEEK_SET, l'aide m'a aidé, mais la signification de la chaîne n'était pas claire. Maintenant, avec l'aide de votre conseil, il est devenu clair à quoi il sert dans un fichier avec un pointeur unique.

Merci beaucoup pour votre aide !

Sincèrement, Vladimir.

Документация по MQL5: Константы, перечисления и структуры / Константы ввода/вывода / Позиционирование внутри файла
Документация по MQL5: Константы, перечисления и структуры / Константы ввода/вывода / Позиционирование внутри файла
  • www.mql5.com
Большая часть файловых функций связана с операциями чтения/записи информации. При этом с помощью функции FileSeek() можно указывать положение файлового указателя на позицию внутри файла, с которой будет...
 
MrBrooklin:

Bonjour Alexey !

J'ai cherché sur Google la signification de l'expression FileHandle. Je voulais comprendre ce qu'il est et d'où il vient. L'aide n'était pas utile, j'ai donc dû me tourner vers Google. Le texte d'aide pour FileSeek et SEEK_SET était très utile, mais la signification de la chaîne n'était pas claire. Maintenant, avec l'aide de votre conseil, il est devenu clair à quoi il sert dans le fichier avec le pointeur unique.

Merci beaucoup pour votre aide !

Salutations, Vladimir.

Le pointeur n'est pas unique, c'est juste la position de départ d'une écriture ou d'une lecture. Un peu comme la façon dont on écrit une déclaration. L'en-tête commence sur la deuxième moitié de la page, le reste du texte sur le bord gauche de la page. Ou bien nous commençons un nouveau paragraphe un peu en retrait du bord de la ligne. Ceci est le début de la ligne et ceci est le pointeur. Nous pouvons déplacer le début d'une ligne à n'importe quel endroit du texte existant et écrire ou lire à partir de cet endroit.

L'identifiant du fichier est unique. On peut aussi l'appeler un identifiant. En fait, il s'agit d'une variable habituelle. Vous pouvez l'appeler abrakadabra et lui attribuer une poignée de fichier.

 
Sergey:

Bonjour !

J'essaie de comprendre le code de l'indicateur. Coincé sur une ligne.

Que signifie la dernière ligne et comment peut-on la réécrire de manière plus simple (plus claire) ?

Elle est écrite de manière beaucoup plus simple que toute autre construction. Il s'agit de l'opérateur ternaire.

cancl[i] = (acD==1 && aoD==1) ? 0 : (acD==2 && aoD==2) ? 1 : (acD==1 && aoD==2)? 2 : 3;
cancl[i] = if(acD==1 && aoD==1) { 0 } else { if(acD==2 && aoD==2) { 1 else { (acD==1 && aoD==2)? 2 : 3;
J'ai montré le code de manière conventionnelle, en espérant que vous le comprendrez.
Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
  • www.mql5.com
В качестве первого операнда – "выражение1" – может быть использовано любое выражение, результатом которого является значение типа bool. Если результат равен , то выполняется третий операнд – "выражениеЗ". Второй и третий операнды, то есть "выражение2" и "выражениеЗ", должны возвращать значения одного типа и не должны иметь тип void. Результатом...
 
Sergey:

Bonjour !

J'analyse le code de l'indicateur. Je suis bloqué sur une ligne.

Que signifie la dernière ligne et comment la réécrire de manière plus simple (plus claire) ?

// cancl[i] = (acD==1 && aoD==1) ? 0 : (acD==2 && aoD==2) ? 1 : (acD==1 && aoD==2)? 2 : 3;

if      (acD==1 && aoD==1)   { cancl[i]=0; }
else if (acD==2 && aoD==2)   { cancl[i]=1; }
else if (acD==1 && aoD==2)   { cancl[i]=2; }
else                         { cancl[i]=3; }

mais ce n'est pas plus simple ni plus clair à mon avis. C'est presque dans le style de MT :-) Pour être dans le style, il devrait y avoir plus de cordes et elles devraient aller dans un style "escalier" :-)