
Diese Strategie nutzt die Dynamikindikatoren ADX, RSI und Bollinger Bands, um eine automatische Trading-Strategie zu entwickeln, die durch die Beurteilung von Markttrends und Überkauf-Überverkauf-Szenarien zu einem niedrigen Kauf-Hochverkauf führt und einen Gewinn erzielt.
Die Handelsstrategie basiert auf den oben genannten Kennzahlen:
Kaufbedingungen:
Verkaufsbedingungen:
Diese Strategie verwendet mehrere Indikatoren, um die Marktlage zu beurteilen, um die Wahrscheinlichkeit einer Fehleinschätzung durch einen einzelnen Indikator zu vermeiden. Gleichzeitig kann durch die Beurteilung von Trends, Überkauf-Überverkauf-Zuständen der Marktwendepunkt effektiv gesperrt werden, um einen niedrigen Kauf-Hochverkauf zu erreichen.
Die Strategie kann kurzfristige Chancen zeitnah erfassen, im Vergleich zu einem Trendindikator allein. Die Strategie kann die Richtung der Tendenz besser erfassen, im Vergleich zu einem Stagnationindikator allein. Daher behält die Strategie sowohl die Vorteile der Trendverfolgung als auch die Flexibilität des Gegenwärtigen ein, eine potentiell effiziente quantitative Strategie.
Diese Strategie birgt folgende Risiken:
Entsprechende Risikomanagementmaßnahmen:
Die Optimierungsmöglichkeiten für diese Strategie bestehen hauptsächlich in folgenden Bereichen:
Optimierung der Parameter der Kennziffer. Intelligente Optimierungsalgorithmen können eingeführt werden, um die Parameter für verschiedene Sorten unabhängig zu optimieren.
Erhöhung der Feature Engineering. Einführung von mehr Preis-Technik-Indikatoren, Einrichtung von Modellen zur Unterstützung der Vektormaschine und andere zu trainieren, Signal-Genauigkeit zu verbessern.
In Kombination mit der Durchbruchstrategie. Je nach den Verhaltensmerkmalen der verschiedenen Sorten, Anwendung von Urteilsregeln auf der Grundlage von Kanälen, Stützungswiderstand usw., um den Durchbruchspunkt zu erfassen und die Strategie zu stabilisieren.
Optimierung der Stop-Loss-Mechanismen. Einführung von Tracking-Stops, Mobile-Stops usw., um die Stop-Loss-Dynamik anzupassen, die Gewinne zu maximieren und das Risiko effektiv zu kontrollieren.
Diese Strategie dient als eine mittelfristige quantitative Handelsstrategie, die die Marktlage anhand von mehreren technischen Indikatoren wie ADX, RSI und Brin-Band beurteilt und bei wesentlichen Veränderungen der Marktstruktur Kauf- und Verkaufsoperationen durchführt. Die Strategie ist klar interpretierbar und kann die Wahrscheinlichkeit von Fehleinschätzungen bei einzelnen technischen Indikatoren erheblich reduzieren. Gleichzeitig muss die Strategie auch darauf achten, dass die Indikatoren falsche Signale senden, Risiken wie zu radikale Stop- und Verlustparameter setzen.
/*backtest
start: 2023-11-10 00:00:00
end: 2023-12-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("DAX Shooter 5M Strategy", overlay=true)
//Creo ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
th = input(title="threshold", type=input.integer, defval=20)
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)
adx
[plus, minus] = dirmov(dilen)
sig = adx(dilen, adxlen)
//Creo RSI
src = close
len = input(7, minval=1, title="Periodo RSI")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
bandainf = input(30, title="Livello Ipervenduto")
bandasup = input(70, title="Livello Ipercomprato")
//Creo Bande di Bollinger
source = close
length = input(50, minval=1, title="Periodo BB")
mult = input(2.0, minval=0.001, maxval=50, title="Dev BB")
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.white)
p1 = plot(upper, color=color.aqua)
p2 = plot(lower, color=color.aqua)
fill(p1, p2)
//Stabilisco regole di ingresso
if crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
strategy.entry("COMPRA", strategy.long, limit=upper, oca_name="DaxShooter", comment="COMPRA")
else
//strategy.exit("exit", "COMPRA", loss = 90)
strategy.cancel(id="COMPRA")
if crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
strategy.entry("VENDI", strategy.short, limit=lower, oca_name="DaxShooter",comment="VENDI")
else
//strategy.exit("exit", "VENDI", loss = 90)
strategy.cancel(id="VENDI")
//Imposto gli alert
buy= crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
sell= crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
alertcondition(buy, title='Segnale Acquisto', message='Compra DAX')
alertcondition(sell, title='Segnale Vendita', message='Vendi DAX')
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)