
Cette stratégie prend des décisions d’achat et de vente basées sur les indicateurs de dynamique et les indicateurs de volume des actions. Elle achète lorsque les fluctuations des prix des actions s’accélèrent et que le volume des transactions augmente; Elle vend lorsque les prix des actions s’accélèrent et que le volume des transactions augmente.
La dynamique est déterminée par la force et la durée d’une tendance à la variation du prix d’une action. La stratégie juge la dynamique du prix en calculant la variation du prix d’une action par rapport à la journée précédente. La dynamique est positive lorsque le prix augmente continuellement; la dynamique est négative lorsque le prix baisse continuellement.
Plus précisément, les conditions d’achat sont 0 sur l’indicateur de dynamisme et le volume de transactions est supérieur à 20 jours, soit 2 fois le volume de transactions moyen; les conditions de vente sont 0 sur l’indicateur de dynamisme et le volume de transactions est supérieur à 20 jours, soit 2 fois le volume de transactions moyen. Le stop-loss après l’achat est de 0,8 fois le prix d’achat et le stop-loss est de 0,5 fois le prix d’achat; et le stop-loss et le stop-loss après la vente sont inversement.
Le plus grand avantage de cette stratégie est de capturer les tendances à court terme du marché et le comportement des masses. Lorsque les prix des actions augmentent ou diminuent de façon continue, un grand nombre de détaillants et d’institutions suivent une forte dynamique des prix des actions pour négocier. Cela crée une tendance à la hausse des prix à court terme qui se renforce.
Tout d’abord, les fluctuations à court terme des cours des actions ne peuvent pas être complètement prédites et contrôlées. Il existe un risque de revirement brutal des cours en raison d’événements soudains, au cours desquels le mécanisme de stop-loss ne peut pas éviter complètement les pertes. Deuxièmement, la qualité des données sur le volume des transactions est incohérente.
On peut envisager de combiner plus de sources de données pour améliorer l’efficacité de la stratégie. Par exemple, l’introduction de discussions sur les actions pertinentes sur les plateformes Internet telles que les médias sociaux. Lorsque le volume de discussions pertinentes sur une action augmente de manière significative, il est probable que cela indique une évolution future du prix des actions. Cela peut servir de signal d’achat et de vente auxiliaire à la stratégie.
Cette stratégie permet de juger des tendances à court terme du marché et du comportement des masses en capturant les indicateurs de dynamique des prix des actions et les indicateurs de volume des transactions. Cette stratégie d’investissement quantitatif, basée sur les grandes données et les principes de la finance comportementale, présente des rendements attendus plus élevés que les stratégies d’investissement traditionnelles.
/*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)