
Стратегия пересечения волатильности и емкости с учетом трендов является количественной торговой системой, основанной на рыночной волне, для принятия торговых решений путем идентификации точек перехода рынка от низкой волатильности к высокой волатильности. Эта стратегия объединяет два ключевых показателя: волатильность (VMI) и емкость с учетом цены (VWPC).
Основные принципы этой стратегии заключаются в том, чтобы использовать колебания рынка для принятия торговых решений в зависимости от цикла и направления тенденции. В частности:
Расчет показателя колебания величины VMI:
ВВПЦ (VWPC):
Внедрение логики торгов в два этапа:
Стратегия позволяет настроить направление торговли (только плюс, только минус или двунаправленная торговля) и оптимизировать параметры для адаптации к различным рыночным условиям.
Взглянув на код этой стратегии, можно выделить следующие преимущества:
Выбор времени торговли на основе рыночных цикловЭта стратегия использует индикатор VMI для определения переходных точек рынка от низкой до высокой волатильности, которые часто представляют собой начало нового ценового движения и помогают войти в начале тренда.
Тенденции в объеме транзакций подтверждены:VWPC предоставляет более представительный индикатор тренда, чем простая скользящая средняя, уменьшая ложные сигналы путем добавления веса объема сделки.
Ясные условия въезда и выезда: стратегия имеет четкую логику входа ((начало колебаний увеличивается) и логику выхода ((волатильность достигает предельных значений), избегая субъективного суждения。
Высокая степень адаптации: С помощью параметровой оптимизации стратегия может быть адаптирована к различным рыночным условиям и торговым видам. В частности, границы зоны спокойствия и зоны хаоса VMI могут быть скорректированы в соответствии с особенностями рынка.
Интеграция управления рискомСтратегия включает в себя управление позициями (например, по умолчанию используйте 15% средств счета) и ограничение обратных сделок (pyramiding = 0), что помогает контролировать риск.
Визуальная помощь: Стратегия на графике изображает линии тренда VWPC и сигналы входа/выхода, что позволяет трейдерам получить визуальное представление о состоянии рынка и логике стратегии.
Вычислительная эффективность: С помощью встроенных функций, таких как ta.rma и ta.barssince, стратегия имеет высокую вычислительную эффективность и подходит для использования в режиме реального времени.
Несмотря на многочисленные преимущества данной стратегии, существуют следующие потенциальные риски:
Волатильный риск ложного прорыва: Рынок может быстро отступить после кратковременного повышения волатильности, что приводит к ошибочным сигналам. Решение - это корректировка предела спокойной зоны VMI или увеличение условий подтверждения.
Задержка в оценке тенденций:VWPC может быть немного отсталым в качестве индикатора тренда и может не реагировать вовремя при резком сдвиге рынка. Можно рассмотреть возможность использования краткосрочных динамических индикаторов в качестве вспомогательного суждения.
Параметр Чувствительность: Стратегическая производительность чувствительна к параметрам (в частности, длине и порогу VMI), и различные сочетания параметров могут потребоваться в разных рыночных условиях. Рекомендуется оптимизировать параметры для разных рыночных условий путем обратной связи.
Неопределенность в частоте торговПоскольку стратегия основана на изменении волатильности, частота торговых сигналов может сильно различаться в разные рыночные фазы, что влияет на общую доходность и контроль за отзывом.
Влияние на стоимость сделки: Несмотря на то, что стратегия учитывает комиссию за транзакции ((0,075%), в реальных транзакциях, скользящие точки и другие транзакционные издержки могут еще больше повлиять на эффективность стратегии.
Зависит от объема транзакций:VWPC-индикатор зависит от данных о количестве сделок, которые могут быть неточными или ненадежными в некоторых рынках или периодах времени, что влияет на точность стандарта.
В результате глубокого анализа кода можно сделать следующие выводы:
Добавить динамический фильтрВведение динамического механизма корректировки отклонений, основанного на исторической волатильности, позволяет VMI автоматически корректировать отклонения от зоны покоя и зоны хаоса в зависимости от общего уровня волатильности рынка, что повышает адаптивность стратегии.
Усиление механизма подтверждения тенденций: можно добавить подтверждение тренда в нескольких временных рамках на основе VWPC или в сочетании с другими трендовыми показателями (например, направленным показателем ADX), повышая точность определения тренда.
Оптимизация механизма выхода из игрыПримечание: текущая стратегия выступает только в том случае, если VMI достигает зоны хаоса, можно рассмотреть возможность добавления стоп-лосса и целевого уровня прибыли, или динамическая стоп-стратегия, основанная на волатильности, чтобы лучше контролировать риск и блокировать прибыль.
Повышение фильтрации объема транзакций: можно добавить условия подтверждения объема сделки, вход только при увеличении объема сделки, чтобы избежать торговли в условиях низкой ликвидности.
Добавить фильтр времениВ некоторых рынках во время определенных периодов времени может существовать волатильная модель, поэтому можно добавлять временные фильтры, чтобы избежать известных неэффективных торговых периодов.
Механизм адаптации параметров: можно разработать механизм автоматической корректировки параметров на основе недавних показателей рынка, чтобы стратегия могла лучше адаптироваться к изменениям рынка.
Оптимизация управления капиталом: можно реализовать динамическое управление позициями на основе волатильности, регулировать масштаб сделки в различных волатильных условиях, балансировать риск и прибыль.
Волатильность и емкость взвешенная стратегия скрещивания трендов - это количественная торговая система, объединяющая волатильный анализ и отслеживание трендов. Она входит в рынок с точки перехода от спокойного к активному с помощью индикатора VMI и выходит, когда волатильность достигает пика; в то же время использует индикатор VWPC, чтобы обеспечить направление торговли в соответствии с общей тенденцией.
Тем не менее, стратегия также сталкивается с такими проблемами, как волатильность ложных прорывов, задержка определения тенденции и чувствительность параметров. Устойчивость и адаптивность стратегии могут быть дополнительно повышены путем внедрения динамической корректировки отклонений, усиления механизмов подтверждения тенденций, оптимизации логики выхода и реализации адаптивных параметров.
В конечном счете, эта стратегия обеспечивает торговую структуру, основанную на рыночных колебаниях и волатильных циклах, которая подходит для использования в различных рыночных условиях, но трейдеры все еще должны оптимизировать параметры и корректировать стратегию в зависимости от конкретных видов торговли и особенностей рынка, чтобы достичь оптимального эффекта.
/*backtest
start: 2024-07-14 00:00:00
end: 2025-07-12 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":200000}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TiamatCrypto
//@version=5
strategy("Market Entropy Strategy V2.5",
overlay=true,
initial_capital=10000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=15, // Slightly more aggressive allocation
commission_type=strategy.commission.percent,
commission_value=0.075,
pyramiding=0) // Allow only one trade in one direction
// --- General Settings ---
trade_direction = input.string("Both", "Trade Direction", options=["Long", "Short", "Both"], group="General Settings")
// --- Inputs for Optimization ---
// VMI Settings
vmi_length = input.int(14, "VMI Length", group="VMI Settings")
atr_period = input.int(10, "ATR Period for VMI", group="VMI Settings")
vmi_calm_zone = input.int(25, "VMI Calm Zone (Entry Level)", group="VMI Settings", step=5)
vmi_chaos_zone = input.int(85, "VMI Chaos Zone (Exit Level)", group="VMI Settings", step=5)
// VWPC Settings
vwpc_length = input.int(50, "VWPC Filter Length", group="VWPC Trend Filter")
setup_lookback = input.int(10, "How far to look for 'Armed' (candles)", group="Entry Logic")
// --- Indicator #1: Volatility Momentum Index (VMI) ---
current_atr = ta.atr(atr_period)
atr_change = current_atr - current_atr[1]
up_accel = atr_change > 0 ? atr_change : 0
down_accel = atr_change < 0 ? -atr_change : 0
avg_up_accel = ta.rma(up_accel, vmi_length)
avg_down_accel = ta.rma(down_accel, vmi_length)
rs_vmi = avg_down_accel == 0 ? 0 : avg_up_accel / avg_down_accel
vmi = avg_down_accel == 0 ? 100 : avg_up_accel == 0 ? 0 : 100 - (100 / (1 + rs_vmi))
// --- Indicator #2: Volume-Weighted Price Center (VWPC) ---
// Function to calculate VWPC
f_vwpc(length) =>
sum_price_volume = 0.0
sum_volume = 0.0
// We use the typical price, which better represents the candle
typical_price = (high + low + close) / 3
for i = 0 to length - 1
sum_price_volume += typical_price[i] * nz(volume[i])
sum_volume += nz(volume[i])
sum_volume == 0 ? typical_price : sum_price_volume / sum_volume
vwpc = f_vwpc(vwpc_length)
// --- Strategy Logic ---
// Trend Definition
is_uptrend = close > vwpc
is_downtrend = close < vwpc
// Phase 1: "Armed" Condition (Setup)
// We check if VMI WAS in the calm zone in the recent past
was_calm_recently = ta.barssince(vmi < vmi_calm_zone) < setup_lookback
// Phase 2: "Fire" Condition (Trigger)
// VMI is currently crossing the Calm Zone upwards
trigger_fire = ta.crossover(vmi, vmi_calm_zone)
// Combination for ENTRY
buy_signal = is_uptrend and was_calm_recently and trigger_fire
sell_signal = is_downtrend and was_calm_recently and trigger_fire
// Condition for EXIT ("Exhaustion")
// The same condition applies for both long and short - peak chaos
exit_signal = ta.crossover(vmi, vmi_chaos_zone)
// --- Executing Orders ---
// Entry Conditions
allow_longs = trade_direction == "Long" or trade_direction == "Both"
allow_shorts = trade_direction == "Short" or trade_direction == "Both"
// Entries
if (buy_signal and allow_longs)
strategy.entry("Buy", strategy.long, comment="Enter LONG (Armed->Fire)")
if (sell_signal and allow_shorts)
strategy.entry("Sell", strategy.short, comment="Enter SHORT (Armed->Fire)")
// Exits
if (strategy.position_size > 0 and exit_signal)
strategy.close("Buy", comment="Exit LONG (Chaos)")
if (strategy.position_size < 0 and exit_signal)
strategy.close("Sell", comment="Exit SHORT (Chaos)")
// --- Plotting on the chart for visual inspection ---
plot(vwpc, "VWPC Center of Gravity", color=color.new(color.yellow, 0), linewidth=2)
plotshape(buy_signal and allow_longs, "LONG Entry", shape.labelup, location.belowbar, color=color.new(color.aqua, 0), text="ENTRY ↑", textcolor=color.white, size=size.small)
plotshape(sell_signal and allow_shorts, "SHORT Entry", shape.labeldown, location.abovebar, color=color.new(color.fuchsia, 0), text="ENTRY ↓", textcolor=color.white, size=size.small)
// Plotting the exit signal for a better overview
exit_marker_y_pos = strategy.position_size > 0 ? high : low
plotshape(series=(exit_signal and strategy.position_size != 0 ? exit_marker_y_pos : na), title="Exit", style=shape.xcross, location=location.absolute, color=color.new(color.orange, 0), size=size.tiny, text="END")