Strategie für die doppelte Umkehrung von Arbitrage

Schriftsteller:ChaoZhang, Datum: 2024-02-06 09:58:04
Tags:

img

Übersicht

Die Dual-Reversal-Arbitrage-Strategie ist ein Arbitrage-Algorithmus, der Dual-Reversal-Indikatoren integriert. Es kombiniert das 123 Reversal-System und die Gann-Swing-Oszillator-Unterstrategien und erzeugt Handelssignale, wenn beide Unterstrategien gleichzeitig Signale zur Durchführung von Arbitrage-Operationen ausgeben.

Strategie Logik

Die Strategie besteht aus zwei Teilstrategien:

  1. 123 Reversal System: Es stammt aus dem Buch How I Tripled My Money in The Futures Market von Ulf Jensen, Seite 183. Seine Handelsregeln sind: Wenn der Schlusskurs höher als der vorherige Schlusskurs und niedriger als der Schlusskurs vor 2 Tagen ist, gehen Sie lang, wenn die langsame K-Linie unter 50 liegt; wenn der Schlusskurs niedriger als der vorherige Schlusskurs und höher als der Schlusskurs vor 2 Tagen ist, gehen Sie kurz, wenn die schnelle K-Linie über 50 liegt.

  2. Gann-Swing-Oszillator: Er stammt aus dem Buch von Robert Krausz "A W.D. Gann Treasure Discovered". Er beurteilt die Richtung der Marktschwankungen, indem er den Anstieg und Fall der höchsten und niedrigsten Preise über einen bestimmten Zeitraum berechnet.

Die Handelslogik dieser Arbitrage-Strategie ist: Wenn die Signalrichtungen der beiden Teilstrategien konsistent sind, werden tatsächliche Handelssignale generiert. Das lange Signal ist, wenn beide Teilstrategien gleichzeitig lange Signale geben; das kurze Signal ist, wenn beide Teilstrategien gleichzeitig kurze Signale geben.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass sie durch die Integration der Signale der beiden Unterstrategien die falschen Signale effektiv filtern und die Genauigkeit der Handelssignale verbessern kann. Die beiden Unterstrategien haben jeweils ihre eigenen Stärken. Das 123 Umkehrsystem kann plötzliche Umkehrtrends erfassen, während der Gann-Swing-Oszillator die Reife von Trendumkehrungen bestimmen kann. Die Kombination der beiden kann die Handelssignale zuverlässiger machen und damit die Stabilität der Strategie verbessern.

Risikoanalyse

Das Hauptrisiko dieser Strategie besteht darin, dass die Wahrscheinlichkeit für inkonsistente Handelssignalrichtungen der beiden Teilstrategien relativ groß ist, was zu unzureichenden Handelssignalen führen kann. Darüber hinaus haben die Teilstrategien selbst auch bestimmte Risiken für falsche Signale. Die Kombination dieser beiden Faktoren kann zu einer unzureichenden Anzahl von Trades für die Strategie führen und somit nicht in der Lage sein, Marktchancen vollständig zu nutzen.

Um Risiken zu mindern, können die Parameter der Teilstrategien so angepasst werden, dass die Handelsfrequenz mäßig erhöht wird, oder andere Indikatoren können kombiniert werden, um falsche Signale zu filtern.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Anpassung der Parameter der Teilstrategien zur Optimierung der Handelshäufigkeit;
  2. Hinzufügen von Beurteilungen anderer technischer Indikatoren zur Verbesserung der Signalqualität;
  3. Optimierung der Gewichte der Teilstrategien auf der Grundlage verschiedener Produkte und Zeitrahmen;
  4. Hinzufügen von Stop-Loss-Mechanismen zur Kontrolle von Einzeltransaktionsverlusten.

Zusammenfassung

Die Dual-Reversal-Arbitrage-Strategie bildet durch die Integration zweier verschiedener Arten von Reversal-Strategien relativ starke Handelssignale. Sie kann effektiv Rauschen filtern und die Signalqualität verbessern, die für die Erfassung von Umkehrchancen auf dem Markt geeignet ist. Die Wahrscheinlichkeit für inkonsistente Signale aus den Teilstrategien ist jedoch relativ groß, was zu einer unzureichenden Handelsfrequenz führen kann. Darüber hinaus sind die Parameter-Einstellungen von Kombinationsstrategien selbst ziemlich komplex und erfordern ausreichende Tests und Optimierungen, um die besten Ergebnisse zu erzielen.


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 04/11/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The Gann Swing Oscillator has been adapted from Robert Krausz's book, 
// "A W.D. Gann Treasure Discovered". The Gann Swing Oscillator helps 
// define market swings. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

    
GannSO(Length) =>
    pos = 0.0
    xGSO = 0.0
    xHH = highest(Length)
    xLL = lowest(Length)
    xGSO:= iff(xHH[2] > xHH[1] and xHH[0] > xHH[1], 1,
             iff(xLL[2] < xLL[1] and xLL[0] < xLL[1], -1, nz(xGSO[1],0)))
    pos := iff(xGSO > 0, 1,
    	     iff(xGSO < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Gann Swing Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthGSO = input(5, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posGannSO = GannSO(LengthGSO)
pos = iff(posReversal123 == 1 and posGannSO == 1 , 1,
	   iff(posReversal123 == -1 and posGannSO == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Mehr