
자기 적응적 변동률 추적을 위한 해파리 브레이크 트레이딩 전략은 윌리엄스 해파리 표시와 ATR의 손실을 결합한 양적 거래 시스템이다. 이 전략은 주로 해파리 표시의 ‘립 라인’과 ‘ 라인’ 사이의 교차 상황을 모니터링하여 입문 신호를 생성하고 ATR 기반의 자기 적응적 손실을 차단하는 장치를 사용하여 위험을 관리한다. 이 조합은 트렌드 추적과 변동률 자동 조정의 위험 관리 방법을 효과적으로 결합하여 거래자에게 구조화된 거래 프레임워크를 제공합니다.
이 전략의 핵심은 윌리엄스 해파리 라인 지표로, 세 개의 평평한 이동 평균으로 구성되어 있습니다. 해파리 라인 (Jaw), 치아 라인 (Teeth), 그리고 입술 라인 (Lips). 이 세 가지 라인은 각각 다른 주기의 SMMA (Smooth Moving Average) 를 사용하여 계산되며, 가격의 높고 낮은 점의 평균을 기반으로 합니다.
특히:
단기 립선이 장기 선을 상향으로 통과할 때, 전략은 구매 신호를 생성하여 상승 트렌드가 시작될 수 있음을 나타냅니다. 반대로, 립선이 하향으로 통과할 때, 전략은 상향 동력이 소모되었을 수 있다고 생각하고 상위 지점에서 빠져 나갑니다.
위험 관리 측면에서, 이 전략은 ATR (평균 실제 범위) 를 기반으로한 손실 메커니즘을 채택한다. ATR은 시장의 변동성을 측정하는 중요한 지표이며, 전략은 14주기 ATR을 사용하고, 그것을 2.0의 배수로 곱하여 손실 가격을 설정한다.
자율적 위험 관리: ATR을 통해 계산된 스톱포인트는 시장의 변동률에 따라 자동으로 조정되며, 고정 스톱포인트보다 시장의 실제 상황에 더 적합하며, 단기 가격 변동으로 인한 조기 스톱포인을 피하는 데 도움이됩니다.
트렌드 추적 능력어라인 지표는 그 자체로 훌륭한 트렌드 식별 도구이며, 중·장기 트렌드의 시작점을 효과적으로 포착하여 잘못된 신호를 줄일 수 있습니다.
신호가 켜졌어요: 전략의 입출력 조건은 매우 명확하며, 입선과 ?? 선의 교차에 기초하고, 주관적인 판단이 필요하지 않으며, 실행 및 회귀가 쉽다.
사전 경고 기능이 전략은 세 가지 경고 조건이 내장되어 있습니다. 구매 신호, 퇴출 신호 및 중지 손실 트리거) 이므로 거래자가 실시간으로 거래를 모니터링하고 실행할 수 있습니다.
매개 변수 조정이 전략은 해파리의 각 주기와 ATR 배수에 대한 조정 옵션을 제공하여 거래자가 다른 시장과 개인 위험 선호도에 따라 최적화 할 수 있습니다.
뒤처진 문제: SMMA를 낚시선으로 사용하는 계산 방법 때문에 신호는 약간의 지연성이 있을 수 있으며, 빠르게 변화하는 시장에서 최적의 입문점을 놓칠 수도 있고, 제때 멈출 수도 없다.
시장의 부진어선은 트렌드를 추적하는 지표로, 수평 상반기 변동 시장에서 빈번한 가짜 신호를 생성하여 연속적인 손실을 초래할 수 있다.
ATR 정지는 너무 넓을 수 있습니다.: 어떤 경우에는 ATR을 2.0으로 곱하는 것이 하나의 손실이 너무 커지는 광범위한 스톱을 설정할 수 있습니다. 특히 변동성이 급격히 확대되는 시장 환경에서는 이러한 위험이 더 뚜렷합니다.
단일 신호 소스이 전략은 거래 신호를 생성하기 위해 오로지 라인 지표에 의존하며, 다른 확인 지표의 지원이 없기 때문에, 가짜 신호의 위험을 증가시킬 수 있다.
수수료와 슬라이드 포인트 영향이 전략은 0.1%의 수수료와 3점의 슬라이드 포인트를 고려하지만 실제 거래에서 이러한 거래 비용은 다소 달라져 최종 성과에 영향을 미칠 수 있습니다.
확인 지표를 추가합니다.: 추가적인 지표를 추가하는 것을 고려할 수 있습니다. 예를 들어, MACD 또는 RSI를 보조 확인 도구로 추가 할 수 있습니다.
입학 시점을 최적화: 현재 전략은 입선에서 선을 뚫을 때 즉시 입구, 특정 확인 시간을 기다린 후 또는 가격 확인을 고려할 수 있습니다. (모든 해파리 라인 위에 종결 가격이있는 경우) 신호 품질을 높이기 위해 다시 입구.
동적으로 ATR 배수를 조정: ATR 배수는 시장 상황에 따라 동적으로 조정할 수 있습니다 (예를 들어, 변동률 수준, 트렌드 강도) 다른 시장 환경에 더 잘 적응하기 위해 고정된 2.0 대신 사용하십시오.
이윤 목표를 추가합니다.: 현재 전략은 단지 중지 손실과 교차 탈퇴 조건으로, ATR 또는 다른 지표에 기반한 수익 목표를 추가하여 부분적인 수익 잠금을 달성하는 것을 고려할 수 있습니다.
시간 필터를 추가합니다.: 전략은 이미 날짜 창 필터를 가지고 있지만, 특정 거래 시기가 비효율적이거나 변동성이 높은 기간을 피하기 위해 더욱 정교화 할 수 있습니다.
자금 관리 최적화: 현재 전략은 계좌의 자금 100%를 사용하여 거래합니다. ATR 기반의 포지션 크기 조정이나 켈리 가이드라인과 같은 더 세밀한 포지션 관리 방법을 고려할 수 있습니다.
자기 적응적 변동률 추적을 가진 해파리 돌파 거래 전략은 고전적인 기술 분석 도구와 현대적 위험 관리 방법을 결합한 정량 거래 시스템이다. 그것은 윌리엄스 해파리 선 지표를 통해 트렌드 방향을 식별하고, ATR 중지 메커니즘을 사용하여 위험을 제어한다. 이 조합은 해파리 선의 트렌드 식별의 장점을 이용하는 동시에, ATR 적응 중지를 통해 전통적인 고정 중지의 결함을 해결한다.
전략의 주요 장점은 신호의 명확성과 위험 관리의 유연성이지만, 지연성과 흔들림 시장의 부실성 같은 문제도 있다. 확인 지표를 추가하고, 진입 시기를 최적화하고, ATR 배수를 동적으로 조정하는 등의 방법으로 전략의 안정성과 수익성을 더욱 높일 수 있다.
중장기적 트렌드를 추구하는 트레이더에게 이것은 고려할 가치가 있는 기본 전략 프레임워크이며, 개인의 거래 스타일과 시장 특성에 따라 더욱 커스터마이징되고 최적화될 수 있다.
/*backtest
start: 2024-08-06 00:00:00
end: 2025-08-04 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
*/
//@version=6
strategy("AI - Williams Alligator Strategy (ATR Stop-Loss)", overlay=true, calc_on_every_tick=false, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3, pyramiding=1, margin_long=0, margin_short=0, fill_orders_on_standard_ohlc=true)
// ───────────── Date window ─────────────
timeOK = true
// ───────────── Alligator SMMA helper ─────────────
smma(src, length) =>
var float s = na
s := na(s[1]) ? ta.sma(src, length) : (s[1] * (length - 1) + src) / length
s
// ───────────── Inputs ─────────────
jawLength = input.int(13, minval=1, title="Jaw Length")
teethLength = input.int(8, minval=1, title="Teeth Length")
lipsLength = input.int(5, minval=1, title="Lips Length")
jawOffset = input.int(0, title="Jaw Offset")
teethOffset = input.int(0, title="Teeth Offset")
lipsOffset = input.int(0, title="Lips Offset")
// ───────────── ATR Stop-Loss inputs ─────────────
atrPeriod = input.int(14, title="ATR Period for Stop-Loss")
atrMult = input.float(2.0, title="ATR Multiplier for Stop-Loss", step=0.1, minval=0.1)
atrValue = ta.atr(atrPeriod)
// ───────────── Lines ─────────────
jaw = smma(hl2, jawLength)
teeth = smma(hl2, teethLength)
lips = smma(hl2, lipsLength)
// ───────────── Plots (offsets forced to 0) ─────────────
plot(jaw, title="Jaw", color=#2962FF, offset=0)
plot(teeth, title="Teeth", color=#E91E63, offset=0)
plot(lips, title="Lips", color=#66BB6A, offset=0)
// ───────────── Trading logic ─────────────
longCondition = timeOK and ta.crossover(lips, jaw)
exitCondition = timeOK and (ta.crossunder(lips, jaw))
// ───────────── Alerts ─────────────
alertcondition(longCondition, title="Buy Signal", message="Alligator Buy Signal: Lips crossed above Jaw")
alertcondition(exitCondition, title="Exit Signal", message="Alligator Exit Signal: Lips crossed below Jaw")
alertcondition(strategy.position_size > 0 and close <= strategy.position_avg_price - atrMult * atrValue, title="ATR Stop-Loss Hit", message="ATR Stop-Loss Triggered: Position closed")
if longCondition
strategy.entry("Long", strategy.long)
if strategy.position_size > 0
stopPrice = strategy.position_avg_price - atrMult * atrValue
strategy.exit("ATR SL", "Long", stop=stopPrice)
if exitCondition
strategy.close("Long")