모멘텀 직사각형 채널 이중 이동 평균 거래 전략

저자:차오장, 날짜: 2024-02-27 14:54:07
태그:

img

전반적인 설명

이 전략은 비교적 완전한 주식 거래 시스템을 구현하는 직사각형 채널 및 이중 이동 평균의 모멘텀 지표에 기반합니다. 이 전략은 먼저 빠른 EMA와 느린 EMA를 사용하여 이중 이동 평균 거래 신호를 구성합니다. 그 다음 직사각형 채널 지표와 결합하여 더 정확한 입력을 달성하기 위해 거래 신호를 추가로 검증합니다. 또한 전략은 트렌드 방향을 판단하는 데 도움이되는 SAR 지표를 사용합니다.

전략 원칙

  1. 기간 5 일 빠른 EMA와 기간 50 일 느린 EMA의 이동 평균을 계산합니다. 빠른 EMA는 최근의 가격 변화를 반영하고 느린 EMA는 장기 트렌드를 반영합니다.

  2. EMA를 TEMA (Triple Exponential Moving Average) 로 변환하여, 곡선의 감수성을 향상시키고 가격 변화를 더 빨리 파악하기 위해 TEMA의 가중 계산 방법을 사용합니다.

  3. 빠른 TEMA가 느린 TEMA를 넘을 때 구매 신호가 생성되며 빠른 TEMA가 느린 TEMA를 넘을 때 판매 신호가 생성됩니다. 이중 이동 평균 크로스오버의 원리는 양적 거래에서 널리 사용됩니다.

  4. 채널 영역을 형성하기 위해 가격 채널 너비를 계산합니다. 거래 신호는 가격이 채널을 통과 할 때만 고려됩니다. 이것은 잘못된 신호를 필터하고 트렌드의 실제 시작을 확인할 수 있습니다.

  5. SAR 지표는 전체 트렌드 방향을 결정하고, 이중 이동 평균 거래 신호와 결합하여 불필요한 역작업을 피할 수 있습니다.

전략 의 장점

  1. 이중 이동 평균 크로스오버와 채널 돌파의 조합은 트렌드의 시작을 효과적으로 식별하고 소음을 필터하고 구매 및 판매 신호를 더 정확하고 신뢰할 수 있습니다.

  2. TEMA 곡선은 EMA 곡선보다 더 민감하며 가격 변화를 더 빨리 파악할 수 있습니다.

  3. 여러 지표의 조합은 하나의 지표의 한계를 피하고 전략을 더 포괄적이고 견고하게 만들기 위해 지표들 간의 검증 메커니즘을 형성할 수 있습니다.

  4. 전략 매개 변수는 유연하며, EMA 주기가, 채널 너비 등은 강력한 적응력을 위해 시장 조건에 따라 조정 및 최적화 될 수 있습니다.

전략 의 위험

  1. 단기간에 주식 가격의 격렬한 변동이 발생할 가능성이 있으며 이는 쉽게 스톱 로스를 유발할 수 있습니다.

  2. 갑작스러운 사건으로 인해 예상 가격에 거래할 수 없는 가격 격차가 발생할 수 있습니다.

  3. 이중 이동 평균 크로스오버는 잘못된 신호를 완전히 피할 수 없습니다. 여전히 어떤 잘못된 판단률이 있습니다.

  4. 부적절한 매개 변수 설정은 과도하게 빈번하거나 지연된 거래 신호로 이어질 수 있습니다.

최적화 방향

  1. KD와 MACD와 같은 더 많은 지표가 더 포괄적이고 신뢰할 수있는 전략을 만들기 위해 검증을 위해 결합 될 수 있습니다.

  2. 동적 주기는 시장 변동성 정도에 따라 EMA와 채널의 매개 변수를 조정하여 전략을 더 유연하게 설정할 수 있습니다.

  3. 기계 학습 모델은 많은 양의 역사적 데이터를 훈련하여 매개 변수 설정을 자동으로 최적화하고 수동 개입을 줄일 수 있습니다.

  4. 텍스트 분석과 뉴스 정서 판단은 주요 뉴스가 발표되면 불필요한 거래를 피하기 위해 결합 될 수 있습니다.

요약

이 전략은 빠른 느린 TEMA 이동 평균 크로스오버를 통해 거래 신호를 형성하고 가격 채널 및 SAR 지표로 확인하여 주식 가격 트렌드의 시작을 효과적으로 식별하고 합리적인 위치에서 구매 및 판매 작업을 수행 할 수 있습니다. 서로 확인하는 여러 지표의 조합은 신호의 신뢰성을 향상시킬 수 있으며 비교적 견고하고 효율적인 주식 거래 전략입니다. 매개 변수 설정을 지속적으로 최적화하고 새로운 확인 지표 등을 추가함으로써 전략의 효과를 더욱 향상시킬 수 있습니다.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TEMA_System_SAR", overlay=true)

//Collect inputs parameters

fastEmaPeriod = input(5, minval=1, title="Fast TEMA Period")
slowEmaPeriod = input(50, minval=1, title="Slow TEMA Periods")

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 4, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2010, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2000)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 09, 15)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 15, 30)        // backtest finish window
window()  => true

fastEma = ema(close, fastEmaPeriod)
slowEma = ema(close, slowEmaPeriod)

//convert EMA into TEMA

ema1 = ema(close, fastEmaPeriod)
ema2 = ema(ema1, fastEmaPeriod)
ema3 = ema(ema2, fastEmaPeriod)

fastTEMA = 3 * (ema1 - ema2) + ema3

// convert EMA into TEMA

ema4 = ema(close, fastEmaPeriod)
ema5 = ema(ema1, fastEmaPeriod)
ema6 = ema(ema2, fastEmaPeriod)

slowTEMA = 3 * (ema4 - ema5) + ema6

buy  = close > fastTEMA
sell = close < fastTEMA

plot(fastTEMA, title = 'fast TEMA', linewidth=2, color=white)
plot(slowTEMA, title = 'slow TEMA', linewidth=2, color=yellow)

strategy.entry("long",strategy.long, when = window() and buy)
strategy.entry("short", strategy.short, when = window() and sell)

더 많은