На основе динамической стратегии скользящего стоп-лосса


Дата создания: 2024-02-27 15:02:34 Последнее изменение: 2024-02-27 15:02:34
Копировать: 0 Количество просмотров: 331
1
Подписаться
1166
Подписчики

На основе динамической стратегии скользящего стоп-лосса

Обзор

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

Стратегический принцип

В этой стратегии используются три основных показателя: наивысшая цена, наименьшая цена и цена закрытия. Сначала стратегия определяет пределы остановки для длинных и коротких позиций, то есть многоголовое отслеживание остановки.longoffsetи пустой трассировщик стоп-дальностиshortoffset│в том числе длинные позиции расстояние по умолчанию 228,5 пунктов, короткие позиции расстояние по умолчанию 243,5 пунктов│

Затем стратегия применяет следующую логику, чтобы отследить ценовую остановкуtrailstop:

  • Минимальная цена последней K-линии ниже отслеживаемой стоп-цены предыдущей K-линии, и минимальная цена предыдущей K-линии выше отслеживаемой стоп-цены предыдущих двух K-линий, то текущая K-линия отслеживаемой стоп-цены = цена закрытия + пустое отслеживание стоп-цены
  • Если максимальная цена последней K-линии выше отслеживаемой остановки предыдущей K-линии, а максимальная цена предыдущей K-линии выше отслеживаемой остановки предыдущих двух K-линий, то текущая K-линия имеет отслеживаемую остановку = закрывающую цену - расстояние отслеживаемой остановки
  • Максимальная цена последней K-линии выше, чем отслеживаемая остановка предыдущей K-линии, тогда отслеживаемая остановка предыдущей K-линии = максимальная величина ((отслеживаемая остановка предыдущей K-линии, максимальная цена последней K-линии - отслеживаемая остановка предыдущей K-линии)
  • Минимальная цена последней K-линии ниже отслеживаемой остановки предыдущей K-линии, тогда отслеживаемая остановка текущей K-линии = минимальная величина ((отслеживаемая остановка предыдущей K-линии, минимальная цена последней K-линии + отслеживаемая остановка коротких позиций)
  • В противном случае, цена остановки отслеживания текущей линии K = цена закрытия

Это позволяет в режиме реального времени отслеживать и отслеживать цены стоп-лосса в зависимости от изменения максимальной и минимальной цены на рынке.

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

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

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

В конце концов, логика стоп-убытков в этой стратегии проста, понятна и легко интегрируется в другие стратегии.

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

Основные риски этой стратегии:

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

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

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

Направление оптимизации

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

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

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

  3. Объединение с объемом торгов: например, снижение стоп-лосса в период увеличения объема торгов, чтобы избежать убытков от арбитража.

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//By River
strategy("BitMex Trailing Stop Strategy", overlay=true)
longoffset = input(defval=228.5, title="Long Trailing Stop Size", type=float, minval=0.5, maxval=1000, step=0.5)
shortoffset = input(defval=243.5, title="Short Trailing Stop Size ", type=float, minval=0.5, maxval=1000, step=0.5)

hiprice = request.security(syminfo.tickerid, "1", high)
loprice = request.security(syminfo.tickerid, "1", low)
price = request.security(syminfo.tickerid, "1", close)

trailstop = price
trailstop := (loprice <= trailstop[1] and loprice[1] >= trailstop[2]) ? price + shortoffset : ((hiprice >= trailstop[1] and hiprice[1] <= trailstop[2]) ? price - longoffset : (hiprice > trailstop[1] ? max(hiprice - longoffset, trailstop[1]) : (loprice < trailstop[1] ? min(loprice + shortoffset, trailstop[1]) : price)))

trailcol = trailstop > price ? red : green
plot(trailstop, color=trailcol)

longCondition =  trailcol == green
alertcondition(longCondition, "Long Stop alert", "BUY")
if (longCondition)
    strategy.entry("Long", strategy.long)
shortCondition = trailcol == red
alertcondition(shortCondition, "Short alert", "SELL")
if (shortCondition)
    strategy.entry("Short", strategy.short)