
Strategi ini disebut strategi pelacakan pergerakan empat faktor yang terintegrasi. Strategi ini menggunakan indikator pergerakan arah rata-rata ((ADX) untuk menentukan arah tren, persentase B band ((BB % B) untuk menentukan saham relatif kuat, rata-rata magis ((AO) untuk menilai pergerakan dan rata-rata bergerak indeks untuk berbagai periode ((EMA) untuk menilai volatilitas, untuk melacak dinamika harga saham, mengejar efek saham yang kuat, menghindari saham yang lemah.
Strategi ini menggunakan empat indikator teknis yang berbeda untuk menentukan kapan membeli dan menjual. Logika penilaian spesifiknya adalah sebagai berikut:
Kondisi masuk multihead: 5 hari EMA dengan EMA 21 hari, 50 hari EMA dengan EMA 200 hari, BB % B lebih besar dari garis overbought yang ditetapkan, AO lebih besar dari nilai positif yang ditetapkan, dan ADX lebih besar dari nilai yang ditetapkan.
Kondisi masuk kosong: 5 hari EMA di bawah EMA 21 hari, 50 hari EMA di bawah EMA 200 hari, BB % B kurang dari batas oversold yang ditetapkan, AO kurang dari nilai negatif yang ditetapkan, ADX lebih besar dari nilai yang ditetapkan.
Analisis Keunggulan Strategi
Strategi ini mengintegrasikan beberapa indikator untuk menentukan arah tren dan kekuatan relatif saham, yang dapat secara efektif memfilter terobosan palsu. Keunggulan spesifiknya adalah sebagai berikut:
Indikator ADX dapat secara efektif menilai keberadaan tren dan kekuatan tren, menghindari sering membuka posisi di pasar yang bergoyang;
Indikator BB %B menentukan apakah saham berada di posisi tinggi atau rendah, yang dapat secara efektif menghindari mengejar kenaikan dan penurunan;
Indeks AO menilai apakah ada dukungan momentum yang kuat saat pembelian, yang menjamin efektivitas terobosan;
EMA mengkombinasikan indikator Gold Fork/Dead Fork untuk menentukan arah pasar utama dan menghindari posisi berlawanan.
Secara keseluruhan, strategi ini dapat secara efektif mengendalikan risiko perdagangan dan melacak individu-individu yang kuat di pasar.
Meskipun strategi ini mengintegrasikan berbagai indikator untuk mengendalikan risiko, tetap ada beberapa risiko:
Penggunaan beberapa kombinasi indikator indeks, sensitif terhadap penyesuaian parameter, kombinasi parameter yang tidak tepat mungkin tidak dapat memberikan efek yang seharusnya.
Terlalu mengejar momentum dapat melewatkan titik balik pasar yang sebenarnya. Siklus kepemilikan harus dikontrol dengan tepat, dan stop loss harus dihentikan tepat waktu.
Indikator seperti EMA memiliki keterlambatan dan mungkin tidak dapat mencerminkan dampak dari peristiwa yang terjadi secara tepat waktu. Indikator lain harus dikombinasikan dengan tepat atau siklus MA harus dipersingkat secara tepat.
Peristiwa besar yang terjadi secara tiba-tiba dapat menyebabkan penurunan indikator, yang harus dikombinasikan dengan analisis fundamental, dan jika perlu, strategi dapat ditutup sementara.
Strategi ini juga dapat dioptimalkan dalam beberapa hal:
Menggunakan metode seperti pembelajaran mesin untuk menemukan kombinasi parameter yang optimal.
Menambahkan indikator tren penilaian lainnya, seperti CCI, MACD, dan lain-lain, membentuk kombinasi indikator pixel pixel, meningkatkan akurasi penilaian.
Bergabunglah dengan strategi Stop Loss dan kendalikan kerugian tunggal.
Tetapkan waktu untuk memegang saham, hindari keserakahan.
Strategi ini menggunakan empat indikator ADX, BB % B, AO, dan EMA untuk menentukan waktu jual beli, untuk melakukan pelacakan dinamis terhadap saham yang kuat. Strategi ini dapat secara efektif menentukan arah tren dan kekuatan relatif saham, mengendalikan risiko perdagangan. Langkah selanjutnya dapat lebih menyempurnakan strategi ini dengan cara mengoptimalkan parameter, menambahkan indikator lain, dan mengatur waktu memegang posisi.
/*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)