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

 
В MQL5 для закрытия ордера необходимо открыть зеркальный встречный ордер и больше никак?
 
new-rena:
В MQL5 для закрытия ордера необходимо открыть зеркальный встречный ордер и больше никак?

Используй те стандартную библиотеку:

#include <Trade\Trade.mqh>
CTrade         m_trade;                      // trading object
...
m_trade.PositionClose(....
или
m_trade.PositionCloseBy(..

и ни о чём не задумывайтесь.

 
Vladimir Karputov:

Используй те стандартную библиотеку:

#include <Trade\Trade.mqh>
CTrade         m_trade;                      // trading object
...
m_trade.PositionClose(....
или
m_trade.PositionCloseBy(..

и ни о чём не задумывайтесь.

Ну как не задумываться? Я же пишу программу на MQL5 для реальной торговли, то есть на реальные МОИ деньги!

Документацию я прочитал. Закрыть позицию - не вижу проблем.

Вопрос в другом. - у нас SELL перекрывается BUY, при этом SELL и BUY сливаются в один ордер с объемом равным нулю - это и есть закрытие?

То есть MQL5 исключает локи? А это значит, что у меня не остается ни одного шанса на удачу, кроме того как не отходя от кассы окончательно и бесповоротно получить убыток при развороте сигнала(оредра)?

Посмотрите в сигналах - MQL5, по сравнению с MQL4  в опе, мягко говоря...

Вам бы ситуацию поправить и убрать такую нелепость, как "позиция" из MQL5

 
new-rena:

Документацию я прочитал. 

Оно и видно.

new-rena:

...

То есть MQL5 исключает локи? А это значит, что у меня не остается ни одного шанса на удачу, кроме того как не отходя от кассы окончательно и бесповоротно получить убыток?

Посмотрите в сигналах - MQL5, по сравнению с MQL4  в опе, мягко говоря...

Вам бы ситуацию поправить и убрать такую нелепость, как "позиция" из MQL5

В справку иногда заглядывать надо, следить за обновлениями и статьи читать: В MetaTrader 5 добавлена хеджинговая система учета позиций

 
new-rena:

Ну как не задумываться? Я же пишу программу на MQL5 для реальной торговли, то есть на реальные МОИ деньги!

Документацию я прочитал. Закрыть позицию - не вижу проблем.

Вопрос в другом. - у нас SELL перекрывается BUY, при этом SELL и BUY сливаются в один ордер с объемом равным нулю - это и есть закрытие?

То есть MQL5 исключает локи? А это значит, что у меня не остается ни одного шанса на удачу, кроме того как не отходя от кассы окончательно и бесповоротно получить убыток?

Посмотрите в сигналах - MQL5, по сравнению с MQL4  в опе, мягко говоря...

Вам бы ситуацию поправить и убрать такую нелепость, как "позиция" из MQL5

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

Первая операция - 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]

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

Файлы:
TestEA.mq5  5 kb
 
Anatoli Kazharski:

Оно и видно.

Толян, ты меня достал.

Ты можешь писать по делу без сарказма?

 
new-rena:

Толян, ты меня достал.

Ты можешь писать по делу без сарказма?

А это что?

В справку иногда заглядывать надо, следить за обновлениями и статьи читать: В MetaTrader 5 добавлена хеджинговая система учета позиций 

 
Anatoli Kazharski:

А это что?

В справку иногда заглядывать надо, следить за обновлениями и статьи читать: В MetaTrader 5 добавлена хеджинговая система учета позиций 

Вот это - "Оно и видно." больше не надо!!!!!!!!!!!!!!!

Можешь ответить, дак напиши тока ответ и баста.

Тогда бы я написал - "Спасибо!"

А в данном случае - изволь, могу тока послать.

 
new-rena:

Толян, ты меня достал.

Ты можешь писать по делу без сарказма?

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

Вот это - "Оно и видно." больше не надо!!!!!!!!!!!!!!!

Можешь ответить, дак напиши тока ответ и баста.

Тогда бы я написал - "Спасибо!"

А в данном случае - изволь, могу тока послать.

Смотри, чтобы тебя не послали. )
Причина обращения: