Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 657

 
Alexey Kozitsyn:
Sembra essere tutto sul punto e anche con riferimenti... Proprio quando qualcuno dichiara di aver letto la documentazione e chiede di togliere la rete (che, tra l'altro, si usa su FORTS)... devi essere sarcastico qui.
Lo terrò a mente, preparatevi ad essere sarcastici.
 
Anatoli Kazharski:
Assicurati di non essere mandato via. )
è troppo tardi, sei già lì.
 
new-rena:
in ritardo, sei già lì.
È ovvio chi e dove. )
 
Vladimir Karputov:

Esempio per un conto di copertura:

La prima operazione è Comprare 0.02 e la seconda operazione è Vendere 0.01. Totale due posizioni: Comprare 0.02 e Vendere 0.001. Poi chiudiamo la posizione Vendere 0.01 e chiudiamo la posizione Comprare 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);
     }
  }
//+------------------------------------------------------------------+

e il 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]

Cosa esattamente non è chiaro? Che è necessario aprire un ordine opposto con lo stesso volume per chiudere la posizione?

Grazie! Ci proverò.
 

Chi lo sa -"POSITION_PROFIT" include commissioni e swap?

In caso contrario, quale parametro dovrebbe essere usato per trovare la quantità di commissione per un ordine in MQL5?

 
new-rena:

Chi lo sa -"POSITION_PROFIT" include commissioni e swap?

Se no - quale parametro è necessario per trovare la quantità di commissioni maturate in MQL5?

POSITION_PROFIT è semplicemente il profitto della posizione (senza deduzione di commissioni, swap...). Per scoprire lo swap accumulato diuna posizione, fate come segue:

POSIZIONE_SWAP

Swap cumulativo

doppio


E la commissione finale e lo swap totale, possono essere ottenuti dopo che la posizione è chiusa, nella storia delle transazioni:

COMMISSIONE_AFFARE

Commissione_di_affare

doppio

DEAL_SWAP

Swap accumulato alla chiusura

doppio

 
new-rena:

Chi lo sa -"POSITION_PROFIT" include commissioni e swap?

In caso contrario, quale parametro dovrebbe essere usato per scoprire l'ammontare della commissione addebitata per un ordine in MQL5?

In russo, un ordine non può realizzare un profitto o una perdita ed è solo un ordine da eseguire. Quando l'ordine viene eseguito, si riceve la posizione sul mercato al prezzo scelto.


Vladimir Karputov:

POSITION_PROFIT è solo il profitto della posizione (senza commissioni, swap...). Potete scoprire lo swap accumulato dellaposizione in questo modo:

E la commissione finale e lo swap finale, si può scoprire dopo che la posizione è chiusa, nella storia delle transazioni:

Beh, tutto questo è sbagliato, o piuttosto incompleto.

Perché ho bisogno di conoscere la commissione dopo la chiusura, o meglio ho bisogno di conoscerla, ma in qualsiasi momento, diciamo, il conto ha una commissione e un pareggio o breakeven, come posso calcolare in modo che il primo innesco sia stato sul livello in cui commissione e swap sono sovrapposti in caso di rollback del prezzo e chiusura. Aggiungo 1pp per coprire la commissione. E per quanto riguarda gli swap, dato che la posizione può rimanere sul mercato per una settimana e durante questo periodo può richiedere 3pp per guadagnare swap ed essere chiusa con uno svantaggio quando scatta il Break Even?

O forse non capisco i calcoli?

 
Vitaly Muzichenko:

In russo, un ordine non può essere né un profitto né una perdita, è solo un ordine da eseguire. Una volta che l'ordine viene eseguito, si ottiene la posizione sul mercato al prezzo scelto.


Tutto questo è sbagliato, o piuttosto incompleto.

Perché ho bisogno di conoscere la commissione dopo la chiusura, o meglio ho bisogno di conoscerla, ma in qualsiasi momento, supponiamo che il conto abbia una commissione e trailing o break-even, come faccio a calcolare in modo che il primo colpo sia stato a un livello che si sovrappone alla commissione e agli swap in caso di rollback del prezzo e chiusura. Aggiungo 1pp per coprire la commissione. E per quanto riguarda gli swap, dato che la posizione può rimanere sul mercato per una settimana e durante questo periodo può richiedere 3pp per guadagnare swap ed essere chiusa con uno svantaggio quando scatta il Break Even?

O mi manca qualcosa nei calcoli?

Capisco che"POSITION_PROFIT" contiene già tutto (swap, profitto, commissione), e questo è sufficiente per concludere se il profitto è redditizio per me o no?
 
new-rena:

Chi lo sa -"POSITION_PROFIT" include commissioni e swap?

In caso contrario, quale parametro è necessario per scoprire la quantità di commissione applicata per un ordine in MQL5?

Non sto imponendo la libreria MT4Orders. Ma forse sarebbe più facile chiamare il buon vecchio OrderCommission?

Funziona non solo sui conti hedge, ma anche su quelli netti.

 
new-rena:
Capisco che"POSITION_PROFIT" include già tutto (swap, profitto, commissione).
Ora controlliamo con un semplice Expert Advisor...