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

 
barudkinarseniy:
Je ne vois aucun problème, mon Expert Advisor fonctionne simplement de telle manière qu'après avoir fermé une transaction rentable ou déficitaire, il ouvre des ordres immédiatement et le numéro de ticket dans l'imprimante est très grand, donc je pensais qu'il n'aurait pas à le recharger manuellement, peut-être que cela peut être fait automatiquement. Je dois vous remercier pour cette fonction également))
Si vous regardez les 1000 ordres en un an, ce n'est rien, il suffit de regarder les tickers des comptes réels. J'ai, par exemple, le dernier 10179697. En général, les billets sont de type int, donc la valeur maximale est de 2 147 483 647.
 
Alexey Volchanskiy:
1000 commandes en un an, ce n'est rien, regardez les tickets sur les comptes réels. J'ai, par exemple, le dernier 10179697. En général, les billets sont de type int, donc la valeur maximale est de 2 147 483 647.
Et que se passera-t-il si la valeur maximale est atteinte ?
 
dans MQL5 le ticket est du type ulong, vous serez à bout de souffle pour dépasser
 
barudkinarseniy:
Et que se passe-t-il si elle atteint la valeur maximale ?
Les numéros des ordres et des transactions sont attribués par le courtier, et non par votre EA, et ils veilleront à ce qu'ils ne dépassent pas la valeur maximale. ) Ce n'est pas votre mal de tête.
 
Merci pour ces informations utiles)))) Une idée de comment vérifier les ordres à cours limité avec AccountFreeMarginCheck ?
 

J'ai pris l'EA standard pour le demark dans la bibliothèque, il semble fonctionner. J'ai commencé à l'affiner.

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0) ;

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0) ;

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1) ;

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1) ;

J'ai ajouté des calculs et des données de sortie supplémentaires à cet indicateur et il fonctionne comme suit

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0) ;

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0) ;

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1) ;

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1) ;

double LUN = iCustom(NULL, 0, "itdlines", Level, 2, 0) ;

double LDN = iCustom(NULL, 0, "itdlines", Level, 3, 0) ;

double KUN = iCustom(NULL, 0, "itdlines", Level, 4, 0) ;

double KDN = iCustom(NULL, 0, "itdlines", Level, 5, 0) ;

et mon EA commence à traîner, c'est-à-dire que je reçois des erreurs de données invalides.

La question est de savoir si j'ai créé le même indicateur 8 fois et si j'en ai obtenu le bon tableau, ou si je me trompe ? Ou est-ce que je me trompe, un indicateur est créé une fois ?
Si j'ai raison, comment puis-je le créer une fois et en tirer les données requises ?

 

Bonjour chers collègues !

Veuillez me conseiller sur la structure d'une demande de transaction pour clôturer une position dans MT5 avec une couverture.

Merci.

 
Nikita Solodko:

Bonjour chers collègues !

Veuillez me conseiller sur la structure d'une demande de transaction pour clôturer une position dans MT5 avec une couverture.

Merci.

Vous pouvez utiliser la méthode
bool  PositionClose( 
   const ulong   ticket,                  // тикет позиции 
   ulong         deviation=ULONG_MAX      // отклонение 
   )
de la bibliothèque standard de la classe CTrade
 
Sergey Gritsay:
Vous pouvez utiliser une méthode de la bibliothèque standard de la classe CTrade.
Merci, bien sûr, mais je n'utilise pas de classes de commerce, je préfère utiliser la fonction OrderSend(). Et tout allait bien avant la possibilité de couverture, mais maintenant dans la structure de la demande de transaction est apparu l'élément"position", comme il est dit dans l'aide, pour indiquer une position spécifique lors de la modification et la fermeture, seulement il n'est pas dit comment fermer cette position (type d'opération ou ainsi).
 
Milleras1981:

J'ai pris l'EA standard pour le demark dans la bibliothèque, il semble fonctionner. J'ai commencé à l'affiner.

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0) ;

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0) ;

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1) ;

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1) ;

J'ai ajouté des calculs et des données de sortie supplémentaires à cet indicateur et il fonctionne comme suit

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0) ;

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0) ;

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1) ;

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1) ;

double LUN = iCustom(NULL, 0, "itdlines", Level, 2, 0) ;

double LDN = iCustom(NULL, 0, "itdlines", Level, 3, 0) ;

double KUN = iCustom(NULL, 0, "itdlines", Level, 4, 0) ;

double KDN = iCustom(NULL, 0, "itdlines", Level, 5, 0) ;

et il commence à traîner, c'est-à-dire que je reçois des erreurs de données invalides.

La question est de savoir si j'ai créé le même indicateur 8 fois et si j'en ai obtenu le bon tableau, ou si je me trompe ? Ou est-ce que je me trompe, un indicateur est créé une fois ?
Si j'ai raison, comment puis-je le créer une fois et en tirer les données requises ?

Avant que vous ne l'amélioriez, l'Expert Advisor recevait 4 valeurs : du tampon de l'indicateur zéro de la dernière et avant-dernière barre, et du tampon du premier indicateur également, alors que vous essayez de recevoir des informations de 6 tampons d'indicateurs... Vous êtes sûr de les avoir dans l'indicateur ? Qu'essayez-vous d'atteindre ?