Процентная стратегия остановки потерь

Автор:Чао Чжан, Дата: 2024-01-08 17:12:46
Тэги:

img

Обзор

Процентная стратегия остановки потерь - это стратегия, которая устанавливает и корректирует ордера на остановку потерь на основе процента цены инструмента.

Логика стратегии

Эта стратегия устанавливает процент для длинной позиции, отслеживающей стоп-лосс, с помощью входных параметров, таких как 3%. После открытия позиции она вычисляет цену отслеживающей стоп-лосс в режиме реального времени.

  1. Если цена превышает цену входа*(1+процент остановки потери), цена остановки потери корректируется по цене входа для достижения безубыточности.

  2. При цене ниже вышеуказанного уровня цена остановки потери является ценой входа* ((1-процентная остановка потери).

Это позволяет достичь равновесия стоп-лосса, когда цена достигает определенного уровня прибыли, избегая потери всех прибылей за счет потерь, не допуская слишком агрессивных стоп-лосса, которые могут быть выбиты нормальными колебаниями цен.

После длинного хода он устанавливает ордера на остановку потери, чтобы реализовать логику остановки потери.

Анализ преимуществ

Самое большое преимущество этой стратегии заключается в том, что она может реализовать стоп-потерю после получения прибыли через стоп-потерю, независимо от того, как будет развиваться рынок, по крайней мере, основной капитал может быть сохранен, чтобы избежать потерь.

Кроме того, стоп-лосс этой стратегии относительно мягкий. диапазон стоп-лосса не слишком велик, что может предотвратить его остановку нормальными колебаниями цен по сравнению с фиксированным стоп-лосом. Он более гибкий и интеллектуальный.

Анализ рисков

Основной риск этой стратегии заключается в том, что если процент стоп-лосса установлен неправильно. Если он установлен слишком маленьким, будет трудно реализовать стоп-потерю равновесия. Если он установлен слишком большим, его легко остановить нормальными колебаниями цены. Поэтому правильный процент стоп-лосса требует тщательного тестирования и оценки.

Еще один риск заключается в том, что на ненормальных рынках цены могут внезапно значительно разрываться. В этом случае цена стоп-лосса может не быть в состоянии вовремя обновляться, что приводит к недействительной стоп-лос. Но вероятность относительно мала.

Руководство по оптимизации

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Добавьте правила выхода, такие как кросс смерти, цена прорыв через SMA и т.д., чтобы сделать стратегию более всеобъемлющей.

  2. Добавьте динамический механизм корректировки процента стоп-лосса, чтобы автоматически оптимизировать диапазон стоп-лосса в различных рыночных условиях.

  3. Добавьте стратегии выхода к позициям выхода после того, как цены пройдут определенный диапазон, чтобы закрепить прибыль.

  4. Исследовать различия параметров процента стоп-лосса на различных инструментах, установить механизм оптимизации самоприспособления параметров.

Заключение

Процентная стратегия остановки потерь в целом очень практична, которая может эффективно реализовать остановку потерь после получения прибыли, чтобы избежать потерь.


/*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)



Больше