Stratégie de double momentum


Date de création: 2023-09-28 15:03:57 Dernière modification: 2023-09-28 15:03:57
Copier: 2 Nombre de clics: 715
1
Suivre
1617
Abonnés

Aperçu

La stratégie bi-dynamique utilise deux indicateurs dynamiques rapides et lents pour générer des signaux de transaction et de sortie. Il s’agit d’une stratégie de réponse rapide, applicable aux variétés tendancielles sur les lignes journalières et les lignes de 4 heures.

Le mode d’exploitation peut être défini comme multi vide ou multi tête.

Il est également possible de définir un stop fixe ou un stop négatif pour que la stratégie fonctionne uniquement en fonction des signaux d’entrée et de sortie.

Principe de stratégie

Cette stratégie utilise un indicateur de dynamique à cycles rapides (default 5 jours) et lents (default 10 jours).

Un signal de multiplication est généré lorsque le mouvement lent et le mouvement rapide sont tous deux supérieurs à zéro.

Un signal de plage est généré lorsque le mouvement lent ou le mouvement rapide est inférieur à 0.

De même, un signal de coupe est généré lorsque le mouvement lent et le mouvement rapide sont tous deux inférieurs à zéro. Un signal d’équilibre est généré lorsque le mouvement lent ou le mouvement rapide sont supérieurs à zéro.

Ainsi, la stratégie utilise le croisement de deux ensembles de dynamiques cycliques différentes pour capturer les changements de tendance et réaliser un suivi de tendance.

Analyse des avantages

  • L’utilisation d’indicateurs à double dynamique permet de capturer plus précisément les changements de tendance du marché et de réduire les faux signaux.

  • La dynamique des cycles rapides est sensible aux changements du marché et peut réagir rapidement aux tendances; les cycles lents filtrent le bruit du marché et assurent la bonne direction des transactions.

  • Il est possible de choisir d’effectuer des transactions en plusieurs ou en deux sens, en fonction de vos préférences en matière de trading.

  • Vous pouvez choisir d’utiliser ou non un stop loss pour contrôler le risque.

  • La stratégie est sensible aux réactions et est particulièrement adaptée aux transactions tendancielles sur la ligne solaire ou sur des cycles plus élevés, permettant de réaliser des gains supplémentaires.

Analyse des risques

  • La stratégie de double dynamique est basée sur des valeurs de l’indicateur supérieures ou inférieures à 0 pour juger de la tendance, avec un certain retard.

  • Cette stratégie est plus dépendante de la tendance, ne fonctionne pas bien dans les marchés de consolidation et est susceptible de générer des transactions excessives, entraînant une augmentation des frais de transaction.

  • Si vous n’utilisez pas de stop loss, vous courez un risque plus élevé de perte individuelle.

  • Les variétés et les cycles inappropriés peuvent également entraîner une mauvaise performance de la stratégie.

Pour contrôler les risques, il est recommandé d’ajuster les paramètres de la dynamique du cycle de manière appropriée et de définir un taux de stop-loss fixe raisonnable. En même temps, choisissez des variétés avec une tendance claire et exécutez la stratégie sur la ligne du jour ou une période plus élevée.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Ajouter des filtres sur d’autres indicateurs, tels que le MACD ou le RSI, pour éviter les erreurs de trading lors des virages de tendance.

  2. L’augmentation du mécanisme d’adaptation aux arrêts de perte, qui permet d’ajuster dynamiquement les arrêts de perte en fonction de la volatilité du marché.

  3. Optimiser les paramètres de la dynamique pour trouver les combinaisons de paramètres les plus appropriées pour les différentes variétés. Cela peut être réalisé par des méthodes telles que l’optimisation par étapes, l’analyse de marche en avant.

  4. Ajout d’un mécanisme de gestion des positions, afin d’ajuster la taille des nouvelles positions en fonction des gains anticipés.

  5. Distinguer les marchés à capitaux multiples des marchés à capitaux nuls et adopter une stratégie d’entrée asymétrique. Les marchés à capitaux nuls peuvent être plus agressifs et les marchés à capitaux multiples plus prudents.

Résumer

La stratégie de double dynamique permet d’obtenir de meilleurs gains supplémentaires en déterminant la direction de la tendance à la croisée des indicateurs de dynamique rapide et lente, en utilisant des indicateurs simples pour capturer les changements de tendance du marché, adaptés au suivi de tendances visibles au cours de la journée ou au cours de la journée. Cependant, la stratégie présente également un certain risque de retard, qui nécessite une combinaison de stop-loss et d’autres indicateurs pour contrôler le risque et une optimisation pour les variétés et les paramètres, afin d’obtenir une performance plus stable.

Code source de la stratégie
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
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/
// © QuantCT

//@version=4
strategy("Momentum Strategy Idea",
         shorttitle="Momentum", 
         overlay=false,
         pyramiding=0,     
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         initial_capital=1000,           
         commission_type=strategy.commission.percent, 
         commission_value=0.075)

// ____ Inputs

fast_period = input(title="Fast Period", defval=5) 
slow_period = input(title="Slow Period", defval=10)
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)

// ____ Logic

mom_fast = mom(close, fast_period)
mom_slow = mom(close, slow_period)
    
enter_long = (mom_slow > 0 and mom_fast > 0)
exit_long = (mom_slow < 0 or mom_fast < 0)
enter_short = (mom_slow < 0 and mom_fast < 0)
exit_short = (mom_slow > 0 or mom_fast > 0)

strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long) 
if (not long_only)
    strategy.entry("Short", strategy.short, when=enter_short)
    strategy.close("Short", when=exit_short) 
   
// ____ SL

sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
    strategy.exit(id="SL", from_entry="Long", stop=sl_long)
    strategy.exit(id="SL", from_entry="Short", stop=sl_short)
    
// ____ Plots

colors = 
 enter_long ? #27D600 :
 enter_short ? #E30202 :
 color.orange

mom_fast_plot = plot(mom_fast, color=colors)
mom_slow_plot = plot(mom_slow, color=colors)
fill(mom_fast_plot, mom_slow_plot, color=colors, transp=50)