Стратегия переменных свечей является количественной торговой стратегией, которая генерирует торговые сигналы, основанные на точках перемены. Эта стратегия рассчитывает самую высокую цену и самую низкую цену определенного количества свечей на левой стороне, чтобы определить область перемены. Когда цена проходит через область перемены, она инициирует соответствующие длинные или короткие позиции.
Основная логика этой стратегии заключается в том, чтобы рассчитать самую высокую цену из левых 4 свечей как длинный поворот и самую низкую цену из левых 4 свечей как короткий поворот. Правые 2 свечи используются для определения, прорвала ли цена область поворот. Когда цена превышает длинный поворот, идите в длинный. Когда цена падает ниже короткого поворот, идите в короткий.
В частности, стратегия сначала рассчитывает самую высокую ценуswh
В то же время, он рассчитывает самую низкую ценуswl
После определения поворота, он использует правые 2 свечи, чтобы судить, проходит ли цена через область поворота.swh
Если цена нижеswl
- Срочно.
После того, как длинные и короткие сигналы запускаются, он размещает длинные или короткие ордера и устанавливает стоп-лосс за пределами зоны поворота для контроля рисков.
Наибольшее преимущество стратегии Pivot Reversal заключается в том, что она может отслеживать время изменения цены. Когда цена остается в диапазоне в течение длительного времени, она часто колеблется вокруг зоны поворота. Использование стратегии поворота в это время может отслеживать лучшее время изменения цен и приносить прибыль.
По сравнению с другими стратегиями обратного движения, стратегия обратного движения имеет преимущества простоты работы, контролируемых рисков и т. Д. Настройки числа левой и правой свечи могут быть свободно настроены для адаптации к различным продуктам и рыночным условиям. Кроме того, с установкой стоп-лосса за пределами зоны повода, риски могут быть эффективно контролированы.
Основным риском стратегии переворота поворота является неправильное суждение об области поворота. Если левые свечи не могут определить четкую область поворота, прорыв правых свечей может быть неправильным сигналом, который, вероятно, вызовет убытки.
Несмотря на то, что стоп-лосс устанавливается, если возникают ненормальные ситуации, такие как ценовые разрывы или пропуск, стоп-лосс может не обеспечить хорошую защиту.
Чтобы снизить риски, мы можем рассмотреть возможность использования стратегий длинного и короткого хода одновременно, то есть длинного хода, когда цена растет, и короткого хода, когда цена падает, для хеджирования некоторых рисков.
Стратегия может быть оптимизирована в следующих аспектах:
Оптимизируйте настройки числа левой и правой свечей. Испытайте больше комбинаций левой и правой свечей, чтобы найти оптимальные параметры.
Добавьте фильтры индикаторов, такие как MA, MACD и т.д., когда вы занимаете позиции, чтобы избежать выхода на рынок в неопределенных ситуациях.
Оптимизируйте настройки уровня стоп-лосса. Выберите лучшие позиции стоп-лосса в соответствии с характеристиками различных продуктов.
После принятия позиций, последующий стоп-лосс может быть использован для блокировки прибыли, вместо простого выхода стоп-лосса.
Стратегия Pivot Reversal осуществляет сделки, фиксируя время изменения цены в зонах поворота. Она имеет преимущества простой работы, контролируемых рисков и т. Д. Основные риски заключаются в неправильной идентификации зоны поворота и внезапных изменениях тенденций. С помощью таких методов, как оптимизация параметров, добавление фильтров, улучшение стратегий стоп-лосса и т. Д., риски могут быть уменьшены и стабильность стратегии может быть улучшена.
/*backtest start: 2022-12-08 00:00:00 end: 2023-12-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Pivot Reversal Strategy", overlay=true) leftBars = input(4) rightBars = input(2) swh = pivothigh(leftBars, rightBars) swl = pivotlow(leftBars, rightBars) swh_cond = not na(swh) hprice = 0.0 hprice := swh_cond ? swh : hprice[1] le = false le := swh_cond ? true : (le[1] and high > hprice ? false : le[1]) if (le) strategy.entry("Long", strategy.long, comment="Long", stop=hprice + syminfo.mintick) swl_cond = not na(swl) lprice = 0.0 lprice := swl_cond ? swl : lprice[1] se = false se := swl_cond ? true : (se[1] and low < lprice ? false : se[1]) if (se) strategy.entry("Short", strategy.short, comment="Short", stop=lprice - syminfo.mintick) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)