이 전략은 시장 트렌드가 변할 때 거래 기회를 포착하기 위해 MACD 지표와 제한된 마틴게일 돈 관리 방법을 결합합니다. MACD 빠른 라인이 느린 라인을 넘을 때 구매 신호가 생성되며 빠른 라인이 느린 라인을 넘을 때 판매 신호가 생성됩니다. 동시에 전략은 최대 3 개의 추가 포지션을 사용하여 유출을 제어하기 위해 제한된 마틴게일 방법을 사용합니다. 전략은 각 거래에 대해 1%의 고정 수익 및 스톱 손실을 설정합니다.
이 전략은 유동 시장에서 좋은 결과를 얻을 수 있는 유동 시장을 제어하기 위해 제한된 마르틴게일을 사용하여 MACD 지표를 통해 트렌드를 캡처합니다. 그러나 이 전략에는 신호 실패 및 고정 스톱 손실과 같은 특정 위험도 있습니다. 다른 지표를 도입하고 매개 변수 설정을 최적화하고 위치 사이징 및 기타 방법을 사용하면 이 전략의 견고성과 수익성이 더욱 향상 될 수 있습니다.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Advanced MACD Strategy with Limited Martingale", overlay=true, initial_capital=100) // MACD 설정 fastLength = 15 slowLength = 30 signalSmoothing = 9 [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing) // 계약수 및 이전 거래 결과 기록 var float contractSize = 0.01 var int martingaleCount = 0 // 마틴게일 카운트 var float lastTradeResult = 0 // 매수 및 매도 조건 longCondition = ta.crossover(macdLine, signalLine) shortCondition = ta.crossunder(macdLine, signalLine) // 매수 신호 if (longCondition) strategy.entry("Long", strategy.long, qty=contractSize) lastTradeResult := strategy.netprofit // 매도 신호 if (shortCondition) strategy.entry("Short", strategy.short, qty=contractSize) lastTradeResult := strategy.netprofit // 익절 및 손절 조건 strategy.close("Long", when=(close / strategy.position_avg_price >= 1.01)) strategy.close("Short", when=(strategy.position_avg_price / close >= 1.01)) strategy.close("Long", when=(close / strategy.position_avg_price <= 0.99)) strategy.close("Short", when=(strategy.position_avg_price / close <= 0.99)) // 마틴게일 전략 적용 if (strategy.netprofit < lastTradeResult) if (martingaleCount < 3) contractSize := contractSize * 2 martingaleCount := martingaleCount + 1 else contractSize := 0.01 martingaleCount := 0 else contractSize := 0.01 martingaleCount := 0 // 매수, 매도 포인트 화살표로 표시 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")