Двухнаправленная стратегия обратного движения - это простая стратегия торговли биткойнами, которая устанавливает ордера на покупку стоп-лосса на основе торгового диапазона предыдущего дня.
Стратегия сначала рассчитывает диапазон торговли предыдущего дня, который представляет собой самую высокую цену минус самую низкую цену. После открытия текущего дня она оценивает, является ли цена выше или ниже цены закрытия предыдущего дня. Если она выше, цена покупки стоп-лосса устанавливается на цену открытия плюс 0,6 раза диапазон предыдущего дня. Если она ниже, цена покупки стоп-лосса устанавливается на цену открытия плюс 1,8 раза диапазон предыдущего дня. Стратегия откроет длинную позицию, когда будет задействован стоп-лосс, и закрыт позицию до конца текущего дня.
В частности, стратегия содержит два правила входа:
Если цена открытия текущего дня выше, чем цена закрытия предыдущего дня (longCond1 удовлетворен), и в течение периода обратного теста (window() удовлетворен, установите покупку со стоп-лосом по цене открытия плюс 0,6 раза диапазон предыдущего дня (стратегия.long1).
Если цена открытия текущего дня ниже цены закрытия предыдущего дня (longCond2 удовлетворен), и в окне обратного теста, установить покупку с остановкой по цене открытия плюс 1,8 раза диапазон предыдущего дня (стратегия.long2).
Стратегия откроет длинную позицию, когда один из вышеуказанных стоп-потерь будет задействован, и закрыт позицию до конца дня с помощью strategy.close_all (().
Стратегия двунаправленной реверсии имеет следующие преимущества:
Стратегия учитывает как вверх, так и вниз, фиксируя переломные движения в обоих направлениях.
Контролируемый риск со стоп-лосом. Предварительно определенный стоп-лосс эффективно ограничивает максимальную потерю на одну сделку.
Предотвращает риск на ночь, закрывая все позиции ежедневно.
Высокая частота торговли для краткосрочной торговли.
Простая и понятная логика, легко понятная и реализуемая.
Тем не менее, есть также некоторые риски, которые следует отметить для стратегии:
Если стоп-лосс слишком тесный, он может быть преждевременно остановлен в экстремальных рыночных условиях.
Высокая частота торгов может повлечь за собой значительные затраты на транзакции.
Стоп-потеря, как правило, возникает чаще в условиях сбивания.
Стратегия лучше подходит для переворотов, не способных получить прибыль от продолжения тренда.
Некоторые способы улучшения стратегии:
Оптимизируйте расстояние стоп-лосса. Испытывайте различные уровни стоп-лосса, чтобы найти оптимальные точки стоп-лосса. Также учитывайте динамические стопы, основанные на волатильности рынка.
Добавьте фильтры трендов. Проверьте тенденции более крупных временных рамок перед входом, чтобы избежать контратендных сделок.
Улучшить правила ввода. Подумайте о добавлении показателей объема или импульса для повышения точности ввода.
Введите управление позициями. Проверьте остановки или тренд после выхода, чтобы использовать прибыльные тенденции.
Проверить различные продукты. Стратегия может работать лучше с более волатильными продуктами.
Оптимизируйте параметры, такие как остановки и записи, используя алгоритмы ML.
В целом, двунаправленная стратегия обратного движения является очень простой и практичной концепцией краткосрочной стратегии. Она может эффективно использовать возможности обратного движения как вверх, так и вниз. Однако риски, такие как расстояние стоп-лосса и правила входа, должны быть оптимизированы для снижения рисков и повышения надежности.
/*backtest start: 2023-10-02 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Simple strat", shorttitle="Simple Strat", overlay=true) // X001TK R1 strategy // // // This strategy combines the special approach in previous daily range trading // // This strategy goes long on stop buy order which is calculated as previous day range // multiplied by special number. // // This pure strategy does not have any // stop loss or take profit money management logic. // // Exit rule is simple. We close the position on market close or next day open // // // // // Input length = input(10, minval=1) stopLossPercent=input(1.1,"Stop Loss Percent") profitPercent=input(9,"Profit Percent") // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2000) ToMonth = input(defval = 3, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2029, title = "To Year", minval = 2017) ses_cls = input(defval=true, title="End of Session Close Out?") // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" // === STRATEGY === // conditions longCond1 = close>close[1] longCond2 = close<close[1] strategy.entry("long1", strategy.long, when=longCond1==true and window()==true, stop=close+(high - low)*0.6) strategy.entry("long2", strategy.long, when=longCond2==true and window()==true, stop=close+(high - low)*1.8) strategy.close_all(when=ses_cls) // === /STRATEGY ===