Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

HistoryPositionInfo version 2 - librería para MetaTrader 5

Visualizaciones:
1089
Ranking:
(31)
Publicado:
2017.08.10 16:54
\MQL5\Include\HistorySelect_\
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Versión 1.0: HistoryPositionInfo.

Qué hay nuevo en la versión 2:

La función GetProfitInPoints continúa, pero ahora recomendamos usar la nueva función GetProfit:

   bool              GetProfit(double &profit_in_points,
                               double &commission,
                               double &swap,
                               double &profit_in_money);

La función GetProfit retorna, para el reestablecimiento de la posición, excepto el beneficio en puntos: la comisión, el swap y el beneficio en dinero.

La clase CHistoryPositionInfo ha sido diseñada para obtener el beneficio de la posición en puntos, la comisión, el swap y el beneficio en dinero basado en la historia comercial. 

Descripción de la clase 

La clase CHistoryPositionInfo posibilita la obtención del beneficio de la posición en puntos, la comisión, el swap y el beneficio en dinero basado en la historia comercial. 

Declaración

class CHistoryPositionInfo : public CArrayObj

Encabezamiento

#include <HistorySelect_\HistoryPositionInfo.mqh>

Método de clase por grupos

Inicialización
InitInicialización con el identificador de posición
Acceso al resultado de los cálculos  
GetProfitInPoints - método anticuado. Se recomienda usar GetProfitObtener el beneficio en puntos
GetProfitOntener el beneficio de la posición en puntos, la comisión, el swap y el beneficio en dinero
Configurando los parámetros 
LogErrorsActivar/desactivar el logueo de errores
PrintDeals(const bool value) Activar/desactivar el modo de muestra de transacciones
Muestra de transacciones 
PrintDeals(void)Muestra de las transacciones que han formado la posición

Ejemplo de trabajo con la clase CHistoryPositionInfo: solicitamos la historia comercial de los últimos cinco días, formamos la matriz de todos los identificadores de posición que encontramos, a continuación en el ciclo de la matriz obtenida, imprimimos el beneficio de la posición en puntos, la comisión, el swap y el beneficio en dinero basándonos en la historia comercial:

//+------------------------------------------------------------------+
//|                                      TestHistoryPositionInfo.mq5 |
//|                              Copyright © 2017, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "2.000"
#property script_show_inputs
//---
input datetime from_date   = __DATE__-60*60*24*5;  // from date (current time - 5 days)
input datetime to_date     =__DATE__+60*60*24;     // to date (current time + 1 days)
input bool     log_errors  = true;                 // logging errors
input bool     print_deals = true;                 // print deals
#include <HistorySelect_\HistoryPositionInfo.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   long arr_tickets[];
//--- request trade history 
   HistorySelect(from_date,to_date);
//---
   uint     total=HistoryDealsTotal();
   ulong    ticket=0;
   long     position_id=0;
//--- for all deals 
   for(uint i=0;i<total;i++)
     {
      //--- try to get deals ticket 
      if((ticket=HistoryDealGetTicket(i))>0)
        {
         //--- get deals properties 
         position_id=HistoryDealGetInteger(ticket,DEAL_POSITION_ID);

         int arr_size=ArraySize(arr_tickets);
         bool search=false;
         for(int ii=0;ii<arr_size;ii++)
           {
            if(arr_tickets[ii]==position_id)
              {
               search=true;
               continue;
              }
           }
         if(!search)
           {
            ArrayResize(arr_tickets,arr_size+1,100);
            arr_tickets[arr_size]=position_id;
           }
        }
     }
//---
   int arr_size=ArraySize(arr_tickets);
   for(int i=0;i<arr_size;i++)
     {
      Print("");
      Print("Search deals with POSITION_IDENTIFIER ",IntegerToString(arr_tickets[i]));

      CHistoryPositionInfo HistoryPositionInfo;
      //--- init position identifier
      HistoryPositionInfo.Init(arr_tickets[i]);
      //--- los errors
      HistoryPositionInfo.LogErrors(log_errors);
      //--- print deals
      HistoryPositionInfo.PrintDeals(print_deals);
      //---
      double profit_in_points=0.0;
      double commission=0.0;
      double swap=0.0;
      double profit=0.0;

      if(HistoryPositionInfo.GetProfit(profit_in_points,commission,swap,profit))
         Print("Profit in points ",DoubleToString(profit_in_points,1),
               ", commission ",DoubleToString(commission,2),
               ", swap ",DoubleToString(swap,2),
               ", profit ",DoubleToString(profit,2));
     }
  }
//+------------------------------------------------------------------+



Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/18721

Get_Rich_or_Die_Trying_GBP Get_Rich_or_Die_Trying_GBP

Comercio con el periodo PERIOD_M1 (M1). Cálculo de las barras alcistas y bajistas.

Trailing_Profit Trailing_Profit

Cierre de todas las posiciones abiertas según el tanto por ciento del beneficio.

Resistance & Support Resistance & Support

Indicador de líneas de resistencia y apoyo según los valores del indicador iFractals (Fractals).

SaveTicks SaveTicks

Utilidad para grabar las cotizaciones de ticks en el formato CSV y BIN, surtido flexible de símbolos para el guardado.