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

이중 이동 평균 추진력 추적 양적 전략

저자:차오장, 날짜: 2024-11-27 15:06:57
태그:MASMAEMASMMARMAWMAVWMA

img

전반적인 설명

이 전략은 이중 이동 평균 크로스오버 신호를 기반으로 하는 양적 거래 전략이다. 이 전략은 두 개의 이동 평균을 사용하며, 하나는 주요 신호 라인이고 다른 하나는 평형 신호 라인이다. 이 전략은 평형 신호 라인과 가격 크로스오버를 모니터링하여 거래 신호를 생성하여 시장 트렌드 캡처 및 추진력 추적을 가능하게 한다. 이 전략의 핵심 강점은 간단하면서도 효과적인 신호 생성 메커니즘과 유연한 매개 변수 구성 옵션에 있다.

전략 원칙

이 전략은 두 가지 수준의 이동 평균 계산을 이용한다. 먼저 기본 이동 평균 (9의 기본 기간) 을 계산하고, 그 다음으로 2차 평형화 과정 (지름값 5의 기본 기간) 을 수행한다. 이 전략은 간단한 이동 평균 (SMA), 기하급수적인 이동 평균 (EMA), 평형 이동 평균 (SMMA), 가중된 이동 평균 (WMA), 부피 가중된 이동 평균 (VWMA) 을 포함한 다양한 이동 평균 계산 방법을 제공합니다. 닫기 가격이 평형 신호 라인 위에 넘어가면 긴 신호가 생성되며, 닫기 가격이 그 아래에 넘어가면 짧은 신호가 생성된다.

전략적 장점

  1. 명확하고 간단한 신호 생성 메커니즘, 이해하기 쉽고 실행하기 쉽습니다.
  2. 2차 평평화로 잘못된 신호를 효과적으로 줄이십시오.
  3. 다양한 시장 특성에 사용할 수 있는 여러 이동 평균 계산 방법
  4. 다양한 시장 주기에 대한 유연한 매개 변수 구성
  5. 명확한 코드 구조, 유지 및 확장하기 쉬운
  6. 강력한 트렌드 추적 능력

전략 위험

  1. 변동 시장에서 거래 신호를 자주 생성하여 거래 비용을 증가시킬 수 있습니다.
  2. 일부 고유의 지연, 잠재적으로 시장 움직임의 시작을 놓치고
  3. 급격한 시장 변동에 따라 유의미한 마감이 발생할 수 있습니다.
  4. 단일 기술 지표 전략, 시장 환경 평가 부족
  5. 과도한 매개 변수 최적화로 인한 과도한 적합성 위험

전략 최적화 방향

  1. 다른 매개 변수 구성에 대한 시장 환경 평가 메커니즘을 도입
  2. 리스크 통제를 위한 스톱 로스 및 영리 메커니즘 추가
  3. 유동성이 낮은 환경에서 거래를 피하기 위해 볼륨 필터를 구현하십시오.
  4. 확인 신호로 추가 기술 지표를 포함
  5. 동적 시장 조정에 대한 적응적 매개 변수 메커니즘 개발
  6. 더 유연한 위치 제어를 위해 위치 관리 모듈을 추가

요약

이 전략은 두층 이동 평균 디자인을 통해 단순성을 유지하면서 안정성을 향상시키는 고전 트렌드 추적 전략의 개선된 버전입니다. 이 전략은 매개 변수 최적화 및 기능 확장을 통해 다른 시장 환경에 적응 할 수있는 좋은 확장성과 유연성을 제공합니다. 그러나 사용자는 거래 비용 통제 및 리스크 관리에주의를 기울여야하며 라이브 거래 전에 철저한 백테스팅을 수행하는 것이 좋습니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Moving Average 1.0 Strategy", overlay=true)

// Input for Moving Average Length
len = input.int(9, minval=1, title="Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)

// Calculate the Moving Average
out = ta.sma(src, len)

// Plot the Moving Average
plot(out, color=color.blue, title="MA", offset=offset)

// Function to choose the type of moving average
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

// Input for Smoothing Method and Length
typeMA = input.string(title="Method", defval="SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title="Smoothing Length", defval=5, minval=1, maxval=100, group="Smoothing")

// Calculate the Smoothing Line
smoothingLine = ma(out, smoothingLength, typeMA)

// Plot the Smoothing Line
plot(smoothingLine, title="Smoothing Line", color=color.rgb(120, 66, 134, 35), offset=offset)

// Strategy Logic
if (ta.crossover(close, smoothingLine))
    strategy.entry("Buy", strategy.long)

if (ta.crossunder(close, smoothingLine))
    strategy.entry("Sell", strategy.short)





관련

더 많은