
Diese Strategie wird als “Quadruple-Faktor-Dynamik-Tracking-Strategie” bezeichnet. Die Strategie nutzt die kombinierte Verwendung des mittleren Richtungsbewegungsindikators ((ADX) zur Bestimmung der Trendrichtung, der Brin-Band-Prozentsatz-B-Band ((BB %B) zur Bestimmung der relativ starken Aktien, der magischen Gleichgewicht ((AO)) zur Bestimmung der Bewegungsmenge und der Index-Moving Average für verschiedene Perioden ((EMA)) zur Bestimmung der Leerheit, um die Dynamik der Aktienpreise zu verfolgen, die Wirkung von starken Aktien zu verfolgen und schwache Aktien zu vermeiden.
Die Strategie nutzt vier verschiedene technische Kennzahlen, um zu bestimmen, wann ein Kauf oder ein Verkauf stattfindet.
Mehrere Einstiegsbedingungen: 5-Tage-EMA über 21-Tage-EMA, 50-Tage-EMA über 200-Tage-EMA, BB %B größer als die eingestellte Überkauflinie, AO größer als der eingestellte Positivwert, ADX größer als der eingestellte Wert.
Leerlauf-Eintrittsbedingungen: 21-Tage-EMA unter 5-Tage-EMA, 200-Tage-EMA unter 50-Tage-EMA, BB % B kleiner als die eingestellte Überselllinie, AO kleiner als die eingestellte Negativwerte, ADX größer als die eingestellte Wert.
Strategische Stärkenanalyse
Die Strategie kombiniert mehrere Indikatoren, die die Richtung der Trends und die relative Stärke der Aktien bestimmen, um falsche Durchbrüche effektiv zu filtern. Die konkreten Vorteile sind:
Der ADX-Indikator kann Trends und deren Intensität erkennen und verhindert, dass häufige Positionen in einem wackligen Markt eröffnet werden.
Der BB %B-Wert kann beurteilen, ob sich ein Aktienmarkt in einer Hoch- oder Tieflage befindet, und kann somit die Verfolgung von Höhen und Tiefen wirksam vermeiden.
Der AO-Wert beurteilt, ob es eine starke Dynamik-Unterstützung beim Kauf gibt, um die Wirksamkeit des Durchbruchs zu gewährleisten.
Die Gold-/Dead-Fork-Kombination der EMA-Indikatoren beurteilt die Richtung der Marktmechanismen und verhindert eine Gegenposition.
Insgesamt kann diese Strategie die Risiken im Handel wirksam kontrollieren und die starken Aktien im Markt verfolgen.
Obwohl die Strategie mit mehreren Indikatoren kombiniert wird, um Risiken zu kontrollieren, bestehen Risiken:
Bei mehreren Indexkombinationen ist die Parameter-Anpassung empfindlich, und eine unangemessene Parameterkombination kann nicht wirksam sein.
Wenn man zu viel nach Dynamik strebt, kann man den wahren Wendepunkt des Marktes verpassen. Man sollte den Haltungszyklus angemessen kontrollieren und den Stopp-Loss rechtzeitig stoppen.
Indikatoren wie die EMA sind nachlässig und können die Auswirkungen von Ereignissen nicht rechtzeitig widerspiegeln. Sie sollten in geeigneter Weise mit anderen Indikatoren kombiniert oder die MA-Zyklen angemessen verkürzt werden.
Unvorhergesehene wichtige Ereignisse können zu einer Ausbreitung des Indikators führen, die in Kombination mit einer Fundamentalanalyse durchgeführt werden sollte und die Strategie bei Bedarf vorübergehend abschalten kann.
Die Strategie kann auch in folgenden Bereichen optimiert werden:
Die optimale Kombination von Parametern wird durch Methoden wie maschinelles Lernen ermittelt.
Zusätzliche Indikatoren wie CCI, MACD, etc. bilden eine Kombination aus zwei Indikatoren, die die Genauigkeit der Beurteilung verbessern.
Ein Stop-Loss-Strategien, um einzelne Verluste zu kontrollieren.
Es ist wichtig, dass man die Zeit festlegt, in der man seine Positionen hält, um nicht zu gierig zu werden.
Diese Strategie, die als “Four Factor Dynamic Tracking Strategy” bezeichnet wird, nutzt vier Indikatoren ADX, BB % B, AO und EMA, um die Kauf- und Verkaufsmomente zu bestimmen und die Dynamik starker Aktien zu verfolgen. Die Strategie kann die Trendrichtung und die relative Stärke der Aktien effektiv bestimmen und das Handelsrisiko kontrollieren.
/*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)