Эта стратегия направлена на использование функции остановки задержки Bitmex
Стратегия в основном использует 3 показателя: самую высокую цену, самую низкую цену и цену закрытия.longoffset
для длинной задержки иshortoffset
Долгая дистанция по умолчанию составляет 228,5 балла, а короткая - 243,5 балла.
Затем стратегия использует следующую логику для корректировки цены остановкиtrailstop
:
Если самая низкая цена последней свечи ниже цены последней свечи, а самая низкая цена свечи до нее выше цены последней две свечи, то цена последней свечи = цена закрытия + расстояние последней остановки
Если самая высокая цена последней свечи выше цены последней свечи, а самая высокая цена свечи до нее ниже цены последней две свечи, то цена последней свечи = цена закрытия - длинное расстояние последней остановки.
Если самая высокая цена последней свечи выше цены последней свечи, то цена последней свечи = max ((предыдущая цена последней свечи, самая высокая цена последней свечи - длинное расстояние последней остановки)
Если самая низкая цена последней свечи ниже цены последней свечи, то цена последней свечи = min ((предыдущая цена последней свечи, самая низкая цена последней свечи + короткое расстояние последней остановки)
В противном случае текущая цена остановки отслеживания свечи = цена закрытия
Это позволяет динамически корректировать цену остановки на основе изменений в самых высоких и самых низких рыночных ценах для достижения динамических остановок.
Самым большим преимуществом этой стратегии является реализация действительно динамичных и гибких стоп-стопов. По сравнению с фиксированными ценами стоп-лосса, динамический стоп-лосс может регулировать диапазон стоп-лосса на основе колебаний рынка, избегая ненужных потерь из-за слишком больших расстояний остановки, а также избегая остановки нормальными колебаниями цен, когда расстояние слишком мало. Это уменьшает ненужные потери, а также уменьшает вероятность преждевременных остановок.
Еще одно преимущество заключается в том, что расстояние стоп-лосса настраивается и оптимизируется. Пользователи могут выбирать диапазоны стоп-лосса, подходящие для себя в соответствии с характеристиками различных продуктов и стилей торговли. Это позволяет применять стратегию к более широкому спектру сценариев.
Наконец, логика стоп-лосса этой стратегии проста и ясна, легко понятна, и ее легко развивать и интегрировать в другие стратегии.
Основными рисками этой стратегии являются:
Динамические остановки могут только уменьшить потери в нормальных рыночных условиях, но не могут выдержать крупные события или экстремальные рыночные условия.
Если расстояние от заднего стопа установлено слишком большим, это может привести к большим потерям. Если установлено слишком мало, это может привести к преждевременному остановке. Настройка требует тщательного тестирования и оптимизации на основе характеристик продукта.
В первые несколько свечей после открытия позиции, из-за механизма отставания, дистанция отставания может быть слишком большой, что создает дополнительный риск в течение этого периода.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизация параметров для различных продуктов: Выберите разумные длинные и короткие расстояния остановки на основе волатильности, внутридневного диапазона и других показателей для различных продуктов.
Уменьшить дополнительный риск в ранних свечах после открытия позиций: Ограничьте диапазон регулировки расстояний остановки в первых нескольких свечах, чтобы избежать слишком больших расстояний.
Включайте индикаторы объема торговли: например, сократите расстояние остановки во время скачков объема, чтобы избежать остановки арбитражем.
Комбинировать с другими стратегиями входа/выхода: основная функция этой стратегии заключается в отслеживании стоп-лосса.
Эта стратегия реализует динамический отслеживающий стоп-лосс, основанный на изменениях в самых высоких и самых низких рыночных ценах. Она может эффективно уменьшить ненужные потери в нормальных рыночных условиях и решает проблему слишком больших или маленьких фиксированных расстояний. Ключевыми направлениями оптимизации являются тестирование подходящих параметров на разных продуктах и контроль рисков в ранних свечах после открытия позиций. Логика стоп-лосса проста и понятна, легко понять и интегрировать в другие стратегии или использовать самостоятельно в качестве инструмента стоп-лосса.
/*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)