
Эта стратегия называется многофакторная количественная стратегия, основанная на скользящем среднем индексе и взвешенном объеме сделок. Она реализуется в основном путем объединения скользящего среднего индекса и взвешенного объема сделок. Эта стратегия учитывает ценовые тенденции, информацию о объеме сделок и самую свежую информацию о ценах, что позволяет эффективно улавливать рыночные возможности.
Основным показателем стратегии является nRes, который сочетает в себе движущуюся среднюю величину индекса xMAVolPrice, движущуюся среднюю величину индекса объема сделки xMAVol и самую последнюю цену закрытия, рассчитанную по формуле:
xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length)
nRes = xMAVolPrice / xMAVol
Из них, xMAVolPrice - это скользящее среднее индекса, умноженное на конечную цену и объем торгов, отражающее комплексную информацию о ценах и объемах торгов; xMAVol - это скользящее среднее индекса только объемов торгов; nRes - это соотношение между двумя скользящими средними индексами, отражающее скорректированную информацию о ценах.
Стратегия принимает решение о том, что делать с лишним весом, оценивая, как nRes относится к последней цене закрытия:
if (nRes < close[1])
做多
if (nRes > close[1])
做空
Если nRes меньше, чем последняя цена закрытия, то это означает, что цена после корректировки объема сделки ниже, чем последняя цена, и относится к сигналу покупки; если nRes больше, чем последняя цена закрытия, то это означает, что цена после корректировки объема сделки выше, чем последняя цена, и относится к сигналу продажи.
В целом, эта стратегия относится к типичной стратегии количественного трейдинга, которая заключается в принятии решения о дополнительном диверсификации путем сравнения ценового показателя nRes с корректировкой объема сделки и последней ценой закрытия.
Основные преимущества этой стратегии:
Комбинированная мультифакторная информация. Эта стратегия учитывает не только информацию о ценах, но и объем торгов, используя многофакторные характеристики акций, чтобы более точно оценить движение рынка.
Снижение ложных сигналов. С помощью нагрузки на объем сделок можно отфильтровать некоторые ложные прорывы, вызванные недостаточным объемом сделок. Это может эффективно уменьшить ненужные сделки и избежать подтасовки.
По сравнению с другими показателями, такими как простая скользящая средняя, показательная скользящая средняя в этой стратегии более чувствительна к последним данным и может быстрее улавливать недавние изменения рынка.
Легкость внедрения. Концепция стратегии проста и понятна, легко понятна и реализуема, соответствует требованиям количественных сделок.
Несмотря на определенные преимущества этой стратегии, существуют следующие риски:
Информация об объемах сделок ненадежна. Показатели объемов сделок легко манипулируются, недостаточно стабильны и могут вводить в заблуждение.
Относительно небольшие шансы на выбор, по сравнению со стратегией простого следования тенденции, которые могут привести к недостаточному количеству торгов.
Трудность в выборе параметров. Выбор параметров, таких как длина перемещаемой средней длины, может иметь большое влияние на эффективность стратегии, а неправильный выбор может значительно снизить доход.
Риск резкого изменения ситуации. При быстром движении показатель может не реагировать на последнюю цену, что приводит к риску пропускать лучшие торговые моменты.
Соответствующие методы решения: оптимизация параметров, строгий контроль размеров позиций, установка стоп-стоп; проверка в сочетании с другими факторами; соответствующая коррекция частоты удержания позиций.
Эта стратегия может быть оптимизирована в следующих направлениях:
Более гибкая логика открытия позиции. Можно открыть позицию, когда разница между nRes и стоимостью закрытия больше, чем некоторая убыль, а не только второе классификационное суждение, можно использовать больше возможностей.
Повышение механизма управления позициями. Размер позиции в каждой сделке может быть динамично скорректирован в зависимости от степени волатильности рынка, чтобы эффективно контролировать риск.
В сочетании с другими факторами. Можно добавить дополнительные факторы, такие как эмоциональные показатели, фундаментальные факторы и т. Д., Чтобы сделать стратегический выбор более полным.
Параметры, такие как length, могут быть созданы для автоматической оптимизации алгоритмов, чтобы они могли адаптироваться в соответствии с особенностями различных циклов.
Использование моделей машинного обучения. Модели глубокого обучения, такие как RNN, могут быть использованы для моделирования многомерных характеристик и реализации нелинейных стратегий от конца до конца.
Эта стратегия комплексно учитывает многофакторную информацию о ценах, объемах сделок, корректирует ценовые показатели с помощью скользящих средних индексов объемов сделок и сравнивает их с последними ценами закрытия, чтобы определить направление сделки. По сравнению с одним показателем, она обладает большим объемом информации, меньшим количеством ложных сигналов и другими преимуществами. Но она также сталкивается с меньшим риском манипулирования объемом сделок, меньшим количеством моментов решения. В будущем можно улучшить стратегию, оптимизировав логику открытия позиций, управление позициями, добавив больше факторов и т. Д.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 06/03/2017
// The related article is copyrighted material from Stocks & Commodities 2009 Oct
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Combining Exponential And Volume Weighting", overlay=true)
length = input(22, minval=1)
reverse = input(false, title="Trade reverse")
xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length)
nRes = xMAVolPrice / xMAVol
pos = iff(nRes < close[1], 1,
iff(nRes > close[1], -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1 )
strategy.entry("Long", strategy.long)
if (possig == -1 )
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue)