Процентная стратегия остановки потерь - это стратегия, которая устанавливает и корректирует ордера на остановку потерь на основе процента цены инструмента.
Эта стратегия устанавливает процент для длинной позиции, отслеживающей стоп-лосс, с помощью входных параметров, таких как 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)