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

리스크 관리 시스템과 함께 두 개의 이동 평균 채널 전략을 따르는 동적 경향

저자:차오장, 날짜: 2025-01-10 16:26:56
태그:SMAMAC

 Dynamic Trend Following Dual Moving Average Channel Strategy with Risk Management System

전반적인 설명

이 전략은 이중 이동 평균 채널을 기반으로 한 동적 트렌드 다음 시스템이며, 위험 관리 메커니즘과 결합됩니다. 상위 대역이 높은 가격과 하위 대역이 낮은 가격을 사용하여 계산되는 두 가지 간단한 이동 평균 (SMA) 을 사용하여 거래 채널을 구성합니다. 시스템은 폐쇄 가격이 5 개의 연속 바에서 상위 대역 위에 남아있을 때 입구 신호를 생성하고, 가격이 5 개의 연속 바에서 하위 대역 아래에 떨어지거나 가장 높은 지점에서 25% 회귀 할 때 출구 신호를 생성하여 동적 트렌드 추적 및 위험 통제를 달성합니다.

전략 원칙

핵심 원칙은 두 개의 이동 평균 채널을 통해 가격 동향을 포착하고 엄격한 입출시장치를 설정하는 것을 포함합니다. 1. 진입 메커니즘: 트렌드 연속성과 유효성을 보장하기 위해 5 일 연속으로 상위 밴드 위에 가격을 유지해야합니다. 2. 출구 메커니즘: 두 단계로 작동 합니다. - 트렌드 오차 출구: 5 일 연속으로 가격이 하위 범위를 넘어지면 트렌드 역전 가능성을 나타냅니다. - 스톱 로스 출구: 가격이 가장 높은 지점에서 25%로 다시 움직일 때 활성화되어 과도한 손실을 방지합니다. 포지션 관리: 포지션 크기를 결정하기 위해 계좌 자금의 일정한 비율을 사용하여 효과적인 자본 할당을 보장합니다.

전략적 장점

  1. 트렌드 다음 안정성: 확인 5 일 연속으로 요구 함으로써 가짜 브레이크를 필터
  2. 포괄적 리스크 제어: 트렌드 오차와 스톱 로스 메커니즘을 결합하여 이중 보호
  3. 유연한 매개 변수: 이동 평균 기간과 스톱 로스 비율은 다른 시장 특성에 최적화 될 수 있습니다.
  4. 명확한 실행 논리: 최종 입력 및 출구 조건은 주관적 판단 간섭을 줄입니다.
  5. 과학 자본 관리: 더 나은 위험 통제를 위해 고정 롯이 아닌 계정 비율 위치를 사용합니다.

전략 위험

  1. 부진 시장 위험: 부진 시장에서 잘못된 신호로 인해 거래가 빈번해집니다.
  2. 슬리퍼 리스크: 스톱 로스 실행 가격은 빠른 시장에서 기대에서 크게 벗어날 수 있습니다.
  3. 매개 변수 의존성: 최적 매개 변수는 다른 시장 환경에서 크게 다를 수 있습니다.
  4. 트렌드 지연: 이동 평균은 트렌드 반전 시점에 약간의 지연을 가져옵니다.
  5. 자본 효율성: 엄격한 보유 조건은 수익 기회를 놓칠 수 있습니다.

최적화 방향

  1. 동적 매개 변수 최적화: 시장 변동성에 따라 이동 평균 기간을 자동으로 조정하는 적응적 매개 변수 시스템을 개발
  2. 시장 환경 필터링: 트렌드 강도 지표를 추가하여 불안정한 시장에서 거래 빈도를 자동으로 줄입니다.
  3. 다중 시간 프레임 확인: 신호 신뢰성을 향상시키기 위해 더 긴 시간 프레임 트렌드 확인 메커니즘을 통합합니다.
  4. 스톱 로스 최적화: 변동성에 따라 자동으로 조정되는 동적 스톱 로스 메커니즘을 도입
  5. 포지션 관리 최적화: 변동성 및 위험/이익 비율에 기초한 포지션 크기를 동적으로 조정

요약

이 전략은 두 개의 이동 평균 채널을 통해 트렌드를 따르는 완전한 거래 시스템을 구축하고, 효과적인 트렌드 추적 및 리스크 통제를 달성하기 위해 엄격한 엔트리 확인과 두 가지 출구 메커니즘을 결합합니다. 이 전략의 강점은 명확한 실행 논리와 포괄적인 리스크 제어에 있습니다.


/*backtest
start: 2025-01-02 00:00:00
end: 2025-01-09 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy("Moving Average Channel (MAC)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Parameters for Moving Averages
upperMALength = input.int(10, title="Upper MA Length")
lowerMALength = input.int(8, title="Lower MA Length")
stopLossPercent = input.float(25.0, title="Stop Loss (%)", minval=0.1) / 100

// Calculate Moving Averages
upperMA = ta.sma(high, upperMALength)
lowerMA = ta.sma(low, lowerMALength)

// Plot Moving Averages
plot(upperMA, color=color.red, title="Upper Moving Average")
plot(lowerMA, color=color.green, title="Lower Moving Average")

// Initialize variables
var int upperCounter = 0
var int lowerCounter = 0
var float entryPrice = na
var float highestPrice = na

// Update counters based on conditions
if (low <= upperMA)
    upperCounter := 0
else
    upperCounter += 1

if (high >= lowerMA)
    lowerCounter := 0
else
    lowerCounter += 1

// Entry condition: 5 consecutive bars above the Upper MA
if (upperCounter == 5 and strategy.position_size == 0)
    strategy.entry("Long", strategy.long)
    highestPrice := high  // Initialize highest price

// Update the highest price after entry
if (strategy.position_size > 0)
    highestPrice := na(highestPrice) ? high : math.max(highestPrice, high)

// Exit condition: 5 consecutive bars below the Lower MA
if (lowerCounter == 5 and strategy.position_size > 0)
    strategy.close("Long", comment="Exit: 5 bars below Lower MA")

// Stop-loss condition: Exit if market closes below 25% of the highest price since entry
stopLossCondition = low < highestPrice * (1 - stopLossPercent)
if (stopLossCondition and strategy.position_size > 0)
    strategy.close("Long", comment="Exit: Stop Loss")


관련

더 많은