
지수 이동 평균 경로를 가로지르는 합성 거래량과 분할 스톱 트래킹 스톱 전략은 기술 지표와 수량 가격 관계를 결합한 트렌드 추적 거래 시스템이다. 이 전략은 빠른 속도와 느린 지수 이동 평균 ((EMA) 의 교차 신호를 입시 조건으로 기반으로 하고, 동시에 신호 품질을 높이기 위해 합성 거래량을 확인한다. 출구 메커니즘은 ATR 배수를 기반으로 한 두 개의 고정 스톱 스톱 및 손실 추적 메커니즘을 포함한 3 개의 보안 디자인을 채택했다.
이 전략의 핵심 논리는 다음과 같은 몇 가지 핵심 구성 요소를 중심으로 펼쳐집니다.
입력 신호 생성:
양수 확인:
위험 관리 및 출전 메커니즘:
이러한 다단계 출장 전략은 소규모 이익의 경우 일부 수익을 잠금하는 것을 보장하고, 강한 추세 상황에서 나머지 포지션의 수익 잠재력을 극대화 할 수 있습니다. 동시에, 손실을 추적하는 스톱 메커니즘은 마지막 포지션의 동적 보호를 제공하여 이미 이윤이있는 포지션의 회귀를 효과적으로 방지합니다.
간단하고 효과적인 디자인:
양값과 함께 신호 품질을 향상:
전체적인 위험 관리:
매우 적응력이 좋다:
자금 관리 통합:
시장의 부진:
매개변수 민감도:
급격한 반전 지점 위험:
정지 비율:
거래량 변동:
트렌드 강도 필터를 도입:
adx = ta.adx(14)계산하고 입학 조건에 추가and adx > 25조건거래량 분석을 최적화:
동적으로 정지 레벨을 조정:
입학 시점을 최적화:
rsi = ta.rsi(close, 14)그리고 입학 조건에 방향성 조건을 추가합니다.시간 필터를 추가합니다.:
time이 함수는 현재 거래 시간이 이상적인 시간 내에 있는지 확인합니다.동적 위치관리 실현:
지수 이동 평균을 가로지르는 합성 거래량과 분할 중지 추적 중지 전략은 고전적인 기술 분석 방법과 현대적 위험 관리 기술을 결합한 정교하고 포괄적인 거래 시스템입니다. 이 전략의 핵심 장점은 EMA 교차 신호를 통해 합성 거래량 확인을 결합하여 진입 신호를 제공하며 분할 중지 및 추적 중단을 통해 전체적인 위험 통제를 구현하는 단순성과 적응성입니다.
이 전략은 여러 거래 품종에서 좋은 성적을 거두고 있지만, 여전히 잠재적인 위험과 최적화 공간이 있습니다. 트렌드 강도 필터를 도입하고, 거래량 분석을 최적화하고, 정지 수준을 동적으로 조정하고, 진입 시기를 개선하고, 동적인 포지션 관리를 구현하는 등의 조치를 통해 전략의 안정성과 수익성을 더욱 향상시킬 수 있습니다.
결국, 이 전략은 전략을 단순하고 직관적으로 유지하면서도, 신중하게 설계된 위험 관리 및 신호 확인 메커니즘을 통해, 초보자의 이해와 실제 거래 가치를 갖춘 양적 거래 시스템을 구축하는 방법을 보여줍니다. 코드 코드에 언급된 것처럼, “단순히 그것을 해” (Simple does it!) 는 때때로 가장 효과적인 전략은 복잡한 지표 집합이 아니라, 합리적인 논리 구조와 포괄적인 위험 제어 설계가 필요합니다.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-08-03 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("EMA Crossover with Volume + Stacked TP & Trailing SL", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// 📊 Inputs
fastLen = input.int(21, title="Fast EMA")
slowLen = input.int(55, title="Slow EMA")
volMultiplier = input.float(1.2, title="Volume Threshold Multiplier")
atrLen = input.int(14, title="ATR Length")
tp1Mult = input.float(1.5, title="TP1 ATR Multiplier")
tp2Mult = input.float(2.5, title="TP2 ATR Multiplier")
trailOffsetMult = input.float(1.5, title="Trailing SL Offset (ATR)")
trailTriggerMult = input.float(1.5, title="Trailing SL Activation (ATR)")
// 📈 Indicators
fastEMA = ta.ema(close, fastLen)
slowEMA = ta.ema(close, slowLen)
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.orange, title="Slow EMA")
atr = ta.atr(atrLen)
avgVolume = ta.sma(volume, 20)
volumeCondition = volume > avgVolume * volMultiplier
plot(avgVolume, color=color.gray, title="Average Volume")
// 🚀 Entry Conditions
longCondition = ta.crossover(fastEMA, slowEMA) and volumeCondition
shortCondition = ta.crossunder(fastEMA, slowEMA) and volumeCondition
// 📌 Entry
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// 🎯 Take Profit Targets
tp1 = atr * tp1Mult
tp2 = atr * tp2Mult
// 🛡️ Trailing Stop Setup
trailOffset = atr * trailOffsetMult
trailTrigger = atr * trailTriggerMult
// 📤 Exit Logic for Long
if (strategy.position_size > 0)
strategy.exit("TP1", from_entry="Long", profit=tp1, qty_percent=33)
strategy.exit("TP2", from_entry="Long", profit=tp2, qty_percent=33)
strategy.exit("Trail", from_entry="Long", trail_offset=trailOffset, trail_price=trailTrigger, qty_percent=34)
// 📤 Exit Logic for Short
if (strategy.position_size < 0)
strategy.exit("TP1", from_entry="Short", profit=tp1, qty_percent=33)
strategy.exit("TP2", from_entry="Short", profit=tp2, qty_percent=33)
strategy.exit("Trail", from_entry="Short", trail_offset=trailOffset, trail_price=trailTrigger, qty_percent=34)
// 🧠 Visual Debug
plotshape(longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Long Signal")
plotshape(shortCondition, location=location.abovebar, color=color.red, style=shape.triangledown, title="Short Signal")