% 후속 스톱 손실 전략

저자:차오장, 날짜: 2023-09-19 21:18:39
태그:

전반적인 설명

이 전략은 거래 위험을 관리하기 위해 구성 가능한 백분율 트레일링 스톱 로스를 구현합니다. 동적 스톱 로스 추적을 위해 엔트리 가격에서 긴 및 짧은 스톱 로스 백분율을 설정 할 수 있습니다.

전략 논리

가장 중요한 논리는

  1. 입력된 긴 및 짧은 스톱 손실의 비율
  2. 롱: 최저치를 지속적으로 추적하고 스톱 로스 라인을 계산합니다.
  3. 쇼트: 지속적으로 최고치를 추적하고 스톱 로스 라인을 계산합니다.
  4. 가격이 스톱 로스 라인에 닿을 때 진출 포지션

이 전략은 정지 비율, 예를 들어 10%를 사용자 정의 할 수 있습니다. 장기 거래의 경우 정지 라인으로서 낮은 것 이상의 10%를 동적으로 계산합니다. 단위 거래의 경우 높은 것 이하의 10%를 계산합니다.

이런 식으로, 스톱 라인은 위험을 통제하면서 수익 보호를 극대화하기 위해 유리한 방향으로 움직입니다.

장점

  • 수동 개입 없이 자동 후속 중지 손실
  • 역동적인 스톱 라인은 가능한 한 이익을 보호합니다.
  • 각기 다른 도구에 대한 사용자 정의 가능한 스톱 손실 비율
  • 위험 통제와 과대 손실을 줄이는 데 도움이 됩니다.
  • 다른 전략에 쉽게 통합

위험 및 완화

  • 느린 후속은 멈출 수 없는 위험
  • 너무 느슨한 스톱 손실은 손실을 증가시킬 수 있습니다.
  • 스톱 러스 위험은 너무 좁습니다.

완화:

  1. 균형 효과를 위해 중지 비율을 최적화
  2. 시간 기반 정지 같은 다른 정지 유형을 포함
  3. 시장 변동성에 기초한 튜닝 스톱
  4. 정지 일관성 유지, 임의의 변경을 피

더 나은 기회

개선 가능성:

  1. 동적으로 정지 최적화를 위한 기계 학습
  2. 최대 마이너다운 메트릭스를 기반으로 자동 조정
  3. 스톱 배치에 대한 이동 평균과 같은 지표를 포함
  4. 변동성 레지엄에 기초한 다른 구성을 사용
  5. 수익을 차단하기 위해 부분적 중단 후 수익 중지 설정

결론

이 전략은 스톱 손실을 동적으로 조정하는 효과적인 비율 후속 스톱 방법을 제공합니다. 위험을 제어하면서 수익 보호를 극대화합니다. 매개 변수 최적화, 지표 통합을 통해 개선하면 스톱이 더 지능화 될 수 있습니다.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster

//@version=4
strategy("Percent Trailing Stop %", overlay=true)

//ENTER SOME SETUP TRADES FOR TSL EXAMPLE
longCondition = crossover(sma(close, 10), sma(close, 20))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 10), sma(close, 20))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)
    

//TRAILING STOP CODE
trailStop = input(title="Long Trailing Stop (%)", type=input.float, minval=0.0, step=0.1, defval=10) * 0.01

longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - trailStop)
    max(stopValue, longStopPrice[1])
else
    0
shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + trailStop)
    min(stopValue, shortStopPrice[1])
else
    999999

//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=1, title="Long Trail Stop", offset=1, title="Long Trail Stop")
plot(series=strategy.position_size < 0 ? shortStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=1, title="Short Trail Stop", offset=1, title="Short Trail Stop")


//EXIT TRADE @ TSL
if strategy.position_size > 0
    strategy.exit(id="Close Long", stop=longStopPrice)
if strategy.position_size < 0
    strategy.exit(id="Close Short", stop=shortStopPrice)


더 많은