
Стратегия отслеживания трендов в сочетании с волатильностью и волатильностью является количественной торговой системой, основанной на взаимосвязи объема сделок с волатильностью цен. Стратегия создает комплексный индекс для захвата изменений в динамике рынка путем вычисления взаимосвязи объема сделок с волатильностью цен и в сочетании с кратковременным и долгосрочным перекрестным подтверждением направления тенденции. Ее ядро заключается в выявлении ключевых рыночных поворотных точек, когда объем сделок необычно увеличивается и сопровождается расширением ценовых колебаний, а также в управлении рисками и целевыми прибылями с использованием коэффициента Fibonacci.
Основная вычислительная логика стратегии включает в себя следующие ключевые шаги:
Анализ объемов сделок: вычислить средний объем торгов с помощью простого скользящего среднего ((SMA)) и сравнить текущий объем с средним значением, получив процентный показатель ((vol_percent = volume / vol_ma * 100) }}.
Расчет волатильности: Количественная волатильность цены, рассчитанная на основе соотношения K-линейной динамики к цене закрытия ((volatility = (high - low) / close * 100) }}.
Комбинированные индексыПроцент торгового объема, умноженный на уровень волатильности, создает комплексный показатель, который одновременно отражает двойную аномалию количества сделок и колебаний цен.
Система равнолинейности: вычислить кратковременные и долгосрочные скользящие средние для комбинированных индексов и применить увеличение чувствительности для повышения чувствительности сигнала.
Динамическая убыль: создание динамических фильтрующих значений для фильтрации рынка шума путем умножения долгосрочной средней линией на пороговое увеличение.
Формовознание: Анализ корня K-линии lookback_bars для обнаружения определенных моделей реверсивной формы, например, для сигнализации, когда индекс волатильности имеет определенную тенденцию изменения, и ценовая форма соответствует условиям реверсии.
Появление сигнала:
Управление рискамиАвтоматическая установка стоп-/стоп-/стоп-профитов на основе коэффициента Фибоначчи, расчетная на основе форм-массовых колебаний, чтобы обеспечить разумную установку риска-прибыли.
Преимущества комплексных показателейС помощью объединения объема сделок с волатильностью, стратегия позволяет более полно отслеживать необычно активные моменты рынка, избегая возможного заблуждения, вызванного одним показателем.
Динамическая адаптация: использование динамического механизма снижения порога ((index_threshold_magnification_auto), позволяющего стратегии адаптироваться к волатильным характеристикам в различных рыночных условиях, уменьшая ошибочные сигналы.
Механизм подтверждения формы: Ретроанализ K-линейной формы с помощью параметра lookback_bars, увеличение надежности сигнала, не только зависимость от перекрестных показателей, но и требование ценовой формы, что значительно снижает риск ложного прорыва.
Гибкая модель стратегии: с помощью параметра reversal_s можно переключаться между отслеживанием тенденций и обратными стратегиями, что позволяет системе адаптироваться к различным рыночным условиям и потребностям торговли.
Систематическое управление рискамиСтойко-стоп-лосс механизм, основанный на уровне Фибоначчи, позволяет автоматически корректировать параметры риска в зависимости от фактической величины колебаний рынка, избегая неприемлемости, которую могут вызвать фиксированные пункты.
Интуитивная визуализацияСтратегия: обеспечивает визуальное отображение столбцов объема торгов и кривой индикатора, четко и интуитивно отображает торговые сигналы, что позволяет трейдерам понимать состояние рынка и принимать решения.
Настройка параметров: предоставляет множество регулируемых параметров (vol_length, index_short_length, index_long_length и т. д.), позволяя трейдерам настраивать настройки в соответствии с различными рыночными характеристиками и личными предпочтениями в отношении риска.
Риск чувствительности параметраЭта стратегия зависит от множества параметров, таких как средняя длина линии объема торгов (vol_length), средняя длина линии индекса (index_short_length, index_long_length) и т. д. Неправильный выбор параметров может привести к чрезмерному сжатию или задержке сигнала. Решение: оптимизируйте историческую обратную связь, найдите комбинацию параметров, которые будут стабильно работать в разных рыночных условиях, избегайте чрезмерной оптимизации данных за определенный период.
Риск ложного проникновенияХотя в стратегии есть механизм динамического фильтрации отступлений, в условиях высокой волатильности рынка возможен быстрый спад индекса после кратковременного прорыва отступлений. Решение: увеличение цикла подтверждения сигнала или многократное подтверждение в сочетании с другими техническими показателями (например, RSI, MACD), повышая надежность сигнала.
Недостаточный риск при остановкеВ то же время, в некоторых странах, например, в Китае, в некоторых странах, например, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае. Решение: увеличение максимального ограничения стоп-процента или динамическая корректировка параметров stopLossFib в соответствии с исторической волатильностью, чтобы обеспечить контроль риска в пределах приемлемого диапазона.
Риск ошибок в оценке трендовВ результате, в некоторых странах наблюдается повышенная вероятность того, что криптовалюты будут пересекаться, что может привести к чрезмерной торговле. Решение: введение индикатора интенсивности тренда (например, ADX) для фильтрации сигналов слабых трендовых рынков или увеличение условий для ограничения частоты торгов.
Риск ликвидностиСтратегия чувствительна к изменениям объема торговли и может создавать ошибочные сигналы или иметь проблемы со скольжением на низколиквидном рынке. Решение: добавление минимальных условий по обесценению объема торговли, чтобы избежать торговли в условиях низкой ликвидности, или корректировка чувствительности индекса (index_magnification) для снижения реакции на незначительные колебания.
Риск возникновения вне периода отсчетаВ то же время, по мнению экспертов, в будущем изменение рыночных условий может привести к снижению эффективности стратегии. Решение: Используйте методы экспроприации и прогрессивного тестирования, регулярно переоценивайте и корректируйте параметры стратегии, чтобы сохранить адаптивность стратегии.
Механизм подтверждения многовременных цикловВ настоящее время стратегия работает только в течение одного временного цикла, можно ввести многовременную аналитическую структуру, которая требует, чтобы направление тренда в более высоких временных периодах соответствовало торговым сигналам, что повышает выигрышную вероятность. Таким образом, можно избежать обратной операции с большими тенденциями и снизить риск “подавления”.
Классификация состояния рынкаНапример, можно оценить состояние рынка с помощью ATR или индикатора волатильности, повысить требования к отметке в условиях высокой волатильности и ослабить условия в условиях низкой волатильности.
Параметры оптимизации машинного обученияВнедрение алгоритмов машинного обучения для динамической оптимизации параметров стратегии, например, использование генетических алгоритмов или методов усиленного обучения для поиска оптимальной комбинации параметров, чтобы стратегия могла самостоятельно адаптироваться к изменениям рынка.
Интеграция эмоциональных показателейИнтеграция индикаторов рыночной сентиментальности (например, VIX, денежные потоки и т. д.) в логику генерирования сигналов, повышение предсказуемости рыночных поворотных точек. Рыночная сентиментальность обычно опережает изменения цен, в сочетании с индикаторами настроения может заранее улавливать сигналы рыночных поворотных точек.
Оптимизация стратегии сдерживания: реализация механизма блокировки партий, прибыль в партиях в соответствии с последовательностью Фибоначчи, что позволяет как блокировать часть прибыли, так и позволяет оставшимся позициям в полной мере пользоваться доходом от тренда. Например, можно установить позиции с определенной пропорцией устранения позиций на уровне 0,382, 0,618, 1,0 и 1,618 соответственно.
Расчет стоимости сделкиВ текущей стратегии не учитываются затраты на транзакции, но логика расчета затрат на транзакции может быть добавлена, чтобы гарантировать, что ожидаемый доход от сигналов превышает затраты на транзакции и избежать ухудшения стоимости, вызванного частыми небольшими сделками.
Управление рискованными позициямиДобавление модуля управления динамическими позициями для автоматического расчета оптимального размера позиции на основе исторической волатильности, текущей сигнала и рисковой устойчивости счета, что позволяет более научному управлению деньгами.
Фильтр релевантности: в сценариях с многочисленными активами, добавление модуля анализа корреляции, избежание одновременного создания однонаправленных позиций на несколько высоко коррелирующих активов, снижение системного риска.
Стратегия отслеживания тенденций в индексе волатильности и объема сделок создает количественную торговую систему, способную улавливать изменения в динамике рынка, путем инновационного сочетания показателей объема сделок и волатильности цен. Стратегия отлично справляется с выявлением потенциальных поворотных точек и подтверждением тенденций, а также обеспечивает гибкий механизм исполнения сделок с помощью управления стоп-лосками и опциональной реверсивной модели Fibonacci.
Ключевое преимущество стратегии заключается в ее комплексной системе показателей и динамической адаптивности, позволяющей идентифицировать высококачественные торговые возможности в различных рыночных условиях. Однако пользователям необходимо быть бдительными к потенциальным рискам, таким как чувствительность параметров, ложные прорывы и ошибки в оценке тенденций, а также дополнительно повышать стабильность и адаптивность стратегии с помощью подтверждения состояния рынка, классификации состояния рынка, оптимизации машинного обучения и т. Д.
С разумной настройкой параметров и постоянной оптимизацией эта стратегия может стать мощным оружием в инструментарии трейдера, особенно подходящим для поиска аномальных рыночных поворотных точек, где объемы торговли синхронизируются с ценовыми колебаниями, и помогает трейдеру ухватиться за ключевые торговые возможности в сложных переменных рынках.
/*backtest
start: 2024-05-26 00:00:00
end: 2025-05-25 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=6
strategy("Volume and Volatility Ratio Indicator-WODI", overlay=false)
// === 用户自定义参数 ===
vol_length = input(48, title="交易量均线长度") // 交易量均线长度
index_short_length = input(13, title="指数短均线长度") // 交易量均线长度
index_long_length = input(26, title="指数均线长度") // 交易量均线长度
index_magnification = input(2, title="指数均线敏感度") // 调整指数倍率
index_threshold_magnification = input(200, title="指数阈值百分比") // 交易量/波动率指数阈值
lookback_bars = input(3, title="K线形态检测长度") // 形态检测 K 线数量
reversal_s = input.bool(title = "反转策略", defval = false, group="Position")
stopLossFib = input.float(title="止损斐波那契", defval=0, options=[0, 0.127, 0.236, 0.382, 0.5, 0.618, 0.692, 0.786, 1, 1.272, 1.414, 1.618, 2.272, 2.414, 2.618, 3, 3.414, 3.618, 4, 4.236, 4.272, 4.414, 5], group="Position")
takeProfitFib = input.float(title="止盈斐波那契", defval=1.618, options=[0, 0.127, 0.236, 0.382, 0.5, 0.618, 0.692, 0.786, 1, 1.272, 1.414, 1.618, 2.272, 2.414, 2.618, 3, 3.414, 3.618, 4, 4.236, 4.272, 4.414, 5], group="Position")
// === 计算交易量均线 ===
vol_ma = ta.sma(volume, vol_length)
// === 计算当前交易量为平均交易量的百分比 ===
vol_percent = volume / vol_ma * 100
// === 计算波动率(当前 K 线振幅) ===
volatility = (high - low) / close * 100
// === 计算交易量/波动率指数 ===
new_module = ((volume*volume)/volatility) //新算法,不好用
volatility_index = volume*volatility //
// === 计算指数平均值,用平均值做触发阈值 ===
index_short_ma = ta.sma(volatility_index, index_short_length)
index_long_ma = ta.sma(volatility_index, index_long_length)
index_threshold_magnification_auto = index_long_ma * index_threshold_magnification /100
// === 计算前 lookback_bars 根 K 线的指数趋势 ===
is_reversal_pattern = false
is_reversal_pattern_s = false
for i = 1 to lookback_bars
if volatility_index[1] > volatility_index[2] and (volatility_index[1] > volatility_index[0] or volume[1] > volume[0])and close[i+1] > close[i] and close[1] < close[0] and volume > vol_ma and volatility_index > index_threshold_magnification_auto and ((open[1] - close[1] < close[1] - low[1]) or (open[0] - close[0] < close[0] - low[0]))
if i >= lookback_bars
is_reversal_pattern := true
else if i < lookback_bars
break
for i = 1 to lookback_bars
if volatility_index[1] > volatility_index[2] and (volatility_index[1] > volatility_index[0] or volume[1] > volume[0])and close[i+1] < close[i] and close[1] > close[0] and volume > vol_ma and volatility_index > index_threshold_magnification_auto and ((close[1] - open[1] < high[1] - close[1]) or (close[0] - open[0] < high[0] - close[0]))
if i >= lookback_bars
is_reversal_pattern_s := true
else if i < lookback_bars
break
// === 绘制指标 ===
//plot(vol_ma, color=color.rgb(158, 161, 170), linewidth = 1, title="交易量均线")
//plot(index_short_ma * index_magnification, color=color.gray, linewidth = 1, title="指数短均线")
//plot(index_long_ma * index_magnification, color=#2ad7f6, linewidth = 1, title="指数长均线")
plot(index_threshold_magnification_auto, color=color.rgb(238, 66, 193), linewidth = 1, title="波动率阈值")
// === 交易量柱状图(高亮大于均值的交易量) ===
bar_color = volume > vol_ma ? (is_reversal_pattern? #bc2af6 : (is_reversal_pattern_s? #f22a2a : color.rgb(77, 231, 255, 37))) : color.rgb(120, 123, 134, 70)
plot(volatility_index*2, style=plot.style_columns, color=bar_color, title="交易量柱状图")
plot(volume, style=plot.style_stepline, color=#00000055, title="交易量")
// === 反转做多策略 ===
var float stop_loss = na
var float take_profit = na
if is_reversal_pattern and (reversal_s ? strategy.position_size >= 0 : strategy.position_size <= 0)
bearish_low = low[1] < low[0]? low[1] : low [0]// 形态最低点
bearish_high = high[lookback_bars] > high[0] ? high[lookback_bars] : high[0]// 形态最高点
bearish_range = bearish_high - bearish_low // 形态振幅
// === 计算止损 (SL) 和止盈 (TP) ===
stop_loss := reversal_s ? bearish_high + (bearish_range * stopLossFib) : bearish_low - (bearish_range * stopLossFib) //止损斐波那契
take_profit := reversal_s ? bearish_high - (bearish_range * takeProfitFib) : bearish_low + (bearish_range * takeProfitFib) //止盈斐波那契
is_reversal_pattern := false
strategy.entry(reversal_s ? "short" : "Long", reversal_s ? strategy.short : strategy.long)
if is_reversal_pattern_s and (reversal_s ? strategy.position_size <= 0 : strategy.position_size >= 0)
bearish_low = low[lookback_bars] < low[0] ? low[lookback_bars] : low[0]// 形态低点
bearish_high = high[1] > high[0]? high[1] : high [0]// 形态高点
bearish_range = bearish_high - bearish_low // 形态振幅
// === 计算止损 (SL) 和止盈 (TP) ===
stop_loss := reversal_s ? bearish_low - (bearish_range * stopLossFib) : bearish_high + (bearish_range * stopLossFib) //止损斐波那契
take_profit := reversal_s ? bearish_low + (bearish_range * takeProfitFib) : bearish_high - (bearish_range * takeProfitFib) //止盈斐波那契
is_reversal_pattern_s := false
strategy.entry(reversal_s ? "Long" : "short", reversal_s ? strategy.long : strategy.short)
// === 止损 (SL) 和止盈 (TP) ===
if low[0] < stop_loss and strategy.position_size >= 0
strategy.close("Long", qty_percent = 100)
if high[0] > take_profit and strategy.position_size >= 0
strategy.close("Long", qty_percent = 100)
if high[0] > stop_loss and strategy.position_size <= 0
strategy.close("short", qty_percent = 100)
if low[0] < take_profit and strategy.position_size <= 0
strategy.close("short", qty_percent = 100)