
Cette stratégie est un système de trading automatisé basé sur des croisements de moyennes mobiles simples (SMA) et des filtres de volume de transactions. Elle utilise des croisements de SMA rapides et lents pour générer des signaux d’entrée, tout en combinant des indicateurs de volume de transactions pour confirmer la force de la tendance. La stratégie comprend également des mécanismes d’arrêt et d’arrêt dynamiques et des conditions d’exit basées sur le temps, visant à optimiser la gestion des risques et à améliorer la rentabilité.
Les principes fondamentaux de cette stratégie reposent sur les éléments clés suivants:
Signaux de croisement SMA:
Filtrez le nombre de livraisons:
La plupart des gens ne sont pas d’accord avec ce que je dis.
Date de sortie:
Paramètres pendant la réception:
Le suivi des tendances est associé à la dynamique: La combinaison de la croisée SMA et du filtrage de la masse permet de capturer les tendances fortes tout en évitant les échanges fréquents dans les marchés faibles.
La gestion des risques est flexible: Les mécanismes de stop-loss et de stop-loss dynamiques permettent aux stratégies d’ajuster automatiquement leur exposition au risque en fonction de la volatilité du marché, ce qui contribue à protéger les bénéfices et à limiter les pertes potentielles.
Pour éviter les positions excessives: La limite de la durée maximale de détention aide à empêcher la stratégie de détenir des positions à perte pendant une longue période dans des conditions de marché défavorables et favorise l’utilisation efficace des fonds.
Une personnalisation forte: Plusieurs paramètres réglables (par exemple, cycle SMA, pourcentage de stop-loss, durée de maintien maximale, etc.) permettent d’optimiser la stratégie en fonction des différents marchés et styles de négociation.
Le soutien visuel: La stratégie trace les lignes SMA et les signaux de négociation sur un graphique pour faciliter la compréhension visuelle et l’analyse de la performance de la stratégie.
Le retard: L’indicateur SMA est intrinsèquement retardé, ce qui peut entraîner des retards d’entrée ou des opportunités manquées dans des marchés à basse vitesse.
Le risque de fausse intrusion: Dans les marchés de gré à gré, les croisements SMA peuvent générer de fréquents signaux de fausse rupture, entraînant une survente des transactions et un accroissement des coûts de transaction.
Le chiffre d’affaires dépend de: Une dépendance excessive à l’indicateur de volume de transactions peut induire en erreur la stratégie dans certaines conditions de marché, en particulier pendant les périodes de faible liquidité ou de volume de transactions anormal.
Pourcentage fixe d’arrêt/arrêt: L’utilisation d’un pourcentage fixe de stop-loss et de stop-loss peut ne pas convenir à toutes les conditions du marché, en particulier pendant les périodes de forte volatilité.
La limitation de la sortie sur une base temporelle: La durée maximale de détention fixe peut entraîner une liquidation prématurée de la position alors que la tendance favorable n’est pas encore terminée, affectant les gains potentiels.
Modification des paramètres dynamiques: Il est possible d’adapter les cycles SMA, le pourcentage de stop loss et le temps de maintien maximal à la dynamique des variations et à la volatilité du marché.
Incorporer des filtres supplémentaires: L’introduction d’autres indicateurs techniques (comme le RSI, le MACD, etc.) comme conditions de filtrage supplémentaires améliore la précision des signaux de trading.
Le taux de conversion est le plus élevé au monde, avec un taux d’accroissement annuel de 2,5%. Développer des mécanismes de dépréciation des volumes de transaction adaptés dynamiquement pour mieux s’adapter aux caractéristiques des volumes de transaction à différents stades du marché.
Amélioration du mécanisme de retrait: L’exploration de mécanismes de sortie intelligents basés sur la structure du marché ou des indicateurs de dynamique, qui remplacent les sorties à temps fixe, améliore l’adaptabilité des stratégies.
Adaptation à la volatilité: La mise en œuvre d’ajustements dynamiques des niveaux d’arrêt et d’arrêt en fonction de la volatilité du marché pour mieux gérer les risques et capturer les bénéfices.
Une analyse de plusieurs périodes: L’intégration d’analyses de données sur plusieurs périodes permet à la stratégie d’identifier les tendances et les retournements du marché.
L’optimisation de l’apprentissage machine: L’utilisation d’algorithmes d’apprentissage automatique pour optimiser dynamiquement les paramètres de la stratégie et améliorer la performance de la stratégie dans différents environnements de marché.
La “stratégie d’arrêt de perte dynamique adaptative avec filtrage SMA croisé et en cours” est un système de négociation intégré qui combine le suivi des tendances, l’analyse de la transaction et la gestion des risques. En utilisant la croisée SMA et le filtrage de la transaction, la stratégie vise à capturer les tendances fortes du marché, tandis que son mécanisme d’arrêt de perte dynamique et sa fonction de sortie basée sur le temps offrent un contrôle du risque flexible. Malgré certaines limites inhérentes, telles que le retard de signal et la dépendance à des paramètres fixes, la stratégie offre plusieurs directions d’optimisation, y compris l’ajustement dynamique des paramètres, l’introduction d’indicateurs techniques supplémentaires et l’utilisation de techniques 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")