동적 트레일링 스톱 로스 전략

저자:차오장, 날짜: 2024-01-31 15:05:30
태그:

img

전반적인 설명

이 전략은 주식의 가장 높고 가장 낮은 가격에 따라 긴 및 짧은 포지션에 대한 스톱 로스 라인을 설정하는 동적 트레일링 스톱 로스 메커니즘을 기반으로합니다. 가격이 스톱 로스 라인을 달성하면 현재 포지션을 닫고 반대 방향으로 새로운 포지션을 여는 것입니다. 전략은 단일 거래 위험을 제어하는 데 간단하고 효과적입니다.

원칙

이 전략의 주요 단계는 다음과 같습니다.

  1. 입력 매개 변수: 긴 또는 짧은 이동을 선택, 기간에 대한 길이를 설정, 후속 정지 미끄러움
  2. 가장 높고 가장 낮은 가격을 계산: 입력 길이를 기반으로 가장 높고 가장 낮은 가격을 얻을
  3. 후속 스톱 로스 라인을 계산합니다: 긴, 가장 낮은 가격 미소 슬라이딩; 짧은, 가장 높은 가격 더 슬라이딩
  4. 오픈 포지션과 클로즈 포지션: 가격이 스톱 로스 라인에 도달하면 현재 방향 포지션을 닫고 반대 방향 포지션을 열고

위는 전략의 기본 논리입니다. 가격이 움직일 때, 스톱 로스 라인은 동적 추적을 위해 업데이트됩니다. 스톱 로스를 추적함으로써 거래 당 손실을 효과적으로 제어 할 수 있습니다.

이점 분석

이 전략의 주요 장점:

  1. 단순하고 깨끗한 논리, 이해하기 쉽고 실행하기 쉬운
  2. 동적 트래일링 스톱 로스 컨트롤 단일 거래 손실
  3. 긴 또는 짧은 선택의 유연성, 다른 시장 환경에 적응
  4. 최적화를 위해 기간 및 미끄러짐의 사용자 정의

요약하자면, 간단한 트레일링 스톱 로스 메커니즘을 통해 이 전략은 포지션을 효과적으로 관리할 수 있으며 전형적인 리스크 관리 전략입니다.

위험 분석

또한 몇 가지 위험 요소가 있습니다.

  1. 가격 변동은 종종 스톱 로스를 유발할 수 있으며, 과도한 거래로 이어질 수 있습니다.
  2. 부적절한 기간 설정은 부적절한 스톱 손실 라인을 일으킬 수 있습니다.
  3. 과도한 미끄러짐 설정은 느슨한 스톱 손실을 초래할 수 있으며, 시간 내에 손실을 멈출 수 없습니다.

이러한 위험은 기간을 조정하여 합리적으로 미끄러짐을 줄여 더 합리적인 스톱 로스 라인을 만들어서 최적화 할 수 있습니다.

최적화 방향

이 전략은 다음과 같은 측면에서 업그레이드 될 수 있습니다.

  1. 동적 스톱 손실 라인 조정에 최적화를 추가, 부적절한 긴 또는 느슨한 스톱 손실 라인을 피
  2. 부적절한 시간에 포지션을 열지 않도록 오픈 포지션 조건을 추가합니다.
  3. 더 많은 수익 잠재력을 가진 트렌드를 따르는 트렌드 지표를 포함
  4. 위험 수준에 따라 포지션을 동적으로 조정하기 위해 포지션 크기를 추가합니다.

결론

이 거래 전략은 간단한 트레일링 스톱 로스 방법을 통해 동적인 포지션 관리를 실현합니다. 이해 및 구현이 쉽고 단일 거래 손실을 효과적으로 제어 할 수 있습니다. 우리는 장점, 잠재적 위험 및 미래 최적화 방향을 분석했습니다. 결론적으로 이것은 매우 전형적이고 실용적인 위험 관리 전략입니다.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's Trailing-Stop Strategy", shorttitle = "Trailing", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
length = input(20, minval = 1)
shift = input(0.0, minval = 0, title = "Trailing Stop")
background = input(false)

//Levels
max = highest(high, length)
min = lowest(low, length)

//Trailing
size = strategy.position_size
longtrailing = 0.0
shorttrailing = 0.0
longtrailing := size <= 0 ? min - ((min / 100) * shift) : max(min - ((min / 100) * shift), longtrailing[1])
shorttrailing := size >= 0 ? max + ((max / 100) * shift) : min(max + ((max / 100) * shift), shorttrailing[1])
trailing = size <= 0 ? shorttrailing : longtrailing
col = size == size[1] ? size > 0 ? color.red : color.lime : na
plot(trailing, color = col, linewidth = 2, transp = 0)

//Background
bgcol = background ? size > 0 ? color.lime : color.red : na
bgcolor(bgcol, transp = 80)

if trailing > 0 and size <= 0
    strategy.entry("Long", strategy.long, needlong ? na : 0, stop = trailing)
if trailing > 0 and size >= 0
    strategy.entry("Short", strategy.short, needshort ? na : 0, stop = trailing)

더 많은