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

CCI, DMI, MACD 하이브리드 장기 단기 전략

저자:차오장, 2024-04-28 13:52:16
태그:CCIDMIMACD

img

전반적인 설명

이 전략은 세 가지 기술 지표: 상품 채널 지표 (CCI), 방향 움직임 지표 (DMI), 이동 평균 컨버전스 디버전스 (MACD) 를 결합하여 시장의 과잉 구매 및 과잉 판매 조건을 결정하고 트렌드 방향을 결정합니다. CCI가 과잉 판매 영역을 넘으면 DI +가 DI -보다 크고 MACD가 신호 라인 위에있을 때 구매 신호가 생성됩니다. CCI가 과잉 구매 영역을 넘으면 DI -가 DI +보다 크고 MACD가 신호 라인 아래에있을 때 판매 신호가 생성됩니다.

전략 원칙

  1. CCI 지표를 계산하여 시장의 과잉 구매 및 과잉 판매 조건을 결정합니다. CCI가 과잉 판매 영역 (-100 이하) 을 넘으면 시장이 과잉 판매 영역에서 전환되고 상승할 수 있음을 나타냅니다. CCI가 과잉 구매 영역 (-100 이상) 을 넘으면 시장이 과잉 구매 영역에서 전환되고 감소 할 수 있음을 나타냅니다.
  2. 시장 트렌드의 방향을 결정하기 위해 DMI 지표를 계산합니다. DI+가 DI-보다 크면 상승 추세가 지배적임을 나타냅니다. DI-가 DI+보다 크면 하락 추세가 지배적임을 나타냅니다.
  3. 시장 트렌드의 강도를 결정하기 위해 MACD 지표를 계산하십시오. MACD가 신호 라인의 위에있을 때, 그것은 강한 상승 모멘텀을 나타냅니다. MACD가 신호 라인의 아래에있을 때, 그것은 강한 하락 모멘텀을 나타냅니다.
  4. 위의 세 가지 지표를 결합하면 CCI가 과잉판매 영역을 넘어서면 DI+는 DI-보다 크고 MACD는 신호선 위에 있으면 구매 신호가 생성됩니다. CCI가 과잉판매 영역을 넘어서면 DI-는 DI+보다 크고 MACD는 신호선을 넘어서면 판매 신호가 생성됩니다.

전략적 장점

  1. 여러 가지 기술 지표를 결합함으로써 시장은 다양한 관점에서 분석되며 신호의 신뢰성을 향상시킵니다.
  2. 그것은 시장의 과잉 구매 및 과잉 판매 조건, 트렌드 방향 및 트렌드 강도를 고려하여 시장의 주요 트렌드를 파악 할 수 있습니다.
  3. 명확한 입출구 조건이 정해져 자동화 거래를 쉽게 구현할 수 있습니다.

전략 위험

  1. 시장 변동이나 불분명한 추세에서 이 전략은 많은 잘못된 신호를 생성하여 빈번한 거래와 높은 거래 비용을 초래할 수 있습니다.
  2. 전략은 역사적인 데이터에 의존하고 갑작스러운 시장 사건이나 중요한 뉴스에 천천히 반응할 수 있습니다.
  3. 전략 매개 변수 (CCI의 과반 구매 및 과반 판매 기준, MACD의 빠르고 느린 라인 기간 등) 는 다른 시장과 도구에 최적화되어야 합니다. 그렇지 않으면 전략 성과에 영향을 줄 수 있습니다.

전략 최적화 방향

  1. 신호의 신뢰성 및 안정성을 향상시키기 위해 더 많은 기술 지표 또는 시장 정서 지표를 도입하십시오.
  2. 최적의 매개 변수 조합을 찾기 위해 유전 알고리즘과 같은 지능적인 최적화 방법을 사용하여 전략 매개 변수를 최적화하십시오.
  3. 전략의 위험/이익 비율을 향상시키기 위해 스톱 로스, 테이크 노프트, 포지션 관리와 같은 리스크 제어 모듈을 추가합니다.
  4. 전략의 적응력을 향상시키기 위해 다른 시장 환경에 대한 다른 거래 규칙을 설정하십시오.

요약

이 전략은 CCI, DMI, MACD의 세 가지 기술 지표를 결합하여 시장의 과잉 구매 및 과잉 판매 조건, 트렌드 방향 및 트렌드 강도에 대한 포괄적 인 판단을 통해 구매 및 판매 신호를 생성합니다. 전략은 명확하고 구현하기가 쉽습니다. 그러나 실제 응용에서는 전략 매개 변수를 최적화하고 전략의 안정성과 수익성을 향상시키기 위해 거래 빈도 및 위험을 제어하는 데주의를 기울여야합니다.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("CCI, DMI, and MACD Strategy", overlay=true)

// Define inputs
cci_length = input(14, title="CCI Length")
overbought_level = input(100, title="Overbought Level")
oversold_level = input(-100, title="Oversold Level")

// Calculate CCI
cci_value = ta.cci(close, cci_length)

// Calculate DMI
[di_plus, di_minus, _] = ta.dmi(14, 14)

// Calculate MACD
[macd_line, signal_line, _] = ta.macd(close, 24, 52, 9)

// Define buy and sell conditions
buy_signal = ta.crossover(cci_value, oversold_level) and di_plus > di_minus and macd_line > signal_line // CCI crosses above -100, Di+ > Di-, and MACD > Signal
sell_signal = ta.crossunder(cci_value, overbought_level) and di_minus > di_plus and macd_line < signal_line // CCI crosses below 100, Di- > Di+, and MACD < Signal

// Define exit conditions
buy_exit_signal = ta.crossover(cci_value, overbought_level) // CCI crosses above 100
sell_exit_signal = ta.crossunder(cci_value, oversold_level) // CCI crosses below -100

// Execute trades based on conditions
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.close("Buy", when=buy_exit_signal)

strategy.entry("Sell", strategy.short, when=sell_signal)
strategy.close("Sell", when=sell_exit_signal)

// Plot CCI
plot(cci_value, title="CCI", color=color.blue)

// Plot DMI
plot(di_plus, title="DI+", color=color.green)
plot(di_minus, title="DI-", color=color.red)

// Plot MACD and Signal lines
plot(macd_line, title="MACD", color=color.orange)
plot(signal_line, title="Signal", color=color.purple)

// Plot overbought and oversold levels
hline(overbought_level, "Overbought", color=color.red)
hline(oversold_level, "Oversold", color=color.green)


관련

더 많은