Honey Trend ATR Breakout Strategi

Penulis:ChaoZhang, Tanggal: 2023-12-06 18:03:38
Tag:

img

Gambaran umum

Honey Trend ATR Breakout Strategy adalah strategi breakout jangka menengah berdasarkan indikator ATR dan Bollinger Bands untuk generasi sinyal perdagangan. Hal ini terutama memantau perubahan tren harga saham dalam lebar tertentu dari saluran ATR atas dan bawah.

Prinsip Strategi

Strategi ini terdiri dari tiga bagian utama:

  1. Saluran ATR: Menghitung rentang fluktuasi harga saham melalui indikator ATR dan membentuk saluran ke atas dan ke bawah dalam rentang ini.

  2. Hal ini dapat dilakukan dengan menggunakan metode penghitungan, yaitu dengan menggunakan nilai rata-rata harga tertinggi, terendah, dan dekat kemarin.

  3. Trend Filtering: Menghitung tren harga melalui indikator DMI dan mengatur siklus sinyal. Ketika pricesig >: pricesig[3], tren naik. Ketika pricesig < pricesig[3], tren turun.

Logika khusus untuk menghasilkan sinyal perdagangan adalah:

Sinyal panjang: pricesig > pricesig[3] dan price break melalui rel bawah saluran.

Sinyal pendek: pricesig < pricesig[3] dan harga pecah melalui rel atas saluran.

Tidak ada perdagangan dalam situasi lain.

Strategi ini juga menetapkan kondisi stop profit dan stop loss untuk mengendalikan risiko perdagangan.

Analisis Keuntungan

Strategi Breakout Honey Trend ATR memiliki keuntungan berikut:

  1. Menggunakan indikator ATR untuk menghitung rentang fluktuasi harga saham, yang dapat menangkap perubahan pasar secara dinamis;

  2. Menggabungkan garis tengah untuk mengevaluasi sisi harga saham dan menetapkan titik perdagangan saluran untuk menghindari mengejar tertinggi dan membunuh terendah;

  3. Indikator DMI digunakan untuk menentukan tren dan menghindari perdagangan melawan tren, meningkatkan tingkat kemenangan;

  4. Menetapkan kondisi stop profit dan stop loss untuk mengendalikan risiko perdagangan tunggal;

  5. Parameter strategi cukup fleksibel untuk mengoptimalkan strategi dengan menyesuaikan lebar saluran, siklus ATR dan faktor lainnya.

Analisis Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Perdagangan jangka menengah memiliki fluktuasi yang relatif besar dan risiko yang tinggi.

  2. Perhitungan rentang saluran ATR mungkin tidak akurat ketika harga saham berfluktuasi tajam, yang dengan mudah mengarah pada perdagangan yang salah.

  3. Indikator DMI juga dapat membuat kesalahan dalam penilaian tren, sehingga mempengaruhi akurasi sinyal perdagangan.

Menanggapi risiko di atas, parameter seperti saluran ATR dapat disesuaikan dan siklus sinyal dapat ditingkatkan untuk optimalisasi dan perbaikan.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Sesuaikan lebar saluran ATR dengan memodifikasi atrDivisor ke atas atau ke bawah untuk memampatkan atau memperluas rentang saluran.

  2. Sesuaikan parameter siklus lookback ATR untuk mengubah sensitivitas saluran terhadap fluktuasi terbaru.

  3. Sesuaikan parameter siklus sinyal tren untuk meningkatkan akurasi penilaian tren bullish dan bearish.

  4. Tambahkan indikator lain untuk verifikasi multi-faktor untuk meningkatkan kualitas sinyal.

  5. Mengoptimalkan algoritma stop profit dan stop loss untuk meningkatkan kontrol risiko.

Kesimpulan

Honey Trend ATR Breakout Strategy mengintegrasikan analisis rentang fluktuasi harga dan indikator penilaian tren. Sementara menangkap hotspot pasar, ia juga mengendalikan risiko perdagangan. Ini adalah strategi kuantitatif yang fleksibel dan dapat disesuaikan. Strategi ini dapat terus ditingkatkan melalui penyesuaian parameter dan optimasi sinyal, dengan prospek aplikasi yang luas.


/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Strategy - Bobo PATR Swing", overlay=true, default_qty_type = strategy.fixed, default_qty_value = 1, initial_capital = 10000)

// === STRATEGY RELATED INPUTS AND LOGIC ===
PivottimeFrame = input(title="Pivot Timeframe",  defval="D")
ATRSDtimeFrame = input(title="ATR Band Timeframe (Lower timeframe = wider bands)",  defval="D")
len = input(title="ATR lookback (Lower = bands more responsive to recent price action)",  defval=13)
myatr = atr(len)
dailyatr = request.security(syminfo.tickerid, ATRSDtimeFrame, myatr[1])
atrdiv = input(title="ATR divisor (Lower = wider bands)", type=float, defval=2)
pivot0 = (high[1] + low[1]  + close[1]) / 3
pivot = request.security(syminfo.tickerid, PivottimeFrame, pivot0)
upperband1 = (dailyatr / atrdiv) + pivot
lowerband1 = pivot - (dailyatr / atrdiv)
middleband = pivot

// == TREND CALC ===
i1=input(2, "Momentum Period", minval=1) //Keep at 2 usually
i2=input(20, "Slow Period", minval=1)
i3=input(5, "Fast Period", minval=1)
i4=input(3, "Smoothing Period", minval=1)
i5=input(4, "Signal Period", minval=1)
i6=input(50, "Extreme Value", minval=1)
hiDif = high - high[1]
loDif = low[1] - low
uDM = hiDif > loDif and hiDif > 0 ? hiDif : 0
dDM =  loDif > hiDif and loDif > 0 ? loDif : 0
ATR = rma(tr(true), i1)
DIu = 100 * rma(uDM, i1) / ATR
DId = 100 * rma(dDM, i1) / ATR
HLM2 =  DIu - DId
DTI = (100 * ema(ema(ema(HLM2, i2), i3), i4)) /  ema(ema(ema(abs(HLM2), i2), i3), i4)
signal = ema(DTI, i5)


// === RISK MANAGEMENT INPUTS ===
inpTakeProfit   = input(defval = 0, title = "Take Profit (In Market MinTick Value)", minval = 0)
inpStopLoss     = input(defval = 100, title = "Stop Loss (In Market MinTick Value)", minval = 0)

// === RISK MANAGEMENT VALUE PREP ===
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong = (((low<=lowerband1) and (close >lowerband1)) or ((open <= lowerband1) and (close > lowerband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal>signal[3])
exitLong = (high > middleband)
strategy.entry(id = "Long", long = true, when = enterLong) 
strategy.close(id = "Long", when = exitLong)

// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort = (((high>=upperband1) and (close < upperband1)) or ((open >= upperband1) and (close < upperband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal<signal[3])
exitShort = (low < middleband)
strategy.entry(id = "Short", long = false, when = enterShort)
strategy.close(id = "Short", when = exitShort)

// === STRATEGY RISK MANAGEMENT EXECUTION ===
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss)

// === CHART OVERLAY ===
plot(upperband1, color=#C10C00, linewidth=3)
plot(lowerband1, color=#23E019, linewidth=3)
plot(middleband, color=#00E2E2, linewidth=3)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Lebih banyak