Strategi ini menggunakan gabungan saluran purata bergerak 50 tempoh, indeks arah ADX dan indeks tenaga EFI untuk perdagangan trend. Apabila indeks tenaga EFI menunjukkan permulaan trend, ia memasuki pasaran semasa penarikan balik dalam kawasan saluran 50 MA. Strategi ini sesuai untuk jangka masa 1 minit.
Mengira saluran purata bergerak 50 tempoh, dengan jalur atas adalah purata bergerak harga tinggi dan jalur bawah adalah purata bergerak harga rendah.
Mengira indeks arah ADX untuk menentukan kekuatan trend, dan hanya mempertimbangkan perdagangan semasa trend yang kuat (ADX>20).
Mengira indeks tenaga EFI jangka panjang (120 tempoh) dan jangka pendek (15-periode). indeks jangka panjang di atas 0 menunjukkan aliran menaik keseluruhan dalam tenaga, manakala indeks jangka pendek di bawah 0 menunjukkan penurunan aliran menaik jangka pendek.
Apabila indeks EFI jangka panjang dan jangka pendek memberikan isyarat beli, dan harga menarik kembali ke saluran 50 MA, kedudukan panjang diambil.
Apabila indeks EFI jangka panjang dan jangka pendek memberi isyarat jual, dan harga menarik kembali ke saluran 50 MA, kedudukan pendek diambil.
Strategi ini menggabungkan isyarat trend, momentum dan pullback untuk menapis dengan berkesan kebanyakan pecah palsu.
Saluran 50 MA dengan jelas menentukan arah trend utama.
Indeks ADX memastikan perdagangan hanya berlaku semasa trend yang jelas, mengelakkan whipsaws di pasaran yang berbeza.
Indeks EFI menangkap lonjakan tenaga trend untuk titik masuk berisiko rendah.
Menunggu pengeluaran membolehkan nisbah risiko-balasan yang lebih baik.
Gabungan pelbagai penunjuk berkesan menapis risiko pecah palsu.
Risiko utama strategi ini ialah:
Trend yang kuat juga boleh mempunyai penurunan yang lebih besar, yang memerlukan julat stop-loss yang lebih luas.
Dalam pasaran yang berbeza-beza, EFI boleh memberikan isyarat palsu, yang memerlukan pasangan dengan penapis trend seperti ADX.
Pullback yang terlalu dalam boleh terlepas titik masuk, mungkin memerlukan penyesuaian MA.
Satu instrumen perdagangan tunggal gagal untuk mempelbagaikan risiko sistematik pasaran.
Strategi ini boleh ditingkatkan dalam beberapa aspek:
Uji pada lebih banyak instrumen untuk mencari parameter universal yang optimum.
Tambah keuntungan melalui kerugian hentian.
Pengoptimuman parameter ADX, tetapan EFI dan banyak lagi.
Menggabungkan pembelajaran mesin untuk pengesanan trend yang kuat berbanding pecah palsu.
Tambah analisis pelbagai jangka masa dengan ukuran kedudukan antara jangka masa.
Menilai lebih banyak penapis trend untuk meningkatkan kualiti isyarat.
Secara keseluruhan ini adalah strategi pullback trend yang sangat baik untuk pemula, menggabungkan isyarat trend, momentum dan pullback untuk menapis pecah palsu. Dengan penyempurnaan dalam stop-loss, penyesuaian parameter, jangka masa dan banyak lagi, ia boleh menjadi sistem trend berikut yang kukuh. Ringkasnya, strategi perdagangan trend yang sangat praktikal dan layak untuk penyelidikan.
/*backtest start: 2023-08-19 00:00:00 end: 2023-09-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © trent777brown //@version=5 // strategy("adx efi 50 ema channel, trend pullback", overlay=true, margin_long=100, margin_short=100, currency=currency.USD, initial_capital= 100000, close_entries_rule="ANY") //bollingerbands [basis, upperband, lowerband]= ta.bb(ohlc4, 50, 3) [basis2, upperband2, lowerband2]= ta.bb(ohlc4, 50, 2) psar= ta.sar(.1, .1, .09) ema50= ta.ema(hlc3, 50) ema50hi= ta.ema(high, 50) ema50lo= ta.ema(low, 50) ema18= ta.wma(hlc3, 15) wma9= ta.wma(open, 9) wma5= ta.wma(ohlc4, 5) ema34= ta.rma(hlc3, 10) [macdline, signalline, histline]= ta.macd(hlc3, 5, 34, 5) [macdline2, signalline2, histline2]= ta.macd(hlc3, 15,70, 24) [diplus, diminus, adx]= ta.dmi(20, 20) [diplus2, diminus2, adx2]= ta.dmi(12, 12) rsi= ta.rsi(hlc3, 14) rsisma= ta.sma(rsi, 10) stoch= ta.stoch(close, high, low, 21) k= ta.wma(stoch, 3) d= ta.wma(k, 3) trendline5= ta.wma(hlc3, 300) trendline9= ta.wma(open, 540) trendline18= ta.wma(open, 1080) atr=ta.atr(14) plot(psar, color=color.red, style=plot.style_circles) plot(ema50, color=color.white, linewidth=4) plot(ema50hi, color=color.yellow, linewidth=4) plot(ema50lo, color=color.yellow, linewidth=4) plot(ema34, color=color.aqua, linewidth=4) plot(wma9, color=color.gray, linewidth=4) plot(wma5, color=color.lime, linewidth=4) plot(trendline18, color=color.orange, linewidth=4) plot(upperband, color=color.navy, linewidth=4) plot(lowerband, color=color.navy, linewidth=4) plot(upperband2, color=color.navy, linewidth=4) plot(lowerband2, color=color.navy, linewidth=4) plot(trendline9, color=color.maroon, linewidth=4) plot(trendline5, color=color.yellow, linewidth=4) efi = ta.rma(ta.change(close) * volume, 15) efi2= ta.rma(ta.change(close) * volume, 120) buy= efi2 > 0 and efi < 0 and efi[1] < efi and adx >= 20 and open < ema50hi sell= efi2 < 0 and efi > 0 and efi[1] > efi and adx >= 20 and open > ema50lo //ell= rsi > 50 and ta.crossunder(wma5, wma9) and psar > high and ema18 <= ema50hi and macdline > 0 and macdline < signalline //buy= ta.crossunder(close, ema50) and rsi < 50 and adx2 < adx2[1] and k < 25 and psar > high //uy= rsi < 60 and ta.crossover(wma5, wma9) and psar < low and ema18 >= ema50 and macdline2 > 0 and diplus2 < 30 // and histline2 < 0 //buy= ema18 > ema50 and ta.crossunder(rsi, 45) and open < ema50hi and adx2[3] < adx2 and diplus2 < 25 and macdline < 0 and adx < 10 //sell= ta.crossover(close, ema50) and rsi > 50 and adx2 < adx2[1] and k > 75 and psar < low //ell= ema18 < ema50 and ta.crossover(rsi, 60) and open > ema50lo and diminus2 < 30 and macdline2 < 0 and adx2[2] < adx2 //buy sell conditions 1 //buy= ta.crossover(wma5, ema18) and ema18 > ema50lo and diplus > 22 and diminus < 22 and adx > 15 //ell= ta.crossover(psar, high) and macdline2 < signalline2 and rsi < rsisma //when conditions buytrig= ema34 >= ema50lo selltrig= ema34 <= ema50hi //strategy sl= low - atr * 8 tp= high + atr * 4 sellsl= high + atr * 8 selltp= low - atr * 4 if(buy) strategy.entry("buy", strategy.long, when= buytrig) strategy.exit("exit buy", "buy", limit= tp, stop= sl) strategy.close("close", when= ta.crossunder(ema34, ema50lo)) if(sell) strategy.entry("sell", strategy.short, when= selltrig) strategy.exit("exit sell", "sell", limit= selltp, stop= sellsl)