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

리스크 제어와 함께 두 개의 이동 평균 역전 전략

저자:차오장, 날짜: 2024-07-29 16:47:54
태그:SMAATR

img

전반적인 설명

이 전략은 동적 위험 제어 메커니즘과 결합된 이중 이동 평균 크로스오버와 평균 반전 원리에 기반을 둔 거래 시스템이다. 이 전략은 빠른 및 느린 단순 이동 평균 (SMA) 의 교차를 활용하여 거래 신호를 생성하며, 평균 진정한 범위 (ATR) 지표를 사용하여 동적 스톱 로스를 설정하여 각 거래에 대한 정확한 위험을 제어 할 수 있습니다. 이 접근법은 시장 반전 중에 적시에 출출하면서 시장 추세를 파악하고 수익성과 위험을 균형있게하는 것을 목표로합니다.

전략 원칙

  1. 신호 생성:

    • 서로 다른 기간의 두 가지 간단한 이동 평균 (SMA) 을 사용합니다: 빠른 SMA (14 기간) 및 느린 SMA (100 기간).
    • 구매 신호는 가격이 느린 SMA를 넘을 때 발사됩니다.
    • 파는 신호는 가격이 빠른 SMA 밑을 넘을 때 발사됩니다.
  2. 위험 관리:

    • 동적 스톱 로스 레벨을 계산하기 위해 10기 ATR을 사용합니다.
    • 스톱 로스는 입시 가격에서 ATR을 배수하여 위험 비율로 설정됩니다.
  3. 거래 실행:

    • 구매 신호가 발생하면 시장 가격으로 긴 포지션을 열고 동적 스톱 로스를 설정합니다.
    • 판매 신호가 발생하면 모든 포지션을 닫습니다.
  4. 시각화:

    • 가격, 빠른 SMA, 그리고 차트에 느린 SMA를 그래프로 표시합니다.
    • 삼각형 마커를 사용하여 구매 및 판매 신호를 표시합니다.

전략적 장점

  1. 트렌드 다음과 평균 반전 조합: 이중 이동 평균 시스템을 사용하여 전략은 단기 가격 변동에 대응하면서 장기 트렌드를 포착하고, 트렌드 다음과 평균 반전을 균형 잡을 수 있습니다.

  2. 동적 리스크 제어: ATR 기반 동적 스톱 로스 사용은 스톱 레벨이 시장 변동성에 따라 자동으로 조정되어 보다 정확한 리스크 관리를 제공합니다.

  3. 단순하지만 효과적: 전략 논리는 명확하고 이해하기 쉽고 구현하기 쉬우며 다양한 시장 환경을 처리 할 수있는 충분한 복잡성을 포함합니다.

  4. 시각 지원: 차트에서 직관적으로 거래 신호와 이동 평균을 표시함으로써 거래자가 전략 성과를 더 잘 이해하고 평가하는 데 도움이됩니다.

  5. 조정 가능한 매개 변수: 사용자가 개인 위험 선호도와 시장 특성에 따라 이동 평균 기간 및 위험 비율과 같은 주요 매개 변수를 조정할 수 있습니다.

전략 위험

  1. 가짜 브레이크오웃 위험: 옆 시장에서 가격은 이동 평균을 자주 넘어서서 과도한 잘못된 신호와 불필요한 거래로 이어질 수 있습니다.

  2. 지연: 이동 평균을 사용하기 때문에 전략은 트렌드 전환점에 느리게 반응할 수 있으며, 이로 인해 비시간 입출출이 발생할 수 있습니다.

  3. 과잉 거래: 매우 변동적인 시장에서 너무 많은 거래 신호가 생성되어 거래 비용을 증가시킬 수 있습니다.

  4. 고정 리스크 비율의 제한: ATR는 스톱 로스를 동적으로 조정하는 데 사용되지만 고정 리스크 비율은 모든 시장 조건에 적합하지 않을 수 있습니다.

  5. 이윤 목표의 부족: 전략은 포지션 폐쇄에 대한 이동 평균 크로스오버에만 의존하며, 이는 강력한 트렌드에서 조기 종료로 이어질 수 있으며 더 많은 잠재적 인 이윤을 놓칠 수 있습니다.

