
Эта стратегия основана на динамических показателях и показателях объема торгов для принятия решений о покупке и продаже акций. Покупка происходит, когда ускоряется колебание цен на акции и увеличивается объем торгов; продажа происходит, когда ускоряется падение цен на акции и увеличивается объем торгов. Эта стратегия улавливает краткосрочные движения цен, вызванные массовыми действиями рынка.
Сила и продолжительность тенденции изменения цены акции определяет динамику. Эта стратегия определяет динамику цены путем расчета количества изменений в цене акции за предыдущий день.
В частности, условие покупки означает, что на динамическом индикаторе ноль, а объем сделки превышает 20-дневный средний объем сделки в 2 раза; условие продажи означает, что на динамическом индикаторе ноль, а объем сделки превышает 20-дневный средний объем сделки в 2 раза. Установленный после покупки стоп-стоп составляет 0,8 раза от цены покупки, а стоп-стоп - 0,5 раза от цены покупки; и наоборот.
Самым большим преимуществом этой стратегии является то, что она улавливает краткосрочные тенденции рынка и массовое поведение. Когда цены на акции постоянно растут или падают, большое количество розничных торговцев и учреждений следуют за сильной динамикой цен на акции для торговли. Это создает самовоспроизводящуюся краткосрочную ценовую тенденцию.
Во-первых, краткосрочные колебания цен на акции не могут быть полностью прогнозированы и контролированы. Существует риск резкого переворота цены в результате внезапных событий, в то время как механизм остановки убытков не может полностью избежать убытков. Во-вторых, качественная дисперсия в данных о объемах торгов.
Можно рассмотреть возможность объединения большего количества источников данных для повышения эффективности стратегии. Например, введение обсуждения соответствующих акций в интернет-платформах, таких как социальные сети. Когда существенный рост соответствующего обсуждения акции, скорее всего, предвещает изменения в будущей цене акций. Это может служить вспомогательным сигналом для покупки и продажи стратегии. Кроме того, можно рассмотреть возможность объединения основных показателей акций, таких как рыночная доходность, рыночная рентабельность и т. Д. Это помогает дополнительно подтвердить устойчивость изменения цен и уменьшить вероятность ошибочных сделок.
Эта стратегия позволяет судить о краткосрочных тенденциях рынка и массовом поведении путем захвата динамических показателей цен на акции и объемов сделок. Эта количественная инвестиционная стратегия, основанная на принципах больших данных и поведенческой финансов, имеет более высокую ожидаемую прибыль по сравнению с традиционными инвестиционными стратегиями.
/*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)