
이 전략은 다중 이동 평균에 기반한 트렌드 추적 시스템이다. 이 전략은 세 개의 다른 주기 ((50·100·200) 의 간단한 이동 평균을 사용하여 빠른 평균과 중간 평균의 교차 신호를 통해 느린 평균의 트렌드 확인과 결합하여 시장의 트렌드 기회를 포착한다. 이 전략의 설계 철학은 “트렌드를 따르는”의 고전적 거래 아이디어에 부합하며, 여러 시간 프레임의 평균을 조합하여 신호의 신뢰성을 높인다.
전략의 핵심 논리는 다음과 같은 핵심 요소에 기초합니다.
이 전략은 고전적인 트렌드 추적 시스템으로, 다중 평균선의 조합을 통해 신호의 신뢰성을 보장하고, 주요 트렌드를 효과적으로 파악할 수 있다. 약간의 뒤처짐이 있지만, 합리적인 최적화와 위험 관리를 통해 안정적인 거래 시스템이 될 수 있다. 전략의 핵심 장점은 시스템의 안정성과 운영의 명확성에 있으며, 중장기 트렌드 거래의 기본 프레임워크에 적합하다.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("MA Cross Strategy", overlay=true)
// Input untuk periode Moving Average dan warna label
fastLength = input.int(50, minval=1, title="Fast MA Length")
mediumLength = input.int(100, minval=1, title="Medium MA Length")
slowLength = input.int(200, minval=1, title="Slow MA Length")
longLabelColor = input.color(color.green, "Long Label Color")
shortLabelColor = input.color(color.red, "Short Label Color")
// Hitung Moving Average
fastMA = ta.sma(close, fastLength)
mediumMA = ta.sma(close, mediumLength)
slowMA = ta.sma(close, slowLength)
// Kondisi untuk buy dan sell
longCondition = ta.crossover(fastMA, mediumMA) and close >= slowMA
shortCondition = ta.crossunder(fastMA, mediumMA) and close <= slowMA
// Plot Moving Average
plot(fastMA, color=color.green, linewidth=1, title="Fast MA")
plot(mediumMA, color=color.orange, linewidth=1, title="Medium MA")
plot(slowMA, color=color.red, linewidth=2, title="Slow MA")
// Plot penanda crossover dengan warna dinamis
plot(ta.cross(fastMA, mediumMA) and (longCondition or shortCondition) ? mediumMA : na,
color=longCondition ? color.green : color.red,
style=plot.style_circles, linewidth=4, title="Crossover")
// Plot label saat kondisi entry terpenuhi
plotshape(longCondition, title="Long", location=location.belowbar, style=shape.labelup, size=size.normal, color=color.green, textcolor=color.white, text="Long")
plotshape(shortCondition, title="Short", location=location.abovebar, style=shape.labeldown, size=size.normal, color=color.red, textcolor=color.white, text="Short")
// Strategi
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
// Exit strategy (berdasarkan crossover MA)
if ta.crossunder(fastMA, mediumMA) and strategy.position_size > 0
strategy.close("Long")
if ta.crossover(fastMA, mediumMA) and strategy.position_size < 0
strategy.close("Short")