La Cycle Position Trend Following Strategy est une stratégie de trading quantitative qui détermine la direction de la tendance basée sur la moyenne mobile simple (SMA) de 200 jours. Elle fournit deux modes -
L'indicateur de base de cette stratégie est la SMA à 200 jours.
Suivre le mode de tendance haussière: passer à long lorsque la clôture est supérieure à la SMA de 200 jours; position de clôture lorsque le stop loss ou le take profit est déclenché.
Suivre le mode de tendance à la baisse: passer à long lorsque la clôture est inférieure à la SMA de 200 jours; position close lorsque l'arrêt des pertes ou la prise de profit est déclenchée.
La condition longue est définie enlongCondition
La valeur de l'indicateur de prix de clôture est calculée en fonction de l'indicateur de prix de clôture de l'indicateur de prix de clôture.closeCondition
variable basée sur le stop loss, le take profit et le SMA.
Plus précisément,strategy.entry
est utilisé pour ouvrir des positions longues lorsque la condition longue est remplie.strategy.exit
est utilisé pour fermer des positions lorsque la condition de clôture est déclenchée.
Les avantages de cette stratégie sont les suivants:
Une logique simple et claire, facile à comprendre.
Fournit deux modes optionnels adaptés à différents environnements de marché.
Le stop loss et le take profit personnalisables permettent de régler le profil risque-rendement.
Utilise l'indicateur SMA de 200 jours bien connu pour déterminer la direction de la tendance.
Génère des signaux de trading automatisés sans intervention manuelle.
Les risques de cette stratégie comprennent:
L'ajout d'autres indicateurs comme le MACD, KDJ pour la confirmation pourrait aider.
Les niveaux de stop loss et de take profit trop serrés ou trop larges pourraient conduire à un stop out prématuré ou à un manque de points de sortie idéaux.
L'utilisation du prix de clôture pour les signaux a des biais de prix de clôture.
Ne prend pas en compte les coûts de négociation.
Quelques façons d'améliorer la stratégie:
Ajouter d'autres indicateurs pour confirmer les signaux et éviter les faux signaux, par exemple le MACD.
Optimiser les paramètres de stop loss et de profit pour trouver une combinaison optimale grâce au backtesting.
Ajouter un filtre de tendance pour ne négocier que des tendances bien définies, par exemple ADX.
Améliorer la méthode d'entrée en considérant le corps de la bougie ou en ajoutant la confirmation.
Considérez le volume de négociation pour valider la fiabilité du signal.
Testez différentes périodes SMA pour trouver le paramètre optimal.
En conclusion, la stratégie a une logique claire et compréhensible avec une valeur pratique. Mais la dépendance à un seul indicateur a des limites. Plus de conditions doivent être ajoutées pour la confirmation. Les paramètres doivent également être testés et optimisés pour une meilleure performance en direct. En outre, les coûts de trading tels que le glissement et les commissions nécessitent une considération dans le trading en direct.
/*backtest start: 2022-11-10 00:00:00 end: 2023-11-16 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/ // © I11L //@version=5 strategy("Cycle Position Trading", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false) // Input for selecting the mode mode = input.string("Buy Uptrend", options = ["Buy Uptrend", "Buy Downtrend"]) // Input for customizing stop loss and take profit levels stopLoss = input.float(0.9, title="Stop Loss (SL) level", step=0.01) takeProfit = input.float(1.1, title="Take Profit (TP) level", step=0.01) // Calculate the 200-day Simple Moving Average (SMA) sma = ta.sma(close, 200) // Plot the SMA on the chart plot(sma) // Define the conditions for entering a long position based on the selected mode longCondition = mode == "Buy Uptrend" ? close > sma and close[5] > sma : close < sma // Define the conditions for closing a position based on the selected mode closeCondition = mode == "Buy Uptrend" ? (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close < sma * 0.95) : (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close > sma * 1.05) // Execute a long position if the longCondition is met if (longCondition) strategy.entry("My Long Entry Id", strategy.long) // Close the position if the closeCondition is met if (closeCondition) strategy.exit("Exit", limit = close)