##Pengamatan
Strategi ini dinamakan
## Prinsip Strategi
Strategi ini menggunakan empat penunjuk teknikal yang berbeza untuk menentukan titik masuk dan keluar.
Keadaan kemasukan panjang: EMA 5 hari melintasi EMA 21 hari, EMA 50 hari melintasi EMA 200 hari, BB %B lebih besar daripada garis overbought yang ditetapkan, AO lebih besar daripada nilai positif yang ditetapkan, dan ADX lebih besar daripada nilai yang ditetapkan.
Keadaan kemasukan pendek: EMA 5 hari melintasi di bawah EMA 21 hari, EMA 50 hari melintasi di bawah EMA 200 hari, BB %B kurang daripada garis oversold yang ditetapkan, AO kurang daripada nilai negatif yang ditetapkan, dan ADX lebih besar daripada nilai yang ditetapkan.
##Analisis Kelebihan Strategi ini menggabungkan pelbagai penunjuk untuk menentukan arah trend dan kekuatan relatif stok, yang dapat menapis pecah palsu dengan berkesan.
Indikator ADX dapat menentukan keberadaan dan kekuatan trend dengan berkesan, mengelakkan pembukaan yang kerap dalam pasaran kejutan.
Penunjuk BB %B menilai sama ada stok individu berada pada tahap
Penunjuk AO menentukan sama ada terdapat sokongan momentum yang agak kuat semasa pembelian untuk memastikan keberkesanan pecah.
Indikator EMA's golden cross/dead cross digabungkan dengan penilaian arah utama pasaran mengelakkan pembukaan kedudukan terhadap trend.
Ringkasnya, strategi ini dapat mengawal risiko perdagangan dengan berkesan dan mengesan stok yang kuat di pasaran.
##Analisis Risiko Walaupun strategi menggunakan pelbagai penunjuk untuk mengawal risiko, masih ada risiko tertentu:
Gabungan beberapa penunjuk eksponensial sensitif terhadap penyesuaian parameter. Gabungan parameter yang tidak sesuai mungkin gagal mencapai kesan yang diinginkan.
Menuntut momentum yang berlebihan boleh terlepas titik pembalikan pasaran yang sebenar.
Penunjuk seperti EMA mempunyai sifat yang tertunda dan mungkin tidak dapat mencerminkan kesan peristiwa tiba-tiba dalam masa.
Kejadian tiba-tiba yang besar boleh menyebabkan perbezaan penunjuk. Analisis asas harus digabungkan dan strategi boleh ditutup sementara jika perlu.
## Arah Pengoptimuman Strategi ini juga boleh dioptimumkan dalam beberapa aspek:
Gunakan pembelajaran mesin untuk mencari kombinasi parameter yang optimum.
Tambah penunjuk lain yang menentukan trend, seperti CCI dan MACD, untuk membentuk
Tambah strategi stop-loss untuk mengawal kerugian tunggal.
Tetapkan masa tunggu untuk mengelakkan tamak yang berlebihan.
## Ringkasan
Strategi ini dinamakan
/*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)