Стратегия динамического проникновения цены вверх и вниз VWMA в течение торговых часов

VWMA ATR 交易时段 动态支撑阻力 价格穿透 交易信号
Дата создания: 2025-02-28 10:22:57 Последнее изменение: 2025-02-28 10:22:57
Копировать: 0 Количество просмотров: 441
2
Подписаться
319
Подписчики

Стратегия динамического проникновения цены вверх и вниз VWMA в течение торговых часов Стратегия динамического проникновения цены вверх и вниз VWMA в течение торговых часов

Обзор

ВВМА - это количественная торговая система, основанная на загруженном, взвешенном движущемся среднем (ВВМА) в течение суток. Эта стратегия особенно подходит для 1-минутных временных рамок, чтобы генерировать сигналы купли и продажи, отслеживая отношение цены к VWMA, которая перестраивается каждый торговый день. Основная логика стратегии заключается в том, чтобы запускать торговые сигналы, когда цена полностью прорывает VWMA.

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

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

  1. Расчет VWMA в момент сделкиСтратегия: используется индикатор VWMA длиной 55, но в отличие от традиционного VWMA, этот индикатор пересчитывается в начале каждого торгового дня, чтобы гарантировать, что VWMA более точно отражает настроения рынка в этот день.

  2. Механизм генерации сигнала

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

  4. Автоматическое закрытие позицииСтратегия: автоматически ликвидировать все свои позиции в 15:29 по индийскому времени, чтобы гарантировать, что они не будут удерживаться в ночное время, чтобы эффективно избежать ночного риска.

  5. Управление несколькими позициямиСтратегия поддерживает размещение в пирамиде до 10 уровней, а управляющие средствами используют контроль над позициями в размере 10% доли аккаунта.

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

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

  1. Временная адаптивностьВместо того, чтобы использовать данные, полученные в результате пересчета VWMA в течение каждого торгового дня, стратегия может лучше адаптироваться к условиям текущего рынка и не подвергаться чрезмерному влиянию исторических данных.

  2. Ясный сигнал входаТактика требует, чтобы цена полностью пробилась через VWMA, чтобы вызвать сигнал, что уменьшает ошибочное суждение о ложных прорывах и шокирующих ситуациях.

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

  4. Контроль рискаДневная фиксированная автоматическая ликвидация позволяет эффективно избежать риска на ночь и подходит для краткосрочных трейдеров.

  5. Потенциал высокой победыВ соответствии с описанием стратегии, особенно продажи сигналов отличаются высокой вероятностью успеха для трейдеров, с более чем 65% вероятностью победы.

  6. Гибкое управление позициямиВ этом случае, как и в случае с другими видами криптовалют, они будут использоваться для увеличения позиций и максимизации потенциала прибыли, если тенденция продолжится.

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

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

  1. Ограничения по времени: Стратегия четко указывает, что 1-минутный временной фрейм наиболее подходит, и может плохо работать в других временных фреймах, что ограничивает сценарии применения стратегии.

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

  3. Зависимость от рыночных условийВВМА, как основной индикатор, может производить большое количество ложных сигналов в поперечно-постоянных рынках, и стратегия может работать лучше в рынках с сильным трендом.

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

  5. Параметр Чувствительность:Длина VWMA 55 является фиксированным параметром, в различных рыночных условиях может потребоваться различная параметровая настройка, и фиксированный параметр может не адаптироваться ко всем рыночным условиям.

Как снизить риск:

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

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

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

  1. Увеличение рыночных фильтров: введение показателей волатильности или интенсивности тренда в качестве фильтрующих условий, генерирующих сигналы только в подходящих рыночных условиях, например, с помощью показателей ATR или ADX можно определить, подходит ли текущий рынок для этой стратегии.

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

  3. Усиленный механизм подтверждения сигнала: введение дополнительных технических показателей или ценовых моделей в качестве условий подтверждения, повышение качества сигнала. Например, можно использовать в сочетании с показателями RSI, MACD и т. Д. для подтверждения сигнала.

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

  5. Дифференцированная обработка сигналов покупки и продажиРазработка целевых управленческих стратегий для различных характеристик сигналов покупки и продажи, таких как более консервативное управление позициями и более строгие стратегии стоп-лосса для сигналов покупки.

  6. Оптимизация управления капиталом- более гибкий механизм управления капиталом, который позволяет корректировать долю капитала в каждой сделке в зависимости от силы сигналов, волатильности рынка и динамики исторической деятельности;

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-02-29 00:00:00
end: 2025-02-26 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("SVWMA Lx", overlay=true, initial_capital=100000, 
     default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=10, calc_on_every_tick=true)

