Handelsstrategie für mittlere Umkehrung auf der Grundlage von Bollinger-Bändern und Goldenen Verhältnissen

Schriftsteller:ChaoZhang, Datum: 2023-11-16 16:52:55
Tags:

img

Übersicht

Diese Strategie verwendet die Goldene Verhältnislinie von Bollinger Bands in Kombination mit gleitenden Durchschnittsformationen, um Mittelumkehrungen zu handeln.

Strategie Logik

  1. Berechnung der Bollinger-Bänder Mittelband, Oberband und Unterband des goldenen Verhältnisses
  • Mittlerer Band: Vwma von n Perioden
  • Oberer Band: Mittlerer Band + k * n Perioden Standardabweichung
  • Unterband des goldenen Verhältnisses: Mittelband - 0,618 * n Perioden Standardabweichung
  1. Richtergruppen
  • 50-Tage-MA über 200-Tage-MA, zeigt Aufwärtstrend
  • Preis berührt oder unter dem goldenen Verhältnis unteren Band, als Kaufsignal
  1. Ausfahrt
  • Wenn der Preis über den oberen Bereich BB bricht, gilt der Preis als von dem unteren Bereich entfernt, die Position geschlossen
  1. Stop-Loss
  • Festes Stop-Loss-Prozentsatz festlegen, z. B. 5%

Vorteile

  1. Die Verwendung von vwma anstelle von sma für die mittlere Linie von BB spiegelt die Kursbewegung besser wider

  2. Das goldene Verhältnis ist wichtig, um Unterstützung/Widerstand zu erzeugen.

  3. MA im Aufwärtstrend sorgt für einen allgemeinen Aufwärtstrend

  4. Festgesetzte Stop-Loss-Kontrollen für Verluste für jeden Handel

Risiken

  1. Goldene Ratio-Linie ist nicht garantiert Unterstützung, Preis durchbrechen kann

  2. Festgesetzte Stopp-Loss-Regelungen können willkürlich sein, sollten eine Anpassung an die Volatilität in Betracht ziehen

  3. MA-Aufwärtstrend kann ein falscher Ausbruch sein, sollte mehr Indikatoren überprüfen

  4. Unsicher über die Rückkehrlänge, benötigen einen angemessenen Gewinn beim Ausstieg

Erweiterung

  1. Verschiedene Kombinationen von Parametern wie BB-Periode, SD-Multiplikator, fester Stop-Loss-Prozentsatz usw. testen.

  2. Hinzufügen von weiteren Indikatoren zur Bestimmung der Marktentwicklung und der Umkehrwahrscheinlichkeit, z. B. MACD, KD usw.

  3. Überlegen Sie dynamische Stopps, wie z. B. ATR oder Trailing Stops

  4. Optimieren Sie die Gewinnentnahme, z. B. Profit Stop, Teilgewinnentnahme usw.

Zusammenfassung

Diese Strategie handelt mit Umkehrungen unter Verwendung der BB-Golden Ratio-Linie, mit klarer Logik, einfachen Parametern und kontrollierbarem Drawdown. Aber sie birgt auch Risiken, erfordert weitere Tests und Optimierungen, fügt mehr technische Indikatoren für den Trend hinzu und bessere Stops/Exits vor dem tatsächlichen Gebrauch.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4

strategy(title="Bollinger Band with Fib Golden Ratio (0.618)",  shorttitle="Bollinger Band with Fib Golden Ratio" , overlay=true, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  

length = input(50,title="BB Length" , minval=1)
src1 = input(hlc3, title="Source")
//mult1 = input(1.33, minval=0.001, maxval=50)
mult = input(1.5,title="multplier", minval=0.001, maxval=50)

stopLoss=input(5,title="Stop Loss",minval=1)

basis = vwma(src1, length)
dev = mult * stdev(src1, length)

//dev3 = mult3 * stdev(src, length)

upper_618= basis + (0.618*dev)
lower_618= basis - (0.618*dev)

//lower_618_dev3= basis - (0.618*dev3)



plot_upper618= plot(upper_618, color=color.purple, linewidth=2, title="0.618")
plot(basis, color=color.purple,style=plot.style_circles,  linewidth=2)

plot_lower618= plot(lower_618, color=color.purple, linewidth=2, title="0.618 entry")
//plot_lower618_dev3= plot(lower_618_dev3, color=color.red, linewidth=1, title="0.618 stop")

//plot_lower618= plot(lower_618, color=color.purple, linewidth=1, title="0.618 entry")

ema200=ema(close,200)
ema50=ema(close,50)

plot (ema200, title="ema200", color=color.orange, linewidth=2)
plot (ema50, title="ema50", color=color.blue , linewidth=2)


longCondition= ema50 > ema200

strategy.entry(id="BB_Fib618", long=true, when = longCondition and ( close < lower_618  or  low <= lower_618)  )

strategy.close(id="BB_Fib618",  comment="points="+tostring(close - strategy.position_avg_price,  "###.##") , when = strategy.position_size >= 1  and crossover(close,upper_618 )) 

//stoploss exit
stopLossVal = strategy.position_size>=1 ?  strategy.position_avg_price * ( 1 - (stopLoss/100) ) : 0.00
strategy.close(id="BB_Fib618", comment="SL="+tostring(close - strategy.position_avg_price,  "###.##"), when=abs(strategy.position_size)>=1 and close < stopLossVal ) //and close > strategy.position_avg_price )


Mehr