Was genau wollen Sie bekommen? Möchten Sie den Zeitpunkt des letzten Handels(Art des Handels "außerhalb des Marktes")? Oder müssen Sie den Zeitpunkt der Schließung einer Position in der Handelshistorie kennen?
Sie müssen den Zeitpunkt der letzten geschlossenen Position in der Handelshistorie kennen.
Der Code, den ich schrieb, wird in MQL5 arbeiten, obwohl ich die Bibliothekfxsaber Werke Code mt4, aber immer noch, die Frage bleibt, kann ich nicht dieOrderCloseTime() Funktionin MQL5 machen? Aber ich sollte es besser aufgeben. Ich habe eher eine Frage an die Entwickler. Ich brauche nicht zu antworten, ich habe die Geschichte in der Branche gelesen. Vieles habe ich bisher nicht verstanden, vielleicht werde ich meine Ansichten über die Sprache MQL5 mit der Zeit überdenken.
Ich muss den Zeitpunkt der letzten geschlossenen Position in der Handelshistorie kennen.
Der Code, den ich geschrieben habe, funktioniert in MQL5, obwohl ich diefxsaber-Bibliothek angeschlossen habe, der mt4-Code noch funktioniert, aber die Frage bleibt, kann ich nicht die OrderCloseTime() Funktion in MQL5 machen? Aber ich sollte es besser aufgeben. Ich habe eher eine Frage an die Entwickler. Ich brauche nicht zu antworten, ich habe die Geschichte in der Branche gelesen. Vieles habe ich bisher nicht verstanden, vielleicht werde ich meine Ansichten über die Sprache MQL5 mit der Zeit überdenken.
Das ist ganz einfach. Man muss sie nur lesen und dann seine Schlüsse ziehen :)
Ich muss den Zeitpunkt der letzten geschlossenen Position in der Handelshistorie kennen.
Der Code, den ich geschrieben habe, funktioniert in MQL5, obwohl ich diefxsaber-Bibliothek angeschlossen habe, der mt4-Code noch funktioniert, aber die Frage bleibt, kann ich nicht die OrderCloseTime() Funktion in MQL5 machen? Aber ich sollte es besser aufgeben. Ich habe eher eine Frage an die Entwickler. Ich brauche nicht zu antworten, ich habe die Geschichte in der Branche gelesen. Ich verstehe viele Dinge noch nicht, vielleicht werde ich meine Ansichten über die Sprache MQL5 mit der Zeit überdenken.
Verwenden Sie eine sehr einfache Methode (zumal bei 99 % der Hedge-Konten die Geschäftsart "Ausstieg aus dem Markt" lautet - dies ist die Schließung der Position).
Online-Erfassung der TransaktionTRADE_TRANSACTION_DEAL_ADD- Hinzufügen der Transaktion zur Historie, Überprüfung, ob es sich um einen KAUF oder VERKAUF handelt, Überprüfung, ob es sich um eine Marktaustritts-Transaktion handeltDEAL_ENTRY_OUT
//+------------------------------------------------------------------+//| TradeTransaction function |//+------------------------------------------------------------------+voidOnTradeTransaction(constMqlTradeTransaction &trans,
constMqlTradeRequest &request,
constMqlTradeResult &result)
{
//--- get transaction type as enumeration valueENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in historyif(type==TRADE_TRANSACTION_DEAL_ADD)
{
long deal_ticket =0;
long deal_order =0;
long deal_time =0;
long deal_time_msc =0;
long deal_type =-1;
long deal_entry =-1;
long deal_magic =0;
long deal_reason =-1;
long deal_position_id =0;
double deal_volume =0.0;
double deal_price =0.0;
double deal_commission =0.0;
double deal_swap =0.0;
double deal_profit =0.0;
string deal_symbol ="";
string deal_comment ="";
string deal_external_id ="";
if(HistoryDealSelect(trans.deal))
{
deal_ticket =HistoryDealGetInteger(trans.deal,DEAL_TICKET);
deal_order =HistoryDealGetInteger(trans.deal,DEAL_ORDER);
deal_time =HistoryDealGetInteger(trans.deal,DEAL_TIME);
deal_time_msc =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC);
deal_type =HistoryDealGetInteger(trans.deal,DEAL_TYPE);
deal_entry =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
deal_magic =HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
deal_reason =HistoryDealGetInteger(trans.deal,DEAL_REASON);
deal_position_id =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID);
deal_volume =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
deal_price =HistoryDealGetDouble(trans.deal,DEAL_PRICE);
deal_commission =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION);
deal_swap =HistoryDealGetDouble(trans.deal,DEAL_SWAP);
deal_profit =HistoryDealGetDouble(trans.deal,DEAL_PROFIT);
deal_symbol =HistoryDealGetString(trans.deal,DEAL_SYMBOL);
deal_comment =HistoryDealGetString(trans.deal,DEAL_COMMENT);
deal_external_id =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID);
}
elsereturn;
ENUM_DEAL_ENTRY enum_deal_entry=(ENUM_DEAL_ENTRY)deal_entry;
if(deal_symbol==ИМЯ ВАШЕГО СИМВОЛА && deal_magic==НОМЕР ВАШЕГО MAGIC)
{
if(deal_type==DEAL_TYPE_BUY || deal_type==DEAL_TYPE_SELL)
{
if(deal_entry==DEAL_ENTRY_OUT)
{
*** ***
}
}
}
}
}
Ich habe einen einfachen Expert Advisor mit dem VQL5-Assistenten erstellt; der Code ist unten angegeben. Helfen Sie mir zu verstehen, warum die Funktion "Verfall von Pending Orders (in Bars)" nicht funktioniert. Ich habe beliebige Signal_Expiration-Werte von 1 bis 1000 eingestellt, aber die Pending-Order existiert immer noch nur innerhalb eines Balkens. Ich füge auch Parametereinstellungen bei.
Zum Testen verwende ich ein Demokonto im Metatrader 5 Terminal, Build 2136.
Mit freundlichen Grüßen, Vladimir.
//+------------------------------------------------------------------+//| EA_MasterMQL5.mq5 |//| Copyright 2019, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2019, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Include |//+------------------------------------------------------------------+#include <Expert\Expert.mqh>
//--- available signals#include <Expert\Signal\SignalITF.mqh>
//--- available trailing#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management#include <Expert\Money\MoneyFixedRisk.mqh>
//+------------------------------------------------------------------+//| Inputs |//+------------------------------------------------------------------+//--- inputs for expertinputstring Expert_Title ="EA_MB_MasterMQL5"; // Document nameulong Expert_MagicNumber =1473; //bool Expert_EveryTick =false; ////--- inputs for main signalinputint Signal_ThresholdOpen =0; // Signal threshold value to open [0...100]inputint Signal_ThresholdClose =0; // Signal threshold value to close [0...100]inputdouble Signal_PriceLevel =0.0; // Price level to execute a dealinputdouble Signal_StopLevel =50.0; // Stop Loss level (in points)inputdouble Signal_TakeLevel =50.0; // Take Profit level (in points)inputint Signal_Expiration =4; // Expiration of pending orders (in bars)inputint Signal_ITF_GoodHourOfDay=-1; // IntradayTimeFilter(-1,...) Good hourinputint Signal_ITF_BadHoursOfDay=8389119; // IntradayTimeFilter(-1,...) Bad hours (bit-map)inputint Signal_ITF_GoodDayOfWeek=-1; // IntradayTimeFilter(-1,...) Good day of weekinputint Signal_ITF_BadDaysOfWeek=0; // IntradayTimeFilter(-1,...) Bad days of week (bit-map)inputdouble Signal_ITF_Weight =1.0; // IntradayTimeFilter(-1,...) Weight [0...1.0]//--- inputs for moneyinputdouble Money_FixRisk_Percent =10.0; // Risk percentage//+------------------------------------------------------------------+//| Global expert object |//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+//| Initialization function of the expert |//+------------------------------------------------------------------+intOnInit()
{
//--- Initializing expertif(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
{
//--- failedprintf(__FUNCTION__+": error initializing expert");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Creating signal
CExpertSignal *signal=new CExpertSignal;
if(signal==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating signal");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//---
ExtExpert.InitSignal(signal);
signal.ThresholdOpen(Signal_ThresholdOpen);
signal.ThresholdClose(Signal_ThresholdClose);
signal.PriceLevel(Signal_PriceLevel);
signal.StopLevel(Signal_StopLevel);
signal.TakeLevel(Signal_TakeLevel);
signal.Expiration(Signal_Expiration);
//--- Creating filter CSignalITF
CSignalITF *filter0=new CSignalITF;
if(filter0==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating filter0");
ExtExpert.Deinit();
return(INIT_FAILED);
}
signal.AddFilter(filter0);
//--- Set filter parameters
filter0.GoodHourOfDay(Signal_ITF_GoodHourOfDay);
filter0.BadHoursOfDay(Signal_ITF_BadHoursOfDay);
filter0.GoodDayOfWeek(Signal_ITF_GoodDayOfWeek);
filter0.BadDaysOfWeek(Signal_ITF_BadDaysOfWeek);
filter0.Weight(Signal_ITF_Weight);
//--- Creation of trailing object
CTrailingNone *trailing=new CTrailingNone;
if(trailing==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating trailing");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Add trailing to expert (will be deleted automatically))if(!ExtExpert.InitTrailing(trailing))
{
//--- failedprintf(__FUNCTION__+": error initializing trailing");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Set trailing parameters//--- Creation of money object
CMoneyFixedRisk *money=new CMoneyFixedRisk;
if(money==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating money");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Add money to expert (will be deleted automatically))if(!ExtExpert.InitMoney(money))
{
//--- failedprintf(__FUNCTION__+": error initializing money");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Set money parameters
money.Percent(Money_FixRisk_Percent);
//--- Check all trading objects parametersif(!ExtExpert.ValidationSettings())
{
//--- failed
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Tuning of all necessary indicatorsif(!ExtExpert.InitIndicators())
{
//--- failedprintf(__FUNCTION__+": error initializing indicators");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- okreturn(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Deinitialization function of the expert |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
ExtExpert.Deinit();
}
//+------------------------------------------------------------------+//| "Tick" event handler function |//+------------------------------------------------------------------+voidOnTick()
{
ExtExpert.OnTick();
}
//+------------------------------------------------------------------+//| "Trade" event handler function |//+------------------------------------------------------------------+voidOnTrade()
{
ExtExpert.OnTrade();
}
//+------------------------------------------------------------------+//| "Timer" event handler function |//+------------------------------------------------------------------+voidOnTimer()
{
ExtExpert.OnTimer();
}
//+------------------------------------------------------------------+
2019.09.09 18:03:27.865 Terminal MetaTrader 5 x64 build 2138 gestartet (MetaQuotes Software Corp.)

2019.09.09 18:03:27.866 Terminal Windows 10 (build 18362) x64, IE 11, UAC, Intel Core i7-3770K @ 3.50GHz, Speicher: 20544 / 24520 Mb, Festplatte: 145 / 237 Gb, GMT+2
2019.09.09 18:03:27.866 Terminal C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
Der übliche Blick auf mein ICH:
Ich schließe es nach der Arbeit, nichts hängt davon ab, wie ich es schließe.
Das nächste Mal, wenn ich das ME öffne, sieht es so aus:
Ansicht - Symbolleisten können Sie alles einrichten.
Nach dem Herunterfahren wiederholt sich alles.
2019.09.09 18:03:27.865 Terminal MetaTrader 5 x64 build 2138 gestartet (MetaQuotes Software Corp.)
2019.09.09 18:03:27.866 Terminal Windows 10 (build 18362) x64, IE 11, UAC, Intel Core i7-3770K @ 3.50GHz, Speicher: 20544 / 24520 Mb, Festplatte: 145 / 237 Gb, GMT+2
2019.09.09 18:03:27.866 Terminal C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
Der übliche Blick auf mein ICH:
Ich schließe es nach der Arbeit, nichts hängt davon ab, wie ich es schließe.
Das nächste Mal, wenn ich das ME öffne, sieht es so aus:
Ansicht - Symbolleisten können Sie alles einrichten.
Nach dem Herunterfahren wiederholt sich alles.
Drücken Sie nun F12
2019.09.09 18:03:27.865 Terminal MetaTrader 5 x64 build 2138 gestartet (MetaQuotes Software Corp.)
2019.09.09 18:03:27.866 Terminal Windows 10 (build 18362) x64, IE 11, UAC, Intel Core i7-3770K @ 3.50GHz, Speicher: 20544 / 24520 Mb, Festplatte: 145 / 237 Gb, GMT+2
2019.09.09 18:03:27.866 Terminal C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
Der übliche Blick auf mein ICH:
Ich schließe es nach der Arbeit, nichts hängt davon ab, wie ich es schließe.
Das nächste Mal, wenn ich das ME öffne, sieht es so aus:
Ansicht - Symbolleisten können Sie alles einrichten.
Nach dem Ausschalten wiederholt sich alles.
Versuchen Sie, den Datenordner zu öffnen, gehen Sie zu \config, schließen Sie das Terminal und MetaEditor, löschen Sie die Datei metaeditor.ini
Drücken Sie nun F12
Das hat funktioniert.
Ich danke Ihnen vielmals.
Versuchen Sie, den Datenordner zu öffnen, gehen Sie dort zu \config, schließen Sie das Terminal und MetaEditor, löschen Sie die Datei metaeditor.ini
F12 hat funktioniert, also ist nichts weiter erforderlich.
Vielen Dank für die Hilfe.
F12 hat funktioniert, also ist nichts weiter erforderlich.
Vielen Dank für Ihre Hilfe.
Wow. Ich wusste nicht, dass es für MetaEditor 5 die Funktion F12 (auf Vollbild erweitern) gibt!
Was genau wollen Sie bekommen? Möchten Sie den Zeitpunkt des letzten Handels(Art des Handels "außerhalb des Marktes")? Oder müssen Sie den Zeitpunkt der Schließung einer Position in der Handelshistorie kennen?
Sie müssen den Zeitpunkt der letzten geschlossenen Position in der Handelshistorie kennen.
Der Code, den ich schrieb, wird in MQL5 arbeiten, obwohl ich die Bibliothekfxsaber Werke Code mt4, aber immer noch, die Frage bleibt, kann ich nicht dieOrderCloseTime() Funktionin MQL5 machen? Aber ich sollte es besser aufgeben. Ich habe eher eine Frage an die Entwickler. Ich brauche nicht zu antworten, ich habe die Geschichte in der Branche gelesen. Vieles habe ich bisher nicht verstanden, vielleicht werde ich meine Ansichten über die Sprache MQL5 mit der Zeit überdenken.
Ich muss den Zeitpunkt der letzten geschlossenen Position in der Handelshistorie kennen.
Der Code, den ich geschrieben habe, funktioniert in MQL5, obwohl ich diefxsaber-Bibliothek angeschlossen habe, der mt4-Code noch funktioniert, aber die Frage bleibt, kann ich nicht die OrderCloseTime() Funktion in MQL5 machen? Aber ich sollte es besser aufgeben. Ich habe eher eine Frage an die Entwickler. Ich brauche nicht zu antworten, ich habe die Geschichte in der Branche gelesen. Vieles habe ich bisher nicht verstanden, vielleicht werde ich meine Ansichten über die Sprache MQL5 mit der Zeit überdenken.
Das ist ganz einfach. Man muss sie nur lesen und dann seine Schlüsse ziehen :)
Ich muss den Zeitpunkt der letzten geschlossenen Position in der Handelshistorie kennen.
Der Code, den ich geschrieben habe, funktioniert in MQL5, obwohl ich diefxsaber-Bibliothek angeschlossen habe, der mt4-Code noch funktioniert, aber die Frage bleibt, kann ich nicht die OrderCloseTime() Funktion in MQL5 machen? Aber ich sollte es besser aufgeben. Ich habe eher eine Frage an die Entwickler. Ich brauche nicht zu antworten, ich habe die Geschichte in der Branche gelesen. Ich verstehe viele Dinge noch nicht, vielleicht werde ich meine Ansichten über die Sprache MQL5 mit der Zeit überdenken.
Verwenden Sie eine sehr einfache Methode (zumal bei 99 % der Hedge-Konten die Geschäftsart "Ausstieg aus dem Markt" lautet - dies ist die Schließung der Position).
Online-Erfassung der TransaktionTRADE_TRANSACTION_DEAL_ADD- Hinzufügen der Transaktion zur Historie, Überprüfung, ob es sich um einen KAUF oder VERKAUF handelt, Überprüfung, ob es sich um eine Marktaustritts-Transaktion handeltDEAL_ENTRY_OUT
Forum für Handel, automatisierte Handelssysteme und Strategietests
Fragen von Anfängern MQL5 MT5 MetaTrader 5
MrBrooklin, 2019.09.09 09:50
Guten Tag allerseits und tolle Gewinne!
Ich habe einen einfachen Expert Advisor mit dem VQL5-Assistenten erstellt; der Code ist unten angegeben. Helfen Sie mir zu verstehen, warum die Funktion "Verfall von Pending Orders (in Bars)" nicht funktioniert. Ich habe beliebige Signal_Expiration-Werte von 1 bis 1000 eingestellt, aber die Pending-Order existiert immer noch nur innerhalb eines Balkens. Ich füge auch Parametereinstellungen bei.
Zum Testen verwende ich ein Demokonto im Metatrader 5 Terminal, Build 2136.
Mit freundlichen Grüßen, Vladimir.