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

듀얼 트랙 오시레이터 패턴 전략

저자:차오장날짜: 2023-11-14 14:12:16
태그:

img

전반적인 설명

듀얼 트랙 오시레이터 패턴 전략은 볼링거 밴드 및 EMA 지표를 기반으로 한 양적 거래 전략입니다. 볼링거 밴드 및 EMA를 기반으로 한 오시레이터 패턴을 식별함으로써 단기 가격 변동을 파악하려고 시도합니다.

전략 논리

이 전략은 기술 지표로 볼링거 밴드 (Bollinger Band) 와 EMA를 모두 사용합니다. 볼링거 밴드는 가격이 변동하는지 판단하기 위해 상부, 중부 및 하부 밴드를 포함합니다. EMA는 가격 추세를 결정하는 트렌드 다음 지표입니다.

먼저 볼링거 밴드의 중간 대역은 n일 간 간편 이동 평균으로 계산되며, n가 20일까지 기본 설정됩니다. 상위 및 하위 대역은 중간 대역 더하기 / 빼기 두 표준 편차입니다. 그 다음 9일 EMA가 계산됩니다.

가격이 EMA를 넘을 때, 그것은 구매 신호입니다. 가격이 EMA를 넘을 때, 그것은 판매 신호입니다. 따라서 EMA는 빠른 이동 평균으로 단기 트렌드를 포착하고, 중간 밴드는 느린 이동 평균으로 일부 잘못된 신호를 필터합니다.

이 전략은 EMA와 볼링거 밴드의 이중 대역을 추적함으로써 단기 가격 변동을 파악하는 것을 목표로합니다. EMA가 중간선을 넘을 때 구매하고, EMA가 중간선을 넘을 때 판매합니다.

이점 분석

이중 전략은 다음과 같은 장점을 가지고 있습니다.

  1. EMA와 볼링거 밴드 중선 이중 트랙을 사용하여 트렌드와 오스실레이션을 판단하고 단기 가격 변동을 더 정확하게 파악할 수 있습니다.

  2. EMA는 빠른 MA와 중간 대역은 느린 MA로 함께 작동하여 잘못된 신호를 효과적으로 필터하고 신호 품질을 향상시킵니다.

  3. 지표 매개 변수는 조정 가능합니다. n 값과 볼링거 밴드 표준편차는 더 나은 적응력을 위해 시장 조건에 따라 조정 할 수 있습니다.

  4. 전략 논리는 간단하고 명확하며, 단기 오스실레이션 시장에 매우 적합합니다.

  5. 매개 변수를 조정하고 안정성을 더 향상시키기 위해 다른 필터를 통합하여 최적화 할 수 있습니다.

위험 분석

이 전략은 또한 몇 가지 잠재적인 위험을 가지고 있습니다.

  1. 볼링거 밴드 상단과 하단 밴드는 쉽게 지지와 저항을 형성할 수 있고, 조기 스톱 로스를 유발할 수 있습니다.

  2. EMA와 중간 밴드 사이에 교차가 발생할 수 있으며 잘못된 신호를 생성합니다.

  3. 강한 트렌드 시장에서 EMA는 트렌드를 놓치면서 W 바닥과 M 정상을 형성할 수 있습니다.

  4. 거래 신호는 수익성을 유지할 수 없게 변동이 약해지면 크게 줄어들 것입니다.

  5. 부적절한 매개 변수 조정으로 인해 오버 트레이딩 또는 기회를 놓칠 수 있습니다.

  6. 거래비용은 실제 수익을 침식시키고, 포지션 사이징은 통제가 필요합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 낮은 품질의 크로스오버 신호를 필터하기 위해 볼륨을 추가합니다.

  2. RSI를 결합하여 과잉 구매/ 과잉 판매 수준에서 구매/ 판매를 피합니다.

  3. ATR을 사용하여 더 합리적인 스톱 로스를 설정하고 수익을 취합니다.

  4. 트렌드 판단을 추가하여 트렌드 시장에서 잘못된 신호를 피합니다.

  5. 다양한 시장 환경에 맞게 EMA 기간과 볼링거 밴드 설정과 같은 매개 변수를 최적화하십시오.

  6. 기계 학습을 사용하여 안정성을 위한 매개 변수를 동적으로 최적화합니다.

  7. 인간의 간섭을 최소화하기 위해 엄격한 출입과 출입 규칙으로 알고리즘 거래를 채택하십시오.

요약

이중 트랙 오시일레이터 패턴 전략은 EMA와 볼링거 밴드 중간 라인의 이중 대역을 사용하여 가격을 추적합니다. EMA가 중간 대역 위에 넘어가면 구매하고 EMA가 중간 대역 아래에 넘어가면 판매하여 단기 가격 변동을 포착합니다. 이 간단한 단기 전략은 잘못된 신호를 필터하고 트렌드를 판단하는 장점이 있지만 약간의 위험이 있습니다. 매개 변수, 입출 규칙 등을 지속적으로 최적화함으로써 더 견고하고 더 많은 시장 환경에 적용 할 수 있습니다.


/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle="BBXEMA", title="Bollinger Bands Cross EMA", default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=true)
length = input(20, minval=1)
lengthEMA = input(9)
src = input(close, title="Source")
srcEMA = input(close, title="Source EMA")
//mult = input(2.0, minval=0.001, maxval=50)

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

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true
basis = sma(src, length)
EMA = ema(srcEMA,lengthEMA)
//dev = mult * stdev(src, length)
//upper = basis + dev
//lower = basis - dev

Buy = crossover(EMA,basis)
Sell = crossunder(EMA,basis)

bb = plot(basis, color=color.red)
signal = plot(EMA, color=color.green)
//p1 = plot(upper, color=color.blue)
//p2 = plot(lower, color=color.blue)
//fill(p1, p2)

strategy.entry("Buy",true,when=window() and Buy)
strategy.close_all(when=window() and Sell)

더 많은