이 전략은 캔들스타크 차트의 켈트너 채널 지표에 기초하여 채널 밴드의 가격 브레이크를 판단하여 트렌드를 추적하도록 설계되었습니다. 이 전략은 중장기 보유 지위에 적합하며 높은 수익 잠재력을 가진 트렌드를 효과적으로 추적 할 수 있습니다.
이 전략의 핵심은 가격 추세와 잠재적 인 지원 / 저항 수준을 판단하기 위해 켈트너 채널을 구축하는 데 있습니다. 구체적으로, 그것은 먼저 촛불의 EMA 라인을 계산하고, 켈트너 디비에이션 × ATR 변동성의 거리에 상부 및 하부 밴드를 추가하여 켈트너 채널을 만듭니다. 가격이 하부 밴드 이상으로 넘으면 긴 포지션이 열립니다. 가격이 상부 밴드 아래에 넘으면 트렌드를 따라 짧은 포지션이 열립니다. 또한 전략은 가격이 EMA 라인에 닿을 때 이익을 취할지 여부를 제어하기 위해 CloseOnEMATouch 매개 변수를 제공합니다.
핵심 논리는 세 가지 부분에 초점을 맞추고 있습니다.
EMA, ATR 변동성, 상부 및 하부 대역을 계산하는 것을 포함하여 Keltner 채널 지표를 구성합니다.
채널 밴드의 브레이크에 따라 엔트리 신호를 판단합니다. 가격이 하부 밴드를 넘어서면 길고 가격이 상부 밴드를 넘어서면 짧습니다.
CloseOnEMATouch 매개 변수를 입력하여 가격이 EMA 라인을 만지면 수익을 취할지 여부를 제어합니다.
이 세 가지 부분을 결합함으로써 채널 지표에 기반한 트렌드 트레이딩 전략이 구현됩니다.
전통적인 이동 스톱 손실 전략과 비교하면, 이 전략은 다음과 같은 주요 장점을 가지고 있습니다.
시장 추세와 일반적인 방향을 효과적으로 따라갈 수 있습니다.
비교적 긴 중장기 보유 기간은 너무 빈번한 거래를 피합니다.
변동성을 고려함으로써 비정상적인 시장 조건에 대한 필터링 효과가 있습니다.
스톱 로스를 통해 리스크 제어 메커니즘을 제공합니다.
따라서 이 전략은 시장 추세에 대한 정확한 판단을 가지고 높은 자본 활용을 추구하는 양적 거래자에게 매우 적합합니다.
이 전략의 장점에도 불구하고 실제 거래에서 몇 가지 주요 위험과도 직면합니다.
급격하고 폭력적인 트렌드 반전이 가장 큰 위험을 야기합니다. 이는 스톱 로스 포인트를 침투하여 엄청난 손실을 초래할 수 있습니다.
가격은 채널 내에서 변동하고 반복적으로 스톱 로스를 유발할 수 있습니다.
높은 거래 빈도는 거래 비용과 미끄러짐으로 인한 이익에 심각한 영향을 줄 수 있습니다.
이러한 위험을 통제하기 위해 우리는 채널 범위를 더 합리적으로 만들기 위해 매개 변수를 조정할 수 있습니다. 더 작은 가격 변동이있는 제품을 선택하거나 정지 손실 거리를 적절히 넓힐 수 있습니다. 그러나 가장 중요한 것은 시장에 대한 충분한 신중한 판단을 유지해야합니다.
잠재적인 위험을 고려하면 다음 측면에서 전략을 더 최적화 할 수 있습니다.
스톱 로스 방법의 다양성을 높입니다. 현재는 closeOnEMATouch 방법만 제공됩니다. 우리는 더 포괄적이고 다차원적인 위험 통제를 위해 더 많은 보조 스톱 로스 지표를 도입 할 수 있습니다.
매개 변수 설정을 최적화한다. 더 많은 자동화된 방법을 도입하여 매개 변수를 최적화하여 켈트너 채널 설정을 더 지능적이고 적응력을 갖출 수 있다.
포지션 사이즈 컨트롤을 추가합니다. 자본 관리 모듈을 도입함으로써, 우리는 마감 또는 시장 변동성에 따라 포지션을 동적으로 조정할 수 있습니다.
필터링 조건을 추가합니다. 잘못된 신호로 인한 불필요한 손실을 피하기 위해 입구 및 중지 손실 모두에 더 많은 보조 필터를 설정할 수 있습니다.
요약하면, 이것은 채널 지표에 기반한 전략에 따른 전형적인 중장기 트렌드입니다. 간단한 이동 스톱 손실 전략과 비교하면 변동성 요인을 통해 특정 위험 조정 기능을 제공하며 수익을 창출하기 위해 효과적으로 트렌드를 따라갈 수 있습니다. 그러나 라이브 거래에서 반전 및 오스실레이션의 위험은 여전히 주의해야 합니다. 매개 변수 최적화, 스톱 손실 방법을 확장하고 필터링 조건을 추가하면 전략을 더욱 개선하는 데 도움이 될 수 있습니다.
/*backtest start: 2022-11-21 00:00:00 end: 2023-11-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Keltner bounce from border. No repaint. (by Zelibobla)", shorttitle="Keltner border bounce", overlay=true) price = open // build Keltner keltnerLength = input(defval=20, minval=1, title="Keltner EMA Period Length") keltnerDeviation = input(defval=2, minval=1, maxval=5, title="Keltner band width (in ATRs)") closeOnEMATouch = input(type=bool, defval=false, title="Close trade on EMA touch? (less drawdown, but less profit and higher commissions impact)") EMA = sma(price, keltnerLength) ATR = atr(keltnerLength) top = EMA + ATR * keltnerDeviation bottom = EMA - ATR * keltnerDeviation buyEntry = crossover(price, bottom) sellEntry = crossunder(price, top) plot(EMA, color=aqua,title="EMA") p1 = plot(top, color=silver,title="Keltner top") p2 = plot(bottom, color=silver,title="Keltner bottom") fill(p1, p2) if ( crossover(price, bottom)) strategy.entry("BUY", strategy.long, stop=bottom, comment="BUY") if( crossover(price,EMA) and closeOnEMATouch ) strategy.close("BUY") if ( crossunder(price, top)) strategy.entry("SELL", strategy.short, stop=top, comment="SELL") if( crossunder(price, EMA) and closeOnEMATouch ) strategy.close("SELL")