다중 지표 동적 적응 모멘텀 거래 전략

MACD VWMA
생성 날짜: 2024-09-26 16:25:35 마지막으로 수정됨: 2024-09-26 16:25:35
복사: 6 클릭수: 510
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 지표 동적 적응 모멘텀 거래 전략

개요

이 전략은 이동 평균의 수렴 분산 지표 ((MACD) 와 거래량 가중 이동 평균 ((VWMA) 를 결합하여 시장의 움직임을 포착한다. MACD 직선 그래프와 단기 VWMA 교차를 사용하여 입문 신호를 결정하고, 출구는 MACD 교차에 전적으로 의존한다. 이 전략은 주로 레버리지 된 파생 상품 시장을 위해 설계되어 있으며, 레버리지와 정밀도를 유연하게 조정하여 다양한 거래 환경에 적응한다.

전략 원칙

전략의 핵심 논리는 다음과 같은 핵심 구성 요소를 기반으로 합니다.

  1. MACD 지표: 표준 변수 ((12,26,9) 를 사용하여 MACD 라인, 신호 라인 및 직사각형 그래프를 계산한다.
  2. VWMA 지표: 각각 20주기 및 50주기 VWMA를 계산한다.
  3. 입장 조건:
    • 다중 머리: MACD 직사각형은 양수이고 20주기 VWMA는 50주기 VWMA보다 높다.
    • 빈 머리: MACD 직사각형은 음이고 20주기 VWMA는 50주기 VWMA보다 낮다.
  4. 출전 조건:
    • 다중 평점: MACD 라인 아래 신호선을 뚫었다.
    • 빈 머리 평상시: MACD 라인에서 신호선을 다.
  5. 포지션 관리: 계약 수를 레버리지 매개 변수를 통해 동적으로 조정하여 계좌의 권익을 효과적으로 활용할 수 있도록 한다.

전략은 트렌드 추적 ((VWMA) 와 운동 지표 ((MACD) 를 결합하여 입장의 정확성을 향상시키며, MACD 교차를 신속한 응답의 출구 신호로 사용하여 위험을 제어한다.

전략적 이점

  1. 다중 지표 연동: MACD와 VWMA를 결합하여 시장 움직임을 더 포괄적으로 포착하고 잘못된 신호를 줄일 수 있습니다.
  2. 유연한 레버리지 조정: 거래자는 위험 선호와 시장 조건에 따라 레버리지 비율을 조정하여 다른 거래 환경에 적응할 수 있습니다.
  3. 정밀한 포지션 제어: 정밀 파라미터를 통해 계약 수를 정밀하게 제어하여 자금 활용 효율을 최적화할 수 있다.
  4. 신속한 응답 출전 메커니즘: MACD 교차를 출전 신호로 사용하여 적시에 수익 또는 손실을 차단하는 데 도움이됩니다.
  5. 적응력: 전략 설계는 파생상품 시장의 특성을 고려하여 특히 변동성이 높은 시장 환경에 적합합니다.

전략적 위험

  1. 과도한 거래 위험: 불안정한 시장에서, 과도한 거래와 거래 비용을 증가시키는 잘못된 신호가 자주 발생할 수 있습니다.
  2. 리베이트 위험: 높은 리베이트는 손실을 확대할 수 있으며 신중하게 설정하고 정기적으로 평가해야 합니다.
  3. 트렌드 반전 위험: 강한 트렌드 반전 시 MACD 출전 신호가 상대적으로 지연되어 수익이 반전될 수 있다.
  4. 매개 변수 민감성: 전략 성능은 MACD 및 VWMA의 매개 변수 설정에 민감할 수 있으며, 충분한 역사 데이터 후검이 필요하다.
  5. 시장 특정 위험: 전략은 주로 파생상품 시장에 적용되며, 다른 시장에서는 조정할 필요가 있을 수 있다.

이러한 위험을 줄이기 위해, 다음과 같은 것이 권장됩니다: 1) 전체적인 변수 최적화 및 재검토; 2) 합리적인 중지 및 수익 목표를 설정; 3) 레버리지 수준을 정기적으로 평가하고 조정; 4) 가짜 신호를 줄이기 위해 추가 필터링 조건을 도입하는 것을 고려하십시오.

전략 최적화 방향

  1. 동적 변수 조정: 시장의 변동성에 따라 MACD와 VWMA의 변수를 조정하는 적응 메커니즘을 도입하는 것을 고려하십시오.
  2. 시장 환경 필터링을 증가 시키십시오: 변동률 지표 (ATR와 같은) 를 도입하여 낮은 변동성 환경에서 거래 빈도를 줄이십시오.
  3. 출전 메커니즘을 최적화: 다른 기술 지표와 결합하거나 트래킹 스로스를 사용하여 출전 시간을 개선하는 것을 고려하십시오.
  4. 기본 요소를 도입: 특정 시장에 대한 전략의 안정성을 강화하기 위해 관련 기본 지표를 통합하는 것을 고려할 수 있습니다.
  5. 다중 시간 프레임 분석: 더 장기적인 추세 판단과 함께 거래 방향의 정확성을 향상시킵니다.
  6. 리스크 관리 최적화: 동적인 포지션 사이징을 구현하고, 시장의 변동성과 계좌의 성과에 따라 거래 규모를 자동으로 조정한다.

이러한 최적화 방향은 전략의 적응성과 안정성을 높이고 동시에 잘못된 신호와 제어 위험을 줄이는 것을 목표로합니다. 전략은 계속 반복 및 개선을 통해 다양한 시장 환경에서 좋은 성능을 유지할 수 있습니다.

요약하다

“다중 지표 동적 적응형 동적 거래 전략”은 양적 거래에서 다중 지표 협동 및 동적 조정의 잠재력을 보여줍니다. MACD와 VWMA를 능숙하게 결합하여, 이 전략은 시장 동력을 포착하면서 비교적 신뢰할 수 있는 입시 및 출구 신호를 제공할 수 있습니다. 유연한 레버리지 및 정밀 설정은 파생 시장의 높은 변동 환경에 특히 적합합니다. 그러나 사용자는 레버리지로 인한 높은 수익 잠재력과 증가된 위험을 균형 잡는 데 주의를 기울여야합니다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
leverage = input.int(1, title='Leverage', minval=1, maxval=100, step=1)
commission_value_input = input.int(3, title='Commission Value %', minval=1, maxval=100, step=1)
precision = input.int(2,title='Precision')

strategy("MACD & VWMA Equal Basis", overlay=true)

commission_value =  (commission_value_input / 100) / leverage

leveragedContracts = math.max(math.round(strategy.equity * leverage  / close, precision), 0)

// MACD settings
[macdLine, signalLine, histogram] = ta.macd(close, 12, 26, 9)

// VWMA settings
vwma20 = ta.vwma(close, 20)
vwma50 = ta.vwma(close, 50)

// Plot VWMA on chart
plot(vwma20, color=color.green, title="VWMA 20")
plot(vwma50, color=color.orange, title="VWMA 50")

// MACD buy/sell signals
macdLongEntrySignal = histogram > 0
macdLongExitSignal = histogram < 0

macdShortEntrySignal = histogram < 0
macdShortExitSignal = histogram > 0

// VWMA conditions for long and short positions
vwmaLongEntrySignal = vwma20 > vwma50

vwmaShortEntrySignal = vwma20 < vwma50

// Combined long entry signal: MACD buy signal with VWMA conditions
longEntry = macdLongEntrySignal and vwmaLongEntrySignal
longExit = ta.crossunder(macdLine, signalLine)
 
// Combined short entry signal: MACD sell signal with VWMA conditions
shortEntry = macdShortEntrySignal and vwmaShortEntrySignal
shortExit = ta.crossover(macdLine, signalLine)

// Execute long and short orders based on the conditions
if (longEntry)
    strategy.entry("Long", strategy.long, qty = leveragedContracts)

if (longExit)
    strategy.close("Long")

if (shortEntry)
    strategy.entry("Short", strategy.short, qty = leveragedContracts)

if (shortExit)
    strategy.close("Short")