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

모멘텀 오시레이터 기반의 전략을 따르는 적응 트렌드

저자:차오장, 날짜: 2024-11-27 15:03:00
태그:

img

이 전략은 데 모멘텀 오시레이터 (CMO) 를 기반으로 한 트렌드-추천 거래 시스템이다. 이는 과잉 매매 지역에서 구매 기회를 찾고 과잉 매매 지역에서 판매 기회를 추구하며, 리스크 관리에 대한 포지션 보유 시간 제한을 포함합니다. 이 접근 방식은 다양한 시장에서 빈번한 거래를 피하면서 가격 반전을 포착 할 수 있습니다.

전략 원칙

이 전략의 핵심은 시장 동력을 측정하기 위해 CMO 지표를 사용합니다. CMO는 상향 및 하향 움직임의 합에 대한 차이의 비율을 계산하여 -100에서 100까지의 오시일레이터를 생성합니다. CMO가 -50 이하로 떨어지면 시스템이 긴 신호를 생성하여 과판 시장 상태를 나타냅니다. CMO가 50를 초과하거나 보유 기간이 5 주기를 초과하면 포지션은 종료됩니다. 이 디자인은 적절한 수익 취득 및 중지 손실 조치를 실행하면서 가격 리바운드 기회를 포착합니다.

전략적 장점

  1. 명확한 신호: 고정된 CMO 문턱 (-50 및 50) 을 거래 신호로 사용하며 명확한 입출장 규칙을 제공합니다.
  2. 리스크 제어: 수익성이 없는 포지션을 유지하지 않도록 포지션 보유 시간 제한을 구현합니다.
  3. 트렌드 추적: 과잉 판매 상태에서 진입하고 동력이 약화되면 종료하여 시장 트렌드를 효과적으로 추적합니다.
  4. 간단한 계산: CMO 지표 계산은 직관적이고 이해하기 쉽고 구현하기 쉽습니다.
  5. 적응력: 전략 매개 변수들은 다른 시장 조건에 맞게 조정될 수 있어 적응력이 좋다.

전략 위험

  1. 가짜 브레이크 위험: 다양한 시장에서 빈번한 잘못된 신호가 발생할 수 있습니다.
  2. 슬리핑 효과: 실제 실행 가격은 빠른 시장에서 신호 가격과 크게 다를 수 있습니다.
  3. 매개 변수 민감성: 전략 성과는 CMO 기간과 임계 선택에 크게 의존합니다.
  4. 시장 조건 의존성: 명확한 동향이 없는 시장에서 실적이 떨어질 수 있습니다.
  5. 지연 위험: 지연된 지표로서의 CMO는 입출 시기가 약간 지연될 수 있습니다.

전략 최적화 방향

  1. 동적 한계: 시장의 변동성에 기초하여 CMO 진입 및 출입 한계값의 동적 조정을 시행합니다.
  2. 여러 시간 프레임: 신호 신뢰성을 향상시키기 위해 여러 시간 프레임에서 CMO 지표를 도입하십시오.
  3. 스톱 로스 최적화: 더 나은 이익 보호를 위해 후속 스톱 로스 기능을 추가합니다.
  4. 위치 관리: 더 정교한 위치 제어를 위해 CMO 강도에 따라 위치 크기를 조정합니다.
  5. 시장 필터링: 트렌드 필터를 추가하여 명확하게 트렌드되는 시장에서만 거래합니다.

요약

이 추진력에 기반한 트렌드 다음 전략은 CMO 지표를 사용하여 시장 과잉 구매 및 과잉 판매 기회를 포착합니다. 전략 설계는 명확한 거래 규칙과 위험 통제 메커니즘으로 합리적입니다. 본질적인 위험이 있지만 최적화는 전략 안정성과 수익성을 더욱 향상시킬 수 있습니다. 전략은 특히 매우 변동적인 시장에 적합하며 명확한 트렌드 단계에서 좋은 수익을 얻을 수 있습니다.


/*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("Chande Momentum Oscillator Strategy", overlay=false)

// Input for the CMO period
cmoPeriod = input.int(9, minval=1, title="CMO Period")

// Calculate price changes
priceChange = ta.change(close)

// Separate positive and negative changes
up = priceChange > 0 ? priceChange : 0
down = priceChange < 0 ? -priceChange : 0

// Calculate the sum of ups and downs using a rolling window
sumUp = ta.sma(up, cmoPeriod) * cmoPeriod
sumDown = ta.sma(down, cmoPeriod) * cmoPeriod

// Calculate the Chande Momentum Oscillator (CMO)
cmo = 100 * (sumUp - sumDown) / (sumUp + sumDown)

// Define the entry and exit conditions
buyCondition = cmo < -50
sellCondition1 = cmo > 50
sellCondition2 = ta.barssince(buyCondition) >= 5

// Track if we are in a long position
var bool inTrade = false

if (buyCondition and not inTrade)
    strategy.entry("Long", strategy.long)
    inTrade := true

if (sellCondition1 or sellCondition2)
    strategy.close("Long")
    inTrade := false

// Plot the Chande Momentum Oscillator
plot(cmo, title="Chande Momentum Oscillator", color=color.blue)
hline(-50, "Buy Threshold", color=color.green)
hline(50, "Sell Threshold", color=color.red)


더 많은