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

 

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Nouvelle version de MetaTrader 5 build 1730 : Projets dans MetaEditor et outils synthétiques

Renat Fatkhullin, 2017.12.28 08:59

Dans la version 1730, nous avons trouvé et corrigé cette erreur(en réinitialisant le cache en cas d'échec de la recherche), ce qui a entraîné votre erreur.

 
Ivan Ivanov:

Seules les informations relatives à une position (sélectionnée ) sont disponibles à un moment donné :

Vous énoncez un fait ou une référence ? Je n'ai rien trouvé de tel nulle part en faisant une recherche.

 
pivomoe:

Vous énoncez un fait ou vous demandez un certificat ? Je n'ai rien trouvé de tel nulle part en faisant une recherche.

Pour récupérer une propriété de position, la position requise doit être présélectionnée.
Vous pouvez consulter toute description des fonctions permettant de récupérer les propriétés des positions PosotionGetXXXX dans l'aide :
Lafonction renvoie la propriété demandée d'une position ouverte, préalablement sélectionnée à l'aide de la fonctionPositionGetSymbol ouPositionSelect.
Vous pouvez y penser de la manière suivante : au supermarché, si vous voulez lire ce qui est écrit sur l'étiquette d'un pot de confiture, vous devez d'abord prendre le pot de confiture.
 
fxsaber:
A en juger par "ce qui a entraîné votre erreur", ils n'ont pas trouvé l'erreur en 1730, mais dans une version antérieure. C'est-à-dire que selon les développeurs de 1730, tout fonctionne maintenant parfaitement à cet égard.
 
Vladimir Karputov:
Afin d'obtenir une quelconque propriété de la position, il est nécessaire de sélectionner au préalable la position requise.
Vous pouvez consulter toute description des fonctions permettant de récupérer les propriétés des positions PosotionGetXXXX dans l'aide :
Lafonction renvoie la propriété demandée d'une position ouverte précédemment sélectionnée à l'aide de la fonctionPositionGetSymbol ouPositionSelect.
Vous pouvez y penser de la manière suivante : dans un supermarché, si vous voulez lire ce qui est écrit sur l'étiquette d'un pot de confiture, vous devez d'abord prendre le pot de confiture.
Je comprends que nous devons sélectionner la position et l'ordre avant de recevoir leurs informations. Je ne vois pas ce que la classe CPositionInfo a à voir avec cela. Si nous avons une classe, nous pouvons créer beaucoup d'objets de cette classe. Et, par conséquent, chacun de ces objets peut être mis en place pour sa propre position. C'est fou - vous pouvez créer un million d'objets CPositionInfo, mais tous ne fonctionneront qu'avec la dernière position sélectionnée à l'aide de la méthode Select().
 
pivomoe:
Je comprends que nous devons sélectionner une position et un ordre avant d'obtenir des informations à leur sujet. Je ne comprends pas ce que la classe CPositionInfo vient faire là-dedans. Si nous avons une classe, nous pouvons créer un grand nombre d'objets de cette classe. Et, par conséquent, chacun de ces objets peut être mis en place pour sa propre position. C'est fou - vous pouvez créer au moins un million d'objets CPositionInfo, mais ils ne fonctionneront tous qu'avec la dernière position sélectionnée à l'aide de la méthode Select().
La fonction PositionSelect() copie les données de position dans l'environnement du programme et les appels suivants àPositionGetDouble(),PositionGetInteger() etPositionGetString()renvoient les données précédemment copiées.
Si vous souhaitez enregistrer un tableau de données sur deux positions ou plus, écrivez votre propre structure et copiez-y les données de position.
 
pivomoe:
Je comprends que vous devez sélectionner une position et un ordre avant d'obtenir des informations à leur sujet. Je ne comprends pas ce que la classe CPositionInfo a à voir avec cela. Si nous avons une classe, nous pouvons créer un grand nombre d'objets de cette classe. Et, par conséquent, chacun de ces objets peut être mis en place pour sa propre position. Cela n'a aucun sens, vous pouvez créer au moins un million d'objets CPositionInfo, mais tous ne fonctionneront qu'avec la dernière position sélectionnée à l'aide de la méthode Select().
CArrayObj vous aidera. Et stockez les objets ordre/position dans cette liste. Et obtenir toutes les données nécessaires sur eux.
 

Continuons ici.

Vladimir Karputov:
La fonction PositionSelect() copie les données de position dans l'environnement de programmation et les appels ultérieurs àPositionGetDouble(),PositionGetInteger() etPositionGetString()renvoient les données précédemment copiées.

Je comprends tout cela car c'est bien expliqué dans l'aide. Je ne comprends pas ce que cela a à voir avec la classe CPositionInfo ?

Il dispose d'une fonction Volume() . Il y a des exigences avant d'appeler cette fonction (sélectionner une position avant de l'utiliser). Je remplis ces conditions. Je ne vois pas pourquoi il renvoie un volume absolument faux. Eh bien, est-ce si, difficile de se souvenir au moment du dernier appel (pour cet objet de classe) du symbole Select(), qui m'intéresse, et est déjà au moment de l'appel Volume() pour trouver la position qui correspond à ce symbole et retourner le volume correspondant à cette position ?



En d'autres termes, l'utilisation de deux objets de la classe PositionInfo dans ce cas est erronée.

Il s'avère que la classe CPositionInfo n'a aucun sens, car normalement on ne peut travailler qu'avec un seul objet de cette classe.

 
Je comprends bien que la méthode Volume de la classe CPositionInfo renvoie le volume correspondant au moment où la méthode Select() a été appelée pour la dernière fois ? C'est-à-dire qu'il est possible de connaître le volume d'il y a un mois pour ce symbole ?
 
pivomoe:

Continuons ici.

Je comprends tout cela car c'est bien expliqué dans l'aide. Je ne comprends pas ce que cela a à voir avec la classe CPositionInfo.

Il possède une fonction Volume() . Il y a des exigences avant d'appeler cette fonction (sélectionner la position avant de l'utiliser). Je remplis ces conditions. Je ne vois pas pourquoi il renvoie le mauvais volume. Eh bien vraiment, est-ce si, difficile de mémoriser au moment du dernier appel (pour cet objet de classe) le symbole Select(), qui m'intéresse, et qui est déjà au moment de l'appel Volume() pour trouver la position qui correspond à ce symbole et retourner le volume correspondant à cette position ?


Il s'avère que la classe CPositionInfo n'a aucun sens, car normalement on ne peut travailler qu'avec un seul objet de cette classe.

La classe de trading CPositionInfo fonctionne parfaitement lorsque vous comprenez ce qu'elle fait.
Je m'explique : CPositionInfo n'est pas un coffret qui stocke toutes les propriétés de la position sélectionnée, c'est une clé (pratique, rapide, remplaçant un tas de lignes de code) pour accéder aux propriétés de la position sélectionnée.