Keltner Channel Stop Loss Take Profit ストラテジー

作者: リン・ハーンチャオチャン,日付: 2023-09-15 14:41:46
タグ:

これはKeltner Channel Stop Loss Take Profit 戦略に関するSEO最適化された記事です

戦略の概要

Keltner Channel Stop Loss Take Profit戦略は,ストップ・ロストとテイク・プロフィートのルールを組み込むことで,Keltner Channel 分析に基づいて取引決定を最適化します.上下チャンネル帯との価格関係を監視し,ブレイクアウトでロングまたはショートトレードを入力し,最適なストップ・ロストとテイク・プロフィートのレベルに応じてリスクと報酬をバランスします.

戦略の論理

  1. ケルトナー運河の 中部,上部,下部帯を計算する.

  2. 価格が上位帯に触れたときの長時間チャンスと 下位帯に触れたときの短時間チャンスを考えてください

  3. 上帯ブレイクでロングトレード,下帯ブレイクでショートトレードをします.

  4. 入場価格より一定パーセントの利得目標と 入場価格より一定パーセントのストップ損失目標を設定する.

この戦略の利点は,トレンドが間違っているときに時間をかけて損失を削減し,波が終わる前に利益を得るためにストップロストと利益を取るルールを導入することです.また,持続的なトレンド取引参加のための再入場信号を提供します.

パラメータは,さまざまな資産に対して最適化され,最善のリスク/報酬バランスをとることができます.

戦略 の 利点

  • ケルトナー・チャネルはトレンド方向を決定する

  • ストップ・ロスト・アンド・テイク・プロフィートは報酬を最適化します

  • 滑らかな入口と出口は,偽ブレーキを防ぐ

  • 調整のための柔軟なパラメータ

  • 他の指標と組み合わせられる

危険 警告

  • ストップ・ロスト・アンド・テイク・プロフィート比率を上昇させる必要がある

  • ストップ・ロスのリスクは依然としてある

  • 損失によってチャネルが壊れる

  • 小規模なストップ損失は頻繁にストップを引き起こす

結論

ケルトナーチャネルストップ・ロス・テイク・プロフィート戦略は,トレンドをフォローしながらリスクを制御することによって伝統的なチャネル取引を最適化する. 優れた戦略結果は,広範なバックテストとパラメータチューニングを通じて達成できる. 戦略は,安定性を徐々に改善するために深層の研究とライブテストに価値がある.


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

もっと