Работа с историей: сколько пунктов прибыли/убытка у позиции? - страница 2

 

Окончательный вариант класса "CHistoryPositionInfo.mqh" - версия 1.002 - мелкие исправления и перевод, а также проверочный скрипт "TestHistoryPositionInfo.mq5" - версия 1.001.

Результат работы проверочного скрипта "TestHistoryPositionInfo.mq5":

2017.02.11 08:48:44.159 TestHistoryPositionInfo (NZDUSD,M1)    
2017.02.11 08:48:44.159 TestHistoryPositionInfo (NZDUSD,M1)     Search deals with POSITION_IDENTIFIER 132873637
2017.02.11 08:48:44.159 TestHistoryPositionInfo (NZDUSD,M1)     DEAL_ENTRY_IN, DEAL_TYPE_BUY, price 1.06725, Deal EURUSD, volume 0.03, profit 0.00
2017.02.11 08:48:44.159 TestHistoryPositionInfo (NZDUSD,M1)     DEAL_ENTRY_OUT_BY, DEAL_TYPE_SELL, price 1.06719, Deal EURUSD, volume 0.01, profit 0.00
2017.02.11 08:48:44.159 TestHistoryPositionInfo (NZDUSD,M1)     DEAL_ENTRY_OUT, DEAL_TYPE_SELL, price 1.06720, Deal EURUSD, volume 0.02, profit -0.10
2017.02.11 08:48:44.159 TestHistoryPositionInfo (NZDUSD,M1)     Profit in points -5.0

При использовании класса, в методе GetProfitInPoints можно закомментировать вывод сделок

//+------------------------------------------------------------------+
//| Profit in points                                                 |
//+------------------------------------------------------------------+
bool CHistoryPositionInfo::GetProfitInPoints(double &profit_in_points)
  {
   bool result=true;
   if(!IsIntegrity())
      return(false);
//--- testing: print all items
//PrintDeals();
//--- get the value of one point on the symbol position

- в таком случае класс будет выдавать только профит в пунктах.
 

 

Исправления и дополнения.  

"HistoryPositionInfo.mqh" - версия 1.004. Класс переехал в папку Includ: \MQL5\Include\HistorySelect_\

"TestHistoryPositionInfo.mq5" - версия 1.003.

В класс добавлены методы и теперь проверочный советник выглядит так:

//+------------------------------------------------------------------+
//|                                      TestHistoryPositionInfo.mq5 |
//|                              Copyright © 2017, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.003"
#property script_show_inputs
//---
input long position_id=0;                    // position identifier - POSITION_IDENTIFIER
input bool log_errors=true;                  // logging errors
input bool print_deals=true;                 // print deals
#include <HistorySelect_\HistoryPositionInfo.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print("\nSearch deals with POSITION_IDENTIFIER ",IntegerToString(position_id));
   CHistoryPositionInfo HistoryPositionInfo;
//--- init position identifier
   HistoryPositionInfo.Init(position_id);
//--- los errors
   HistoryPositionInfo.LogErrors(log_errors);
//--- print deals
   HistoryPositionInfo.PrintDeals(print_deals);
//---
   double profit_in_points=0.0;
   if(HistoryPositionInfo.GetProfitInPoints(profit_in_points))
      Print("Profit in points ",DoubleToString(profit_in_points,1));
   else
      Print("GetProfitInPoints=false");
  }
//+------------------------------------------------------------------+

  • HistoryPositionInfo.Init(position_id); - инициализируем объект класс идентификатором позиции
  • HistoryPositionInfo.LogErrors(log_errors); - включаем/выключаем принт ошибок
  • HistoryPositionInfo.PrintDeals(print_deals); - включаем/выключаем принт сделок из которых создана позиция
 Теперь можно управлять выводом ошибок и распечаткой сделок.