Esta estratégia faz decisões de compra e venda com base no indicador de impulso e no indicador de volume de negociação de ações. Ela compra quando o impulso ascendente dos preços das ações acelera e o volume de negociação aumenta, e vende quando o impulso descendente acelera e o volume de negociação aumenta. A estratégia capta o impulso de preços de curto prazo trazido pelo comportamento do rebanho do mercado.
A força e a duração das tendências de mudança de preços das ações determinam o impulso. Esta estratégia calcula a mudança dos dias anteriores perto do impulso do preço do juiz. O impulso é positivo quando os preços aumentam consecutivamente e negativo quando os preços caem consecutivamente. A estratégia também combina o indicador de volume de negociação.
Especificamente, a condição de compra é um cruzamento do indicador de momentum acima de 0, com volume de negociação mais de 2 vezes a média de 20 dias. A condição de venda é o oposto. Após a compra, a meta de lucro é definida em 0,8 vezes o preço de entrada e o stop loss é 0,5 vezes. A meta de lucro e o stop loss após a venda são revertidos em conformidade.
A maior vantagem é capturar tendências de mercado de curto prazo e comportamento de rebanho. Quando os preços das ações mostram aumentos ou quedas sustentados, muitos investidores varejistas e institucionais seguirão o impulso de preço mais forte para negociar. Isso cria uma tendência de preços de curto prazo auto-reforçada. A estratégia gera retornos excessivos alavancando tal psicologia de mercado.
Em primeiro lugar, as flutuações de preços a curto prazo são imprevisíveis. Existem riscos de reversões acentuadas devido a eventos repentinos, que não podem ser totalmente evitados apesar das perdas de parada. Em segundo lugar, a qualidade dos dados dos volumes de negociação varia. A possibilidade de manipulação não pode ser totalmente descartada, o que distorce os sinais comerciais. Em terceiro lugar, a simples análise de preço e volume não pode controlar com precisão as tendências a curto prazo. Grandes mudanças estruturais no mercado podem afetar o desempenho da estratégia.
A estratégia pode ser melhorada através da incorporação de mais fontes de dados. Por exemplo, o volume de discussões de ações relacionadas em plataformas de mídia social pode indicar movimentos futuros de preços. Estes dados podem fornecer sinais de entrada e saída suplementares. Indicadores fundamentais como a taxa de P / E e a taxa de P / B também podem ajudar a verificar a sustentabilidade da mudança de preço e reduzir os negócios errados.
Ao capturar mudanças integradas no impulso dos preços e no volume de negociação, esta estratégia julga as tendências de curto prazo e o comportamento do rebanho. Tais grandes dados e estratégias quantitativas baseadas em finanças comportamentais podem produzir retornos esperados mais altos do que as estratégias tradicionais. Mas os riscos precisam de reconhecimento e prevenção.
/*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)