Как на MQL 5 получить данные по времени и цене открытия и времени и цене закрытия сделки?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Boris Egorov
466
Boris Egorov  

Подскажите плиз как на MQL 5 получить данные по времени и цене открытия и времени и цене закрытия сделки?  со временем и ценой открытия как то понятно, а вот с закрытием не понятно вообще.

---
22803
---  
gedd:

Подскажите плиз как на MQL 5 получить данные по времени и цене открытия и времени и цене закрытия сделки?  со временем и ценой открытия как то понятно, а вот с закрытием не понятно вообще.

action сделки, закрывающей позицию == ENTRY_OUT или ENTRY_INOUT

её время и будет временм закрытия позиции.
Boris Egorov
466
Boris Egorov  
а как определить цену?
Alexey Viktorov
25876
Alexey Viktorov  
gedd:
а как определить цену?
Ну так если время этой сделки и есть время закрытия позиции, значит цена этой сделки и есть цена закрытия позиции. :-)
Vladimir Karputov
Модератор
182154
Vladimir Karputov  
gedd:
а как определить цену?

Поможет функция OnTradeTransaction. Пример ниже обработает вход или выход из позиции для сделок на данном символе (m_symbol - объект торгового класса CSymbolInfo) и для данного Magic:

//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//--- get transaction type as enumeration value
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in history
   if(type==TRADE_TRANSACTION_DEAL_ADD)
     {
      string   deal_symbol       ="";
      long     deal_magic        =0;
      long     deal_entry        =0;
      long     deal_type         =0;
      double   deal_price        =0.0;
      double   deal_profit       =0.0;
      if(HistoryDealSelect(trans.deal))
        {
         deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL);
         deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
         deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
         deal_type=HistoryDealGetInteger(trans.deal,DEAL_TYPE);
         deal_price=HistoryDealGetDouble(trans.deal,DEAL_PRICE);
         deal_profit=HistoryDealGetDouble(trans.deal,DEAL_PROFIT);
        }
      else
         return;
      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
        {
         if(deal_entry==DEAL_ENTRY_IN) // это вход в позицию
           {

           }
         if(deal_entry==DEAL_ENTRY_IN) // это выход из позиции
           {

           }
        }
     }
  }

здесь Вы можете получить цену "deal_price" - в зависимости от того, вход это или выход, это будет цена входа или выхода, а также можете получить значения прибыли "deal_profit".
 

Boris Egorov
466
Boris Egorov  
 Спасибо!!!!
fxsaber
16758
fxsaber  

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 1525: Представление истории в виде позиций и улучшение тестера

fxsaber, 2017.01.27 19:20

// MQL4&5-code

#include <MT4Orders.mqh>

void OnStart()
{  
  const int Total = OrdersHistoryTotal();
    
  for (int i = 0; i < Total; i++)
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
      OrderPrint();
}
Boris Egorov
466
Boris Egorov  
fxsaber:

я стараюсь не юзать MT4Orders.mqh так как, как то оно не очень хорошо работает

кстати вопрос возник именно потому что перевожу с этого MT4Orders.mqh на функции мт5 

fxsaber
16758
fxsaber  
gedd:

я стараюсь не юзать MT4Orders.mqh так как, как то оно не очень хорошо работает

Буду благодарен, если укажите проблемы. На данный момент ни о каких проблемах в библе не известно.
Boris Egorov
466
Boris Egorov  
fxsaber:
Буду благодарен, если укажите проблемы. На данный момент ни о каких проблемах в библе не известно.

я сильно не буду ругаться на него, но

проект нормально работавший на МТ4, с переходом на МТ5 работать перестал, касается это всей графической части  

fxsaber
16758
fxsaber  
gedd:

я сильно не буду ругаться на него, но

проект нормально работавший на МТ4, с переходом на МТ5 работать перестал, касается это всей графической части  

Библа решает только торговые вопросы, не графические.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий