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.
Die Strategie besteht aus zwei Teilstrategien:
123 Reversal System: Es stammt aus dem Buch
Gann-Swing-Oszillator: Er stammt aus dem Buch von Robert Krausz
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.
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.
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.
Die Strategie kann in folgenden Aspekten optimiert werden:
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 )