Стратегия двойного импульса направлена на покупку низкого и продажу высокого путем выявления последовательных восходящих или нисходящих моделей свечей в ценах на акции.
Стратегия основана на двух показателях:количество поднимающихся строкиколичество падающих балок.
Пройдите длинный, когда закрытие поднимается выше LongEnterAfter бар, закрыть длинный, когда закрытие падает ниже LongExitAfter бар.
Сократите, когда закрытие падает ниже бар ShortEnterAfter, закрывайте коротко, когда закрытие поднимается выше бар ShortExitAfter.
Точные правила торговли определяются настройкой LongEnterAfter, LongExitAfter, ShortEnterAfter и ShortExitAfter.
Стратегия фиксирует динамические изменения в ценах акций путем мониторинга ежедневных цен закрытия. Она запускает сигналы входа и выхода на основе моделей свечей, определенных в параметрах.
В целом, ядро стратегии двойного импульса заключается в определении краткосрочных тенденций роста и падения цен для определения направления и сроков торговли.
Стратегия двойного импульса имеет следующие преимущества:
Простая и прямая логика, которую легко понять и реализовать.
Конфигурируемые параметры для регулирования агрессивности стратегии.
Захватывает краткосрочный импульс, который помогает извлечь выгоду из тенденций акций.
Стоп-лосс может эффективно контролировать риски.
Хорошо работает для акций, чувствительных к колебаниям цен, особенно акций с небольшой капитализацией.
В целом, стратегия двойного импульса подходит для инвесторов, которые чувствительны к изменениям цен и стремятся к высокой частоте торговли.
Стратегия двойного импульса также сопряжена со следующими рисками:
Очень зависит от параметров, что приводит к большим различиям в производительности.
Игнорирует долгосрочные тенденции, сосредоточиваясь только на краткосрочных.
Высокая частота торговли увеличивает затраты и риски скольжения.
Неправильное установление стоп-лосса может привести к неприемлемым потерям.
Не подходит для запасов с ограниченным диапазоном или с длинной консолидацией.
Риск быть обманутым умными деньгами, когда объем высыхает.
Риски могут быть смягчены:
Корректировка параметров для снижения частоты торговли и рисков чрезмерной оптимизации.
Разрешение на более длительные периоды хранения для учета среднесрочных и долгосрочных тенденций.
Настройка стоп-лосса для строгого контроля потери на одной сделке.
Выбирать акции с высоким импульсом и избегать колеблющихся.
Увеличение важности объема для предотвращения рисков при снижении объема.
Стратегия может быть улучшена несколькими способами:
Добавьте индикаторы тренда, такие как MACD и KDJ, чтобы избежать торгов против основного тренда.
Добавьте условие объема, чтобы избежать записей при снижении объема.
Добавить движущуюся остановку потери для блокировки прибыли, например, остановку xN ATR.
Оптимизировать параметры с помощью обратного тестирования для улучшения стабильности.
Включить алгоритмические модели торговли для лучшего управления заказами.
Используйте машинное обучение для обнаружения более эффективных сигналов.
В целом, основное внимание уделяется улучшению стабильности, контролю рисков и открытию новых альфа-факторов.
Стратегия двойного импульса измеряет рынок с помощью простых последовательных показателей вверх/вниз. Она проста в реализации и агрессивность регулируема. Она подходит для краткосрочных трейдеров, особенно для акций с небольшой капитализацией. Управление рисками против чрезмерной оптимизации, остановки потерь, изменений объема и т. Д. С улучшениями она может стать очень эффективной и гибкой квантовой стратегией.
/*backtest start: 2022-10-02 00:00:00 end: 2023-10-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy(title="simple momentum", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // ==================================== // STUDY AND STRATEGY // Inputs LongEnterAfter = input(title="enter long after X rising blocks", defval=2) LongExitAfter = input(title="exit long after X falling blocks", defval=1) ShortEnterAfter = input(title="enter short after X falling blocks", defval=2) ShortExitAfter = input(title="exit short after X rising blocks", defval=1) // Criteria Valid = change(time) LongEnter = Valid and rising(close, LongEnterAfter) LongExit = Valid and falling(close, LongExitAfter) ShortEnter = Valid and falling(close, ShortEnterAfter) ShortExit = Valid and rising(close, ShortExitAfter) // ==================================== // STRATEGY TradeSinceYear = input(title="trade since year", defval=2017) TradeSinceMonth = input(title="trade since month", defval=1) if year > TradeSinceYear or (year == TradeSinceYear and month >= TradeSinceMonth) strategy.entry("long", strategy.long, when = LongEnter) strategy.close("long", when = LongExit) strategy.entry("short", strategy.short, when = ShortEnter) strategy.close("short", when = ShortExit)