Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Hallo Enrico,
Ich habe einen Weg gefunden, um die Calculate-Funktion jetzt einschließlich einer Hysterese-Funktion, die zu arbeiten scheint, wenn die MA und der TEMA-Indikator kreuzt.
Ich bin jedoch auf ein Problem mit dem Order Manager gestoßen. Es tritt auf, wenn ich den Strategietester für einige Schleifen während der Optimierung ausgeführt habe. In den ersten Schleifen funktioniert es gut, aber nach einigen Schleifen wird für jede Kerze eine Order platziert.
Hier funktioniert es gut:
Aber hier beginnt der Order Manager, mehrere Orders zu platzieren:
Als ich den folgenden Code-Teil des COrderManagers debuggt habe, wird die Anweisung orders_total = OrdersTotal(); zu 1, wenn sie funktioniert, aber zu 0, wenn sie fehlschlägt, was dazu führt, dass die if-Bedingung m_max_order>orders_total immer zu true ausgewertet wird.
Ich hoffe, Sie können mir helfen, das Problem zu lösen.
Mit freundlichen Grüßen/
Karl
Hallo Karl,
ich bin noch nie auf dieses Problem gestoßen. Die Methode OrdersTotal() zählt einfach die Anzahl der aktiven COrder-Objekte. Wenn etwas mit der kodierten Strategie nicht stimmt, muss es korrigiert werden. Wenn nicht, dann muss es ein Problem damit geben, wie die COrder-Instanzen verwaltet (erstellt/zerstört) und/oder wie sie gezählt werden. Ich werde Sie informieren, sobald ich auf dieses Problem stoße.
Hallo Enrico,
Googeln auf mt5 OrdersTotal() Probleme zeigt, andere haben Probleme als gut. Z.B. https://www. Strategie-Tester mit dieser Strategie ausprobieren. Das Expert Set ist ebenfalls hochgeladen, so dass Sie den Strategietester mit denselben Eingaben wie ich ausführen können.
Mit freundlichen Grüßen/
Karl
Hallo Enrico,
Googeln auf mt5 OrdersTotal() Probleme zeigt, andere haben Probleme als gut. Z.B.: Strategietester mit dieser Strategie ausprobieren. Das Expert Set ist ebenfalls hochgeladen, damit Sie den Strategietester mit denselben Eingaben wie ich ausführen können.
Mit freundlichen Grüßen/
Karl
Danke für die Dateien, Karl. Ich bin auf das von Ihnen beschriebene Problem gestoßen.
Ändern Sie in der Haupt-Include-Datei dies (OnInit):
in dies:
Und dies (OnDeinit):
in dies:
Aus irgendeinem Grund werden die aus früheren Sitzungen gespeicherten Daten in zukünftige Sitzungen neu geladen. Aus diesem Grund tritt das Problem nur nach dem ersten Backtest auf, manchmal mit einem Speicherleck. Nach meinen Tests scheint das Problem nur im Netting-Modus aufzutreten, nicht im MT4 oder MT5 Hedging-Modus. Aber lassen Sie mich wissen, wenn Sie dieses Problem weiterhin haben. Der obige Code verhindert das Laden und Speichern von Daten während des Backtests und der Optimierung (ich habe vergessen, dies beim Schreiben des letzten Artikels zu erwähnen).
Außerdem zählt die Funktion OrdersTotal() in MT5 nur die ausstehenden Aufträge (nicht das Äquivalent zu MT4s OrdersTotal). Der Code in TradeOpen für OrderManager:
verwendet die Methode OrdersTotal() der Klasse, die nur eine Umhüllung der Methode COrders (ebenfalls mit demselben Namen) ist. COrders erweitert CArrayObj, so dass es nicht wirklich die MT5-eigene Funktion OrdersTotal() verwendet. Das obige ist auch äquivalent zu verwenden:
Wenn wir hingegen:
ruft dies explizit die MT5-eigene Funktion auf. Möglicherweise sind Sie damit bereits vertraut, aber nur für den Fall, dass andere Personen auf ein ähnliches Problem stoßen.
Vielen Dank, Enrico. Das Problem ist verschwunden.
/Karl
Hallo Enrico,
Im Github unter iceron/MQLx gibt es einen Änderungshinweis zu m_new_signal und m_new_signal_close.
m_signal_new kann mit der void CSignalsBase::NewSignal(const bool value) Methode geändert werden, aber es gibt keine Methode um m_new_signal_close zu ändern.
Könnten Sie bitte die Verwendung von m_new_signal und m_new_signal_close näher erläutern?
Mit freundlichen Grüßen/
Karl
Funktionieren diese Methoden mit Ihrer MT5Bridge?
Hallo Meister!
Ich habe ein ernsthaftes Problem mit dem Verständnis der "Kerzenzählung" (Erste, zweite, dritte = idx, idx++, ...) im folgenden Mql Signal Code, der zur SignalAC Klasse gehört.
Kann mir jemand helfen, die idx-Nummer zu durchdringen, wenn ich mich in den Codes nach unten bewege?
Vielen Dank im Voraus.