Honey Trend ATR Strategy Penembusan

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

img

Ringkasan

Strategi Breakout ATR Honey Trend adalah strategi breakout jangka sederhana berdasarkan penunjuk ATR dan Bollinger Bands untuk penjanaan isyarat perdagangan. Ia terutamanya memantau perubahan trend harga saham dalam lebar tertentu saluran ATR atas dan bawah. Apabila harga memecahkan rel bawah atau atas, digabungkan dengan penapisan trend, ia membuat keputusan perdagangan.

Prinsip Strategi

Strategi ini terdiri daripada tiga bahagian utama:

  1. Saluran ATR: Mengira julat turun naik harga saham melalui penunjuk ATR dan membentuk saluran ke atas dan ke bawah dalam julat ini.

  2. Garis Bee: Ambil garis tengah harga saham sebagai garis asas. Kaedah pengiraan garis tengah adalah: nilai purata harga tinggi, rendah dan tutup semalam.

  3. Penapisan Trend: Mengira trend harga melalui penunjuk DMI dan menetapkan kitaran isyarat. Apabila pricesig >: pricesig[3], trendnya naik. Apabila pricesig < pricesig[3], trendnya turun.

Logik khusus untuk menjana isyarat perdagangan adalah:

Isyarat panjang: hargaig > hargaig[3] dan harga pecah melalui rel bawah saluran.

Isyarat pendek: hargaig < hargaig[3] dan harga pecah melalui rel atas saluran.

Tidak ada perdagangan dalam situasi lain.

Strategi ini juga menetapkan syarat berhenti keuntungan dan berhenti kerugian untuk mengawal risiko perdagangan.

Analisis Kelebihan

Strategi Breakout Honey Trend ATR mempunyai kelebihan berikut:

  1. Menggunakan penunjuk ATR untuk mengira julat turun naik harga saham, yang dapat menangkap perubahan pasaran secara dinamik;

  2. Menggabungkan garis tengah untuk menilai sisi harga saham dan menetapkan titik perdagangan saluran untuk mengelakkan mengejar tinggi dan membunuh rendah;

  3. Penunjuk DMI digunakan untuk menentukan trend dan mengelakkan perdagangan terhadap trend, meningkatkan kadar kemenangan;

  4. Menetapkan syarat berhenti keuntungan dan berhenti kerugian untuk mengawal risiko perdagangan tunggal;

  5. Parameter strategi cukup fleksibel untuk mengoptimumkan strategi dengan menyesuaikan lebar saluran, kitaran ATR dan faktor lain.

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko:

  1. Perdagangan jangka sederhana mempunyai turun naik yang agak besar dan risiko yang tinggi.

  2. Pengiraan julat saluran ATR mungkin tidak tepat apabila harga saham turun naik dengan tajam, yang mudah membawa kepada perdagangan yang salah.

  3. Penunjuk DMI juga boleh membuat kesilapan dalam penilaian trend, sehingga menjejaskan ketepatan isyarat perdagangan.

Sebagai tindak balas kepada risiko di atas, parameter seperti saluran ATR boleh diselaraskan dan kitaran isyarat boleh ditingkatkan untuk pengoptimuman dan penambahbaikan.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Sesuaikan lebar saluran ATR dengan mengubah suai atrDivisor ke atas atau ke bawah untuk memampatkan atau memperluaskan julat saluran.

  2. Sesuaikan parameter kitaran melihat balik ATR untuk mengubah kepekaan saluran terhadap turun naik baru-baru ini.

  3. Sesuaikan parameter kitaran isyarat trend untuk meningkatkan ketepatan penilaian trend menaik dan menurun.

  4. Tambah penunjuk lain untuk pengesahan pelbagai faktor untuk meningkatkan kualiti isyarat.

  5. Mengoptimumkan algoritma stop profit dan stop loss untuk meningkatkan kawalan risiko.

Kesimpulan

Strategi Breakout Trend ATR Honey mengintegrasikan analisis julat turun naik harga dan penunjuk penghakiman trend. Semasa menangkap titik panas pasaran, ia juga mengawal risiko perdagangan. Ini adalah strategi kuantitatif yang fleksibel dan dapat disesuaikan. Strategi ini boleh terus ditingkatkan melalui penyesuaian parameter dan pengoptimuman isyarat, 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 lanjut