Cette stratégie intègre les techniques d'intersection de la moyenne mobile et de rupture du niveau de résistance pour configurer des signaux d'achat et de vente pour le trading automatisé. Lorsque la moyenne mobile à court terme traverse la moyenne mobile à moyen terme depuis le bas et que le prix de l'action traverse le niveau de résistance, un signal d'achat est généré. La stratégie définit le profit à 15% d'augmentation de prix et le stop-loss à 3% de baisse de prix pour contrôler les risques. Cette stratégie de trading quantitative mature peut identifier automatiquement les tendances du marché et prendre des positions lorsque des signaux techniques émergent, avec une bonne gestion des risques.
La stratégie génère des signaux de négociation basés principalement sur les indicateurs et jugements techniques suivants:
Technique de croisement des moyennes mobiles: les moyennes mobiles simples de 20 et 44 jours sont calculées.
Technique de rupture de niveau de résistance: les niveaux de prix que le prix de l'action a atteint à plusieurs reprises mais n'a pas réussi à franchir sont appelés niveaux de résistance.
Oscillateur RSI: Indice de force relative, un indicateur de dynamique pour identifier les conditions de surachat et de survente.
Analyse du volume: un volume supérieur à la moyenne des 10 derniers jours indique souvent un intérêt accru pour l'achat ou la vente et une dynamique accrue de l'évolution des prix.
Signal d'achat: déclenché lorsque la SMA courte franchit la SMA moyenne, avec une valeur RSI surachetée et un volume de négociation supérieur à la moyenne, indiquant une tendance à la hausse.
Les signaux de vente: 15% de profit sur le prix d'entrée, 3% de stop-loss.
Cette stratégie quantitative de négociation mature intègre plusieurs méthodes d'analyse technique pour identifier la structure et la tendance du marché, générant automatiquement des signaux de négociation lors de la formation de tendances, avec une gestion appropriée des risques.
Capture les tendances du marché en douceur avec la technique de la moyenne mobile.
Éviter d'ouvrir des positions lors de fausses ruptures en incorporant une analyse du volume.
Contrôle efficace des risques en définissant le stop-loss et le take-profit, en optimisant le rapport risque/rendement.
Dans l'ensemble, l'excellent jugement sur la structure du marché, les règles de négociation rigoureuses et le contrôle des risques en font une stratégie de négociation quantitative solide.
Les systèmes à moyenne mobile double peuvent être sensibles au réglage des paramètres pour différentes périodes.
Les systèmes de suivi de tendance ne peuvent pas réagir rapidement à des événements fondamentaux soudains, ce qui entraîne des risques de stop loss.
Bien qu'avec un stop loss mis en place, une fréquence de négociation élevée conduit à un nombre inévitable d'exécutions de stop loss, ce qui entraîne des niveaux de profit inégaux.
Les signaux des indicateurs techniques sont souvent à la traîne par rapport aux meilleurs points d'inversion des marchés.
Optimiser les paramètres tels que les longueurs moyennes mobiles, l'objectif stop loss / profit par les méthodes de réglage des paramètres pour trouver l'optimum.
Ajoutez d'autres indicateurs techniques tels que les bandes de Bollinger pour la détection de la plage, le MACD pour détecter les divergences, etc. pour améliorer la précision du signal.
Incorporer des signaux fondamentaux et basés sur des événements pour éviter les arrêts de pertes déclenchés par des nouvelles négatives.
Optimiser la gestion de l'argent par des méthodes de quantité fixe et de pourcentage fixe pour contrôler les risques par transaction.
Cette stratégie démontre des opérations en douceur, des jugements précis et des règles de trading rigoureuses, ce qui représente l'une des techniques de trading quantitatives les plus efficaces. Mais l'analyse technique à elle seule a des limites dans la lecture des marchés, de sorte que d'autres améliorations résident dans l'incorporation de plus d'indicateurs et de signaux fondamentaux / événements, l'optimisation des niveaux de stop loss / profit taking et des mécanismes de gestion de l'argent. En résumé, cette stratégie a atteint un niveau élevé parmi les stratégies d'analyse technique, mais devrait se diriger vers les stratégies de trading axées sur les cycles fondamentaux / événements dans les prochaines étapes.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Advanced Strategy with Conditional Stop Loss", overlay=true) // Parameters ma_length_20 = 20 ma_length_44 = 44 ma_length_100 = 100 rsi_length = 14 volume_length = 10 profit_target = 1.15 // 15% above the buy price stop_loss_target = 0.97 // 3% below the buy price wait_candles = 10 // Number of candles to wait after selling, unless MA cross condition met // Indicators moving_average_20 = ta.sma(close, ma_length_20) moving_average_44 = ta.sma(close, ma_length_44) moving_average_100 = ta.sma(close, ma_length_100) rsi = ta.rsi(close, rsi_length) volumeAvg = ta.sma(volume, volume_length) // Variables to manage the wait period after a sell var int last_sell_candle = 0 // Update last sell candle if (strategy.position_size[1] > 0 and strategy.position_size == 0) last_sell_candle := bar_index // Trend identification uptrend = close > moving_average_20 above_ma20_by_1_percent = close > moving_average_20 * 1.01 ma_cross = ta.crossover(moving_average_20, moving_average_44) or ta.crossunder(moving_average_20, moving_average_44) close_near_high = (close >= high * 0.993) and (close <= high) // Buy condition (only in uptrend, above 1% from 20-day MA, and respecting new filter) can_buy_after_cross = ma_cross and close > high[1] can_buy_after_wait = (bar_index - last_sell_candle) > wait_candles buy_condition = (can_buy_after_cross or can_buy_after_wait) and uptrend and above_ma20_by_1_percent and close > moving_average_44 and close > moving_average_100 and close > high[1] and rsi > 50 and volume > volumeAvg and not close_near_high // Entry if (buy_condition and strategy.position_size == 0) strategy.entry("Buy", strategy.long) // Exit conditions if (strategy.position_size > 0) // Profit target profit_level = strategy.position_avg_price * profit_target strategy.exit("Take Profit", "Buy", limit=profit_level) // Dynamic Stop Loss - Check on every bar if the price has dropped 3% below the buy price stop_loss_level = strategy.position_avg_price * stop_loss_target if (low < stop_loss_level) strategy.close("Buy", comment="Stop Loss") // Plotting plot(moving_average_20, color=color.green, title="20-Day Moving Average") plot(moving_average_44, color=color.blue, title="44-Day Moving Average") plot(moving_average_100, color=color.red, title="100-Day Moving Average")