JKEFAdvancedModel
- Experten
-
Shi Yuan Wang
Ich entwickle benutzerdefinierte Indikatoren, Expert Advisors (EAs), Skripte und Trading-Tools für MetaTrader 4 und MetaTrader 5 sowie Indikatoren für TradingView (Pine Script).
Was ich für Sie tun kann:
- Umwandlung einer klar beschriebenen Handelsregel in einen backtestbaren MQL4/MQL5 EA - Version: 1.5
- Aktivierungen: 5
JKEFAdvancedModel – Volatilitätsadaptives Handelssystem für Trendausbrüche
Übersicht
JKEFAdvancedModel ist ein vollautomatischer Expert Advisor für MetaTrader 5. Auf dem ausgewählten Zeitrahmen passt er sich der Marktvolatilität an, um dem Trend zu folgen und Ausbrüche zu handeln.
Das System wertet ausschließlich den Zustand abgeschlossener Kerzen aus, sodass Signale nicht durch eine noch nicht abgeschlossene Kerze revidiert werden. Sobald sich eine Richtung bestätigt hat, kann der Roboter mit einer Marktorder einsteigen oder eine Stop-Order in einem festgelegten Abstand zum aktuellen Kurs platzieren und auf die Bestätigung des Ausbruchs warten, wobei er diese ausstehende Order nachzieht, solange sie noch nicht ausgeführt ist. Pro Zyklus wird nur eine Position gehalten. Es erfolgt kein Hinzufügen weiterer Positionen, kein „Averaging down“ und es kommt weder eine Grid- noch eine Martingale-Logik zum Einsatz.
Handelslogik
Zustandserkennung. Zunächst wird die Kursvolatilität gemessen: Je stärker die Volatilität, desto schneller folgt der gleitende Durchschnitt dem Kurs; je ruhiger der Markt, desto glatter der Durchschnitt. Der Durchschnitt wird anschließend einem momentumgewichteten Glättungsschritt unterzogen, um eine Trendbasislinie zu erzeugen. Oberhalb und unterhalb der Trendbasislinie wird ein aktuelles Abweichungsperzentil berechnet. Ein Schlusskurs oberhalb des oberen Abweichungsperzentils löst den Long-Zustand aus, ein Schlusskurs unterhalb des unteren Abweichungsperzentils den Short-Zustand. Die Zustände werden nur bei abgeschlossenen Kerzen aktualisiert. Der Signal-Zeitrahmen wird durch InpTF definiert und kann vom Chart-Zeitrahmen abweichen.
Erster Einstieg. Nach dem Laden oder nach dem Drücken von „Start“ liest der Roboter die aktuelle Signalrichtung aus, sofern für das aktuelle Symbol keine Position und keine ausstehende Order aus diesem System vorliegt. Wenn eine Richtung definiert und zulässig ist, eröffnet er sofort eine Marktposition mit dem festgelegten anfänglichen Stop-Loss. Ist die Richtung neutral, wartet er so lange, bis eine definierte Richtung auftritt.
Nach dem Schließen einer Position. Wenn eine Position endet – durch Stop-Loss, durch Trailing-Stop oder manuell –, zeichnet der Roboter den Schlusszeitpunkt auf, wartet die konfigurierte Anzahl von Sekunden ab und platziert dann eine Stop-Order in Richtung des aktuellen Signals: einen Buy-Stop für Long-Positionen und einen Sell-Stop für Short-Positionen, in der konfigurierten Entfernung vom aktuellen Marktpreis.
Verwaltung ausstehender Orders. Während eine Stop-Order aussteht, vergleicht der Roboter sie kontinuierlich mit dem aktuellen Signal:
- Wenn sich die Signalrichtung umkehrt, wird die ausstehende Order gelöscht und eine neue in die entgegengesetzte Richtung platziert;
- wenn die Richtung durch den Handelsrichtungsfilter ausgeschlossen wird, wird die ausstehende Order gelöscht und der Warte-Timer neu gestartet;
- bewegt sich der Kurs in die günstige Richtung, folgt der Pending-Kurs diesem – ein Buy-Stop bewegt sich nach unten und ein Sell-Stop nach oben –, sodass die Order dem Markt folgt, anstatt feststehend zu bleiben.
Eine ausgeführte Pending-Order wird zu einer offenen Position.
Positionsmanagement. Solange eine Position offen ist, werden alle nicht ausgeführten Pending-Orders entfernt und der Stop-Loss gemäß den Trailing-Stop-Parametern beibehalten: Der Trailing-Stop wird aktiviert, sobald der Gewinn den Auslöseabstand erreicht, hält den konfigurierten Abstand zum aktuellen Kurs ein und bewegt sich nur in die günstige Richtung.
Ausstieg. Es wird kein fester Take-Profit verwendet. Ausstiege erfolgen durch den anfänglichen Stop-Loss, durch den Trailing-Stop oder über die Schaltfläche „Alle schließen“ auf dem Bedienfeld.
Risikomanagement
- Feste Lotgröße mit einer Position pro Zyklus. Kein Hinzufügen, kein Durchschnittskauf, keine Erholung im Hedging-Stil.
- Jeder Einstieg ist mit einem anfänglichen Stop-Loss in der konfigurierten Entfernung in Punkten verbunden; der Wert Null bedeutet, dass kein Stop-Loss gesetzt ist.
- Optionaler Trailing-Stop mit separaten Auslöse- und Abstandsparametern; werden beide auf Null gesetzt, wird die Funktion deaktiviert.
- Die freie Margin wird vor jeder Orderanforderung berechnet. Reicht die freie Margin nicht aus, wird keine Order gesendet, ein Eintrag in das Protokoll geschrieben und eine Wartezeit gestartet, um wiederholte fehlgeschlagene Anfragen zu vermeiden.
- Der vom Wertpapier unterstützte Ausführungsmodus wird automatisch erkannt, bei Bedarf mit Fallback-Wiederholungsversuchen. Marktorders und Pending-Orders werden separat behandelt.
- Handelssitzungen und Handelsmodi des Wertpapiers werden überprüft, sodass keine Anfragen gesendet werden, während der Markt geschlossen ist, und es wird eine Wartezeit angewendet, um unnötige Fehlermeldungen zu reduzieren.
- Die Lotgröße wird auf das Minimum, Maximum und die Schrittweite des Wertpapiers normiert, um durch Genauigkeitsprobleme verursachte Serverablehnungen zu vermeiden.
Panel im Chart
Das Chart zeigt drei Schaltflächen – „Start“, „Stop“ und „Alle schließen“ – sowie eine Statuszeile.
- „Start“ aktiviert den automatisierten Handel. Wenn keine Position besteht, wird der erste Einstieg entsprechend dem aktuellen Signal versucht. Die Sperrfristen für „Markt geschlossen“ und „unzureichende Deckung“ werden aufgehoben.
- „Stopp“ verhindert neue Einstiegsgeschäfte. Offene Positionen bleiben davon unberührt, und der Trailing-Stop läuft weiter.
- „Alle schließen“ schließt die von diesem System für das aktuelle Symbol eröffneten Positionen, löscht ausstehende Orders und beendet den automatisierten Handel.
Die Statuszeile zeigt den Status „läuft“ oder „gestoppt“, den Signal-Zeitrahmen, die zulässige Richtung, die Lotgröße, den Bestätigungsmodus, den anfänglichen Stop-Loss, den Trigger und den Abstand des Trailing-Stops, den Abstand der ausstehenden Order, die Wartezeit sowie die aktuelle Phase an: Markt geschlossen, unzureichende Deckung, Warten auf ersten Einstieg, in Position, ausstehende Order, Warten auf ausstehende Order oder Flat.
Die Platzierung der Schaltflächengruppe (eine der vier Ecken des Charts), der horizontale und vertikale Versatz, die Breite und Höhe der Schaltflächen sowie die Schriftgröße sind alle konfigurierbar.
Empfohlene Betriebsbedingungen
- Symbol: Finanzinstrumente mit guter Liquidität und stabilen Spreads, wie z. B. wichtige Währungspaare, liquide Cross-Paare, Edelmetalle und CFDs auf wichtige Indizes. Testen Sie dies zunächst auf einem Demokonto.
- Zeitrahmen: Der Roboter kann an jedes Chart angehängt werden; der Signalzeitrahmen wird von InpTF festgelegt, standardmäßig M5.
- Kontotyp: Sowohl Netting- als auch Hedging-Konten werden unterstützt.
- Kontogröße: Lotgröße und Stop-Loss werden vom Nutzer festgelegt; leiten Sie die Lotgröße daher aus dem maximalen Verlust ab, den Sie pro Trade in Kauf nehmen möchten. Bei der Standard-Lotgröße von 0,01 und einem anfänglichen Stop-Loss von 500 Punkten wird im Allgemeinen ein Kontostand von mindestens 500 USD oder dem entsprechenden Gegenwert empfohlen; bei geringer Hebelwirkung oder Instrumenten mit hohem Punktwert sollten Sie einen höheren Kontostand oder eine kleinere Lotgröße verwenden. Dies ist lediglich eine Empfehlung zur Kapitalauslastung und stellt keine Renditeerwartung dar.
- Umgebung: Verwenden Sie ein Konto mit stabiler Ausführung und geringer Latenz und lassen Sie das Terminal auf einem VPS online laufen.
Eingabeparameter
Handelsparameter
Parameter | Standard | Beschreibung |
|---|---|---|
InpTF | PERIOD_M5 | Für die Signalberechnung verwendeter Zeitrahmen; kann vom Zeitrahmen des Charts abweichen |
InpTradeDirection | TRADE_DIR_BOTH | Zulässige Richtung: beide, nur Long oder nur Short |
InpLots | 0,01 | Feste Lotgröße, normiert gemäß den Symbolregeln |
InpStopLoss | 500 | Anfänglicher Stop-Loss-Abstand in Punkten; 0 bedeutet keinen Stop-Loss |
InpTrailTrigger | 200 | Erforderlicher Gewinn zur Aktivierung des Trailing-Stops, in Punkten |
InpTrailDistance | 100 | Abstand zwischen dem Trailing-Stop und dem aktuellen Kurs, in Punkten |
InpWaitSeconds | 10 | Sekunden, die nach dem Schließen einer Position gewartet werden müssen, bevor die nächste Pending-Order platziert wird |
InpPendingDistance | 500 | Abstand der Stop-Order vom aktuellen Marktkurs in Punkten |
InpMagic | 20267777 | Auftragskennung, die zur Unterscheidung dieses Systems von anderen Programmen verwendet wird |
InpSlippage | 30 | Maximal zulässige Abweichung beim Orderversand, in Punkten |
Einstellungen für den Ausführungsmodus
Parameter | Standard | Beschreibung |
|---|---|---|
InpAutoDetectFilling | true | Die vom Symbol unterstützten Füllmodi automatisch erkennen |
InpManualFilling | ORDER_FILLING_FOK | Verwendeter Füllmodus, wenn die automatische Erkennung deaktiviert ist |
InpFillRetryMax | 4 | Maximale Anzahl von Wiederholungsversuchen für den Befüllungsmodus |
Startoption
Parameter | Standard | Beschreibung |
|---|---|---|
InpAutoStart | true | Sofort nach dem Laden mit dem Handel beginnen; wird gemeinsam mit der Start-Schaltfläche im Bedienfeld verwendet |
Benutzeroberfläche
Parameter | Standard | Beschreibung |
|---|---|---|
InpBtnCorner | BTN_CORNER_RL | Diagrammecke für die Schaltflächengruppe |
InpBtnX | 10 | Horizontaler Versatz von der ausgewählten Ecke in Pixeln |
InpBtnY | 10 | Vertikaler Versatz von der ausgewählten Ecke, in Pixeln |
InpBtnW | 70 | Breite der Schaltfläche in Pixeln |
InpBtnH | 25 | Schaltflächenhöhe in Pixeln |
InpText | 9 | Schriftgröße der Schaltfläche |
Installation und Schnellstart
- Installieren Sie das Produkt über den Market oder den Navigator; es erscheint im Ordner „Experts\Market“.
- Öffnen Sie ein Chart des Zielsymbols und fügen Sie den Roboter hinzu.
- Legen Sie auf der Registerkarte „Inputs“ die Lotgröße, den anfänglichen Stop-Loss, den Trailing-Stop, den Abstand zur ausstehenden Order und den Signal-Zeitrahmen fest.
- Stellen Sie sicher, dass der automatische Handel im Terminal aktiviert ist und dass der Name des Roboters mit einem Smiley-Symbol in der oberen rechten Ecke des Charts erscheint.
- Lassen Sie „InpAutoStart“ auf „true“ eingestellt, um den Roboter sofort zu starten, oder klicken Sie im Bedienfeld auf „Start“.
- Klicken Sie auf „Stop“, um neue Eintritte zu unterbinden, oder auf „Alle schließen“, um Positionen zu schließen und ausstehende Orders zu löschen.
Empfehlungen zum Testen
- Laden Sie den vollständigen Verlauf für das Symbol herunter und testen Sie im Strategietester mit realen oder benutzerdefinierten Spreads.
- Führen Sie den Roboter zunächst auf einem Demokonto aus, um das Verhalten von ausstehenden Orders, das Verhalten von Trailing Stops und die Protokollausgabe zu überprüfen.
- Wenn Sie den Roboter auf mehreren Symbolen in einem Konto ausführen, verwenden Sie pro Symbol ein separates Chart und ziehen Sie separate Order-Identifikatoren in Betracht, um die Aufzeichnungen übersichtlich zu halten.
- Bevor Sie die Lotgröße ändern, schätzen Sie den maximalen Verlust pro Trade als anfänglichen Stop-Loss in Punkten, multipliziert mit dem Punktwert und der Lotgröße.
Einschränkungen und Hinweise
- Der Roboter verwaltet nur Positionen und ausstehende Orders auf dem aktuellen Chart-Symbol, die eine eigene Order-ID tragen. Manuelle Positionen und Orders aus anderen Programmen sind davon nicht betroffen.
- Es wird kein Take-Profit-Ziel verwendet; wie viel Gewinn abgegeben wird, hängt von den Trailing-Stop-Parametern ab.
- Es gibt keinen integrierten Nachrichtenfilter, Sitzungsfilter, Spread-Filter, keine maximale Haltedauer und kein tägliches Verlustlimit.
- Die Lotgröße ist fest vorgegeben; es erfolgt keine automatische Anpassung der Lotgröße an den Risikoprozentsatz, daher muss diese bei Änderungen der Kontogröße manuell angepasst werden.
- Das Terminal muss online bleiben. Während einer Unterbrechung der Verbindung werden keine Anfragen gesendet, und der Zustand nach der Wiederherstellung der Verbindung hängt von den zu diesem Zeitpunkt bestehenden Positionen und Orders ab.
- Da ausstehende Orders und Stop-Loss-Änderungen eine Rolle spielen, hängen die tatsächlichen Ausführungspreise vom Spread, der Slippage und der Liquidität ab.
Risikohinweis
Der automatisierte Handel beseitigt das Marktrisiko nicht. Ergebnisse, die auf historischen Daten basieren, sind kein Indikator für zukünftige Ergebnisse, und die Ergebnisse auf einem Demokonto können von denen auf einem Live-Konto abweichen. Dieses Produkt garantiert keine Gewinne und stellt keine Anlageberatung dar. Legen Sie die Lotgröße und den Stop-Loss entsprechend Ihrer eigenen Risikotoleranz fest und testen Sie das Produkt gründlich, bevor Sie ein Live-Konto nutzen. Die mit diesem Produkt erzielten Handelsergebnisse liegen in der Verantwortung des Nutzers.
Häufig gestellte Fragen
Der Roboter hat direkt nach dem Start keinen Trade eröffnet. Ist das normal?
Ja. Wenn die Signalrichtung beim Start neutral ist, wartet der Roboter, bis ein definierter Long- oder Short-Zustand eintritt.
Was passiert mit offenen Positionen, nachdem man auf „Stopp“ geklickt hat?
„Stopp“ verhindert lediglich neue Einstiegsgeschäfte. Offene Positionen bleiben bestehen und der Trailing-Stop läuft weiter.
Kann die Funktion für mehrere Wertpapiere gleichzeitig verwendet werden?
Ja. Weisen Sie ihm pro Wertpapier einen Chart zu. Es wird empfohlen, separate Order-Identifikatoren zu verwenden, um die Aufzeichnungen klar voneinander zu trennen.
Eine ausstehende Order wartet schon seit langer Zeit. Was soll ich tun?
Der Pending-Kurs folgt dem Markt, wenn sich der Kurs in die günstige Richtung bewegt. Wenn sich die Signalrichtung umkehrt oder die Richtung herausgefiltert wird, wird die Order gelöscht und gemäß den aktuellen Regeln neu geplant.
Warum wird im Protokoll die Meldung „Reichende Deckung“ angezeigt?
Vor jeder Anfrage wird die freie Margin überprüft. Ist diese nicht ausreichend, wird keine Order gesendet, das Ereignis wird protokolliert und eine Sperrfrist beginnt. Verringern Sie die Lotgröße oder zahlen Sie Guthaben ein.
