
이 전략은 고전적인 MACD 지표에 대한 여러 가지 최적화를 통해 더 정확한 신뢰할 수 있는 거래 신호 생성과 더 엄격한 위험 통제를 구현합니다. 주요 최적화 내용은 다음과 같습니다: 1 RSI 지표를 도입하여 과도한 매매를 피하십시오.
기본 원칙은 여전히 MACD 지표의 빠른 느린 선전포크가 더하고, 사다리 포크가 빈이다. 주요 최적화는 다음과 같이 나타난다:
RSI를 도입하여 시장이 과대평가되거나 과소평가되는 경우 가짜 신호를 방지합니다. RSI는 시장의 매매 압력을 효과적으로 반영합니다.
거래량 판단에 거래량이 증가할 경우에만 신호를 생성하여 무효의 돌파구를 피한다. 거래량이 증가하면 트렌드의 강도를 확인할 수 있다.
스톱로스 스톱 메커니즘을 설정하여 시장의 변동을 동적으로 추적하여 위험을 견딜 수 있는 범위 내에서 제어한다. 스톱로스는 단편 손실을 효과적으로 제어할 수 있으며, 스톱은 수익을 고정하여 수익 회귀를 방지할 수 있다.
MACD 배열을 최적화하고, 속도와 신호 선의 파라미터를 조정하여 더 나은 배열을 얻으며 더 정확한 거래 신호를 생성합니다.
다중 최적화 MACD의 이 전략은 다음과 같은 중요한 장점을 가지고 있다:
가짜 신호의 발생을 줄이고, 신호의 신뢰성과 정확성이 크게 향상되었다.
엄격한 H&L 제약은 거래 위험을 통제하고 수익을 최대한 고정시킵니다.
MACD의 매개 변수는 다양한 품종과 시기를 더 잘 맞추기 위해 최적화 조정되었다.
다중 지표 조합은 신호를 생성하고, 체계성이 강하며, 보다 광범위한 시장 환경에 적응한다.
전체적으로, 투자 효율성과 수익 위험 비율이 크게 향상되었습니다.
이 전략에는 몇 가지 위험도 있습니다.
최적화 후의 매개 변수는 반드시 모든 품종과 주기에 100% 적합하지 않으며, 실제 상황에 따라 조정할 필요가 있다.
신호 발생 빈도가 낮아지고, 어느 정도의 누락의 위험이 있다.
극단적인 시장 상황에서는 여러 지표가 충돌 신호를 발산할 수 있으며, 이를 인력으로 판단해야 한다.
자동 중지 손실은 급격한 폭파의 경우 조기 중단될 수 있으며, 이윤에 약간의 위험을 초래한다.
대책은 주로 인공 감시 판단, 시장 상황에 따라 적절하게 파라미터를 조정하고 포지션 규모를 잘 제어한다.
이 전략은 다음과 같은 부분에서 계속 개선될 수 있습니다.
브린띠, KD 등과 같은 더 많은 지표의 조합을 테스트하여 지표 그룹을 결정한다.
기계 학습 알고리즘을 적용하여 자동으로 매개 변수를 최적화하여 더 똑똑하게 만듭니다.
더 엄격한 자금 관리 전략에 참여하세요. 고정 지분, 켈리 공식 등과 같은 것 말이죠.
자동 정지 전략을 개발하고, 동향과 변동에 따라 정지점을 조정한다.
딥러닝과 같은 최첨단 알고리즘을 적용하여 더 정확한 예측을 수행합니다.
이 전략은 원본 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)