//──────────────────────────────
// Session VWMA Inputs
//──────────────────────────────
vwmaLen   = input.int(55, title="VWMA Length", inline="VWMA", group="Session VWMA")
vwmaColor = input.color(color.orange, title="VWMA Color", inline="VWMA", group="Session VWMA", tooltip="VWMA resets at the start of each session (at the opening of the day).")

//──────────────────────────────
// Session VWMA Calculation Function
//──────────────────────────────
day_vwma(_start, s, l) =>
    bs_nd = ta.barssince(_start)
    v_len = math.max(1, bs_nd < l ? bs_nd : l)
    ta.vwma(s, v_len)

//──────────────────────────────
// Determine Session Start
//──────────────────────────────
newSession = ta.change(time("D")) != 0

//──────────────────────────────
// Compute Session VWMA
//──────────────────────────────
vwmaValue = day_vwma(newSession, close, vwmaLen)
plot(vwmaValue, color=vwmaColor, title="Session VWMA")

//──────────────────────────────
// Define Signal Conditions (only on transition)
//──────────────────────────────
bullCond = low > vwmaValue      // Bullish: candle low above VWMA
bearCond = high < vwmaValue     // Bearish: candle high below VWMA

// Trigger signal only on the bar where the condition first becomes true
bullSignal = bullCond and not bullCond[1]
bearSignal = bearCond and not bearCond[1]

//──────────────────────────────
// **Exit Condition at 15:29 IST**
//──────────────────────────────
sessionEnd = hour == 15 and minute == 29

// Exit all positions at 15:29 IST
if sessionEnd
    strategy.close_all(comment="Closing all positions at session end")

//──────────────────────────────
// **Trade Control Logic** (Prevents consecutive same-side signals)
//──────────────────────────────
var bool lastTradeWasBuy = false  // Track last trade direction **Reset Direction At Session End**
var bool lastTradeWasSell = false // Track last trade direction **Reset Direction At Session End**
// Reset at new session
if newSession
    lastTradeWasBuy := true
    lastTradeWasSell := true

//──────────────────────────────
// **Position Management: Entry & Labels**
//──────────────────────────────
if bullSignal and not lastTradeWasBuy  //
    if strategy.position_size < 0
        strategy.close("Short", comment="Exit Short on Bull Signal")
        strategy.entry("Long", strategy.long, comment="Enter Long: Buy Call & Sell Put at ATM")
    else
        strategy.entry("Long", strategy.long, comment="Add Long: Buy Call & Sell Put at ATM")

    // Add BUY Label above entry candle
    label.new(x=bar_index, y=low - ta.atr(5) * 0.5, text="BUY", color=color.green, textcolor=color.white, size=size.small,  style=label.style_label_up, xloc=xloc.bar_index)

    lastTradeWasBuy := true  // Mark that the last trade was a Buy

if bearSignal and lastTradeWasBuy  //
    if strategy.position_size < 0
        strategy.close("Long", comment="Exit Long on Bear Signal")
        strategy.entry("Short", strategy.short, comment="Enter Short: Buy Put & Sell Call at ATM")
    else
        strategy.entry("Short", strategy.short, comment="Add Short: Buy Put & Sell Call at ATM")

    // Add SELL Label below candle 
    label.new(x=bar_index, y=high + ta.atr(5) * 0.5,  text="SELL", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down, xloc=xloc.bar_index)

    lastTradeWasBuy := false  // Mark that the last trade was a Sell

//──────────────────────────────
// **Updated Alert Conditions**
//──────────────────────────────
alertcondition(bullSignal and not lastTradeWasBuy, 
     title="Long Entry Alert", 
     message="Bullish signal: BUY CALL & SELL PUT at ATM. Entry allowed.")

alertcondition(bearSignal and lastTradeWasBuy, 
     title="Short Entry Alert", 
     message="Bearish signal: BUY PUT & SELL CALL at ATM. Entry allowed.")