Эта стратегия оценивает направление тренда на основе прорыва через периодические максимумы и минимумы. Она длинная, когда цена прорывается через периодический максимум, и короткая, когда цена прорывается ниже периодического минимума.
Стратегия сначала отчитывает определенный пользователем цикл (ежедневный, еженедельный и т. д.) и периоды обратной связи. Затем она получает самые высокие и самые низкие цены за период обратной связи на основе этих параметров. Например, если она установлена на ежедневный цикл и обратную связь 1 период, она берет самые высокие и самые низкие цены за предыдущий день.
В фактической торговле, если цена закрытия больше или равна самой низкой цене периода просмотра, она рассматривается как подъемный прорыв и идет на длинный. Если цена закрытия меньше или равна самой высокой цене периода просмотра, она рассматривается как падение прорыв и идет на короткий.
Захватывая направление тренда, пробиваясь через периодические максимумы и минимумы, эта стратегия относится к типу стратегии отслеживания тренда.
Основными преимуществами этой стратегии являются:
Захватывать большую тенденцию после сильной консолидации, оценивая направление на основе прорывных точек.
Простой и понятный, очень подходит для начинающих.
Легко оптимизировать путем корректировки периодических параметров, применимых к различным сортам.
Может устанавливать обратный вход для обратной операции, обогащая стратегию использования.
Периодические максимумы и минимумы для облегчения суждения и формирования многократной проверки.
Существуют также некоторые риски:
Не может эффективно отфильтровать боковую волатильность, возможные множественные ошибки.
Не может контролировать стоп-лосс, существует определенная степень риска потери.
В зависимости от затрат на торговлю фактическая PnL может отклоняться.
Невозможно ограничить размер позиции, существует риск переоценки.
Для устранения этих рисков могут использоваться такие методы, как установка стоп-лосса, оптимизация условий фильтрации, контроль размера позиции.
Основными направлениями оптимизации являются:
Добавление фильтрующих механизмов для предотвращения частого открытия во время боковых движений.
Установите отстающую стоп-потерю или временную стоп-потерю для контроля риска единичных потерь и обеспечения общей прибыльности.
Оптимизировать размер позиций и управление деньгами, чтобы предотвратить чрезмерную торговлю и обеспечить стабильность.
Испытать эффекты различных периодических параметров и выбрать оптимальные комбинации параметров.
Увеличьте алгоритмические торговые модули, используйте алгоритмы машинного обучения для повышения эффективности принятия решений.
Подводя итог, эта прорывная стратегия высокого низкого бэкстеста проста в эксплуатации на основе отслеживания тренда, подходит для новичков, но существуют риски быть пойманными в ловушку. Добавляя оптимизации, такие как фильтры, остановки, контроль позиции, эти риски могут быть уменьшены и результаты стратегии улучшены. Она может предоставить идеи и ссылки для наших дальнейших исследований и улучшений.
/*backtest start: 2023-01-01 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 03/07/2018 // This script shows a high and low period value. // Width - width of lines // SelectPeriod - Day or Week or Month and etc. // LookBack - Shift levels 0 - current period, 1 - previous and etc. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="High and Low Levels Backtest", shorttitle="HL Levels", overlay = true) SelectPeriod = input("D", defval="D") LookBack = input(1, minval=0) reverse = input(false, title="Trade reverse") xHigh = request.security(syminfo.tickerid, SelectPeriod, high[LookBack]) xLow = request.security(syminfo.tickerid, SelectPeriod, low[LookBack]) vS1 = xHigh vR1 = xLow pos = iff(close > vR1, 1, iff(close < vS1, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue )