
ВВМА - это количественная торговая система, основанная на загруженном, взвешенном движущемся среднем (ВВМА) в течение суток. Эта стратегия особенно подходит для 1-минутных временных рамок, чтобы генерировать сигналы купли и продажи, отслеживая отношение цены к VWMA, которая перестраивается каждый торговый день. Основная логика стратегии заключается в том, чтобы запускать торговые сигналы, когда цена полностью прорывает VWMA.
Ключевым принципом стратегии является использование VWMA, пересчитанного каждый торговый день, в качестве динамической линии отсчета, для выявления потенциальных торговых возможностей с помощью относительной позиции цены к этой линии отсчета. Подробный принцип работы стратегии таков:
Расчет VWMA в момент сделкиСтратегия: используется индикатор VWMA длиной 55, но в отличие от традиционного VWMA, этот индикатор пересчитывается в начале каждого торгового дня, чтобы гарантировать, что VWMA более точно отражает настроения рынка в этот день.
Механизм генерации сигнала:
Логика управления сделкамиСтратегия реализует интеллектуальный механизм управления сделкой, предотвращающий повторное вхождение последовательных однонаправленных сигналов, то есть после покупки сигнала должен быть сигнал продажи, чтобы снова купить, и наоборот.
Автоматическое закрытие позицииСтратегия: автоматически ликвидировать все свои позиции в 15:29 по индийскому времени, чтобы гарантировать, что они не будут удерживаться в ночное время, чтобы эффективно избежать ночного риска.
Управление несколькими позициямиСтратегия поддерживает размещение в пирамиде до 10 уровней, а управляющие средствами используют контроль над позициями в размере 10% доли аккаунта.
После глубокого анализа кода, эта стратегия показала следующие значительные преимущества:
Временная адаптивностьВместо того, чтобы использовать данные, полученные в результате пересчета VWMA в течение каждого торгового дня, стратегия может лучше адаптироваться к условиям текущего рынка и не подвергаться чрезмерному влиянию исторических данных.
Ясный сигнал входаТактика требует, чтобы цена полностью пробилась через VWMA, чтобы вызвать сигнал, что уменьшает ошибочное суждение о ложных прорывах и шокирующих ситуациях.
Направление управленияС помощью логики управления сделками, стратегия избегает последовательных входов в одном направлении, требуя, чтобы для повторного входа было необходимо переключение направления, что эффективно снижает риск частых торгов.
Контроль рискаДневная фиксированная автоматическая ликвидация позволяет эффективно избежать риска на ночь и подходит для краткосрочных трейдеров.
Потенциал высокой победыВ соответствии с описанием стратегии, особенно продажи сигналов отличаются высокой вероятностью успеха для трейдеров, с более чем 65% вероятностью победы.
Гибкое управление позициямиВ этом случае, как и в случае с другими видами криптовалют, они будут использоваться для увеличения позиций и максимизации потенциала прибыли, если тенденция продолжится.
Несмотря на многочисленные преимущества, существуют следующие потенциальные риски:
Ограничения по времени: Стратегия четко указывает, что 1-минутный временной фрейм наиболее подходит, и может плохо работать в других временных фреймах, что ограничивает сценарии применения стратегии.
Сигнал покупок относительно слабыйВ описании стратегии упоминается, что покупательский сигнал требует установки фиксированных стоп-пойнтов и остановочных точек, что означает, что покупательский сигнал менее надежен, чем продающий сигнал, что может привести к ограничению прибыльности покупательной операции.
Зависимость от рыночных условийВВМА, как основной индикатор, может производить большое количество ложных сигналов в поперечно-постоянных рынках, и стратегия может работать лучше в рынках с сильным трендом.
Риск закрытия позиции в фиксированный срокПридерживаясь равных позиций в 15:29, можно выйти из рынка раньше срока в благоприятных условиях и потерять часть прибыли.
Параметр Чувствительность:Длина VWMA 55 является фиксированным параметром, в различных рыночных условиях может потребоваться различная параметровая настройка, и фиксированный параметр может не адаптироваться ко всем рыночным условиям.
Как снизить риск:
На основе анализа кода эта стратегия может быть оптимизирована в следующих направлениях:
Увеличение рыночных фильтров: введение показателей волатильности или интенсивности тренда в качестве фильтрующих условий, генерирующих сигналы только в подходящих рыночных условиях, например, с помощью показателей ATR или ADX можно определить, подходит ли текущий рынок для этой стратегии.
Оптимизация VWMA параметров: реализация самостоятельной адаптации длины VWMA, при которой параметры могут быть скорректированы в зависимости от динамики волатильности рынка, что позволяет стратегии лучше адаптироваться к различным рыночным условиям. Это может быть достигнуто путем установления связи между длиной VWMA и волатильностью рынка.
Усиленный механизм подтверждения сигнала: введение дополнительных технических показателей или ценовых моделей в качестве условий подтверждения, повышение качества сигнала. Например, можно использовать в сочетании с показателями RSI, MACD и т. Д. для подтверждения сигнала.
Улучшение стратегии ликвидацииВ дополнение к фиксированным временным позициям, добавлены динамические правила позиционирования, основанные на рыночных условиях, таких как снятие прибыли, достижение целей или обратный технический показатель.
Дифференцированная обработка сигналов покупки и продажиРазработка целевых управленческих стратегий для различных характеристик сигналов покупки и продажи, таких как более консервативное управление позициями и более строгие стратегии стоп-лосса для сигналов покупки.
Оптимизация управления капиталом- более гибкий механизм управления капиталом, который позволяет корректировать долю капитала в каждой сделке в зависимости от силы сигналов, волатильности рынка и динамики исторической деятельности;
Эти направления оптимизации направлены на повышение устойчивости и адаптивности стратегии, сохраняя при этом ее первоначальные высокие показатели успешности.
Стратегия проникновения динамической цены 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.")