und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Ansichten:
- 1355
- Rating:
- Veröffentlicht:
- 2017.07.12 18:34
-
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
Der Titel
Die Methoden der Klasse nach den Gruppen
Initialisierung | |
---|---|
Init | Die Initialization vom Positionen-Identifikator |
Der Zugang zum Ergebnis der Berechnungen | |
GetProfitInPoints - die veraltende Methode. Es wird empfohlen, GetProfit zu verwenden | das Erhalten des Gewinns der Positionen in Punkten |
GetProfit | das Erhalten des Gewinns der Positionen in Punkten, Kommission, Swap und des Gewinns im Cash |
Die Installierung der Parameter | |
LogErrors | Die 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

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

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

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

Ein Trendindikator nach Art des NRTR mit MA und ATR.