Tendance à la suite d'une stratégie basée sur l'intégration prix-volume

Auteur:ChaoZhang est là., Date: 2023-09-13 15h25 et 20h
Les étiquettes:

Cette stratégie s'appelle Trend Following Strategy Based on Price-Volume Integration. Elle prend en compte à la fois les indicateurs de prix et de volume pour déterminer la direction de la tendance et générer des signaux alignés sur les forces prix-volume.

La logique de négociation est la suivante:

Calculer d'abord la moyenne mobile à 5 jours du prix et la moyenne mobile à 15 jours du volume.

Lorsque la moyenne mobile des prix sur 5 jours augmente et que la moyenne mobile du volume sur 15 jours augmente également, elle signale une poussée ascendante synchronisée des prix et du volume pour générer des signaux d'achat.

Lorsque la moyenne mobile des prix sur 5 jours diminue ou que la moyenne mobile du volume sur 15 jours diminue, les positions longues existantes sont fermées.

L'avantage de cette stratégie est d'utiliser conjointement les variations de prix et de volume pour juger de la direction de la tendance.

Mais les paramètres des moyennes mobiles doivent être optimisés et ajustés pour correspondre aux différentes caractéristiques des produits.

En conclusion, l'intégration correcte des indicateurs de prix et de volume peut améliorer les performances de la stratégie de trading de tendance.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Celar

//@version=5
strategy("VOLLY PRICE CONVERGE", default_qty_type= strategy.percent_of_equity )
base_sma = ta.sma(close, 10)
vol_sma5 = ta.hma(volume, 15)
price_sma5 = ta.hma(close, 15)
ma50 = ta.sma(close, 50)
ma20 = ta.sma(close, 20)
int vol_indicator = na
int price_indicator = na

if vol_sma5 > vol_sma5[1]
    vol_indicator := 1
else
    vol_indicator := 0

if price_sma5 > price_sma5[1]
    price_indicator := 1
else
    price_indicator := 0
        
signal = vol_indicator + price_indicator

colour = signal == 2 ?  #00802b : signal == 1 ? #cc2900 : color.white 

bank_roll = strategy.equity
qty = bank_roll/close

strategy.entry("Long", strategy.long, qty, when = signal == 2 and close > base_sma)
// Generate a full exit bracket (profit 10 points, loss 5 points per contract) from the entry named "Long".
strategy.close("Long", when = signal == 1 or signal == 0 or close < base_sma )

 
        

Plus de