이 전략은 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")