Keltner Channel Stop Loss Take Profit Strategi

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

Ini adalah artikel yang dioptimumkan untuk SEO mengenai Strategi Stop Loss Take Profit Channel Keltner:

Ringkasan Strategi

Strategi Keltner Channel Stop Loss Take Profit mengoptimumkan keputusan perdagangan berdasarkan analisis Saluran Keltner dengan menggabungkan peraturan stop loss dan mengambil keuntungan.

Logika Strategi

  1. Mengira pertengahan, atas dan bawah jalur Saluran Keltner.

  2. Pertimbangkan peluang panjang apabila harga menyentuh barisan atas, dan peluang pendek apabila menyentuh barisan bawah.

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

  4. Tetapkan sasaran mengambil keuntungan pada peratusan tertentu di atas harga masuk, dan sasaran stop loss pada peratusan tertentu di bawah harga masuk.

Kelebihan strategi ini adalah memperkenalkan peraturan stop loss dan mengambil keuntungan untuk memotong kerugian pada waktunya apabila trend tidak berjalan dengan baik, dan mengambil keuntungan sebelum gelombang berakhir.

Parameter boleh dioptimumkan untuk aset yang berbeza untuk mencapai keseimbangan risiko-balasan yang terbaik.

Kelebihan Strategi

  • Saluran Keltner menentukan arah trend

  • Hentikan kerugian dan ambil keuntungan mengoptimumkan ganjaran

  • Masuk dan keluar yang licin menghalang pemutusan palsu

  • Parameter fleksibel untuk penyesuaian

  • Boleh digabungkan dengan penunjuk lain

Amaran Risiko

  • Stop loss dan mengambil keuntungan nisbah perlu menaikkan

  • Beberapa risiko stop loss masih kekal

  • Saluran boleh pecah dengan kehilangan

  • Stop loss kecil menyebabkan hentian kerap

Kesimpulan

Strategi Keltner Channel Stop Loss Take Profit mengoptimumkan perdagangan saluran tradisional dengan mengawal risiko sambil mengikuti trend. Hasil strategi yang sangat baik dapat dicapai melalui pengujian belakang yang luas dan penyesuaian parameter. Strategi ini bernilai penyelidikan mendalam dan ujian langsung untuk meningkatkan kestabilan secara beransur-ansur.


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