
Strategi ini menggunakan indikator momentum ADX, RSI, dan Bollinger Bands untuk menentukan tren pasar dan overbought oversold. Strategi ini adalah strategi trading otomatis untuk melakukan low/high/sell dan profit/exit.
Berdasarkan indikator di atas untuk menilai kondisi pasar, strategi perdagangan dibuat sebagai berikut:
Kondisi pembelian:
Kondisi penjualan:
Strategi ini menggunakan berbagai indikator untuk menilai kondisi pasar secara komprehensif, menghindari kemungkinan kesalahan dalam menilai satu indikator. Pada saat yang sama, melalui penilaian tren, overbought dan oversold, dapat secara efektif mengunci titik pivot pasar, untuk mencapai harga rendah dan harga tinggi.
Strategi ini dapat menangkap peluang jangka pendek dengan lebih tepat waktu daripada menggunakan indikator tren saja. Strategi ini dapat menangkap arah tren dengan lebih baik daripada menggunakan indikator getaran saja. Oleh karena itu, strategi ini mempertahankan keuntungan dari pelacakan tren, tetapi memiliki fleksibilitas untuk beraksi kontra, merupakan strategi kuantitatif yang berpotensi lebih efisien.
Strategi ini memiliki risiko utama sebagai berikut:
Langkah-langkah manajemen risiko yang sesuai:
Strategi ini memiliki ruang untuk pengoptimalan dalam beberapa hal:
Optimasi parameter indikator. Algoritma optimisasi cerdas dapat diperkenalkan untuk mengoptimalkan parameter yang berbeda secara independen.
Menambahkan fitur teknik. Mengintroduksi lebih banyak indikator teknis harga, membangun model pendukung seperti mesin vektor untuk pelatihan, meningkatkan akurasi sinyal.
Tergabung dengan strategi terobosan. Menggunakan aturan penilaian berdasarkan saluran, dukungan resistensi, dan lain-lain sesuai dengan karakteristik situasi yang berbeda, untuk menguasai titik terobosan, meningkatkan stabilitas strategi.
Mengoptimalkan mekanisme stop loss. Memperkenalkan cara-cara seperti tracking stop loss, mobile stop loss, dan lain-lain, untuk mencapai penyesuaian dinamika stop loss, maksimal mengunci keuntungan, dan mengontrol risiko secara efektif.
Strategi ini digunakan sebagai strategi perdagangan kuantitatif jangka pendek dan menengah, menggunakan beberapa indikator teknis untuk menilai kondisi pasar, seperti ADX, RSI, dan Brin Belt, untuk melakukan operasi jual beli ketika menentukan struktur pasar yang berubah secara signifikan. Logika strategi dapat dijelaskan dengan jelas, dan dapat mengurangi kemungkinan kesalahan penilaian indikator teknis tunggal.
/*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)