Стратегия многофазной торговли на прорывах и откатах цен

OHLC SLTP PPV PVT MPB
Дата создания: 2025-05-13 11:08:10 Последнее изменение: 2025-05-13 11:08:10
Копировать: 1 Количество просмотров: 290
2
Подписаться
319
Подписчики

Стратегия многофазной торговли на прорывах и откатах цен Стратегия многофазной торговли на прорывах и откатах цен

Обзор

Многофазная стратегия торговли с ценовым прорывом и выводом является торговой системой, основанной на ценовом поведении, основной целью которой является выявление конкретных ценовых моделей и точный вход в точки прорыва. Эта стратегия используется для мониторинга отношений между ценой открытия, ценой максимума, ценой минимума и ценой закрытия на диаграмме, в сочетании с анализом разрыва в точках, чтобы уловить время изменения динамики рынка.

Стратегический принцип

Ключевым принципом стратегии является выявление и использование возможностей для продолжения после быстрых колебаний цен. При более глубоком анализе кода мы можем увидеть, что стратегия следует следующим принципам:

  1. Система позиционированияСтратегия делит логику торговли на три фазы ((phase 1-3), в зависимости от разных фаз вызывает различные условия входа.

  2. Прорывные условияВ случае многосторонних сделок в основном проверяются следующие условия:

    • Первая фаза: определить, достиг ли предыдущий K-линейный максимум от разрыва от открытого значения в 300 пунктов, а минимальный минимум ниже максимума минус 50 пунктов
    • Вторая фаза: при входе в фазу 1 проверяется, не отступила ли текущая минимальная точка до отметки в пределах отметки в пределах отметки в пределах отметки в пределах отметки в пределах отметки в пределах отметки
    • Третья фаза: определение того, превышает ли текущий максимум разницу в стоимости с предыдущим закрытием более 300 пунктов, и соответствует ли минимум условиям вывода
  3. Обратная логикаВнешняя торговля использует обратную логику, полностью симметричную с многосторонней торговлей, для определения времени входа в рынок путем мониторинга отношений между начальной ценой и минимальной ценой.

  4. Параметры тормозной остановкиСтратегия использует фиксированную точку стоп-стоп стратегии, многоголовый стоп-стоп устанавливается на 301 пункт ниже цены входа, стоп-стоп устанавливается на 301 пункт выше цены закрытия предыдущего; поток по пустым позициям - наоборот.

Стратегические преимущества

После более глубокого анализа кода выявлены следующие явные преимущества этой стратегии:

  1. Многоступенчатый механизм сужденияПринимая во внимание три фазы, можно избежать ошибочных выводов, вызванных одним условием, и повысить точность приема.

  2. Ориентация и отступлениеСтратегия ориентирована как на прорывную динамику цены, так и на возможные отступления, сбалансировав агрессивность и защиту.

  3. Гибкость параметров: С помощью параметров точечного значения, стратегия может быть адаптирована к различным рынкам и видам с различными волатильными характеристиками, что повышает ее полезность.

  4. Двусторонние сделкиСтратегия включает в себя одновременную логику торговли в двух направлениях, чтобы максимально использовать рыночные возможности и не ограничиваться односторонними тенденциями.

  5. Встроенное управление рискамиС помощью заранее заданного стоп-стоп-очка риски и потенциальные выгоды каждой сделки четко контролируются.

Стратегический риск

Несмотря на то, что стратегия была продуманной, она содержит следующие потенциальные риски:

  1. Фиксированная точка настройкиФиксированные точки в стратегии, такие как 300, 50, 250 и 301, могут не подходить для всех рыночных условий, особенно в периоды значительного изменения волатильности. Решение состоит в том, чтобы скорректировать эти параметры в соответствии с особенностями разновидности и текущей динамикой волатильности рынка.

  2. Риск ложного проникновения: рынок может иметь фейковые прорывы, которые быстро отступают после кратковременного прорыва, что приводит к ошибочным сигналам. Такие риски можно снизить, добавив подтверждающие показатели, такие как объем торгов или другие динамические показатели.

  3. Возможные убытки: В рыночных потрясениях, цены часто касаются прорыва, но не формируют тенденцию, что может привести к последовательным остановкам. Решение заключается в добавлении фильтров рыночной среды, уменьшении или приостановке торговли в рыночных потрясениях.

  4. Эффекты выполнения скольжения: стратегия зависит от точного ценового пункта, в реальной торговле могут возникнуть проблемы со скольжением, особенно на рынках с низкой ликвидностью. Рекомендуется моделировать ситуацию со скольжением при обратном измерении и надлежащим образом ослабить условия входа в реальном секторе.

  5. Сложность позиционного отслеживанияМногофазный дизайн, хотя и повышает точность, но также увеличивает логическую сложность, которая может привести к задержкам или ошибкам в исполнении сделок. Регулярные проверки и упрощение логики могут повысить эффективность исполнения.

Направление оптимизации стратегии

Вот несколько возможных вариантов оптимизации этой стратегии:

  1. Изменение динамических параметров: изменение параметров фиксированных точек на динамические параметры, основанные на рыночных колебаниях (например, показатели ATR), что позволяет стратегии лучше адаптироваться к различным рыночным условиям. Таким образом, можно уменьшить триггерные отметки в периоды низкой волатильности, увеличить отметки в периоды высокой волатильности и повысить адаптивность.

  2. Увеличение рыночных фильтровВнедрение индикаторов трендового анализа (например, направление движущейся средней или индикатор ADX), осуществление стратегии только в благоприятных рыночных условиях, избегание торговли в неблагоприятных условиях.

  3. Оптимизация параметров стоп-лоссаМожно рассмотреть возможность использования отслеживаемого стопа вместо фиксированного стопа, что позволит иметь больше возможностей для прибыльной торговли, защищая при этом уже полученную прибыль.

  4. Добавление подтверждающих факторов: увеличение объема сделок, подтверждение структуры рынка или других технических показателей при запуске входного сигнала, уменьшение влияния ложных сигналов.

  5. Фильтр времениДобавление фильтров на время торгового окна, чтобы избежать открытия и закрытия рынка в периоды с большой волатильностью, но неопределенным направлением, и сосредоточиться на более стабильных периодах.

  6. Упрощенная логика позиционного преобразования: перепроектирование логики фазового преобразования, уменьшение ненужных проверок состояния, упрощение структуры кода, повышение эффективности исполнения.

Подвести итог

Стратегия многофазного ценового прорыва и вывода - это хорошо структурированная торговая система, которая использует многоуровневый анализ ценового поведения для выявления выгодных торговых возможностей. Ее ключевые преимущества заключаются в многофазных механизмах суждения, двухсторонних торговых возможностях и встроенной системе управления рисками. Несмотря на проблемы, связанные с адаптацией фиксированных параметров и риском ложного прорыва, стабильность и прибыльность стратегии могут быть значительно улучшены путем внедрения таких оптимизационных мер, как динамические параметры, фильтрация рыночной среды и факторы подтверждения.

Эта стратегия особенно подходит для средне- и краткосрочных трейдеров, особенно для тех, кто следит за ценовым поведением и хочет вмешаться в начале динамических изменений. С помощью тщательной корректировки параметров и добавления соответствующих фильтрующих условий эта стратегия может развиваться в надежную торговую систему, обеспечивающую стабильный источник дохода для количественных торговых портфелей.

Исходный код стратегии
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
strategy("Custom Strategy", overlay=true, margin_long=1, margin_short=1, process_orders_on_close=true)

// 参数设置
point_value = input.float(0.0001, title="点值(例如:0.0001代表1个点)")

// 多单逻辑变量
var float long_ref_open = na
var float long_ref_high = na
var bool long_condition1 = false
var bool long_condition2 = false
var int long_phase = 0

// 空单逻辑变量
var float short_ref_open = na
var float short_ref_high = na
var bool short_condition1 = false
var bool short_condition2 = false
var int short_phase = 0

// 多单条件检查

// 多单第一条件检查
if not long_condition1 and not long_condition2
    if high[1] - open[1] >= 300 * point_value
        if low[1] <= high[1] - 50 * point_value
            strategy.entry("Long", strategy.long)
        else
            long_ref_open := open[1]
            long_ref_high := high[1]
            long_phase := 1

    else if close[1] - open[1] < 300 * point_value
        long_phase := 2

// 多单第二条件检查
if long_phase == 1
    if low <= long_ref_open + 250 * point_value
        strategy.entry("Long", strategy.long)
        long_phase := 0

if long_phase == 2
    if high - close[1] >= 300 * point_value
        if low <= high - 50 * point_value
            strategy.entry("Long", strategy.long)
            long_phase := 0
        else
            long_phase := 3
    else
        long_phase := 0

if long_phase == 3
    if low <= open[2] + 250 * point_value
        strategy.entry("Long", strategy.long)
        long_phase := 0

// 空单条件检查(反向逻辑)

// 空单第一条件检查
if not short_condition1 and not short_condition2
    if open[1] - low[1] >= 300 * point_value
        if high[1] >= low[1] + 50 * point_value
            strategy.entry("Short", strategy.short)
        else
            short_ref_open := open[1]
            short_ref_high := low[1]
            short_phase := 1

    else if open[1] - close[1] < 300 * point_value
        short_phase := 2

// 空单第二条件检查
if short_phase == 1
    if high >= short_ref_open - 250 * point_value
        strategy.entry("Short", strategy.short)
        short_phase := 0

if short_phase == 2
    if close[1] - low >= 300 * point_value
        if high >= low + 50 * point_value
            strategy.entry("Short", strategy.short)
            short_phase := 0
        else
            short_phase := 3
    else
        short_phase := 0

if short_phase == 3
    if high >= open[2] - 250 * point_value
        strategy.entry("Short", strategy.short)
        short_phase := 0

// 止损止盈逻辑
if strategy.position_size > 0
    strategy.exit("Long Exit", "Long", stop = strategy.position_avg_price - 301 * point_value,limit = close[1] + 301 * point_value)

if strategy.position_size < 0
    strategy.exit("Short Exit", "Short",stop = strategy.position_avg_price + 301 * point_value, limit = close[1] - 301 * point_value)