이 전략은 Bitmex
이 전략은 주로 3가지 지표를 사용합니다. 최고 가격, 최저 가격 및 닫기 가격입니다. 이 전략은 먼저 긴 포지션과 짧은 포지션의 스톱 로스 범위를 정의합니다.longoffset
긴 후속 정지 거리를 위해,shortoffset
짧은 후속 정지 거리를 위해 기본 긴 거리는 228.5 포인트이고 짧은 거리는 243.5 포인트입니다.
그 다음 전략은 다음 논리를 사용하여 후속 정지 가격을 조정합니다.trailstop
:
만약 최신 촛불의 최저가격이 이전 촛불의 트레일링 스톱 가격보다 낮고, 그 이전 촛불의 최저가격이 이전 2개의 촛불의 트레일링 스톱 가격보다 높다면, 현재 촛불의 트레일링 스톱 가격은 = 클로즈 가격 + 짧은 트레일링 스톱 거리
최신 촛불의 가장 높은 가격이 이전 촛불의 후속 스톱 가격보다 높고 그 이전의 촛불의 가장 높은 가격이 이전 2 개의 촛불의 후속 스톱 가격보다 낮다면, 현재 촛불의 후속 스톱 가격 = 닫기 가격 - 긴 후속 스톱 거리
최신 촛불의 가장 높은 가격이 이전 촛불의 후속 스톱 가격보다 높다면, 현재 촛불의 후속 스톱 가격 = max ((전기 촛불의 후속 스톱 가격, 최신 촛불의 가장 높은 가격 - 긴 후속 스톱 거리)
최신 촛불의 최저 가격이 이전 촛불의 후속 정지 가격보다 낮다면 현재 촛불의 후속 정지 가격 = min ((전기 촛불의 후속 정지 가격, 최신 촛불의 최저 가격 + 짧은 후속 정지 거리)
그렇지 않으면 현재 촛불의 트레일링 스톱 가격 = 닫기 가격
이것은 역동적인 정지를 달성하기 위해 가장 높고 가장 낮은 시장 가격의 변화에 따라 후속 정지 가격을 동적으로 조정합니다.
이 전략의 가장 큰 장점은 진정으로 역동적이고 유연한 트레이링 스톱의 구현이다. 고정 스톱 손실 가격에 비해, 동적 트레이닝은 시장 변동에 따라 스톱 손실 범위를 조정하여 너무 큰 스톱 거리에 의한 불필요한 손실을 피하며, 거리가 너무 작을 때 정상적인 가격 변동에 의해 중단되는 것을 피합니다. 이것은 불필요한 손실을 줄이는 동시에 조기 스톱의 가능성을 줄입니다.
또 다른 장점은 스톱 로스 거리가 사용자 정의되고 최적화 될 수 있다는 것입니다. 사용자는 다른 제품 및 거래 스타일의 특성에 따라 자신에게 적합한 스톱 로스 범위를 선택할 수 있습니다. 이것은 전략을 더 다양한 시나리오에 적용 할 수 있습니다.
마지막으로, 이 전략의 스톱 로스 논리는 간단하고 명확하고 이해하기 쉽고 다른 전략에 추가 개발 및 통합하기가 쉽습니다. 이것은 또한 그것의 장점 중 하나입니다.
이 전략의 주요 위험은 다음과 같습니다.
동적 스톱은 정상적인 시장 조건에서 손실을 줄일 수 있지만 큰 사건이나 극단적인 시장 조건에 견딜 수 없습니다. 이것은 본질적인 한계입니다.
후속 정지 거리가 너무 커 설정되면 더 큰 손실이 발생할 수 있습니다. 너무 작게 설정되면 조기에 정지 할 수 있습니다. 설정은 제품 특성에 따라 신중한 테스트와 최적화가 필요합니다.
포지션 개척 후 첫 번째 몇 개의 촛불에서 후속 정지 메커니즘으로 인해 정지 거리는 너무 커서 이 기간 동안 추가 위험을 초래할 수 있습니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
다른 제품에 대한 매개 변수 최적화: 변동성, 내일 범위 및 다른 메트릭을 기반으로 합리적인 긴 및 짧은 트레일링 스톱 거리를 선택하십시오. 이것은 가장 중요한 방향입니다.
포지션 개척 후 초기 촛불에서 추가 위험을 줄이십시오: 너무 큰 거리를 피하기 위해 첫 번째 촛불에서 후속 정지 거리의 조정 범위를 제한하십시오.
거래량 지표를 포함합니다. 예를 들어, 거래량 급증 시 정지 거리를 줄여서 중재에 의해 중단되는 것을 피하십시오.
다른 진입/출출 전략과 결합: 이 전략의 주요 기능은 트레일링 스톱 로스입니다. 진입 및 출출 규칙이있는 다른 전략과 통합 될 수 있습니다.
이 전략은 가장 높고 가장 낮은 시장 가격의 변화에 따라 동적 인 후속 스톱 로스를 구현합니다. 정상적인 시장 조건 하에서 불필요한 손실을 효과적으로 줄일 수 있으며 고정된 거리가 너무 크고 작다는 문제를 해결합니다. 주요 최적화 방향은 다른 제품에 적합한 매개 변수를 테스트하고 포지션을 열고 초기 촛불에서 위험을 제어합니다. 스톱 로스 논리는 간단하고 명확하며 이해하기 쉽고 다른 전략에 통합하거나 스톱 로스 도구로 독립적으로 사용합니다.
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //By River strategy("BitMex Trailing Stop Strategy", overlay=true) longoffset = input(defval=228.5, title="Long Trailing Stop Size", type=float, minval=0.5, maxval=1000, step=0.5) shortoffset = input(defval=243.5, title="Short Trailing Stop Size ", type=float, minval=0.5, maxval=1000, step=0.5) hiprice = request.security(syminfo.tickerid, "1", high) loprice = request.security(syminfo.tickerid, "1", low) price = request.security(syminfo.tickerid, "1", close) trailstop = price trailstop := (loprice <= trailstop[1] and loprice[1] >= trailstop[2]) ? price + shortoffset : ((hiprice >= trailstop[1] and hiprice[1] <= trailstop[2]) ? price - longoffset : (hiprice > trailstop[1] ? max(hiprice - longoffset, trailstop[1]) : (loprice < trailstop[1] ? min(loprice + shortoffset, trailstop[1]) : price))) trailcol = trailstop > price ? red : green plot(trailstop, color=trailcol) longCondition = trailcol == green alertcondition(longCondition, "Long Stop alert", "BUY") if (longCondition) strategy.entry("Long", strategy.long) shortCondition = trailcol == red alertcondition(shortCondition, "Short alert", "SELL") if (shortCondition) strategy.entry("Short", strategy.short)