Cette stratégie met en œuvre une tendance automatisée après le trading en calculant les bandes de Bollinger pour identifier les baisses et les pics et en utilisant des moyennes mobiles à long terme et à court terme pour déterminer la direction générale de la tendance.
Les éléments clés de la stratégie sont les suivants:
Calculer les bandes de Bollinger avec bandes supérieures et inférieures en fonction du prix de clôture et de l'écart type.
Déterminer la tendance à long terme et à court terme à l'aide d'une SMA de 300 périodes et d'une SMA de 20 périodes.
Générer un signal d'achat lorsque la clôture dépasse la bande inférieure tandis que la SMA longue est au-dessus et que la SMA courte monte.
Générer un signal de vente lorsque la clôture dépasse la bande supérieure tandis que la SMA longue est en dessous et que la SMA courte descend.
Utilisez les ordres OCO pour définir un stop loss et un profit.
Grâce à cette conception, la stratégie peut identifier automatiquement les opportunités d'achat de plongée et de vente de pointe le long de la direction de tendance principale.
Les avantages de cette stratégie sont les suivants:
Détection automatique des tendances sans jugement manuel.
Capter systématiquement les baisses pour les opportunités d'achat.
Identifier systématiquement les occasions de vente de pointe pour réaliser des bénéfices.
Contrôle efficace des risques en utilisant le stop loss et le take profit.
Filtrez les signaux non valides pour améliorer le taux de victoire.
Tendance souple suivie d'un ajustement de position.
Une logique claire et facile à comprendre et à optimiser.
Les principaux risques à prendre en considération:
Une sélection inappropriée des titres pourrait faire échouer le suivi des tendances.
Un réglage incorrect des paramètres peut entraîner des transactions excédentaires ou manquées.
L'inversion de tendance due à des événements soudains peut entraîner des pertes plus importantes.
Un stop-loss trop serré peut entraîner des arrêts excessifs.
Une liquidité insuffisante peut empêcher une exécution complète.
Suradaptation avec une période de retesting insuffisante.
Les solutions comprennent: sélectionner des actions liquides avec des tendances claires; optimiser les paramètres; surveiller les nouvelles; détendre le stop loss; évaluer le volume réel des transactions; élargir la période de backtest.
Quelques façons d'optimiser la stratégie:
Optimisez les paramètres tels que la période de Bollinger, le multiplicateur d'écart type et les périodes moyennes mobiles.
Ajoutez des méthodes de stop loss comme le trailing stop ou le moving average stop pour mieux contrôler les risques.
Incorporer une dimensionnement des positions basé sur des niveaux clés pour améliorer l'efficacité de l'utilisation du capital.
Ajoutez un filtre de volume pour éviter les pannes non valides avec un volume faible.
Ajouter un indicateur de force relative pour déterminer le biais achat/vente.
Introduire l'apprentissage automatique pour le réglage automatique des paramètres et l'évaluation de la stratégie.
Combiner avec d'autres stratégies pour créer un portefeuille multi-stratégies pour une plus grande robustesse.
Ces optimisations peuvent encore améliorer les performances et la stabilité de la stratégie.
La stratégie offre une approche claire et compréhensible pour acheter systématiquement des baisses et vendre des pics le long de la tendance. Avec un bon contrôle des risques, elle a un bon potentiel de profit. Des améliorations supplémentaires peuvent être apportées via l'ajustement des paramètres, la modification du stop loss, la dimensionnement des positions, etc. La stratégie sert de base solide pour une tendance automatisée après le trading.
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Buy Dip Sell Rip Strategy", overlay=true) source = close length = input(15, minval=1) mult = input(1.25, minval=0.001, maxval=50) longMAPeriod = input(300, minval=5) shortMAPeriod = input(20, minval=5) basis = sma(source, length) longMA = sma(source, longMAPeriod) prevLongMA = sma(close[1],longMAPeriod) shortMA = sma(source, shortMAPeriod) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev buyEntry = crossover(source, lower) sellEntry = crossunder(source, upper) if (source > lower and source[1] < lower) if (longMA < source and shortMA>source) strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE") else strategy.close("BBandSE") else strategy.cancel(id="BBandLE") if (source > upper and source[1] < upper) if (longMA > source and shortMA < source) strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE") else strategy.close("BBandLE") else strategy.cancel(id="BBandSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)