JKEFtrendMartingale
- 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.1
- Aktivierungen: 5
JKEFtrendMartingale – Ein volatilitätsadaptives, trendfolgendes Martingale-Handelssystem
Übersicht
JKEFtrendMartingale 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. Nach einem Verlust erhöht er die Lotgröße des nächsten Trades gemäß der konfigurierten Regel und kehrt zur ursprünglichen Lotgröße zurück, sobald die Gewinne den kumulierten Verlust ausgeglichen haben.
Das System wertet ausschließlich den Zustand geschlossener 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 definierten 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 wurde. Pro Zyklus wird nur eine Position gehalten; es werden nicht gleichzeitig mehrere Positionen in derselben Richtung gestapelt.
Bitte beachten Sie, dass dieses Produkt einen Mechanismus enthält, der die Lotgröße nach einem Verlust erhöht. Hierbei handelt es sich um eine risikoreiche Geldmanagementmethode, die sowohl die Höhe einzelner Handelsverluste als auch die kumulierten Verluste erheblich steigern kann. Machen Sie sich mit dem Mechanismus vollständig vertraut und führen Sie umfassende Demo-Tests durch, bevor Sie den Einsatz im Live-Handel in Betracht ziehen.
Handelslogik
Zustandserkennung. Zunächst wird die Preisvolatilitä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 durchläuft anschließend einen momentumgewichteten Glättungsschritt, um eine Trendbasislinie zu erzeugen. Ein aktuelles Abweichungsperzentil wird oberhalb und unterhalb der Trendbasislinie 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.
Regeln auf Lot-Ebene. Der Roboter führt ein kumulatives Verlustkonto und verwaltet die Lot-Ebene:
- Wenn eine geschlossene Position ein negatives Nettoergebnis (Gewinn plus Swap plus Provision) aufweist, erhöht sich der kumulierte Verlust und das Lot-Niveau steigt um eins, begrenzt durch das von InpMaxLevel festgelegte Limit;
- Wenn das Nettoergebnis positiv ist, verringert der Gewinn den kumulativen Verlust. Die Lot-Stufe wird erst dann auf Null zurückgesetzt, wenn der kumulative Verlust vollständig ausgeglichen wurde und Null erreicht hat, wodurch die Lot-Größe auf ihren Ausgangswert zurückgesetzt wird;
- Bis zu dieser Zurücksetzung wird für jede neue Position die Lotgröße verwendet, die dem aktuellen Level entspricht.
Die Lotgröße wird in einem von zwei Modi berechnet. Im additiven Modus entspricht das aktuelle Lot dem Anfangs-Lot zuzüglich des Levels multipliziert mit dem Schritt. Im multiplikativen Modus entspricht das aktuelle Lot dem Anfangs-Lot multipliziert mit dem Multiplikator, potenziert mit dem Level. Die endgültige Lotgröße ist auf das Minimum und Maximum des Symbols begrenzt und auf den Lot-Schritt des Symbols gerundet.
Erster Einstieg. Nach dem Laden oder nach dem Drücken von „Start“ liest der Roboter die aktuelle Signalrichtung aus, sofern für das aktuelle Wertpapier 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 vorliegt. Für die erste Position wird ebenfalls die Lotgröße der aktuellen Stufe verwendet.
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 die Auslöse-Distanz 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“ im Bedienfeld.
Zustandserhaltung
Der kumulierte Verlust und die Lot-Größe werden im Speicher beibehalten. Wie diese beim Laden des Roboters behandelt werden, wird durch „InpPersistState“ definiert:
- Ist diese Option aktiviert, durchsucht der Roboter die ausgehenden Trades der letzten sieben Tage, die dem aktuellen Symbol und der konfigurierten Order-Kennung entsprechen, und stellt den kumulierten Verlust sowie den Lot-Stand wieder her, sodass die vorherige Abfolge nach einem Neustart fortgesetzt werden kann;
- Ist die Funktion deaktiviert, erfolgt keine Wiederherstellung, und sowohl der kumulierte Verlust als auch die Lot-Stufe beginnen bei Null.
Beachten Sie, dass die Rekonstruktion nur die letzten sieben Tage umfasst. Ältere Daten werden nicht berücksichtigt, und manuell geschlossene Transaktionen, die nicht die übereinstimmende Order-ID tragen, werden ebenfalls nicht gezählt.
Risikomanagement
- Jeder Eintrag verfügt über einen anfänglichen Stop-Loss in der konfigurierten Entfernung in Punkten; der Wert Null bedeutet, dass kein Stop-Loss festgelegt ist.
- Optionaler Trailing-Stop mit separaten Auslöse- und Abstandsparametern; werden beide auf Null gesetzt, wird die Funktion deaktiviert.
- Die Lot-Stufe unterliegt einer durch InpMaxLevel festgelegten Obergrenze. Sobald diese Grenze erreicht ist, wird die Lot-Größe nicht weiter erhöht.
- Die freie Margin wird vor jeder Orderanforderung berechnet. Reicht die freie Margin nicht aus, wird keine Order gesendet, ein Eintrag wird in das Protokoll geschrieben und eine Wartezeit beginnt, um wiederholte fehlgeschlagene Anfragen zu vermeiden.
- Der vom Symbol unterstützte Ausführungsmodus wird automatisch erkannt, bei Bedarf erfolgen Fallback-Wiederholungsversuche. Marktorders und Pending-Orders werden separat behandelt.
- Handelssitzungen und Handelsmodi des Symbols 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 Ablehnungen durch den Server zu vermeiden.
Diese Maßnahmen beseitigen nicht das Risiko, das durch eine progressive Lotgrößenanpassung entsteht. Ein Stop-Loss kann während Kurslücken, bei Slippage oder unter extremen Marktbedingungen zu einem ungünstigeren Kurs ausgeführt werden, und der tatsächliche Verlust kann größer sein als die konfigurierte Stop-Distanz.
Panel im Chart
Das Chart zeigt drei Schaltflächen – „Start“, „Stop“ und „Alle schließen“ – sowie einen Statusblock.
- „Start“ aktiviert den automatisierten Handel. Wenn keine Position besteht, wird der erste Einstieg entsprechend dem aktuellen Signal versucht. Die Sperrfristen für Marktabschluss 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. Der kumulierte Verlust und das Lot-Niveau werden durch diese Aktion nicht zurückgesetzt; um bei Null zu beginnen, deaktivieren Sie die Statusbeibehaltung und laden Sie den Roboter neu.
Der Statusblock zeigt den Status „läuft“ oder „gestoppt“, den Signal-Zeitrahmen, die zulässige Richtung, den Lot-Modus, das Anfangs-Lot, das aktuelle Lot mit Level, den kumulierten Verlust, den Schalter für die Statusbeibehaltung, den Bestätigungsmodus, den anfänglichen Stop-Loss, den Trailing-Trigger und -Abstand, den Abstand der ausstehenden Order, die Wartezeit sowie die aktuelle Phase an: Markt geschlossen, unzureichende Deckung, Warten auf ersten Einstieg, in Position, Pending-Order, Warten auf Pending-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: Instrumente 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: Da die Lotgröße nach Verlusten steigt, ist das erforderliche Kapital deutlich höher als bei einem Ansatz mit festen Lots. Schätzen Sie das Kapital anhand des Gesamtverlusts einer Verlustserie, die das Maximalniveau erreicht, und nicht anhand eines einzelnen Stop-Loss. Bei den Standardeinstellungen (Anfangslot 0,01, additiver Modus, Schrittweite 0,01, Maximalniveau 10, anfänglicher Stop-Loss 500 Punkte) beträgt die Lotgröße auf der höchsten Stufe 0,11, und bei den wichtigsten Währungspaaren wird im Allgemeinen ein Kontostand von mindestens 1.000 USD oder dem Gegenwert empfohlen. Im multiplikativen Modus berechnen Sie zunächst das Lot der höchsten Stufe: Bei einem Standardmultiplikator von 2,0 und einer maximalen Stufe von 10 beträgt dieses Lot etwa das 1024-Fache des Anfangslots, was bei einem anfänglichen Lot von 0,01 etwa 10,24 Lots entspricht. In diesem Fall sollten Sie entweder deutlich mehr Kapital bereitstellen oder den Multiplikator und die maximale Stufe reduzieren. Dies ist lediglich eine Empfehlung zur Kapitalauslastung und stellt keine Leistungserwartung dar.
- Umgebung: Verwenden Sie ein Konto mit stabiler Ausführung und geringer Latenz und lassen Sie das Terminal auf einem VPS online, damit der Status nach einem Neustart nicht unvollständig wiederhergestellt wird.
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 |
InpInitialLot | 0,01 | Auf Stufe Null verwendete Lotgröße |
InpLotMode | LOT_MODE_ADD | Lot-Progressionsmodus: additiv oder multiplikativ |
InpLotStep | 0,01 | Pro Stufe hinzugefügte Losgröße im additiven Modus |
InpLotMultiplier | 2,0 | Lot-Multiplikator pro Stufe im multiplikativen Modus |
InpMaxLevel | 10 | Maximale Lot-Stufe; über diese Grenze hinaus erfolgt keine weitere Erhöhung |
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 | 20268888 | Auftragskennung, die zur Unterscheidung dieses Systems von anderen Programmen verwendet wird |
InpSlippage | 30 | Maximal zulässige Abweichung beim Senden von Orders, in Punkten |
Startoptionen
Parameter | Standard | Beschreibung |
|---|---|---|
InpAutoStart | true | Sofort nach dem Laden mit dem Handel beginnen; wird gemeinsam mit der Start-Schaltfläche des Panels verwendet |
InpPersistState | true | Kumulierten Verlust und Lot-Größe anhand der Transaktionen der letzten sieben Tage beim Laden neu berechnen |
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 der Wiederholungsversuche für den Füllmodus |
Schnittstelle
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“ das Anfangs-Lot, den Lot-Modus mit Schrittweite oder Multiplikator, das maximale Niveau, 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“ gesetzt, um den Roboter sofort zu starten, oder drücken 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 es im Strategietester mit realen oder benutzerdefinierten Spreads. Achten Sie besonders auf die maximale Margin-Auslastung und den maximalen Drawdown während Verlustserien.
- Führen Sie den Roboter zunächst auf einem Demokonto aus, um Änderungen der Lot-Größe, das Verhalten von Pending Orders, das Verhalten des Trailing Stops und die Protokollausgabe zu überprüfen.
- Beginnen Sie das Testen im additiven Modus und mit einem niedrigen Höchstwert. Ziehen Sie andere Einstellungen erst in Betracht, wenn Sie mit dem kumulativen Verlust in einer Worst-Case-Sequenz zufrieden sind.
- 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 Lot-Einstellungen ändern, schätzen Sie den maximalen Verlust pro Trade, der sich aus dem höchsten Lot-Niveau in Kombination mit dem anfänglichen Stop-Loss ergibt.
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 realisiert wird, hängt von den Trailing-Stop-Parametern ab.
- Es gibt keinen integrierten Nachrichtenfilter, Sitzungsfilter, Spread-Filter, keine maximale Haltedauer, kein tägliches Verlustlimit und kein maximales Drawdown-Limit.
- Die Lotgröße wird nicht automatisch anhand eines Kontorisikoprozentsatzes berechnet; passen Sie sie daher manuell an, wenn sich die Kontogröße ändert.
- Die Zustandserhaltung liest nur die Transaktionen der letzten sieben Tage ein. Nach einem Neustart oder Neuladen werden Ergebnisse außerhalb dieses Zeitraums nicht in den neu berechneten Werten berücksichtigt.
- 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 berücksichtigt werden, hängen die tatsächlichen Ausführungspreise vom Spread, der Slippage und der Liquidität ab.
Risikohinweise zur progressiven Lotgröße
Die Erhöhung der Lotgröße nach einem Verlust ist der Aspekt dieses Produkts, der die größte Aufmerksamkeit erfordert. Bitte vergewissern Sie sich vor der Nutzung über Folgendes:
- Je länger eine Verlustserie andauert, desto größer wird das folgende Lot, und sowohl die Margin-Auslastung als auch der potenzielle Verlust steigen additiv oder geometrisch an.
- Im multiplikativen Modus steigt das Volumen schneller an. Der Multiplikator und das Maximalniveau bestimmen direkt das größte Lot; berechnen Sie diesen Wert daher, bevor Sie sich für eine Kontogröße entscheiden.
- Der anfängliche Stop-Loss entspricht nicht dem maximalen Verlust. Kurslücken, Slippage und geringe Liquidität können dazu führen, dass Ausführungsergebnisse schlechter ausfallen als das konfigurierte Stop-Level.
- Wenn die freie Margin nicht ausreicht, wird keine Order gesendet und es beginnt eine Abkühlphase, die den Verlauf unterbricht. Spätere Gewinne können dann den aufgelaufenen Verlust möglicherweise nicht wie geplant ausgleichen.
- Wenn dieses Risikoniveau nicht akzeptabel ist, senken Sie das Maximalniveau, verwenden Sie den additiven Modus mit einem kleineren Anfangs-Lot oder wählen Sie einen Ansatz, bei dem die Lotgröße nach Verlusten nicht erhöht wird.
Risikohinweis
Der automatisierte Handel beseitigt das Marktrisiko nicht, und eine Erhöhung der Lotgröße nach Verlusten steigert das Kontorisiko weiter. Ergebnisse, die auf historischen Daten basieren, lassen keine Rückschlüsse auf zukünftige Ergebnisse zu, 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, das Maximalniveau und den Stop-Loss entsprechend Ihrer eigenen Risikotoleranz fest und testen Sie das Produkt gründlich, bevor Sie es auf einem Live-Konto einsetzen. 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 zu erwarten?
Ja. Wenn die Signalrichtung beim Start neutral ist, wartet der Roboter, bis ein definierter Long- oder Short-Zustand eintritt.
Wann kehrt die Lot-Stärke auf Null zurück?
Erst wenn der kumulierte Verlust vollständig durch spätere Gewinne ausgeglichen wurde und Null erreicht ist. Bis dahin sinkt der Stand nicht, selbst wenn einige Trades gewinnbringend sind.
Bleibt das Lot-Niveau nach einem Neustart des Terminals erhalten?
Das hängt von „InpPersistState“ ab. Ist diese Option aktiviert, wird der Stand anhand der abgeschlossenen Geschäfte der letzten sieben Tage neu berechnet, die dem Symbol und der Order-ID entsprechen. Ist sie deaktiviert, beginnt der Stand bei Null.
Kann die Funktion für mehrere Symbole gleichzeitig verwendet werden?
Ja. Fügen Sie es pro Wertpapier einem Chart hinzu. Es wird empfohlen, separate Order-Identifikatoren zu verwenden. Der kumulierte Verlust und der Lot-Stand werden für jedes Wertpapier separat erfasst.
Warum wird im Protokoll die Meldung „Nicht genügend Guthaben“ angezeigt?
Vor jeder Anfrage wird die freie Margin überprüft. Ist diese nicht ausreichend, wird kein Auftrag gesendet, das Ereignis wird protokolliert und eine Sperrfrist beginnt. Reduzieren Sie das anfängliche Lot, den Schritt oder den Multiplikator, senken Sie das maximale Niveau oder zahlen Sie Geld ein.
Wird durch das Klicken auf „Alle schließen“ die Lot-Stufe zurückgesetzt?
Nein. „Alle schließen“ schließt lediglich Positionen und löscht ausstehende Orders. Der kumulierte Verlust und die Lot-Stufe behalten ihre Werte bei. Um bei Null anzufangen, deaktivieren Sie die Statusbeibehaltung und laden Sie den Roboter neu.
