##Übersicht
Diese Strategie wird
## Strategieprinzip
Die Strategie verwendet vier verschiedene technische Indikatoren zur Bestimmung der Einstiegs- und Ausstiegspunkte.
Long-Entry-Bedingung: 5-Tage-EMA überschreitet 21-Tage-EMA, 50-Tage-EMA überschreitet 200-Tage-EMA, BB %B ist größer als die festgelegte Überkauflinie, AO ist größer als der festgelegte positive Wert und ADX ist größer als der festgelegte Wert.
Kurze Einstiegsbedingung: 5-Tage-EMA überschreitet die 21-Tage-EMA, 50-Tage-EMA überschreitet die 200-Tage-EMA, BB %B ist niedriger als die festgelegte Überverkaufslinie, AO ist niedriger als der festgelegte negative Wert und ADX ist größer als der festgelegte Wert.
##Vorteilsanalyse Die Strategie kombiniert mehrere Indikatoren, um die Trendrichtung und die relative Stärke der Aktien zu bestimmen, die falsche Ausbrüche effektiv filtern können.
Der ADX-Indikator kann das Vorhandensein und die Stärke des Trends effektiv bestimmen und vermeiden, dass der Markt häufig in einem Schock eröffnet wird.
Der BB % B-Indikator beurteilt, ob sich die einzelnen Bestände auf einem
Der AO-Indikator bestimmt, ob bei einem Kauf eine relativ starke Dynamikunterstützung besteht, um die Wirksamkeit des Ausbruchs zu gewährleisten.
Der EMA-Indikator
Zusammenfassend lässt sich mit dieser Strategie Handelsrisiken wirksam kontrollieren und starke Aktien auf dem Markt verfolgen.
##Risikoanalyse Obwohl die Strategie mehrere Indikatoren zur Risikokontrolle verwendet, bestehen nach wie vor gewisse Risiken:
Die Kombination mehrerer exponentieller Indikatoren ist empfindlich gegenüber Parameteranpassungen.
Der Markt kann durch eine übertriebene Dynamik die tatsächlichen Umkehrpunkte verpassen.
Indikatoren wie die EMA haben einen verzögerten Charakter und können die Auswirkungen plötzlicher Ereignisse möglicherweise nicht rechtzeitig widerspiegeln.
Es kann vorkommen, dass sich die Indikatoren durch plötzliche Ereignisse verschieben, wobei die Fundamentalanalyse kombiniert und die Strategie gegebenenfalls vorübergehend abgebrochen werden kann.
## Optimierung Richtung Die Strategie kann auch in mehreren Aspekten optimiert werden:
Verwenden Sie maschinelles Lernen, um die optimale Parameterkombination zu finden.
Hinzufügen anderer Indikatoren, die Trends bestimmen, wie CCI und MACD, um eine
Hinzufügen von Stop-Loss-Strategien zur Kontrolle von Einzelverlusten.
Stellen Sie eine Wartezeit fest, um übermäßige Gier zu vermeiden.
Zusammenfassung
Diese Strategie wird
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //ADX + BB %B + AO + EMA strategy("ADX + BB %B + AO + EMA", overlay=true, initial_capital=10000) take_profit_perc = input(title="Take Profit %", type=input.integer, defval=10, minval=1, maxval=100) stop_loss_perc = input(title="Stop Loss %", type=input.integer, defval=5, minval=1, maxval=100) bb_overbought = input(title="BB %B Overbought", type=input.integer, defval=75, minval=1, maxval=100) bb_oversold = input(title="BB %B Oversold", type=input.integer, defval=25, minval=1, maxval=100) ao_value = input(title="Awesome Oscillator", type=input.integer, defval=2) adx_value = input(title="ADX", type=input.integer, defval=15) startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31) startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12) startYear = input(title="Start Year", type=input.integer, defval=2018, minval=2008, maxval=2200) inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) ema5 = ema(close, 5) ema21 = ema(close, 21) ema50 = ema(close, 50) ema200 = ema(close, 200) //BB %B length = input(20, minval=1) src = input(close, title="Source") mult = input(2.0, minval=0.001, maxval=50, title="StdDev") basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev bbr = (src - lower)/(upper - lower) //Awesome Oscillator ao = sma(hl2,5) - sma(hl2,34) // ADX adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") dirmov(len) => up = change(high) down = -change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = rma(tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) long_strategy = ema5>ema21 and ema50>ema200 and bbr>(bb_overbought/100) and ao>ao_value and sig>adx_value short_strategy = ema5<ema21 and ema50<ema200 and bbr<(bb_oversold/100) and ao<-ao_value and sig>adx_value plot(ema5, color=color.blue) plot(ema21, color=color.aqua) plot(ema50, color=color.purple) plot(ema200, color=color.red) bgcolor(color=long_strategy ? color.green : na, transp=80) bgcolor(color=short_strategy ? color.purple : na, transp=80) if inDateRange and long_strategy strategy.entry("long", strategy.long) strategy.exit("exit", "long", stop=close*(100-stop_loss_perc)/100, limit=close*(100+take_profit_perc)/100) if inDateRange and short_strategy strategy.entry("short", strategy.short) strategy.exit("exit", "short", stop=close*(100+stop_loss_perc)/100, limit=close*(100-take_profit_perc)/100)