Keltner Channel Stop Loss Take Profit Strategi

Penulis:ChaoZhang, Tanggal: 2023-09-15 14:41:46
Tag:

Ini adalah artikel yang dioptimalkan SEO tentang Keltner Channel Stop Loss Take Profit Strategy:

Tinjauan Strategi

Strategi Keltner Channel Stop Loss Take Profit mengoptimalkan keputusan perdagangan berdasarkan analisis Keltner Channel dengan menggabungkan aturan stop loss dan take profit.

Logika Strategi

  1. Hitung bagian tengah, atas dan bawah saluran Keltner.

  2. Pertimbangkan peluang panjang ketika harga menyentuh band atas, dan peluang pendek ketika menyentuh band bawah.

  3. Masukkan perdagangan panjang pada band breakout atas, dan masukkan perdagangan pendek pada band breakout bawah.

  4. Tetapkan target profit take pada persentase tertentu di atas harga masuk, dan target stop loss pada persentase tertentu di bawah harga masuk.

Keuntungan dari strategi ini adalah memperkenalkan aturan stop loss dan take profit untuk memotong kerugian tepat waktu ketika tren salah, dan mengambil keuntungan sebelum gelombang berakhir.

Parameter dapat dioptimalkan untuk aset yang berbeda untuk mencapai keseimbangan risiko-manfaat terbaik.

Keuntungan dari Strategi

  • Saluran Keltner menentukan arah tren

  • Stop loss and take profit mengoptimalkan imbalan

  • Masuk dan keluar yang halus mencegah pemutusan palsu

  • Parameter fleksibel untuk penyesuaian

  • Dapat dikombinasikan dengan indikator lain

Peringatan Risiko

  • Stop loss dan mengambil rasio keuntungan perlu meningkatkan

  • Beberapa risiko stop loss tetap ada

  • Saluran dapat rusak dengan kerugian

  • Stop loss kecil menyebabkan sering berhenti

Kesimpulan

Keltner Channel Stop Loss Take Profit Strategy mengoptimalkan perdagangan saluran tradisional dengan mengontrol risiko sambil mengikuti tren. Hasil strategi yang sangat baik dapat dicapai melalui backtesting yang ekstensif dan penyesuaian parameter. Strategi ini layak penelitian mendalam dan pengujian langsung untuk meningkatkan stabilitas secara bertahap.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-08-23 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Optimized Keltner Channels Strategy for BTC", overlay=true)
length = input(9, minval=1)
mult = input(1.0, "Multiplier")
src = input(close, title="Source")
exp = input(true, "Use Exponential MA")
BandsStyle = input("Average True Range", options = ["Average True Range", "True Range", "Range"], title="Bands Style")
atrlength = input(18, "ATR Length")
sl = input(defval=22, minval=0, title="Stop Loss (%)")
tp = input(defval=21, minval=0, title="Take Profit (%)")

esma(source, length)=>
	s = sma(source, length)
	e = ema(source, length)
	exp ? e : s
ma = esma(src, length)
rangema = BandsStyle == "True Range" ? rma(tr(true), length) : BandsStyle == "Average True Range" ? atr(atrlength) : rma(high - low, length)
upper = ma + rangema * mult
lower = ma - rangema * mult
c = color.blue
u = plot(upper, color=color.green, title="Upper")
plot(ma, color=#0094FF, title="Basis")
l = plot(lower, color=color.red, title="Lower")
fill(u, l, color=#0094FF, transp=95, title="Background")
crossUpper = crossover(src, upper)
crossLower = crossunder(src, lower)
bprice = 0.0
bprice := crossUpper ? close+syminfo.mintick : nz(bprice[1])
sprice = 0.0
sprice := crossLower ? close-syminfo.mintick : nz(sprice[1])
crossBcond = false
crossBcond := crossUpper ? true
     : na(crossBcond[1]) ? false : crossBcond[1]
crossScond = false
crossScond := crossLower ? true
     : na(crossScond[1]) ? false : crossScond[1]
cancelBcond = crossBcond and (src < ma or high >= bprice )
cancelScond = crossScond and (src > ma or low <= sprice )
if (cancelBcond)
	strategy.cancel("KltChLE")
if (crossUpper)
	strategy.entry("KltChLE", strategy.long, stop=bprice, comment="Long")
if (cancelScond)
	strategy.cancel("KltChSE")
if (crossLower)
	strategy.entry("KltChSE", strategy.short, stop=sprice, comment="Short")

strategy.exit("long exit", "KltChLE", profit = close * tp * 0.01 / syminfo.mintick, loss = close * sl * 0.01 / syminfo.mintick)
strategy.exit("Short exit", "KltChSE", profit = close * tp * 0.01 / syminfo.mintick, loss = close * sl * 0.01 / syminfo.mintick)

plot(bprice, color=color.green)
plot(sprice, color=color.red)

Lebih banyak