Стратегия постепенного прекращения потерь

Автор:Чао Чжан, Дата: 2023-11-13 17:29:41
Тэги:

img

Обзор

Стратегия постепенного движения стоп-лосса - это простая, но очень полезная стратегия, которая напоминает вам постепенно поднимать стоп-лосс по мере роста цен.

Принципы

Стратегия сначала устанавливает начальный стоп-лосс на 95% от цены входа при занятии длинной позиции. Затем определяет несколько более высоких уровней стоп-лосса на 100%, 105%, 110% и т. д. от цены входа. Стратегия проверяет, прорвался ли самый низкий минимум за последние 7 дней через предыдущий уровень стоп-лосса. Если да, то стоп-лосс устанавливается на этот более высокий уровень. Таким образом, по мере роста цен стоп-лосс также постепенно поднимается.

В частности, стратегия определяет 8 уровней стоп-лосса на 95%, 100%, 105%, 110%, 115%, 120%, 125%, 130% от входной цены. Она проверяет, находится ли наименьший минимум за последние 7 дней выше следующего уровня стоп-лосса. Если да, то стоп-лосс устанавливается на этот более высокий уровень.

Например, если цена входа составляет 100 долларов, то начальный стоп-лосс составляет 95 долларов. Если низкий минимум за последние 7 дней поднимается до 105 долларов, выше следующего стоп-лосса в 100 долларов, то стоп-лосс устанавливается на 100 долларов. Если он продолжает расти до 115 долларов, то стоп-лосс устанавливается на 105 долларов и так далее.

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

Преимущества

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

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

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

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

Риски

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

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

Улучшения

Стратегия может быть улучшена следующими способами:

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

  2. Оптимизировать параметр периода обратной связи для наименьшего минимума, например, 5 или 10 дней, чтобы адаптироваться к различным волатильностям.

  3. Увеличить количество уровней остановки для более постепенного движения.

  4. Добавьте логику, чтобы также поднять уровень прибыли.

  5. Автоматизировать операции по модификации стоп-лосса для снижения сложности и рисков задержки.

  6. Добавьте предупреждения о нарушениях стоп-лосса, чтобы трейдеры не пропустили такие события.

Заключение

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


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

///Moving Stops Script///
///by ShanghaiCryto///

///A simple, but very useful, script that reminds you to move up your stop losses as price trends upwards. ///
///The sma entry is just stock code to demonstrate how the stop works.///
///Doesn't throw off your backtesting the way a trailing stop does.///


strategy("Move Up Stops", overlay=true)

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

first_stop = strategy.position_avg_price * .95
second_stop = strategy.position_avg_price 
third_stop = strategy.position_avg_price * 1.05
fourth_stop = strategy.position_avg_price * 1.1
fifth_stop = strategy.position_avg_price * 1.15
sixth_stop = strategy.position_avg_price * 1.2
seventh_stop = strategy.position_avg_price * 1.25
eighth_stop = strategy.position_avg_price * 1.3

move_trigger = lowest(low,7)

first_check = na
first_check := move_trigger > second_stop ? second_stop : first_stop

second_check = na
second_check := move_trigger > third_stop ? third_stop : first_check

third_check = na
third_check := move_trigger > fourth_stop ? fourth_stop : second_check

fourth_check = na
fourth_check := move_trigger > fifth_stop ? fifth_stop : third_check

fifth_check = na
fifth_check := move_trigger > sixth_stop ? sixth_stop : fourth_check

sixth_check = na
sixth_check := move_trigger > seventh_stop ? seventh_stop : fifth_check

stop_level = na
stop_level := move_trigger > eighth_stop ? eighth_stop : sixth_check

strategy.exit("Stop Loss","My Long Entry Id", stop=stop_level)

plot(stop_level, color=red)

Больше