
이 전략은 동적으로 계산된 후속 손실 메커니즘을 기반으로, 주식 가격의 최고 가격과 최저 가격에 따라 긴 포지션과 짧은 포지션의 손실 라인을 설정한다. 가격이 스톱 손실 라인을 만질 때, 현재의 포지션을 청산하고, 반대 방향으로 새로운 포지션을 열는다. 전략은 간단하고 이해하기 쉽고, 개별 위험을 효과적으로 제어한다.
이 전략은 다음과 같은 몇 가지 단계를 통해 이루어집니다.
이 전략의 기본적인 동작 논리는 다음과 같습니다. 가격이 동작할 때, 중지 라인은 지속적으로 업데이트됩니다. 따라서 동적 추적이 가능합니다. 이러한 추적 중지 방법을 통해, 단일 손실을 효과적으로 제어 할 수 있습니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
전체적으로 보면, 이 전략은 간단한 후속 손실 메커니즘을 통해 포지션을 효과적으로 관리할 수 있으며, 전형적인 위험 관리 전략이다.
이 전략에는 몇 가지 위험도 있습니다.
이러한 위험은 계산주기를 조정하거나 슬라이드폭을 적절히 줄이는 등의 방법으로 최적화하여 스톱 라인 설정을 더 합리적으로 만들 수 있습니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이 거래 전략은 간단한 추적 손실 방법을 통해 포지션의 동적 관리를 구현한다. 전략은 이해하기 쉽고 구현할 수 있으며, 단독 손실을 효과적으로 제어할 수 있다. 우리는 전략의 장점, 가능한 위험 및 후속 최적화 방향을 분석했다.
/*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)