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

 
Alexey Kozitsyn:
Tout semble être au point et même avec des références... Juste au moment où quelqu'un déclare avoir lu la documentation et demande de retirer le filet (qui, soit dit en passant, est utilisé sur les FORTS)... tu dois être sarcastique ici.
Je m'en souviendrai, préparez-vous à être sarcastique.
 
Anatoli Kazharski:
Assurez-vous de ne pas être renvoyé. )
c'est trop tard, vous y êtes déjà.
 
new-rena:
tard, vous y êtes déjà.
Il est évident de savoir qui et où. )
 
Vladimir Karputov:

Exemple pour un compte de couverture :

La première opération est Acheter 0,02 et la deuxième opération est Vendre 0,01. On totalise deux positions : Acheter 0,02 et Vendre 0,001. Puis on ferme la position Vendre 0,01 et on ferme la position Acheter 0,02:

//+------------------------------------------------------------------+
//|                                                       TestEA.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
CTrade         m_trade;                      // trading object
CPositionInfo  m_position;                   // trade position object
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static long counter=0;
   counter++;
   if(counter%300==0 && counter<700)
     {
      static int number=0;
      number++;
      if(number==1)
         m_trade.Buy(0.02);
      if(number==2)
         m_trade.Sell(0.01);
     }
   if(counter>7000)
     {
      int positions= PositionsTotal();
      if(positions == 0)
         return;
      int positions_total=PositionsTotal();
      for(int i=positions_total-1;i>=0;i--)
         if(m_position.SelectByIndex(i))
            m_trade.PositionClose(m_position.Ticket(),-1);
     }
  }
//+------------------------------------------------------------------+

et Journal :

