이 전략은 가격의 트렌드 방향을 결정하고 크로스오버 신호를 기반으로 거래 결정을 내리기 위해 10 일 간 간단한 이동 평균 (10SMA) 및 이동 평균 컨버전스 디버전스 (MACD) 라는 두 가지 기술 지표를 사용합니다. 가격이 10SMA를 넘고 MACD 빠른 라인이 느린 라인을 넘을 때 긴 신호가 생성됩니다. 가격이 10SMA를 넘고 MACD 빠른 라인이 느린 라인을 넘을 때 긴 포지션은 폐쇄됩니다. 전략은 두 가지 지표의 확인을 통해 신호의 신뢰성을 향상시키는 동시에 시장의 트렌딩 기회를 포착하는 것을 목표로합니다.
이 전략의 핵심은 가격과 10SMA 사이의 관계, 그리고 MACD 빠른 라인과 느린 라인의 교차를 사용하여 경향을 결정하는 것입니다. 두 지표의 확인은 신호의 유효성과 신뢰성을 어느 정도 향상시킬 수 있습니다.
10SMA와 MACD 듀얼 트렌드 다음 거래 전략은 시장에서 중장기 트렌드 기회를 간단하고 사용하기 쉬운 방식으로 포착하기 위해 일반적으로 사용되는 두 가지 기술적 지표를 결합합니다. 단일 지표를 사용하는 것과 비교하면 두 가지 지표의 확인은 신호의 신뢰성과 효과를 어느 정도 향상시킬 수 있으며 또한 일정 수준의 적응력을 가질 수 있습니다. 그러나 전략은 지연, 불안정한 시장 및 예기치 않은 사건과 같은 위험에 직면합니다. 실제 응용에서는 다른 필터링 조건을 최적화하고 수익성과 수익성을 더욱 향상시키기 위해 다른 필터링 조건을 추가하고 수익 및 손실을 중지하고 동적 매개 변수 최적화 및 근본 분석과 결합하는 것과 같은 시장 특성 및 개인 선호도에 따라 적절한 최적화 및 개선이 필요합니다.
/*backtest start: 2023-06-01 00:00:00 end: 2024-06-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("10SMA and MACD Strategy", overlay=true) // Input parameters length = input(10, title="SMA Length") macdFastLength = input(12, title="MACD Fast Length") macdSlowLength = input(26, title="MACD Slow Length") macdSignalSmoothing = input(9, title="MACD Signal Smoothing") // Calculate 10SMA sma10 = ta.sma(close, length) plot(sma10, title="10SMA", color=color.blue) // Calculate MACD [macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing) plot(macdLine, title="MACD Line", color=color.red) plot(signalLine, title="Signal Line", color=color.green) // Strategy conditions longCondition = ta.crossover(close, sma10) and ta.crossover(macdLine, signalLine) shortCondition = ta.crossunder(close, sma10) and ta.crossunder(macdLine, signalLine) // Plot buy and sell signals plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy execution if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.close("Long")