Questions des débutants MQL5 MT5 MetaTrader 5 - page 100
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
int index // номер сделки
);
Qu'est-ce qu'un numéro de transaction ?
Comment sélectionner la dernière transaction ? Index 0 ?
J'ai un compte avec une position ouverte et un historique des transactions. Je veux sélectionner la dernière transaction :
#include <Trade\DealInfo.mqh>
CDealInfo deal;
for(int n=20;n>=0;n--)
{
deal.SelectByIndex(n);
Print("Тикет сделки=",deal.Ticket()," n=",n);
}
Tous les tics 0...
int index // номер сделки
);
Qu'est-ce qu'un numéro de transaction ?
Voir la description de la fonction HistoryDealGetTicket(). Il existe également un exemple de la manière de travailler avec la liste des transactions.
J'ai essayé de proposer une réponse à votre question "Qu'est-ce qu'un numéro de transaction ? Pouvons-nous supposer que vous avez traité cette question ?
1. Malheureusement, j'essaie de ne pas utiliser la bibliothèque standard, et je ne peux donc pas donner de conseils appropriés sur la façon de travailler avec la méthode SelectByIndex(). Je ne peux que constater que la classe CDealInfo elle-même est positionnée comme une classe permettant de travailler avec les propriétés des transactions, c'est-à-dire que la question de l'obtention de la liste des transactions semble être laissée de côté.
2. Comme vous le savez, la méthode SelectByIndex() utilise simplement la fonction HistoryDealGetTicket(). De la description de cettefonction, il ressort qu'avant d'accéder à la transaction, il est nécessaire d'obtenir la liste de toutes les transactions . En particulier,
Il y a environ un an, j'ai demandé sur le forum s'il était possible de considérer que la dernière transaction de la liste a toujours un indice de HistoryDealsTotal()-1, mais je n'ai pas reçu de réponse (ou je n'ai pas remarqué, ce qui est peu probable). En utilisant la méthode de la preuve scientifique, je n'ai pas trouvé de réfutation de cette thèse. Ainsi, logiquement, chaque nouvelle affaire, dont l'information est reçue dans le terminal de base, devrait simplement augmenter la liste des affaires d'une unité et, respectivement, les indices dans la liste des affaires seraient assignés à chaque nouvelle affaire dans l'ordre croissant. Comment c'est dans la réalité - je ne sais pas.
3. Je vous suggère également de lire l'articleOrdres, positions et transactions dans MetaTrader 5 et (je ne l'ai pas lu moi-même) - Comment utiliser les classes de transactions de la bibliothèque standard lors de l'écriture d'un conseiller expert.
C'est tout :)
Experts, aide, s'il vous plaît. J'ai construit deux EA pour, pour ainsi dire, un effet de synergie, les plus simples semblent se connecter, mais celui-ci ne compile pas, bien que j'aie tout fait correctement comme avec le précédent. Voici ce qu'il donne
Superviseur - la fonction ne peut être déclarée que dans la portée globale 20_200_pips_MQL5_v1.mq5 360 18
Perceptron' - la fonction ne peut être déclarée que dans la portée globale 20_200_pips_MQL5_v1.mq5 418 8
basicTradingSystem' - la fonction ne peut être déclarée que dans la portée globale 20_200_pips_MQL5_v1.mq5 434 6
La fonction ne peut être déclarée que dans la portée globale.
Je suis vraiment confus. Où est la portée globale ?
Superviseur - la fonction ne peut être déclarée que dans la portée globale 20_200_pips_MQL5_v1.mq5 360 18
Perceptron' - la fonction ne peut être déclarée que dans la portée globale 20_200_pips_MQL5_v1.mq5 418 8
basicTradingSystem' - la fonction ne peut être déclarée que dans la portée globale 20_200_pips_MQL5_v1.mq5 434 6
La fonction ne peut être déclarée que dans la portée globale.
Je suis vraiment confus, où est la portée globale ?
De tels messages apparaissent, par exemple, lorsqu'une fonction est déclarée à l'intérieur d'une autre. Regarde s'il y a quelque chose comme ça dans le code :