리소스 로딩... 로딩...

켈트너 채널 EMA ATR 전략

저자:차오장, 날짜: 2024-06-03 10:39:20
태그:EMAATR

img

전반적인 설명

이 전략은 Keltner Channels 지표에 기반하고 있으며, 기하급수적인 이동 평균 (EMA) 과 평균적 진역 (ATR) 을 사용하여 상위 및 하위 채널을 구성합니다. 가격이 하위 채널 아래로 넘어갈 때, 그것은 긴 위치에 들어가고, 가격이 상위 채널 위에 넘어갈 때, 그것은 위치를 닫습니다. 이 전략은 가격 변동성 범위를 캡처하고 가격이 상위 채널 위에 넘어갈 때 이익을 취하려고합니다.

전략 원칙

  1. 특정 기간의 EMA를 켈트너 채널의 중간선으로 계산합니다.
  2. 정해진 기간의 ATR를 계산하고, 그 다음 상위와 하위 채널로 작용하기 위해 인수로 곱합니다.
  3. 닫기 가격이 하단 채널 아래로 떨어지면 긴 포지션을 입력하고 입상 가격을 기록합니다.
  4. 오픈 가격이 상단 채널을 넘어서면 포지션을 닫습니다.
  5. 이미 포지션에 있고 오픈 가격이 상단 채널보다 높다면, 긴 포지션을 닫습니다.

전략적 장점

  1. 가격 변동성에 적응력. 켈트너 채널은 ATR을 사용하여 상위 및 하위 채널을 구성하고 ATR은 가격 변동성을 측정하기 때문에 변동성이 높을 때 채널 폭이 그에 따라 증가하여 빈번한 거래 비용을 효과적으로 줄일 수 있습니다.
  2. 명확한 논리, 단순성, 이해하기 쉽고 구현하기 쉽습니다. 이 전략에서 사용되는 지표는 간단하며 핵심 논리는 상대적으로 이해하기 쉽습니다.
  3. 특정 트렌드를 따르는 능력. 상승 추세에서 이 전략은 가격이 상위 채널을 넘기기 전까지 긴 포지션을 유지할 수 있습니다.

전략 위험

  1. 명시적인 스톱-러스 메커니즘이 없습니다. 이 전략은 입상 후 스톱-러스를 설정하지 않습니다. 이는 불리한 시장 조건에서 큰 인하로 이어질 수 있습니다.
  2. 브레이크아웃 신호의 대략적인 정의: 엔트리 및 엑시트 신호로 하위 채널 아래로 떨어지는 종료 가격과 상위 채널 위에 떨어지는 오픈 가격만을 사용하는 경우 일부 잘못된 판단이 발생할 수 있으며 손실 트레이드를 초래할 수 있습니다.
  3. 전략 매개 변수 선택은 결과에 상당한 영향을 미칩니다. EMA와 ATR 기간 선택과 ATR 복수의 설정은 전략 성능에 영향을 미치지만 전략은 명확한 매개 변수 최적화 방법을 제공하지 않습니다.

전략 최적화 방향

  1. 명시적인 스톱 로스 메커니즘을 도입합니다. 단일 거래의 최대 손실을 제어하기 위해 포지션을 입력 할 때 고정된 포인트 또는 비율로 스톱 로스를 설정하는 것을 고려하십시오.
  2. 신호의 판단 조건을 최적화하십시오. 잘못된 브레이크오프를 피하기 위해 포지션에 들어가기 전에 몇 개의 촛불을 연속으로 닫는 가격이 하위 채널보다 낮을 것을 요구하는 것과 같은 브레이크오프를 확인하기 위해 더 많은 가격 정보를 사용하는 것을 고려하십시오.
  3. 매개 변수 최적화를 수행합니다. 현재 시장에 더 적합한 매개 변수 조합을 찾기 위해 EMA와 ATR의 기간과 ATR 복수의 최적화를 위해 유전자 알고리즘과 같은 방법을 사용합니다.
  4. 필터링 조건을 추가하십시오. ADX가 특정 임계 이상일 때만 포지션을 입력하거나 MA 상승 크로스오버를 트렌드 필터로 사용하는 것과 같은 일부 필터링 신호를 추가하는 것을 고려하십시오.

요약

이 전략은 켈트너 채널 지표에 기반하여 채널 위 또는 아래의 가격 파기 논리에 기반하여 거래를 수행합니다. 이의 장점은 간단하고 명확한 논리와 강력한 적응력입니다. 단점은 스톱 손실이 부족하고 신호 품질이 좋지 않습니다. 미래에 전략은 스톱 손실을 도입하고 신호를 최적화하고 매개 변수 최적화 및 필터링 조건을 추가하여 개선 할 수 있습니다.


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


관련

더 많은