Стратегия торговли импульсом и объемом

Автор:Чао Чжан, Дата: 2023-12-19 15:37:16
Тэги:

img

Обзор

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

Принцип стратегии

Сила и длительность трендов изменения цен на акции определяют импульс. Эта стратегия рассчитывает изменение с предыдущих дней, близкие к импульсу цен. Импульс является положительным, когда цены растут последовательно, и отрицательным, когда цены падают последовательно. Стратегия также сочетает в себе индикатор объема торговли. Сигналы покупки и продажи запускаются только тогда, когда объем торгов значительно выше 20-дневной скользящей средней (выше порога).

В частности, условие покупки представляет собой перекресток индикатора импульса выше нуля с объемом торговли более чем в 2 раза превышающим 20-дневный средний показатель. Условие продажи является противоположным. После покупки целевая прибыль устанавливается в 0,8 раза выше входной цены, а стоп-лосс - в 0,5 раза. Целевая прибыль и стоп-лосс после продажи соответствующим образом изменяются.

Преимущества

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

Риски

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

Улучшение

Для улучшения эффективности стратегии можно было бы включить больше источников данных. Например, объем обсуждений соответствующих акций на платформах социальных сетей может указывать на будущие движения цен. Эти данные могут обеспечить дополнительные сигналы входа и выхода. Фундаментальные показатели, такие как соотношение P / E и соотношение P / B, также могут помочь проверить устойчивость изменения цен и уменьшить ошибочные сделки.

Заключение

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


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Momentum and Volume Bot', overlay=true)

// Define strategy parameters
profit_target_percent = input(0.8, title='Profit Target (%)')
stop_loss_percent = input(0.5, title='Stop Loss (%)')
volume_threshold = input(2, title='Volume Threshold')

// Calculate momentum
momentum = close - close[1]

// Calculate average volume
avg_volume = ta.sma(volume, 20)

// Buy condition
buy_condition = ta.crossover(momentum, 0) and volume > avg_volume * volume_threshold

// Sell condition
sell_condition = ta.crossunder(momentum, 0) and volume > avg_volume * volume_threshold

// Strategy logic
strategy.entry('Buy', strategy.long, when=buy_condition)
strategy.entry('Sell', strategy.short, when=sell_condition)

// Set profit target and stop loss
strategy.exit('Take Profit/Stop Loss', from_entry='Buy', profit=close * profit_target_percent / 100, loss=close * stop_loss_percent / 100)
strategy.exit('Take Profit/Stop Loss', from_entry='Sell', profit=close * profit_target_percent / 100, loss=close * stop_loss_percent / 100)

// Plotting
plotshape(series=buy_condition, title='Buy Signal', color=color.new(color.green, 0), style=shape.triangleup, size=size.small)
plotshape(series=sell_condition, title='Sell Signal', color=color.new(color.red, 0), style=shape.triangledown, size=size.small)



Больше