Trade   2016.02.25 00:13:35   instant buy 0.02 EURUSD at 1.10167 (1.10158 / 1.10167 / 1.10158)
Trades  2016.02.25 00:13:35   deal #2 buy 0.02 EURUSD at 1.10167 done (based on order #2)
Trade   2016.02.25 00:13:35   deal performed [#2 buy 0.02 EURUSD at 1.10167]
Trade   2016.02.25 00:13:35   order performed buy 0.02 at 1.10167 [#2 buy 0.02 EURUSD at 1.10167]
TestEA (EURUSD,H1)      2016.02.25 00:13:35   CTrade::OrderSend: instant buy 0.02 EURUSD at 1.10167 [done at 1.10167]
Trade   2016.02.25 00:30:17   instant sell 0.01 EURUSD at 1.10157 (1.10157 / 1.10164 / 1.10157)
Trades  2016.02.25 00:30:17   deal #3 sell 0.01 EURUSD at 1.10157 done (based on order #3)
Trade   2016.02.25 00:30:17   deal performed [#3 sell 0.01 EURUSD at 1.10157]
Trade   2016.02.25 00:30:17   order performed sell 0.01 at 1.10157 [#3 sell 0.01 EURUSD at 1.10157]
TestEA (EURUSD,H1)      2016.02.25 00:30:17   CTrade::OrderSend: instant sell 0.01 EURUSD at 1.10157 [done at 1.10157]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   PositionClose #3 POSITION_TYPE_SELL 0.01
Trade   2016.02.25 02:12:06   instant buy 0.01 EURUSD at 1.10131, close #3 (1.10123 / 1.10131 / 1.10123)
Trades  2016.02.25 02:12:06   deal #4 buy 0.01 EURUSD at 1.10131 done (based on order #4)
Trade   2016.02.25 02:12:06   deal performed [#4 buy 0.01 EURUSD at 1.10131]
Trade   2016.02.25 02:12:06   order performed buy 0.01 at 1.10131 [#4 buy 0.01 EURUSD at 1.10131]

TestEA (EURUSD,H1)      2016.02.25 02:12:06   CTrade::OrderSend: instant buy 0.01 position #3 EURUSD at 1.10131 [done at 1.10131]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   PositionClose #2 POSITION_TYPE_BUY 0.02
Trade   2016.02.25 02:12:06   instant sell 0.02 EURUSD at 1.10123, close #2 (1.10123 / 1.10131 / 1.10123)
Trades  2016.02.25 02:12:06   deal #5 sell 0.02 EURUSD at 1.10123 done (based on order #5)
Trade   2016.02.25 02:12:06   deal performed [#5 sell 0.02 EURUSD at 1.10123]
Trade   2016.02.25 02:12:06   order performed sell 0.02 at 1.10123 [#5 sell 0.02 EURUSD at 1.10123]
TestEA (EURUSD,H1)      2016.02.25 02:12:06   CTrade::OrderSend: instant sell 0.02 position #2 EURUSD at 1.10123 [done at 1.10123]

Qu'est-ce qui n'est pas clair exactement ? Que vous devez ouvrir un ordre opposé avec le même volume pour fermer la position?

Merci ! Je vais essayer.
 

Qui sait - est-ce que"POSITION_PROFIT" inclut la commission et le swap ?

Si ce n'est pas le cas, quel paramètre doit être utilisé pour connaître le montant de la commission pour un ordre dans MQL5 ?

 
new-rena:

Qui sait - est-ce que"POSITION_PROFIT" inclut la commission et le swap ?

Si non - quel paramètre est nécessaire pour connaître le montant de la commission accumulée dans MQL5 ?

POSITION_PROFIT est simplement le bénéfice de la position (sans déduction des commissions, swaps ...). Pour connaître le swap cumulé d'une position, procédez comme suit :

POSITION_SWAP

Swap cumulatif

double


Et la commission finale et le swap total, peuvent être obtenus après la fermeture de la position, dans l'historique des transactions :

COMMISSION_D'ACHAT

Commission de transaction

double

DEAL_SWAP

Swap cumulé à la clôture

double

 
new-rena:

Qui sait - est-ce que"POSITION_PROFIT" inclut la commission et le swap ?

Si ce n'est pas le cas, quel paramètre doit être utilisé pour connaître le montant de la commission facturée pour un ordre dans MQL5 ?

En russe, un ordre ne peut pas faire de profit ou de perte et n'est qu'un ordre à exécuter. Lorsque l'ordre est exécuté, vous recevez votre position sur le marché au prix que vous avez choisi.


Vladimir Karputov:

POSITION_PROFIT est juste le profit de la position (sans commissions, swaps ...). Vous pouvez trouver le swap cumulé de laposition comme ceci :

Et la commission finale et le swap final, vous pouvez les découvrir après la clôture de la position, dans l'historique des transactions :

Eh bien, tout cela est faux, ou plutôt incomplet.

Pourquoi ai-je besoin de connaître la commission après la clôture, ou plutôt j'ai besoin de la connaître, mais à tout moment, disons que le compte a une commission et un draw ou breakeven, comment puis-je calculer pour que le premier déclenchement soit sur le niveau auquel la commission et les swaps se chevauchent en cas de retournement de prix et de clôture. J'ajoute 1pp pour couvrir la commission. Qu'en est-il des swaps, étant donné que la position peut rester sur le marché pendant une semaine et que, pendant cette période, elle peut prendre 3pp pour gagner des swaps et être fermée avec un drawback lorsque le Breakeven est déclenché ?

Ou peut-être que je ne comprends pas les calculs ?

 
Vitaly Muzichenko:

En russe, un ordre ne peut être ni un profit ni une perte, c'est seulement un ordre à exécuter. Une fois l'ordre exécuté, vous obtenez votre position sur le marché au prix que vous avez choisi.


Tout cela est faux, ou plutôt incomplet.

Pourquoi ai-je besoin de connaître la commission après la clôture, ou plutôt j'ai besoin de la connaître, mais à tout moment, supposons que le compte ait une commission et un trailing ou break-even, comment puis-je calculer pour que le premier hit soit à un niveau qui chevauche la commission et les swaps en cas de retournement de prix et de clôture. J'ajoute 1pp pour couvrir la commission. Qu'en est-il des swaps, étant donné que la position peut rester sur le marché pendant une semaine et que, pendant cette période, elle peut prendre 3pp pour gagner des swaps et être fermée avec un drawback lorsque le Breakeven est déclenché ?

Ou est-ce que je rate quelque chose dans les calculs ?

Je comprends que"POSITION_PROFIT" contient déjà tout (swap, profit, commission), et cela suffit pour conclure si le profit est rentable pour moi ou non ?
 
new-rena:

Qui sait - est-ce que"POSITION_PROFIT" inclut la commission et le swap ?

Sinon, quel paramètre est nécessaire pour connaître le montant de la commission facturée pour un ordre dans MQL5 ?

Je n'impose pas la bibliothèque MT4Orders. Mais peut-être serait-il plus simple de faire appel à la bonne vieille commission d'ordre ?

Il fonctionne non seulement sur les comptes de couverture, mais aussi sur les comptes nets.

 
new-rena:
Je comprends que"POSITION_PROFIT" inclut déjà tout (swap, profit, commission).
Maintenant, vérifions-le avec un simple Expert Advisor...
Raison: