이 전략은 Keltner Channels 지표에 기반하고 있으며, 기하급수적인 이동 평균 (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)