Trade-Arbitrage: Dein Expert Advisor für MetaTrader 4

Mike 2009.11.27 19:46 15 0 0
Anhang

Theorie:

Schauen wir uns an, wie das beim EURUSD funktioniert. Stell dir vor, wir haben zwei synthetische Paare: EURUSDx und EURUSDy.

Diese Paare zeigen ähnliche Bewegungen, also wenn wir zwei entgegengesetzte Positionen auf diesen Paaren eröffnen, haben wir eine hedged Position.

Öffne: KAUF EURUSDx und VERKAUF EURUSDy. Nach einer gewissen Zeit schließen wir diese Positionen: VERKAUF EURUSDx und KAUF EURUSDy.

Gewinn: Gewinn = (BIDx - ASKx) + (BIDy - ASKy) = (BIDx - ASKy) + (BIDy - ASKx)

Im obigen Ausdruck kennen wir den Wert der ersten Klammer (KAUF EURUSDx und VERKAUF EURUSDy).

Der Wert der zweiten Klammer wird bekannt, nachdem die Positionen geschlossen sind (VERKAUF EURUSDx und KAUF EURUSDy).

Es gibt mehrere Fälle mit positiven Gewinnwerten. Einer davon ist:

Bei Eröffnung: BIDx > ASKy,

Bei Schließung: BIDy > ASKx.

Praxis:

Trade-Arbitrage Expert Advisor nutzt diese Strategie (du kannst sie für andere Bedingungen anpassen).

In Echtzeit sucht er nach Fällen, wenn BIDx > ASKy für ALLE möglichen synthetischen Paare (tausende Fälle) und öffnet die entsprechenden Positionen.

Das bedeutet, dass der Trade-Arbitrage Expert Advisor immer eine Multicurrency-Hedge hat.

Er erstellt die Datei ArbitrageStatistic.txt mit sortierten (nach Häufigkeit) Arbitrage-Fällen.


Die Datei ArbitrageStatistic.txt


Wenn Monitoring ist WAHR, fügt der Expert Advisor einige Arbitrage-Details zur Datei Arbitrage.txt hinzu.


Arbitrage.txt mit Details

Der Handel erfolgt mit Paaren, die in der Datei Trade-Arbitrage.txt definiert sind (der Dateispeicherort ist: experts\files).



Beispiel für die Trade-Arbitrage.txt Datei

Außerdem protokolliert er einige Details zur weiteren Analyse (Handelsabschlüsse, Gründe und Ergebnisse):


Ergebnisse des Trade-Arbitrage Advisors (oben), NettoTrading (links) und CheckMyArbitrage (rechts) Skriptergebnisse

Die Multicurrency-Hedge kann mit einem zyklischen Skript CheckMyArbitrage überprüft werden.

Eingabeparameter:

  • Währungen - Liste der Währungen, die für synthetische Paare verwendet werden.
  • MinPips - minimal erlaubte (als Arbitrage) Differenz in Punkten (alt) zwischen BIDx und ASKy.
  • Slippage - erlaubte Slippage in Pips durch Broker für Markt-Aufträge (verschiedene Broker haben unterschiedliche Werte).
  • Lock - Sperren sind erlaubt (WAHR) oder nicht (FALSCH).
  • Lots - Positionsgröße für Eröffnen/Schließen.
  • MaxLot - maximal erlaubte Lotgröße vom Broker (real).
  • MinLot - minimal erlaubte Lotgröße vom Broker (real).
  • Monitoring - Protokolliere alle Arbitrage-Fälle in eine Datei (WAHR) oder nicht (FALSCH). Das Protokollieren kann einige Zeit in Anspruch nehmen, was für die Arbitrage kritisch sein könnte.
  • TimeToWrite - Protokollierungszeitraum (in Minuten) für die statistischen Daten zur Arbitrage (ArbitrageStatistic.txt).

Der Expert funktioniert korrekt (er bricht die Multicurrency-Hedge nicht):

  • Handelsfehler (Abgelehnt usw.).
  • Teilweise Ausführung (Teilweise Erfüllungen). Einige Broker erlauben das.
  • Funktion, mit minimal möglichem Lot, erlaubt durch den Broker (MinLot).
  • Wenn Lock = WAHR verwendet er minimale Handelsaufträge minimale.
  • Es kann Lock-Fälle verbieten (Lock = FALSCH).

Mögliche Probleme:

  • Negative Slippages und Provisionen fressen den Gewinn auf.
  • Lange Ausführung von Handelsaufträgen, es gibt Fälle, in denen sich die Preise anderer Symbole erheblich ändern.
  • Asynchrone Verarbeitung von Handelsaufträgen durch den Broker.
  • Kleine Arbitragezeit.

Mögliche Verbesserungen:

  • Limit Orders verwenden.
  • Gleichzeitiges Senden für verschiedene Symbole (Asynchronitätseimulation) von Handelsaufträgen aus mehreren Terminals für ein Konto.
  • Zeitkontrolle des Brokers Asynchronität.
  • Sammlung und Verwendung von mehr statistischen Informationen zur Anwendung anderer MinPips Bedingungen der Arbitrage. Zum Beispiel, BIDx - ASKy> SPREADx + SPREADy.
  • Sammlung und Verwendung statistischer Informationen über die Dauer der Arbitrage.
  • Priorität der Marktauftragswarteschlange (z.B. das Symbol mit dem größten Tickvolumen oder das Symbol mit dem extremen lokalen Preis).

Eigenschaften:

  • Multicurrency, daher kann es nicht im Strategietester verwendet werden. Es kann als Skript ausgeführt werden.
  • Die Preishistorie wird nicht verwendet. Die Arbitrage-Theorie nutzt die Markteffizienz (Kursineffizienz), daher ist die Natur der Preise nicht wichtig.
  • Der Advisor arbeitet ohne Verluste.

Hinweis des Herausgebers:

Beachte, dass dies eine spiegelbildliche Übersetzung der originalen russischen Version ist.

Wenn du Fragen an den Autor hast, Vorschläge oder Kommentare, poste sie am besten dort.

Wenn du diesen Code für den Handel oder zu Bildungszwecken nützlich fandest, vergiss nicht, dem Autor zu danken.
Liste
Kommentar 0