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

 
Karputov Vladimir:

1. Oui, c'est vrai. L'exécution d'un ordre génère une transaction. Une transaction peut :

  • créer un poste
  • modifier le volume d'une position
  • fermer un poste
2. Qu'est-ce qui pourrait être mieux que la pratique ? :) Ouvrir une position (manuellement) sur n'importe quel graphique. Exécuter le script

- Regardez la ligne (regardez dans l'onglet "Experts" du terminal) :

Augmentez le volume, exécutez à nouveau le script - comparez à nouveau la ligne

Comme vous pouvez le constater, la propriété de position (POSITION_IDENTIFIER) ne change pas si la position n'est pas inversée.

Merci ! pour les réponses à vous et à tous ceux qui ont répondu.
 
Karputov Vladimir:

Dans MT5, il existe le concept de POSITION. Vous pouvez fermer une position. Si vous voulez fermer complètement une position, utilisez la bibliothèque standard. Pour un compte de compensation, un exemple de la manière de clôturer une position :

Merci !
 
Aidez-nous !

Il y a une chaîne de caractères txt (téléchargée depuis un site d'informations)

string txt = "ИÐÐ'еÑк ожиÐа'ний в ÑÑ "еµÑ€ уÑÐ "уг (авг)</a>\n" ;
encodage original UTF-8. s'affiche comme suit : windows 1252

doit être converti par des moyens mql4 en la forme - Service Expectation Index (Aug)</a>

Merci d'avance !
 

Bonjour !

Il y a un morceau de code

Après son exécutionPositionsTotal()

il affiche 22 par le nombre d'ordres ouverts (ordres de marché). En effet, 22 ordres sont ouverts, mais ils portent tous sur le même instrument. Je pense qu'il ne devrait y avoir qu'une seule position. Qu'est-ce qui ne va pas ? Veuillez me conseiller !

position_ID=0;
  for(int i=0;i<PositionsTotal();i++)  {
      string pos_symbol=PositionGetSymbol((uint)i);
      if(pos_symbol==Symbol())  {
      position_ID=PositionGetInteger(POSITION_IDENTIFIER);  
      break;    
      }
  }    
   double mProfit =PositionGetDouble(POSITION_PROFIT);
PrintFormat("вход в 0018 PositionsTotal()=%d  mProfit=%d  ticket=%d",PositionsTotal(),mProfit,ticket); 
 
Alexander Kharlamov:

Bonjour !

Il y a un morceau de code

Après son exécutionPositionsTotal()

il affiche 22 par le nombre d'ordres ouverts (ordres de marché). En effet, 22 ordres sont ouverts, mais ils portent tous sur le même instrument. Je pense qu'il ne devrait y avoir qu'une seule position. Qu'est-ce qui ne va pas ? Veuillez me conseiller !

Une position et un ordre sont des choses complètement différentes ! Une position est :"Le résultat destransactions est l'ouverture d' une position".

Ainsi, si vous avez des ordres d'achat ou de vente, ce ne sont pas des ordres, ils étaient des ordres avant l'ouverture de la position.

De même, le concept d'"ordre de marché" n'existe pas, l'ordre peut être en attente - Limit et Stop, ainsi que Stop Loss et Take Profit sont également des ordres (ordre de clôture du DC). Acheter et Vendre sont des positions, pas des ordres, ce sont vos positions sur le marché !

 
Vitaly Muzichenko:

Une position et un ordre sont des choses complètement différentes ! Une position est :"Le résultat d'unetransaction est l'ouverture d'une position".

Ainsi, si vous avez des ordres d'achat ou de vente, ce ne sont pas des ordres, ils étaient des ordres avant l'ouverture de la position.

De même, le concept d'"ordre de marché" n'existe pas, l'ordre peut être en attente - Limit et Stop, ainsi que Stop Loss et Take Profit sont également des ordres (ordre de clôture du DC). Acheter et Vendre sont des positions, pas des ordres, ce sont vos positions sur le marché !

Merci pour la réponse, mais votre commentaire est clair pour moi. Je voulais dire les ordres de marché dans le sens où ils sont déjà sur le marché, pas les ordres en attente. La question était de savoir pourquoi il y a 22 postes et non un seul. Je pense que tu n'as pas regardé le code et que tu as répondu immédiatement. Désolé...
 
Alexander Kharlamov:
Je vous remercie d'avoir répondu, mais ce que vous avez écrit est clair pour moi tel quel. J'ai écrit "ordres de marché" dans le sens où ils sont déjà sur le marché, et non en attente. La question était de savoir pourquoi il y a 22 postes et non un seul. Je pense que tu n'as pas regardé le code et que tu as répondu immédiatement. Désolé...
Apparemment, vous avez un compte de couverture. Il peut y avoir plusieurs positions dans un même instrument.
 
mila.com:

Bonjour.

Veuillez me dire comment récupérer le texte situé sur la première barre dans une variable.

Je veux obtenir int TXT = 191 ;


ObjectGetString()

OBJPROP_TEXT

Description de l'objet (texte contenu dans l'objet)

chaîne de caractères

 
Artyom Trishkin:

ObjectGetString()

OBJPROP_TEXT

Description de l'objet (texte contenu dans l'objet)

chaîne de caractères

Par le biais de
StringToInteger( 
   string  value      // строка 
   );
 
mila.com:

Merci, ce n'est pas très clair comment mettre cela en œuvre dans ce cas.

Qu'est-ce qu'il y a de mal à ça?

Il est probable qu'il n'y ait pas d'espace entre le nom et l'heure"L_V "+Heure[1]
Raison: