Ini adalah artikel yang dioptimalkan SEO tentang Keltner Channel Stop Loss Take Profit Strategy:
Strategi Keltner Channel Stop Loss Take Profit mengoptimalkan keputusan perdagangan berdasarkan analisis Keltner Channel dengan menggabungkan aturan stop loss dan take profit.
Hitung bagian tengah, atas dan bawah saluran Keltner.
Pertimbangkan peluang panjang ketika harga menyentuh band atas, dan peluang pendek ketika menyentuh band bawah.
Masukkan perdagangan panjang pada band breakout atas, dan masukkan perdagangan pendek pada band breakout bawah.
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.
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
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
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)