この戦略は,指数移動平均 (EMA) と平均真差 (ATR) を使って上下チャネルを構成するケルトナーチャネル指標に基づいています.価格が下下チャネルを下回ると,ロングポジションに入ります.価格が上下チャネルを突破すると,ポジションを閉じる.この戦略は価格変動範囲を把握し,価格が上下チャネルを突破すると利益を得ます.
この戦略は,ケルトナーチャネル指標に基づい,チャネルの上または下での価格ブレイクの論理に基づいて取引を行う.その利点はシンプルで明確な論理と強い適応性である.その欠点はストップ損失の欠如とシグナル品質の低下である.将来,ストップ損失を導入し,シグナルを最適化し,パラメータの最適化,フィルタリング条件を追加することによって戦略を改善することができる.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © satrusskumar //@version=5 // Input parameters length = input.int(21, title="EMA Length") mult = input.float(2, title="ATR Multiplier") atrLength = input.int(13, title="ATR Length") // Calculate Keltner Channels ema = ta.ema(close, length) atr = ta.atr(atrLength) upper_band = ema + mult * atr lower_band = ema - mult * atr // Plot Keltner Channels plot(upper_band, color=color.red, title="Keltner Upper Band") plot(ema, color=color.blue, title="Keltner EMA") plot(lower_band, color=color.green, title="Keltner Lower Band") // Strategy logic var float entry_price = na var bool in_trade = false if (not in_trade and close < lower_band) strategy.entry("Long", strategy.long) entry_price := close in_trade := true if (in_trade and open > upper_band) strategy.close("Long") in_trade := false // Strategy settings strategy("Keltner Channel Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)