이중 지표 전략

저자:차오장, 날짜: 2023-11-02 15:30:54
태그:

img

전반적인 설명

이중 지표 전략 (Dual Indicator Strategy) 은 단순 이동 평균 (SMA) 및 이동 평균 컨버전스 디버전스 (MACD) 지표를 결합한 양적 거래 전략이다. 여러 가지 기술적 지표를 활용함으로써 전략은 거래 신호의 정확성을 높이는 것을 목표로합니다.

전략 논리

이중 지표 전략의 핵심은 두 가지 지표: SMA와 MACD에 의존합니다. 전략은 7~15~60주기 SMA와 표준 12/26/9 MACD 매개 변수 설정을 채택합니다.

7주기 SMA가 15주기와 60주기 SMA보다 높고 15주기 SMA가 60주기 SMA보다 높으면, 0.5의 확률로 SMA 지표의 상승 신호로 간주됩니다.

동시에, MACD 라인이 신호 라인의 위를 넘을 때, 그것은 또한 0.5의 확률로 MACD 지표의 상승 신호로 간주됩니다.

두 지표의 상승 시그널 확률이 1으로 합치면 긴 포지션이 열립니다.

반대로, 7주기 SMA가 15주기와 60주기 SMA보다 낮아지고, 15주기 SMA가 60주기 SMA보다 낮으면, 0.5의 확률로 SMA 지표의 하향 신호로 간주됩니다.

한편, MACD 라인이 신호 라인 아래를 넘으면, 0.5의 확률로 MACD 지표의 하향 신호로 간주됩니다.

두 지표의 하향 신호 확률이 1으로 합치면, 짧은 포지션이 열립니다.

또한 이 전략은 두 가지 다른 수익점을 채택합니다. 가격 상승 또는 하락이 9%가 되면 지점의 50%를 폐쇄하고 가격 상승 또는 하락이 21%가 되면 나머지 지점을 폐쇄합니다.

현재 위치와 반대 신호가 발생하면, 새로운 신호에 기반한 새로운 포지션을 열기 전에 먼저 현재 포지션을 닫습니다.

이점 분석

이중 지표 전략의 가장 큰 장점은 SMA와 MACD 지표의 강점을 모두 활용한다는 것입니다. SMA는 가격 트렌드 변화를 효과적으로 추적하고 시장 소음을 필터 할 수 있으며 MACD는 단기 트렌드 역전 기회를 식별 할 수 있습니다. 둘을 결합하면 거래 신호의 신뢰성을 향상시킬 수 있습니다.

또한, 다른 매개 변수 설정을 가진 SMA를 채택하면 중장기 동향을 파악할 수 있고, 이윤 취득 전략은 부분적인 이윤을 확보하고 위험을 통제합니다.

위험 분석

이중 지표 전략의 일부 잠재적 위험은 주목할 필요가 있다. 기술 지표에만 의존하기 때문에 잘못된 신호가 발생할 수 있다. 또한, 부적절한 수익 설정은 주요 트렌드를 놓치면서 조기 출퇴로 이어질 수 있다.

전략은 더 신뢰할 수있는 신호를 보장하기 위해 SMA 기간 매개 변수를 조정하거나 추가 필터링 지표를 통합하여 최적화 할 수 있습니다. 트렌드 움직임을 포착하는 것을 유지하기 위해 시장 변동성에 따라 수익 수준을 동적으로 조정해야합니다.

최적화 방향

이중 지표 전략의 일부 측면은 더 이상 최적화 될 수 있습니다.

  1. 다른 기술 지표들을 추가하여 테스트합니다. 예를 들어 RSI, 볼링거 밴드 등 다중 지표 필터링을 위해요.

  2. 여러 변수를 사용하여 신호 판단 모델을 만드는 기계 학습 알고리즘을 시도해보세요.

  3. 다른 제품과 시간 프레임에 따라 매개 변수를 조정합니다.

  4. 단일 거래 손실을 엄격하게 통제하기 위해 스톱 손실을 포함합니다.

  5. 지속적인 트렌드를 타기 위해 수익을 창출하는 전략을 최적화하십시오.

체계적인 백테스팅과 최적화를 통해 전략의 안정성과 수익성이 지속적으로 향상될 수 있습니다.

결론

이중 지표 전략은 SMA와 MACD의 강점을 결합하여 신호의 정확성을 향상시키고 동시에 위험을 효과적으로 제어합니다. 강력한 최적화 잠재력과 다재다능성으로 강력하고 적응 가능한 양적 거래 전략입니다. 지속적인 데이터 기반 개선으로 전략은 강력한 거래 시스템으로 발전 할 수 있습니다.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA & MACD Dual Direction Strategy", shorttitle="SMDDS", overlay=true, initial_capital=1000)

// SMA settings
sma7_length = input.int(7, title="7 Candle SMA Length")
sma15_length = input.int(15, title="15 Candle SMA Length")
sma60_length = input.int(60, title="60 Candle SMA Length")

// MACD settings
fast_length = input.int(12, title="Fast Length")
slow_length = input.int(26, title="Slow Length")
signal_length = input.int(9, title="Signal Length")

// Leverage
leverage = 10

// Calculate the SMAs
sma7 = ta.sma(close, sma7_length)
sma15 = ta.sma(close, sma15_length)
sma60 = ta.sma(close, sma60_length)

// Calculate the MACD line and Signal line
[macdLine, signalLine, _] = ta.macd(close, fast_length, slow_length, signal_length)

// SMA-based Probabilities
smaBullishProb = (sma7 > sma15 and sma7 > sma60 and sma15 > sma60) ? 0.5 : 0.0
smaBearishProb = (sma7 < sma15 and sma7 < sma60 and sma15 < sma60) ? 0.5 : 0.0

// MACD-based Probabilities
macdBullishProb = ta.crossover(macdLine, signalLine) ? 0.5 : 0.0
macdBearishProb = ta.crossunder(macdLine, signalLine) ? 0.5 : 0.0

// Combined Probabilities
combinedBullishProb = smaBullishProb + macdBullishProb
combinedBearishProb = smaBearishProb + macdBearishProb

// Trade logic using `if` conditions
if combinedBullishProb == 1.0
    strategy.close("Short")
    strategy.entry("Long", strategy.long, qty=leverage)

if combinedBearishProb == 1.0
    strategy.close("Long")
    strategy.entry("Short", strategy.short, qty=leverage)

// Exit conditions based on profit points
longTargetProfit1 = close * 1.09
longTargetProfit2 = close * 1.21

shortTargetProfit1 = close * 0.91
shortTargetProfit2 = close * 0.79

strategy.exit("Long TP1", from_entry="Long", limit=longTargetProfit1, qty_percent=0.5)
strategy.exit("Long TP2", from_entry="Long", limit=longTargetProfit2)

strategy.exit("Short TP1", from_entry="Short", limit=shortTargetProfit1, qty_percent=0.5)
strategy.exit("Short TP2", from_entry="Short", limit=shortTargetProfit2)

// Visualization (optional)
plot(sma7, color=color.green, title="7 Candle SMA")
plot(sma15, color=color.blue, title="15 Candle SMA")
plot(sma60, color=color.red, title="60 Candle SMA")
hline(0, "Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.blue, title="MACD Histogram")


더 많은