
트래킹 스톱 손실 비율 전략은 거래 품종 가격 비율을 기반으로 스톱 손실 명령을 설정하고 조정하는 전략이다. 가격이 특정 수익 수준에 도달 한 후 스톱 손실 명령을 입시 가격으로 조정하여 보장 스톱 손실을 달성 할 수 있습니다.
이 전략은 입력 파라미터를 통해 장기 포지션 추적 손실의 비율을 설정합니다. 예를 들어 3%입니다. 포지션을 열고 나면 실시간으로 추적 손실 가격을 계산합니다. 계산 방법은 다음과 같습니다.
가격이 입시 가격을 초과할 때*(1+ 추적 중지 비율) 는 중지 가격을 입수 가격으로 조정하여 보증금을 달성합니다.
상술한 수준보다 낮은 가격에서는, 입수 가격으로 정지합니다.*(1- 추적 중지 손실 비율)
이렇게 하면 가격이 어느 정도 이윤을 달성했을 때 보증된 상실을 실현할 수 있고, 이윤의 모든 수익이 손실되는 것을 방지할 수 있으며, 또한 너무 급진적인 상실을 가격의 정상적인 변동에 의해 상쇄되는 것을 방지할 수 있다.
전략은 또한 확인을 위해 스톱 로즈 가격을 추적하는 그래프를 그리며, 다중 거래만 할 수 있도록 설정했다. 금 포크 때 더 많이하고, 사다리 때 평점. 더 많이 한 후 스톱 로즈를 추적하여 전략의 스톱 로직을 구현했다.
이 전략의 가장 큰 장점은 스톱로스를 추적하여 수익을 달성할 수 있다는 점이며, 사후 시장이 어떻든 적어도 자본을 보존하고 손실을 피할 수 있다는 점입니다. 이것은 많은 투자자들에게 중요한 의미를 갖는다.
또한, 이 전략의 중지 손실은 비교적 온화하고, 추적 중지 손실의 폭은 너무 크지 않으며, 가격의 정상적인 변동이 중단되는 것을 방지할 수 있다. 이것은 일반적인 고정 중지 손실에 비해 더 유연하고 지능적이다.
이 전략의 주요 위험은 중지 범위의 설정이 부적절하다는 것입니다. 설정이 너무 작다면, 보전 중지를 달성하는 것은 어렵습니다. 설정이 너무 커지면, 가격이 정상적으로 변동하면 상위 경기에 빠질 수 있습니다. 따라서 적절한 중지 범위를 신중하게 테스트하고 평가해야합니다.
또 다른 위험은 비정상적인 시장에서 가격이 급격히 급격히 상승할 때, 스톱스피가 업데이트되지 않아 스톱스가 유효하지 않게 될 수 있다. 그러나 그 확률은 낮다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이 전략은 더 포괄적이기 때문에, 매매 조건, SMA 아래로 떨어지는 것과 같은 규칙을 추가합니다.
스톱 손실 비율의 동적 조정 메커니즘을 추가하여 다양한 시장 환경에서 자동으로 스톱 손실을 최적화합니다.
출장 전략을 추가하고, 가격이 일정 거리를 달릴 때 밖으로 나가서, 수익을 고정한다.
다양한 품종의 스톱 손실 비율 파라미터의 차이를 연구하여 파라미터의 자기 적응 최적화 메커니즘을 구축할 수 있다.
손실 비율을 추적하는 전략은 전체적으로 매우 실용적이며, 이윤 후 자금 중단을 효과적으로 달성하여 손실을 방지 할 수 있습니다. 이 전략의 최적화 공간은 넓고, 효과를 높이기 위해 추가 연구를 할 가치가 있습니다.
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © osmaras
// based on https://kodify.net/tradingview/orders/percentage-trail/
//@version=5
strategy("Break even stop loss (% of instrument price)", overlay=true)
// Configure trail stop level with input options (optional)
longTrailPerc = input.float(defval=3.0,step=0.1,title="Trail Long Loss (%)")* 0.01
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
// Determine trail stop loss prices
longStopPrice = 0.0
lastEntryPrice = strategy.opentrades.entry_price(strategy.opentrades - 1)
longStopPrice := if (strategy.position_size > 0 and close > (lastEntryPrice * (1 + longTrailPerc)))
stopValue = lastEntryPrice
math.max(stopValue, longStopPrice[1])
else
longStopPrice := if (strategy.position_size > 0)
stopValue = lastEntryPrice * (1 - longTrailPerc)
math.max(stopValue, longStopPrice[1])
else
0
// Plot stop loss values for confirmation
plot(series=(strategy.position_size > 0) ? longStopPrice : na,
color=color.fuchsia, style=plot.style_cross,
linewidth=2, title="Long Trail Stop")
// set strategy only long
strategy.risk.allow_entry_in(strategy.direction.long)
// Submit entry orders
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
if (shortCondition)
strategy.close("Long")
// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
strategy.exit(id="Stop Loss", stop=longStopPrice)