Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 657

 
Alexey Kozitsyn:
Вроде все по делу и даже со ссылками... Просто когда кто-то заявляет, что прочитал документацию и просит убрать неттинг (который, кстати, используется на ФОРТС)... тут без сарказма никуда.
учту, готовься к сарказму.
 
Anatoli Kazharski:
Смотри, чтобы тебя не послали. )
поздно, ты уже там.
 
new-rena:
поздно, ты уже там.
Оно и видно, кто и где. )
 
Vladimir Karputov:

Пример для хедж-счёта:

Первая операция - Buy 0.02, вторая операция - Sell 0.01. Итого две позиции: Buy 0.02 и Sell 0.001. Затем закрываем позицию Sell 0.01 и закрываем позицию Buy 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);
     }
  }
//+------------------------------------------------------------------+

и "Журнал":

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]

Что именно не понятно? То что, для закрытия позиции нужно открыть противоположный ордер таким-же объёмом?

Спасибо! Буду пробовать.
 

Кто знает - в "POSITION_PROFIT" включена комиссия и своп?

Если нет - то какой параметр нужен, чтобы узнать сумму начисленной комиссии по ордеру в MQL5?

 
new-rena:

Кто знает - в "POSITION_PROFIT" включена комиссия и своп?

Если нет - то какой параметр нужен, чтобы узнать размер начисленной комиссии по ордеру в MQL5?

POSITION_PROFIT - это просто прибыль позиции (без вычета комиссий, свопов ...). Узнать накопленный своп позиции можно так:

POSITION_SWAP

Накопленный своп

double


А вот итоговую комиссию и итоговый своп, можно будет узнать после закрытия позиции, в истории сделок:

DEAL_COMMISSION

Комиссия по сделке

double

DEAL_SWAP

Накопленный своп при закрытии

double

 
new-rena:

Кто знает - в "POSITION_PROFIT" включена комиссия и своп?

Если нет - то какой параметр нужен, чтобы узнать сумму начисленной комиссии по ордеру в MQL5?

Ну если сказать по-русски, то ордер не может быть ни с прибылью, ни с убытком, это всего лишь приказ на дальнейшее исполнение. После исполнения приказа(ордера), вы получаете свою позицию в рынке по выбранной вами цене.


Vladimir Karputov:

POSITION_PROFIT - это просто прибыль позиции (без вычета комиссий, свопов ...). Узнать накопленный своп позиции можно так:

А вот итоговую комиссию и итоговый своп, можно будет узнать после закрытия позиции, в истории сделок:

Ну вот неправильно всё это, вернее недоделано.

Зачем мне знать комиссию после закрытия, вернее знать нужно, но в любой момент времени, предположим, счёт с комиссией и работает трал или безубыток, как мне рассчитать так, чтоб первое срабатывание было на уровень, при котором перекрывается комиссия и свопы в случае отката цены и закрытия. Плюсовать 1пп на перекрытие комиссии, а как-же быть со свопами, ведь позиция может висеть в рынке неделю и за это время набежит свопа на 3пп и при срабатывании безубытка закрытие будет с минусом.

Или Я чего-то недопонимаю в расчётах? 

 
Vitaly Muzichenko:

Ну если сказать по-русски, то ордер не может быть ни с прибылью, ни с убытком, это всего лишь приказ на дальнейшее исполнение. После исполнения приказа(ордера), вы получаете свою позицию в рынке по выбранной вами цене.


Ну вот неправильно всё это, вернее недоделано.

Зачем мне знать комиссию после закрытия, вернее знать нужно, но в любой момент времени, предположим, счёт с комиссией и работает трал или безубыток, как мне рассчитать так, чтоб первое срабатывание было на уровень, при котором перекрывается комиссия и свопы в случае отката цены и закрытия. Плюсовать 1пп на перекрытие комиссии, а как-же быть со свопами, ведь позиция может висеть в рынке неделю и за это время набежит свопа на 3пп и при срабатывании безубытка закрытие будет с минусом.

Или Я чего-то недопонимаю в расчётах? 

Я так понимаю, что в "POSITION_PROFIT" уже всё включено (своп, профит, комиссия) . и мне этого достаточно, чтобы сделать вывод о том - выгодно ли мне крыть
 
new-rena:

Кто знает - в "POSITION_PROFIT" включена комиссия и своп?

Если нет - то какой параметр нужен, чтобы узнать сумму начисленной комиссии по ордеру в MQL5?

Библиотеку MT4Orders не навязываю. Но, может, будет проще просто вызвать старый добрый OrderCommission?

Все же работает не только на хэдж-счетах, но и на нетто. 

 
new-rena:
Я так понимаю, что в "POSITION_PROFIT" уже всё включено (своп, профит, комиссия) . и мне этого достаточно, чтобы сделать вывод о том - выгодно ли мне крыть
Сейчас проверим простеньким советником...
Причина обращения: