Vielen Dank für Ihre große und hilfreiche Artikel,
Darf ich Sie bitten, bringen Sie ein Beispiel, wie könnte diese Klasse in das Schreiben eines Experten-Berater verwenden, mein Mittel ist, dass mit dieser Klasse in EA-Vorlage nicht EA generieren.
Bei der Verwendung des im Artikel genannten Moduls werden beim Laden des Expert Advisors in den Chart Fehler im Expert Advisor Log generiert:
2017.09.06 00:28:29.873 1 (EURUSD,M5) OnInit: Fehler beim Initialisieren der Indikatoren
2017.09.06 00:31:20.256 1 (EURUSD,M5) CExpertBase::SetPriceSeries: Ändern der Zeitreihe ist untersagt
2017.09.06 00:31:20.256 1 (EURUSD,M5) CExpertBase::SetOtherSeries: Ändern der Zeitreihe ist verboten
2017.09.06 00:31:20.256 1 (EURUSD,M5) CExpertBase::InitIndicators: Parameter der Einstellung werden nicht geprüft
2017.09.06 00:31:20.256 1 (EURUSD,M5) CExpert::InitIndicators: Fehler bei der Initialisierung der Indikatoren des Trailing-Objekts
2017.09.06 00:31:20.256 1 (EURUSD,M5) OnInit: Fehler bei der Initialisierung der Indikatoren
Vielleicht ist es veraltet, wo kann man ein neues bekommen oder was kann man in diesem beheben?
Nehmen Sie eine Änderung im Trailing-Modul "sampleTrailing.mqh"vor:
//+------------------------------------------------------------------+//| Überprüfen Sie die Einstellungsparameter.|//| INPUT: nein.||| OUTPUT: wahr, wenn die Einstellungen korrekt sind, sonst falsch. || OUTPUT: wahr, wenn die Einstellungen korrekt sind, sonst falsch.//| ANMERKUNG: Nein.|//+------------------------------------------------------------------+bool CSampleTrailing::ValidationSettings()
{
if(!CExpertTrailing::ValidationSettings())
return(false);//--- für den Fall, dass die Init-Methode nicht aufgerufen wurdeif(m_symbol==NULL) return(false);
//--- Parameterprüfungif((m_profit-m_stop_level)*m_adjusted_point<=m_symbol.StopsLevel()*m_symbol.Point() && m_profit!=0.0)
{
printf(__FUNCTION__+"Der Schwellenwert für den Gewinn muss größer sein als der Auftragswert".);
return(false);
}
//--- okreturn(true);
}
Wenn ich eine Short-Position eröffne und den üblichen Stop-Loss (nicht Trailing) in den Parametern auf 0 setze, wird der Trailing-Stop nicht auf Breakeven gesetzt, aber wenn ich den üblichen Stop leicht verschiebe und auf mindestens -1 Pip setze, funktioniert alles. Beim Longing funktioniert alles normal. Bei der Überprüfung der Bedingung, dass es bereits einen Breakeven gibt (der Stop ist kleiner als der Preis), wird der Wert des Stops zunächst auf 0 gesetzt und er lässt ihn nicht weiter gehen.
Das ist richtig. Der angegebene Stop Loss ist der Auslöser dafür, dass DIESES Trailing-Modul beim Breakeven arbeitet. Das heißt, es wird angenommen, dass die Position anfangs einen Stop Loss haben MUSS.
Hinzugefügt:
Der Zweck eines jeden Artikels ist es, Lösungsansätze für ein bestimmtes Problem aufzuzeigen und bekannt zu machen. Dann sollte der Benutzer selbst seinen eigenen Code auf der Grundlage der gewonnenen Erkenntnisse entwickeln.
Es sollte so ergänzt werden, dass wenn es keinen Stop gibt, der Trailing auch ist - füllen Sie die Variable mit mindestens dem Eröffnungswert.
(Ich habe eine Push-Benachrichtigung für 2 Ihrer Nachrichten, aber einer von ihnen fehlt - gelöscht)?
Wenn Sie etwas ändern müssen - das ist nicht das Problem dieses Artikels. Hier können Sie es selbst tun, basierend auf dem Wissen, das Sie gewonnen haben. Das heißt, wenn Sie eine Technische Aufgabe verfassen wollen und denken, dass der Artikel darunter umgeschrieben wird - das ist nicht so.
Wie ich Ihre Aktionen sehe: das Modul umschreiben (eine kleine Änderung) und verwenden.
Nachtrag: Zum letzten Mal, bitte benutzen Sie die Schaltfläche "Antworten". Andernfalls werde ich nicht antworten.
Okay, ich werde es selbst schreiben. Haben Sie einen Ihrer Beiträge gelöscht (sagen Sie mir, wenn ja, damit ich nicht danach suchen muss)?
Sie können ein neues Thema eröffnen, so etwas wie"Modul der offenen Positionen Wartung zum Breakeven" - ich denke, ein solches Thema wird nützlich sein.
Also ja, ich habe meinen Beitrag bearbeitet und aus Versehen auf "löschen" geklickt - das heißt, ich habe tatsächlich ZWEI Beiträge geschrieben und einen gelöscht. Deshalb ist der Push richtig angekommen.
Vielen Dank für Ihre große und hilfreiche Artikel,
Darf ich Sie bitten, bringen Sie ein Beispiel, wie könnte diese Klasse in das Schreiben eines Experten-Berater verwenden, mein Mittel ist, dass mit dieser Klasse in EA-Vorlage nicht EA generieren.
Nochmals vielen Dank,.
Guten Tag! Das Modul funktioniert nicht.
Das Protokoll zeigt, dass die Höhe des Schwellengewinns größer sein muss als die Höhe der Einstellaufträge.
Im Konstruktor initialisiere ich Variablen, die nicht leer sind und nicht gleich Null sind. Warum erhalte ich einen Fehler?
Guten Tag! Das Modul funktioniert nicht.
Das Protokoll zeigt, dass die Höhe des Schwellengewinns größer sein muss als die Höhe der Einstellaufträge.
Im Konstruktor initialisiere ich Variablen, die nicht leer sind und nicht gleich Null sind. Warum erhalte ich eine Fehlermeldung?
Bei der Verwendung des im Artikel genannten Moduls werden beim Laden des Expert Advisors in den Chart Fehler im Expert Advisor Log generiert:
2017.09.06 00:28:29.873 1 (EURUSD,M5) OnInit: Fehler beim Initialisieren der Indikatoren
2017.09.06 00:31:20.256 1 (EURUSD,M5) CExpertBase::SetPriceSeries: Ändern der Zeitreihe ist untersagt
2017.09.06 00:31:20.256 1 (EURUSD,M5) CExpertBase::SetOtherSeries: Ändern der Zeitreihe ist verboten
2017.09.06 00:31:20.256 1 (EURUSD,M5) CExpertBase::InitIndicators: Parameter der Einstellung werden nicht geprüft
2017.09.06 00:31:20.256 1 (EURUSD,M5) CExpert::InitIndicators: Fehler bei der Initialisierung der Indikatoren des Trailing-Objekts
2017.09.06 00:31:20.256 1 (EURUSD,M5) OnInit: Fehler bei der Initialisierung der Indikatoren
Nehmen Sie eine Änderung im Trailing-Modul "sampleTrailing.mqh"vor:
Bei der Verwendung des im Artikel beschriebenen Moduls werden beim Laden des Expert Advisors in einen Chart Fehler im Log des Expert Advisors erzeugt:
Vielen Dank für die Nachricht, der Artikel wurde korrigiert.
Wenn ich eine Short-Position eröffne und den üblichen Stop-Loss (nicht Trailing) in den Parametern auf 0 setze, wird der Trailing-Stop nicht auf Breakeven gesetzt, aber wenn ich den üblichen Stop leicht verschiebe und auf mindestens -1 Pip setze, funktioniert alles. Beim Longing funktioniert alles normal. Bei der Überprüfung der Bedingung, dass es bereits einen Breakeven gibt (der Stop ist kleiner als der Preis), wird der Wert des Stops zunächst auf 0 gesetzt und er lässt ihn nicht weiter gehen.
Das ist richtig. Der angegebene Stop Loss ist der Auslöser dafür, dass DIESES Trailing-Modul beim Breakeven arbeitet. Das heißt, es wird angenommen, dass die Position anfangs einen Stop Loss haben MUSS.
Hinzugefügt:
Der Zweck eines jeden Artikels ist es, Lösungsansätze für ein bestimmtes Problem aufzuzeigen und bekannt zu machen. Dann sollte der Benutzer selbst seinen eigenen Code auf der Grundlage der gewonnenen Erkenntnisse entwickeln.
Es sollte so ergänzt werden, dass wenn es keinen Stop gibt, der Trailing auch ist - füllen Sie die Variable mit mindestens dem Eröffnungswert.
(Ich habe eine Push-Benachrichtigung für 2 Ihrer Nachrichten, aber einer von ihnen fehlt - gelöscht)?
Wenn Sie etwas ändern müssen - das ist nicht das Problem dieses Artikels. Hier können Sie es selbst tun, basierend auf dem Wissen, das Sie gewonnen haben. Das heißt, wenn Sie eine Technische Aufgabe verfassen wollen und denken, dass der Artikel darunter umgeschrieben wird - das ist nicht so.
Wie ich Ihre Aktionen sehe: das Modul umschreiben (eine kleine Änderung) und verwenden.
Nachtrag: Zum letzten Mal, bitte benutzen Sie die Schaltfläche "Antworten". Andernfalls werde ich nicht antworten.
Okay, ich werde es selbst schreiben. Haben Sie einen Ihrer Beiträge gelöscht (sagen Sie mir, wenn ja, damit ich nicht danach suchen muss)?
Sie können ein neues Thema eröffnen, so etwas wie"Modul der offenen Positionen Wartung zum Breakeven" - ich denke, ein solches Thema wird nützlich sein.
Also ja, ich habe meinen Beitrag bearbeitet und aus Versehen auf "löschen" geklickt - das heißt, ich habe tatsächlich ZWEI Beiträge geschrieben und einen gelöscht. Deshalb ist der Push richtig angekommen.