클래식 다이나믹 MACD 최적화 트레이딩 전략


생성 날짜: 2024-01-23 14:40:38 마지막으로 수정됨: 2024-01-23 14:40:38
복사: 2 클릭수: 798
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

클래식 다이나믹 MACD 최적화 트레이딩 전략

개요

이 전략은 고전적인 MACD 지표에 대한 여러 가지 최적화를 통해 더 정확한 신뢰할 수 있는 거래 신호 생성과 더 엄격한 위험 통제를 구현합니다. 주요 최적화 내용은 다음과 같습니다: 1 RSI 지표를 도입하여 과도한 매매를 피하십시오.

전략 원칙

기본 원칙은 여전히 MACD 지표의 빠른 느린 선전포크가 더하고, 사다리 포크가 빈이다. 주요 최적화는 다음과 같이 나타난다:

  1. RSI를 도입하여 시장이 과대평가되거나 과소평가되는 경우 가짜 신호를 방지합니다. RSI는 시장의 매매 압력을 효과적으로 반영합니다.

  2. 거래량 판단에 거래량이 증가할 경우에만 신호를 생성하여 무효의 돌파구를 피한다. 거래량이 증가하면 트렌드의 강도를 확인할 수 있다.

  3. 스톱로스 스톱 메커니즘을 설정하여 시장의 변동을 동적으로 추적하여 위험을 견딜 수 있는 범위 내에서 제어한다. 스톱로스는 단편 손실을 효과적으로 제어할 수 있으며, 스톱은 수익을 고정하여 수익 회귀를 방지할 수 있다.

  4. MACD 배열을 최적화하고, 속도와 신호 선의 파라미터를 조정하여 더 나은 배열을 얻으며 더 정확한 거래 신호를 생성합니다.

우위 분석

다중 최적화 MACD의 이 전략은 다음과 같은 중요한 장점을 가지고 있다:

  1. 가짜 신호의 발생을 줄이고, 신호의 신뢰성과 정확성이 크게 향상되었다.

  2. 엄격한 H&L 제약은 거래 위험을 통제하고 수익을 최대한 고정시킵니다.

  3. MACD의 매개 변수는 다양한 품종과 시기를 더 잘 맞추기 위해 최적화 조정되었다.

  4. 다중 지표 조합은 신호를 생성하고, 체계성이 강하며, 보다 광범위한 시장 환경에 적응한다.

  5. 전체적으로, 투자 효율성과 수익 위험 비율이 크게 향상되었습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 최적화 후의 매개 변수는 반드시 모든 품종과 주기에 100% 적합하지 않으며, 실제 상황에 따라 조정할 필요가 있다.

  2. 신호 발생 빈도가 낮아지고, 어느 정도의 누락의 위험이 있다.

  3. 극단적인 시장 상황에서는 여러 지표가 충돌 신호를 발산할 수 있으며, 이를 인력으로 판단해야 한다.

  4. 자동 중지 손실은 급격한 폭파의 경우 조기 중단될 수 있으며, 이윤에 약간의 위험을 초래한다.

대책은 주로 인공 감시 판단, 시장 상황에 따라 적절하게 파라미터를 조정하고 포지션 규모를 잘 제어한다.

최적화 방향

이 전략은 다음과 같은 부분에서 계속 개선될 수 있습니다.

  1. 브린띠, KD 등과 같은 더 많은 지표의 조합을 테스트하여 지표 그룹을 결정한다.

  2. 기계 학습 알고리즘을 적용하여 자동으로 매개 변수를 최적화하여 더 똑똑하게 만듭니다.

  3. 더 엄격한 자금 관리 전략에 참여하세요. 고정 지분, 켈리 공식 등과 같은 것 말이죠.

  4. 자동 정지 전략을 개발하고, 동향과 변동에 따라 정지점을 조정한다.

  5. 딥러닝과 같은 최첨단 알고리즘을 적용하여 더 정확한 예측을 수행합니다.

요약하다

이 전략은 원본 MACD 지표의 여러 가지 최적화를 통해 MACD가 가짜 신호를 발생시키고 위험 통제가 부족하다는 단점을 해결한다. 다중 지표 조합과 손해 차단의 사용은 신호를 더 정확하고 신뢰할 수 있고 위험 통제도 더 엄격하게 만든다. 이 전략은 추가 개발 및 적용 가치가 있으며 MACD 지표 개선의 모범이다.

전략 소스 코드
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("优化版MACD交易策略 ", overlay=true)

// 输入参数
fastLength = input(16, "快速线周期")
slowLength = input(34, "慢速线周期")
signalSmoothing = input(10, "信号线平滑")
rsiPeriod = input(19, "RSI周期")
overboughtRsi = 70
oversoldRsi = 30
volumeAvgPeriod = input(13, "成交量平均周期")
stopLossPerc = input.float(10.5, "止损百分比", step=0.1)
takeProfitPerc = input.float(0.3, "止盈百分比", step=0.1)

// 计算指标
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
rsi = ta.rsi(close, rsiPeriod)
volumeAvg = ta.sma(volume, volumeAvgPeriod)

// 交易信号
longCondition = ta.crossover(macdLine, signalLine) and macdLine > 0 and rsi < overboughtRsi and volume > volumeAvg
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine < 0 and rsi > oversoldRsi and volume > volumeAvg

// 止损和止盈
longStopLossPrice = close * (1 - stopLossPerc / 100)
longTakeProfitPrice = close * (1 + takeProfitPerc / 100)
shortStopLossPrice = close * (1 + stopLossPerc / 100)
shortTakeProfitPrice = close * (1 - takeProfitPerc / 100)

// 执行交易
if longCondition
    strategy.entry("买入", strategy.long)
    strategy.exit("买入止损止盈", "买入", stop=longStopLossPrice, limit=longTakeProfitPrice)

if shortCondition
    strategy.entry("卖出", strategy.short)
    strategy.exit("卖出止损止盈", "卖出", stop=shortStopLossPrice, limit=shortTakeProfitPrice)