
이 전략은 양평선 교차를 기반으로 한 트렌드 추적 시스템으로, 단기 및 장기 이동 평균의 교차로 시장의 흐름을 포착하고, 1:3의 리스크 수익 비율을 사용하여 거래 위험을 관리합니다. 이 전략은 고정된 중지 손실 및 수익 목표를 사용하며, 이동 손실 장치를 결합하여 수익을 보호합니다.
전략은 74주기의 단기 이동 평균 (Short SMA) 과 70주기의 장기 이동 평균 (Long SMA) 을 주요 지표로 사용한다. 단기 평균이 장기 평균을 상향으로 가로질렀을 때, 시스템은 더 많은 신호를 발생시킨다; 단기 평균이 장기 평균을 하향으로 가로질렀을 때, 시스템은 공백 신호를 발생시킨다. 거래 당 포지션 크기는 0.002로 고정되어 있으며, 353달러의 스톱로스트가 설정되어 있으며, 수익 목표가 스톱로스트의 3배이다. 전략은 또한 날짜 범위 제한을 포함하고 있으며, 지정된 재검사 기간 ([[2025년 2월 13일~2025년 3월 31일]]) 에서만 거래한다.
이것은 구조가 완전하고, 논리가 명확한 트렌드 추적 전략이다. 동선 교차로 트렌드를 캡처하고, 엄격한 위험 관리 및 포지션 제어를 적용하여 중·장기 거래에 적합하다. 동선 지각과 같은 고유한 결점이 있음에도 불구하고, 제안된 최적화 방향, 특히 동적 매개 변수 조정 및 시장 환경 필터링을 도입함으로써 전략의 안정성과 수익성이 더욱 향상될 것으로 보인다.
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bitcoin Strategy by Jag", overlay=true)
// Input Parameters
shortSMALength = input.int(74, title="Short SMA Length")
longSMALength = input.int(70, title="Long SMA Length")
trailStopOffset = input.float(353, title="Trailing Stop Offset (USD)") // Trailing Stop Loss Offset in USD
tradeSize = input.float(1, title="Trade Size")
// Automatically set Take Profit as 3 times Stop Loss
fixedTakeProfit = trailStopOffset * 3
// Backtesting Date Range
startDate = timestamp(2025, 02,13, 0, 0)
endDate = timestamp(2025, 03, 31, 23, 59)
withinDateRange = true
// Indicators
shortSMA = ta.sma(close, shortSMALength)
longSMA = ta.sma(close, longSMALength)
// Crossover Conditions
longCondition = withinDateRange and ta.crossover(shortSMA, longSMA)
shortCondition = withinDateRange and ta.crossunder(shortSMA, longSMA)
// Entry Logic
if (strategy.position_size == 0) // Only allow new trades if no position is open
if (longCondition)
strategy.entry("Long", strategy.long, tradeSize)
if (shortCondition)
strategy.entry("Short", strategy.short, tradeSize)
// Exit Logic for Long Position
if (strategy.position_size > 0)
strategy.exit("Long exit", "Long", stop=strategy.position_avg_price - trailStopOffset, limit=strategy.position_avg_price + fixedTakeProfit) // Using stop and limit
// Exit Logic for Short Position
if (strategy.position_size < 0)
strategy.exit("Short Exit", "Short", stop=strategy.position_avg_price + trailStopOffset, limit=strategy.position_avg_price - fixedTakeProfit) // Using stop and limit
// Plot Moving Averages
plot(shortSMA, color=color.blue, title="Short SMA")
plot(longSMA, color=color.black, title="Long SMA")
// Visual Signals
plotshape(series=longCondition and strategy.position_size == 0, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
plotshape(series=shortCondition and strategy.position_size == 0, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)