Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Skripte

EdgeMeter - does your entry signal beat the spread? - Skript für den MetaTrader 5

Ansichten:
4
Rating:
(1)
Veröffentlicht:
EdgeMeter.mq5 (22.41 KB) ansehen
edgemeter_chart.png (43.55 KB)
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance


EdgeMeter beantwortet eine Frage zu jedem Einstiegssignal:


Bringt dieses Signal nach Abzug der Transaktionskosten Gewinn?

Es gibt keine Orders auf. Es wertet die Historie aus, bewertet Ihr Signal für jeden abgeschlossenen
Balken und gibt ein Ergebnis aus.


WARUM ICH ES GESCHRIEBEN HABE

Ich habe einen Monat damit verbracht, einen Grid-EA für XAUUSD M1 zu entwickeln. Ich habe den Stop-Loss festgelegt,
eine variable Verlustbegrenzung, einen Reversal-Ausstieg und eine maximale Basket-Laufzeit hinzu. Es verlor immer wieder.

Als ich schließlich das EINSTIEGS-Signal für sich allein untersuchte, dauerte es dreißig
Sekunden:

Durchschnittliche Kursbewegung nach dem Signal, 15 Min.: +0,04
gezahlter Spread pro Round Turn: 0,26

Keine Ausstiegslogik kann das wieder gutmachen. Das Geld ging bereits beim Einstieg verloren, und jede Stunde, die ich
mit Ausstiegen verbrachte, war verschwendet. Genau das soll dieses Skript verhindern.


WAS ES AUSWEIST

Für jeden von Ihnen festgelegten Haltedauer:

- Brutto-Edge: die durchschnittliche positive Kursbewegung nach dem Signal
- Nettoergebnis nach Kosten, simuliert für jeweils eine Position
- T-Statistik, berechnet auf der Grundlage von NICHT ÜBERLAPPENDEN Trades
- Anteil der profitablen Monate
- maximaler Drawdown

Anschließend wird dieselbe Messung an einer ZUFALLSKONTROLLE durchgeführt: gleiche Auslösehäufigkeit,
Richtung wie beim Münzwurf. Ein zufälliger Einstieg muss genau die Transaktionskosten verlieren,
nicht mehr und nicht weniger. Dies bewirkt zweierlei: Es beweist, dass der Simulator korrekt ist,
und liefert Ihnen die Grundrauschgrenze. Wenn Ihr Signal diese
Zeilen deutlich übertrifft, enthält es keine Informationen.


DIE ÜBERLAPPUNGSFALLE

Das ist der Teil, der mir Probleme bereitet hat – und den meisten anderen auch.

Aufeinanderfolgende Signale teilen sich den größten Teil ihres Vorwärtsfensters. Ein 60-Takt-Horizont,
, der bei jedem Bar abgetastet wird, liefert Fenster, die sich auf 59 Arten überlappen. Behandelt man sie als
unabhängig betrachtet, wird die t-Statistik um etwa die Quadratwurzel des Horizonts aufgebläht.

Mein eigenes Signal ergab auf diese Weise t = 3,32, was überzeugend aussieht. Bei wirklich
unabhängigen Stichproben lag der Wert bei t = 1,20 – nicht von Rauschen zu unterscheiden. EdgeMeter
simuliert jeweils nur eine Position, sodass sich die gemeldeten Trades nicht überschneiden und
die t-Statistik ist authentisch.


ERFÜLLUNG DER KRITERIEN

Das Skript prüft drei Kriterien, die alle erfüllt sein müssen:

[1] Nettogewinn pro Trade > 0 nach Abzug der Kosten
[2] |t| > 2
[3] Mindestens 3 profitable Monate von 4

Legen Sie Ihre Kriterien fest, bevor Sie sich die Zahlen ansehen. Eine Entscheidung im Nachhinein ist
dazu, dass ein verlustreiches System auf ein Live-Konto übertragen wird.


SO TESTEN SIE IHR EIGENES SIGNAL

