
이 전략은 가격 운동과 역사적인 저항/지원 돌파구를 기반으로 한 트렌드 추적 시스템이다. 전략의 핵심 논리는 단기간에 눈에 띄는 가격 변화 (> 2%) 를 찾아내고, 최근 가격 고점/저점의 돌파구와 결합하여 트렌드 방향을 확인하는 것이다. 한편, 전략은 평균 실제 파동 (ATR) 지표를 사용하여 동적으로 정지점을 설정하고, 동적 돌파구의 극한점을 중지 지점으로 사용하여 위험을 제어할 수 있는 거래 관리 장치를 구현한다.
이 전략은 1시간의 시간 주기로 운영되며, 다음과 같은 핵심 원칙에 기초하여 설계되었습니다.
동력 인식전략: 우선, 단일 그램의 가격 변화 비율을 계산합니다.(收盘价-开盘价)/开盘价, 변화 비율이 2% (변화 가능한 변수) 에 도달하거나 초과할 때, 눈에 띄는 동력을 가진 그램으로 식별한다.
브레이크 확인:
입력 신호 생성:
동적 정지 설정: ATR 지수 ((기본 14주기) 의 배수 ((기본 1.5배) 의 배수를 사용하여 정지 거리를 결정합니다. 이것은 시장의 변동성에 따라 정지 위치를 자동으로 조정할 수 있습니다.
손해 방지 전략:
전략은 또한 시각적 지표를 포함하고 있으며, 차트에 입력 신호와 중지/손실 트리거를 표시하여 거래자가 재검토 분석을 할 수 있습니다.
시장의 적응력: ATR 지표로 스톱 포지션을 설정하면, 전략은 다양한 시장 변동 환경에 자동으로 적응할 수 있으며, 높은 변동성 시장에서 더 큰 수익 공간을 제공하고, 낮은 변동성 시장에서 스톱 포지션을 강화합니다.
양방향 거래 능력이 전략은 상향과 하향 양쪽에서 기회를 잡을 수 있는 상향과 하향의 거래를 동시에 지원하며 시장 참여를 극대화합니다.
객관적인 입시 기준: 명확한 동력 하락과 돌파 조건으로, 전략은 주관적 판단을 제거하고 거래 결정을 더 규범화하고 체계화한다.
리스크 관리가 정확합니다.동력 도표의 극한 지점에 설정된 스톱 로드는 재산을 보호하면서도 시장 구조를 존중하고, 무작위적인 변동으로 인해 조기 중단되는 것을 피한다.
매개 변수는 유연하게 조정할 수 있습니다.전략은 여러 가지 조정 가능한 매개 변수를 제공합니다. 동력 하락, 회귀 주기, ATR 길이는 배수입니다. 거래자는 자신의 위험 선호도와 다른 시장 환경에 따라 최적의 조정을 할 수 있습니다.
시각적 피드백: 그래픽 표시를 통해 입력 신호와 스톱/스트로드 트리거 위치를 명확하게 표시하여 거래자가 전략 수행을 직관적으로 이해할 수 있도록합니다.
가짜 침입 위험: 큰 변동이 있지만 명백한 추세가없는 시장에서 빈번한 가짜 브레이크 신호가 발생할 수 있으며, 이로 인해 연속적인 손실이 발생할 수 있습니다. 해결 방법: 이동 평균 방향 확인 또는 추세 지표와 같은 추가적인 추세 필터를 추가 할 수 있습니다.
큰 위험: 시장은 중요한 소식의 영향으로 큰 폭으로 상승할 수 있으며, 정해진 중지 위치를 초과하여 예상보다 실제 손실을 초래합니다. 해결 방법: 최대 손실 금액 또는 비율 제한을 설정하고, 변동성이 매우 높을 때 포지션 크기를 줄이는 것을 고려하십시오.
매개변수 민감도전략적 성능은 변수 설정에 민감하며, 특히 동력 절단값과 ATR 배수. 해결 방법: 충분한 재검토 최적화를 수행하여 다양한 시장 환경에서 비교적 안정적인 변수 조합을 찾습니다.
재무 관리 부족: 전략 자체에는 상세한 자금 관리 규칙이 포함되어 있지 않다. 해결 방법: 실제 응용에 위치 관리 메커니즘을 추가, 예를 들어 계정 적당 비율 또는 고정 위험 비율에 기반한 위치 조정.
다중주기 확인 부족: 단일 시간 주기에만 의존하면 거래 신호가 충분히 안정되지 않을 수 있습니다. 해결 방법: 더 큰 시간 주기 트렌드 방향이 일치하는 경우에만 거래하는 것과 같은 여러 시간 주기 확인 메커니즘을 추가하는 것을 고려하십시오.
트렌드 필터 추가이동 평균 또는 다른 트렌드 지표를 방향 필터로 추가할 수 있습니다. 예를 들어, 가격이 200 주기의 평균선 위에 있을 때만 다중 헤드 거래를 수행하고, 반대로 공백 거래를 수행하면 신호 품질이 크게 향상됩니다.
변동율 필터를 도입: 매우 높은 변동성 또는 매우 낮은 변동성 시장에서 전략이 좋지 않을 수 있습니다. 변동률 필터 조건을 추가 할 수 있습니다. 예를 들어, 변동률 지표 (예를 들어 ATR / 가격 비율) 가 특정 범위에있는 경우에만 거래를 수행하십시오.
방지 장치의 최적화: 계단형 스톱 또는 추적 스톱을 구현할 수 있습니다. 예를 들어, 가격이 0.5배의 ATR 수익을 달성하면 스톱 손실이 비용 가격으로 이동하여 위험없는 거래를 수행합니다.
거래 시간 필터를 추가합니다.: 특정 시간 (아시아, 유럽, 미국 거래 시간 등) 이 이 전략에 더 적합할 수 있다. 다양한 시간대의 성과를 분석하고 거래 시간 창을 최적화하면 전략의 승률을 높일 수 있다.
통합 트래픽 확인: 합병량을 돌파를 확인하는 보조 조건으로 삼고, 단지 방량 돌파를 할 때만 진출하면 가짜 돌파의 위험을 줄일 수 있다.
부가 동력 분산 지표: RSI 또는 MACD와 같은 지표를 도입하여 가격과 동력 분산을 탐지하고 동력이 약해지면 진입을 피하십시오.
지능화 변수 조정: 최근 시장의 변동성에 따라 운동량 하락값과 ATR 배수를 자동으로 조정하는 적응형 파라미터 시스템을 설계할 수 있으며, 전략이 더 적응되도록 합니다.
ATR 스톱 스톱 메커니즘과 결합된 고차원 동적 브레이크 트레이딩 전략은 단기 가격 운동과 핵심 가격 수준 브레이크를 포착하여 잠재적인 트렌드의 시작을 식별하는 포괄적인 거래 시스템입니다. 전략의 핵심 장점은 객관적인 입시 기준과 시장의 변동성에 적응하는 동적 스톱 스톱 메커니즘으로 인해 다양한 시장 환경에서 비교적 안정적인 성능을 유지할 수 있습니다.
전략에는 가짜 돌파구와 변수 민감성 등의 위험이 있지만, 트렌드 필터, 다중 주기 확인 및 거래량 검증과 같은 최적화 방향을 도입함으로써 전략의 안정성과 수익성을 크게 향상시킬 수 있습니다. 특히 완벽한 자금 관리 시스템과 결합되면 이 전략은 거래자의 도구 상자에 강력한 무기가 될 잠재력이 있습니다.
이 전략을 적용하려는 거래자는 먼저 다양한 시장 환경에서 충분한 피드백을 통해 자신의 거래 스타일과 위험 감수성에 가장 적합한 파라미터 조합을 찾아보고 더 개인화되고 효율적인 거래 시스템을 만들기 위해 앞서 언급한 최적화 조치를 단계적으로 도입하는 것이 좋습니다.
/*backtest
start: 2024-06-18 00:00:00
end: 2025-06-16 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("ETHUSDT Momentum Breakout with TP/SL Labels", overlay=true)
// === INPUT ===
momentumThreshold = input.float(0.02, "Min % Change (2%)", step=0.001)
lookback = input.int(10, "Breakout Lookback", minval=1)
atrLen = input.int(14, "ATR Length")
atrMult = input.float(1.5, "ATR Multiplier", step=0.1)
// === ATR ===
atr = ta.atr(atrLen)
// === PERSENTASE KENAIKAN/TURUNAN ===
pctChange = (close - open) / open
// === BREAKOUT LEVELS ===
priorHigh = ta.highest(high[1], lookback)
priorLow = ta.lowest(low[1], lookback)
// === LONG SETUP ===
isLongMomentum = pctChange >= momentumThreshold
isLongBreakout = close > priorHigh
longCond = isLongMomentum and isLongBreakout
longTP = close + atr * atrMult
longSL = low
// === SHORT SETUP ===
isShortMomentum = -pctChange >= momentumThreshold
isShortBreakout = close < priorLow
shortCond = isShortMomentum and isShortBreakout
shortTP = close - atr * atrMult
shortSL = high
// === VARIABEL UNTUK SIMPAN TP/SL LEVEL ===
var float tpPrice = na
var float slPrice = na
var string tradeDir = "" // "long" atau "short"
var int entryBar = na
// === ENTRY ===
if (longCond)
strategy.entry("Long", strategy.long)
tpPrice := longTP
slPrice := longSL
tradeDir := "long"
entryBar := bar_index
if (shortCond)
strategy.entry("Short", strategy.short)
tpPrice := shortTP
slPrice := shortSL
tradeDir := "short"
entryBar := bar_index
// === EXIT ===
if (tradeDir == "long")
strategy.exit("Exit Long", from_entry="Long", limit=tpPrice, stop=slPrice)
if (tradeDir == "short")
strategy.exit("Exit Short", from_entry="Short", limit=tpPrice, stop=slPrice)
// === CEK EXIT DAN TAMPILKAN LABEL SAAT TP / SL TERCAPAI ===
var bool labelDrawn = false
if (strategy.position_size == 0 and not na(entryBar) and not labelDrawn)
if (tradeDir == "long")
if (low <= slPrice)
label.new(bar_index, low, "SL Hit", style=label.style_label_up, color=color.red, textcolor=color.white)
else if (high >= tpPrice)
label.new(bar_index, high, "TP Hit", style=label.style_label_down, color=color.green, textcolor=color.white)
else if (tradeDir == "short")
if (high >= slPrice)
label.new(bar_index, high, "SL Hit", style=label.style_label_down, color=color.red, textcolor=color.white)
else if (low <= tpPrice)
label.new(bar_index, low, "TP Hit", style=label.style_label_up, color=color.green, textcolor=color.white)
labelDrawn := true
tpPrice := na
slPrice := na
tradeDir := ""
entryBar := na
// === SINYAL ENTRY VISUAL ===
plotshape(longCond, title="Long Signal", location=location.belowbar, style=shape.triangleup, color=color.green, size=size.small)
plotshape(shortCond, title="Short Signal", location=location.abovebar, style=shape.triangledown, color=color.red, size=size.small)