Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Bibliotheken

HistoryPositionInfo version 2 - Bibliothek für den MetaTrader 5

Ansichten:
1229
Rating:
(31)
Veröffentlicht:
2017.07.12 18:34
\MQL5\Include\HistorySelect_\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Version 1.0: HistoryPositionInfo.

Das Neu in der Version 2:

Die Funktion GetProfitInPoints ist geblieben, aber es wird empfohlen, jetzt die neue Funktion GetProfit zu verwenden:

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

Die Funktion GetProfit gibt für die wieder hergestellte Position, außer dem Gewinn in Punkten: die Kommission, Swap und den Gewinn im Cash zurück.

Die Klasse CHistoryPositionInfo ist für das Erhalten des Gewinns der Positionen in Punkten, Kommission, Swap und den Gewinn im Cash aufgrund der Handelshistory vorgesehen. 

Die Beschreibung der Klasse 

Die Klasse CHistoryPositionInfo sorgt um das Erhalten des Gewinns der Positionen in Punkten, Kommission, Swap und den Gewinn im Cash aufgrund der Handelshistory. 

Die Deklaration

class CHistoryPositionInfo : public CArrayObj

Der Titel

#include <HistorySelect_\HistoryPositionInfo.mqh>

Die Methoden der Klasse nach den Gruppen

Initialisierung
InitDie Initialization vom Positionen-Identifikator
Der Zugang zum Ergebnis der Berechnungen  
GetProfitInPoints - die veraltende Methode. Es wird empfohlen,  GetProfit zu verwendendas Erhalten des Gewinns der Positionen in Punkten
GetProfitdas Erhalten des Gewinns der Positionen in Punkten, Kommission, Swap und des Gewinns im Cash
Die Installierung der Parameter 
LogErrorsDie Einschaltung/Ausschaltung der Fehler-Logs
PrintDeals(const bool value) Die Einschaltung/Ausschaltung des Modus für die Anzeige der Trades
Die Anzeige der Trades  
PrintDeals(void)Die Anzeige der Trades, die die Position gebildet haben

Das Beispiel der Arbeit mit der Klasse CHistoryPositionInfo: wir werden die Handelshistory für fünf Tage anfordern, bilden das Array aller treffenden Identifikatoren der Positionen, dann im Loop nach dem bekommenden Array drücken wir den Gewinn der Positionen in Punkten, Kommission, Swap und den Gewinn im Cash aufgrund der Handelshistory aus:

//+------------------------------------------------------------------+
//|                                      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));
     }
  }
//+------------------------------------------------------------------+



Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/18721

Get_Rich_or_Die_Trying_GBP Get_Rich_or_Die_Trying_GBP

Das Handeln nach PERIOD_M1 (M1). Die Berechnung der bärischen und bullischen Bars.

Trailing_Profit Trailing_Profit

Die Schließung aller offenen Positionen nach dem Prozent vom Gewinn.

SaveTicks SaveTicks

Dieses Programm zeichnet Tick-Kurse im CSV- und BIN-Format auf. Zum Schreiben steht ein flexibler Satz von Symbolen zur Verfügung.

Omni_Trend Omni_Trend

Ein Trendindikator nach Art des NRTR mit MA und ATR.