Öffnen Sie die Datei und bearbeiten Sie zwei Funktionen im USER-ABSCHNITT. Sonst muss nichts
geändert werden.

bool UserInit() – Erstellen Sie Ihre Indikator-Handles und laden Sie deren
Puffer mit LoadBuffer() / LoadBufferB()

int UserSignal(int i) – werten Sie den geschlossenen Balken i aus
Geben Sie +1 für „Kaufen“, -1 für „Verkaufen“ und 0 für „Tätig werden“ zurück

Alle Arrays sind indiziert: 0 = ältester Bar. Dies ist das Gegenteil der üblichen
Reihenindizierung, und das ist beabsichtigt: Ein Rückgabewert nach vorne ist dann einfach
Index + Horizont, wodurch eine ganze Klasse von Vorzeichenfehlern vermieden wird.

Der Einstieg wird bei „Open(i+1)“, dem nächsten Balken, simuliert. Lies niemals den Balken i+1 oder spätere
innerhalb von `UserSignal` – das ist eine Vorausschauverzerrung, und sie lässt ein wertloses
Signal brillant erscheinen lässt.

Das Standard-UserSignal ist ein Crossover zweier gleitender Durchschnitte, das als
Beispiel beibehalten. Ersetzen Sie es.


EINSTELLUNG DER KOSTEN

„InpSpread“, „InpCommission“ und „InpSlippage“ sind in PREIS-Einheiten angegeben, nicht in Punkten, und
sie sind die wichtigsten Eingabewerte im Skript. Entnehmen Sie sie Ihrem eigenen
Konto ab, nicht aus den von einem Broker angegebenen Zahlen.

Wenn Sie über ein Ausführungsprotokoll aus dem Live- oder Demo-Handel verfügen, verwenden Sie den gemessenen
Durchschnitt. Falls nicht, nehmen Sie den typischen Spread, den Sie auf dem Chart sehen, und addieren Sie
eine Slippage-Toleranz hinzu, anstatt von Null auszugehen. Ein Demo-Server meldet
eine Slippage nahe Null an; das ist eine Eigenschaft des Demoservers, nicht des Marktes.


VORAUSSETZUNGEN

Laden Sie vor der Ausführung genügend historische Daten: Öffnen Sie ein Chart für Ihr Wertpapier und
Zeitrahmen und scrollen Sie ganz nach links. Das Skript wird Sie informieren, falls nicht
ausreichend Daten vorhanden sind. Bei weniger als 30 Signalen sind alle Ergebnisse nur Anekdoten und keine Belege.


Kostenlos nutzbar und veränderbar.

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/76316

Adaptive Volume Profile Node Tracker Adaptive Volume Profile Node Tracker

Erstellt ein gleitendes, an die Volatilität angepasstes Volumenprofil über ein konfigurierbares Rückblickfenster und stellt den Point of Control (POC), die Hoch- und Tiefpunkte des Wertbereichs sowie statistisch signifikante Hoch- und Tiefpunkte des Volumens (HVN/LVN) direkt im Chart dar.

Multi-Symbol Correlation Divergence Meter Multi-Symbol Correlation Divergence Meter

Verfolgt die gleitende Korrelation zwischen dem aktuellen Chart-Symbol und einem ausgewählten Referenzsymbol und markiert den Moment, in dem sich beide entkoppeln, während ihre Kursspanne statistisch gesehen ausgeweitet ist.

Dynamic Session Range Sweep Detector with Liquidity Zone Marking Dynamic Session Range Sweep Detector with Liquidity Zone Marking

Verfolgt die Handelsspannen der asiatischen, Londoner und New Yorker Handelssitzungen, fixiert jeweils den Schlusskurs und kennzeichnet echte Liquiditätsschwankungen – einen Docht, der ein fixiertes Hoch oder Tief durchbricht und wieder innerhalb dieses Bereichs schließt – mit einem Pfeilsignal und einer schattierten Reaktionszone. Keine Neuanzeige, funktioniert bei jedem Symbol und jedem Zeitrahmen.

Accelerator Oszillator (AC) Accelerator Oszillator (AC)

Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.