Cette stratégie est un système de trading automatisé basé sur un simple croisement des moyennes mobiles (SMA) et un filtrage des transactions. Elle utilise l'intersection des SMA rapides et lents pour générer des signaux d'entrée, tout en combinant des indicateurs de transactions pour confirmer l'intensité de la tendance. La stratégie comprend également des mécanismes de stop-loss et de stop-gap dynamiques, ainsi que des conditions d'exit basées sur le temps, visant à optimiser la gestion des risques et à améliorer la rentabilité.
Les principes de base de cette stratégie reposent sur les éléments clés suivants:
Le signal de croisement SMA:
Le filtrage des transactions:
Les déchets de détection et les détecteurs de détection:
Le temps est compté pour se retirer:
Les paramètres pendant le retest:
Le suivi des tendances est associé à la dynamique: En combinant le cross-SMA et le filtrage des transactions, la stratégie permet de capturer les marchés en forte tendance tout en évitant les transactions fréquentes dans les marchés faibles.
La gestion du risque est flexible: Les mécanismes de stop-loss et de stop-loss dynamiques permettent à la stratégie d'ajuster automatiquement l'exposition au risque en fonction de la volatilité du marché, ce qui contribue à protéger les bénéfices et à limiter les pertes potentielles.
Il y a aussi une autre façon de prévenir le surstockage: La limitation maximale de la durée de détention aide à empêcher la stratégie de maintenir des positions à perte pendant une longue période dans des conditions de marché défavorables et favorise l'utilisation efficace des fonds.
Il est possible de le personnaliser: Plusieurs paramètres réglables (comme la période SMA, le pourcentage de stop-loss, la durée maximale de détention, etc.) permettent d'optimiser la stratégie en fonction des différents marchés et styles de trading.
La vidéo a été prise en charge par: La stratégie trace sur le graphique les lignes SMA et les signaux de trading pour une compréhension intuitive et une analyse de la performance de la stratégie.
Le retard: L'indicateur SMA est par nature tardif, ce qui peut entraîner une entrée tardive ou une occasion manquée dans un marché en rapide renversement.
Le risque de fausse percée: Dans les marchés de détail, les croisements SMA peuvent générer de fréquents faux signaux de rupture, ce qui entraîne une survente et une augmentation des coûts de transaction.
Les transactions dépendent de: Une trop grande dépendance à l'égard des indicateurs de volume de transactions peut être une stratégie trompeuse dans certaines conditions de marché, en particulier pendant les périodes de faible liquidité ou de volumes de transactions anormaux.
Le taux fixe de cessation/arrêt des pertes: L'utilisation de pourcentages fixes de stop-loss et de stop-loss peut ne pas convenir à toutes les conditions du marché, en particulier en période de forte volatilité.
Les restrictions à la sortie sur la base du temps: Une durée de détention maximale fixe peut entraîner une levée prématurée de la position avant la fin de la tendance favorable, ce qui affecte les gains potentiels.
Modifier les paramètres dynamiques: Réalisez des ajustements dynamiques des cycles SMA, des pourcentages de stop-loss et de la durée maximale de détention pour s'adapter à différents cycles et volatilités du marché.
Incorporer des filtres supplémentaires: L'introduction d'autres indicateurs techniques (tels que le RSI, le MACD, etc.) comme conditions de filtrage supplémentaires améliore l'exactitude des signaux de trading.
Il a également publié un article intitulé: Développer des mécanismes de dépréciation des volumes de transactions dynamiquement ajustés pour mieux s'adapter aux caractéristiques des volumes de transactions à différentes étapes du marché.
Les mécanismes de retrait améliorés: Explorer des mécanismes d'exit intelligent basés sur la structure du marché ou des indicateurs de dynamique, remplacer les sorties à temps fixe et améliorer l'adaptabilité des stratégies.
Il y a aussi des changements dans les conditions de vie. Réaliser des ajustements dynamiques des niveaux de stop-loss et de stop-loss basés sur la volatilité du marché pour mieux gérer les risques et capturer les bénéfices.
L'analyse de plusieurs délais: L'intégration d'analyses de données sur plusieurs délais améliore la capacité de la stratégie à identifier les tendances et les inversions du marché.
L'optimisation de l'apprentissage automatique L'utilisation d'algorithmes d'apprentissage automatique pour optimiser dynamiquement les paramètres stratégiques et améliorer les performances des stratégies dans différents environnements de marché.
La stratégie de stop-loss dynamique adaptative avec filtrage des transactions est un système de négociation intégré qui combine le suivi des tendances, l'analyse des transactions et la gestion des risques. En utilisant le filtrage des transactions, la stratégie est conçue pour capturer les tendances du marché, tout en offrant un mécanisme de stop-loss dynamique et une fonction de sortie temporelle. Malgré des limitations inhérentes, telles que le retard de signal et la dépendance à des paramètres fixes, la stratégie offre plusieurs orientations d'optimisation, y compris l'ajustement dynamique des paramètres, l'introduction d'indicateurs techniques supplémentaires et l'utilisation de technologies d'apprentissage automatique.
/*backtest start: 2024-06-30 00:00:00 end: 2024-07-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Simple_CrossOver_Bot_V1_EBO", overlay=true) // INPUTS dateStart_Year = input.int(2018, title="Start Year", minval=2000) dateStart_Month = input.int(1, title="Start Month", minval=1, maxval=12) dateStart_Day = input.int(1, title="Start Day", minval=1, maxval=31) dateEnd_Year = input.int(2019, title="End Year", minval=2000) dateEnd_Month = input.int(1, title="End Month", minval=1, maxval=12) dateEnd_Day = input.int(1, title="End Day", minval=1, maxval=31) fast_SMA_input = input.int(7, title="SMA Fast") slow_SMA_input = input.int(25, title="SMA Slow") volume_SMA_input = input.int(20, title="Volume SMA") stop_loss_percent = input.float(1.0, title="Stop Loss (%)", step=0.1) / 100 take_profit_percent = input.float(2.0, title="Take Profit (%)", step=0.1) / 100 max_bars_in_trade = input.int(50, title="Max Bars in Trade", minval=1) // INDICATORS fast_SMA = ta.sma(close, fast_SMA_input) slow_SMA = ta.sma(close, slow_SMA_input) volume_SMA = ta.sma(volume, volume_SMA_input) // STRATEGY LONG = ta.crossover(fast_SMA, slow_SMA) and fast_SMA > slow_SMA and volume > volume_SMA SHORT = ta.crossunder(fast_SMA, slow_SMA) and fast_SMA < slow_SMA and volume < volume_SMA // TRIGGERS testPeriodStart = timestamp(dateStart_Year, dateStart_Month, dateStart_Day) testPeriodEnd = timestamp(dateEnd_Year, dateEnd_Month, dateEnd_Day) timecondition = true // Track bar index for entries var int long_entry_bar_index = na var int short_entry_bar_index = na if timecondition if LONG strategy.entry(id="LONG", direction=strategy.long) long_entry_bar_index := bar_index if SHORT strategy.entry(id="SHORT", direction=strategy.short) short_entry_bar_index := bar_index // Exit conditions for LONG if not na(long_entry_bar_index) and bar_index - long_entry_bar_index >= max_bars_in_trade strategy.close("LONG") long_entry_bar_index := na // Exit conditions for SHORT if not na(short_entry_bar_index) and bar_index - short_entry_bar_index >= max_bars_in_trade strategy.close("SHORT") short_entry_bar_index := na // Standard exits if LONG strategy.exit("Exit LONG", from_entry="LONG", stop=close * (1 - stop_loss_percent), limit=close * (1 + take_profit_percent)) if SHORT strategy.exit("Exit SHORT", from_entry="SHORT", stop=close * (1 + stop_loss_percent), limit=close * (1 - take_profit_percent)) // PLOTS plot(fast_SMA, color=color.green, linewidth=1, title="Fast SMA") plot(slow_SMA, color=color.yellow, linewidth=1, title="Slow SMA") plot(volume_SMA, color=color.blue, linewidth=1, title="Volume SMA") plotshape(series=LONG, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small) plotshape(series=SHORT, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small) // Uncomment the following lines for alerts // alertcondition(LONG, title="LONG") // alertcondition(SHORT, title="SHORT")