Strategi Pullback Saluran ADX EFI 50 Moving Average

Penulis:ChaoZhang, Tanggal: 2023-09-19 17:10:51
Tag:

Gambaran umum

Strategi ini menggunakan kombinasi saluran rata-rata bergerak 50 periode, indeks arah ADX dan indeks energi EFI untuk perdagangan tren. Ketika indeks energi EFI menunjukkan awal tren, ia memasuki pasar selama penarikan dalam area saluran 50 MA. Strategi ini cocok untuk jangka waktu 1 menit.

Logika Strategi

  1. Hitung saluran rata-rata bergerak 50 periode, dengan band atas adalah rata-rata bergerak harga tinggi dan band bawah adalah rata-rata bergerak harga rendah.

  2. Menghitung indeks arah ADX untuk menentukan kekuatan tren, dan hanya mempertimbangkan perdagangan selama tren yang kuat (ADX>20).

  3. Menghitung indeks energi EFI jangka panjang (120 periode) dan jangka pendek (15-periode). indeks jangka panjang di atas 0 menunjukkan tren kenaikan energi secara keseluruhan, sedangkan indeks jangka pendek di bawah 0 menunjukkan penurunan tren kenaikan jangka pendek.

  4. Ketika indeks EFI jangka panjang dan jangka pendek memberikan sinyal beli, dan harga menarik kembali ke saluran 50 MA, posisi panjang diambil.

  5. Ketika indeks EFI jangka panjang dan jangka pendek memberikan sinyal jual, dan harga menarik kembali ke saluran 50 MA, posisi pendek diambil.

Analisis Keuntungan

Strategi ini menggabungkan sinyal tren, momentum dan pullback untuk secara efektif menyaring sebagian besar breakout palsu.

  1. Saluran 50 MA dengan jelas menentukan arah tren utama.

  2. Indeks ADX memastikan perdagangan hanya terjadi selama tren yang jelas, menghindari whipsaws di pasar yang bervariasi.

  3. Indeks EFI menangkap lonjakan energi tren untuk titik masuk berisiko rendah.

  4. Menunggu penarikan memungkinkan rasio risiko-manfaat yang lebih baik.

  5. Kombinasi beberapa indikator secara efektif menyaring risiko pecah palsu.

Analisis Risiko

Risiko utama dari strategi ini adalah:

  1. Tren yang kuat juga dapat memiliki pullback yang lebih besar, yang membutuhkan rentang stop-loss yang lebih luas.

  2. Di pasar yang bervariatif, EFI dapat memberikan sinyal palsu, yang membutuhkan perpaduan dengan indikator penyaring tren seperti ADX.

  3. Pullbacks yang terlalu dalam dapat melewatkan titik masuk, mungkin memerlukan penyesuaian MA.

  4. Instrumen perdagangan tunggal gagal mendiversifikasi risiko sistematis pasar.

Arahan Optimasi

Strategi ini dapat ditingkatkan dalam beberapa aspek:

  1. Uji pada lebih banyak instrumen untuk menemukan parameter universal yang optimal.

  2. Tambahkan profit-taking melalui trailing stop loss.

  3. Optimasi parameter ADX, pengaturan EFI dan banyak lagi.

  4. Masukkan pembelajaran mesin untuk mendeteksi tren yang kuat vs. pecah palsu.

  5. Tambahkan analisis multi-frame waktu dengan ukuran posisi antara timeframe.

  6. Evaluasi lebih banyak indikator penyaringan tren untuk meningkatkan kualitas sinyal.

Ringkasan

Secara keseluruhan ini adalah strategi pullback tren yang sangat baik untuk pemula, menggabungkan sinyal tren, momentum dan pullback untuk menyaring breakout palsu. Dengan penyempurnaan dalam stop-loss, penyesuaian parameter, kerangka waktu dan banyak lagi, ini dapat menjadi sistem trend berikut yang kuat. Singkatnya, strategi perdagangan tren yang sangat praktis dan layak untuk penelitian.


/*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)


Lebih banyak