전략 최적화 방향

  1. 트렌드 필터를 도입하십시오. 트렌드 신호를 필터링하기 위해 장기 트렌드 지표 (예를 들어 200 일 이동 평균) 를 추가하여 가짜 브레이크를 줄이기 위해 주요 트렌드 방향으로만 거래하십시오.

  2. 진입 시기를 최적화하십시오. 다른 기술 지표 (RSI 또는 MACD와 같이) 를 결합하여 진입 신호를 확인하여 거래 정확도를 향상시키는 것을 고려하십시오.

  3. 역동적으로 리스크 매개 변수를 조정: 시장 변동성 또는 다른 시장 상태 지표에 따라 리스크 비율을 역동적으로 조정하여 리스크 관리를 보다 유연하게 합니다.

  4. 이윤 목표를 추가하십시오: ATR 또는 고정 비율에 기반한 동적 이윤 목표를 설정하여 추세가 강한 경우 더 큰 이윤 마진을 허용합니다.

  5. 부분 포지션 폐쇄를 실행: 특정 수익 수준에 도달 할 때 부분 포지션 폐쇄를 실행하고 부분 수익을 차단하고 나머지 포지션이 수익을 계속 할 수있게합니다.

  6. 이동 평균 기간을 최적화: 특정 시장에 더 적합한 매개 변수 설정을 찾기 위해 이동 평균 기간의 다른 조합을 테스트하십시오.

  7. 부피 필터 추가: 신호 신뢰성을 향상시키기 위해 신호 생성 과정에 부피 지표를 통합하는 것을 고려하십시오.

결론

이중 이동 평균 리버션 전략은 트렌드 추종과 리스크 관리를 균형 잡는 거래 시스템이다. ATR 기반의 동적 스톱 로스 메커니즘과 결합하여 시장 방향을 파악하기 위해 빠르고 느린 이동 평균의 크로스오버를 활용함으로써 전략은 각 거래에 대한 정확한 리스크 통제를 달성합니다. 이 방법은 시장 역전 중에 적시에 출출하면서 시장 추세를 파악하여 수익성과 위험을 균형 잡는 도구를 제공하여 거래자에게 제공합니다.

그러나 이 전략은 가짜 브레이크아웃 위험, 신호 지연 및 잠재적 인 오버 트레이딩과 같은 몇 가지 한계도 있습니다. 트렌드 필터를 도입하고, 입시 시기를 최적화하고, 위험 매개 변수를 동적으로 조정하고, 기타 방법을 통해 최적화 할 수있는 상당한 공간이 있습니다. 미래의 개선은 신호 품질을 향상시키고, 위험 관리를 최적화하고, 수익 관리 메커니즘을 추가하는 데 초점을 맞출 수 있습니다.

전체적으로,이 전략은 양적 거래에 대한 탄탄한 기초 프레임워크를 제공하며, 좋은 확장성과 적응력을 갖추고 있습니다. 지속적인 최적화와 조정으로, 그것은 다양한 시장 환경과 거래 도구에 적합한 강력하고 신뢰할 수있는 거래 시스템으로 변할 잠재력을 가지고 있습니다.


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

//@version=5
strategy('TAMMY V2')

// Define the parameters
fast_len = input.int(14, minval=1, title='Fast SMA Length')
slow_len = input.int(100, minval=1, title='Slow SMA Length')
risk_per_trade = input.float(2.0, minval=0.1, maxval=10.0, step=0.1, title='Risk Per Trade (%)')

// Calculate the moving averages
fast_sma = ta.sma(close, fast_len)
slow_sma = ta.sma(close, slow_len)

// Generate the trading signals
buy_signal = ta.crossover(close, slow_sma)
sell_signal = ta.crossunder(close, fast_sma)

// Calculate the stop loss level
atr = ta.sma(ta.tr, 10)
sl = close - atr * (risk_per_trade / 100)

// Execute the trades
if buy_signal
    strategy.entry('Long', strategy.long, stop=sl)
if sell_signal
    strategy.close_all()

// Plot the signals and price
plot(close, color=color.new(#808080, 0), linewidth=2, title='Gold Price')
plot(fast_sma, color=color.new(#FF0000, 0), linewidth=2, title='Fast SMA')
plot(slow_sma, color=color.new(#0000FF, 0), linewidth=2, title='Slow SMA')
plotshape(buy_signal, style=shape.triangleup, color=color.new(#0000FF, 0), size=size.small, title='Buy Signal')
plotshape(sell_signal, style=shape.triangledown, color=color.new(#FF0000, 0), size=size.small, title='Sell Signal')



관련

더 많은