Cette stratégie est un système de négociation basé sur des croisements de moyennes mobiles, combinant des arrêts dynamiques et des objectifs de profit doubles pour la gestion des risques.
Signaux d'entrée:
Gestion des risques:
Objectifs de profit:
Gestion des postes:
Suivi des tendances: utilise des moyennes mobiles pour capturer les tendances du marché, ce qui aide à tirer profit des mouvements majeurs du marché.
Contrôle des risques: Combine le stop-loss initial avec le stop-trailing dynamique, limitant les pertes maximales tout en protégeant les bénéfices accumulés.
Maximisation des bénéfices: en fixant deux prix cibles, il assure des bénéfices partiels tout en continuant à suivre des tendances plus importantes.
Automatisation: La stratégie est entièrement automatisée, ce qui réduit les interférences émotionnelles dans les décisions commerciales.
Flexibilité: divers paramètres tels que la période moyenne mobile, les points de stop-loss et les objectifs de profit peuvent être ajustés en fonction des conditions du marché.
Risque de rupture du marché: Dans les marchés oscillants à plage, les signaux de rupture fausses fréquents peuvent entraîner des pertes consécutives.
Risque de glissement: sur les marchés en évolution rapide, les prix d'exécution réels peuvent s'écarter sensiblement des prix idéaux.
Surtrading: les signaux croisés fréquents peuvent entraîner une surtrading, ce qui augmente les coûts de transaction.
Dépendance d'un seul indicateur: s'appuyer uniquement sur des moyennes mobiles peut faire oublier d'autres informations importantes sur le marché.
Risque de position fixe: la négociation d'une quantité fixe pour chaque transaction peut ne pas convenir à tous les environnements de marché.
Intégration multi-indicateurs: envisager l'introduction d'autres indicateurs techniques tels que le RSI, le MACD, etc., à utiliser conjointement avec des moyennes mobiles afin d'améliorer la fiabilité du signal d'entrée.
Taille dynamique des positions: ajuster la quantité de négociation en fonction de la volatilité du marché et du solde du compte afin de mieux contrôler le risque.
Filtrage de l'environnement du marché: ajouter des indicateurs de force de tendance ou de volatilité pour éviter les entrées dans des conditions de marché défavorables.
Optimisation des paramètres: Utilisez les données historiques pour tester en arrière-plan différentes combinaisons de paramètres afin de trouver des paramètres optimaux pour les périodes moyennes mobiles, les points de stop-loss et les objectifs de profit.
Filtrage temporel: envisager d'ajouter des filtres temporels pour éviter de négocier pendant les périodes de forte volatilité ou de faible liquidité.
Intégration des facteurs fondamentaux: intégrer des communiqués de données économiques importants ou d'autres événements fondamentaux pour ajuster le calendrier d'entrée et de sortie de la stratégie.
La stratégie Dynamic Trailing Stop Dual Target Moving Average Crossover est un système de trading quantitatif qui combine l'analyse technique et la gestion des risques. Elle capture les tendances du marché en utilisant des moyennes mobiles tout en équilibrant le risque et la récompense grâce à des arrêts de pertes dynamiques et à plusieurs objectifs de profit. Les principaux avantages de la stratégie résident dans son haut degré d'automatisation, son contrôle flexible des risques et son potentiel de rendement significatif sur les marchés à forte tendance.
/*backtest start: 2023-07-29 00:00:00 end: 2024-07-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SOL/USDT Trading Strategy", overlay=true) // Параметры стратегии input_quantity = input(2, title="Trade Size (SOL)") stop_loss_points = input(500, title="Stop Loss Points") take_profit_points_1 = input(3000, title="First Take Profit Points") take_profit_points_2 = input(4000, title="Second Take Profit Points") move_stop_to_entry_points = input(200, title="Move Stop to Entry Points") ma_period = input(180, title="MA Period") // Расчет скользящей средней ma = ta.sma(close, ma_period) // Условия входа в сделку long_condition = ta.crossover(close, ma) short_condition = ta.crossunder(close, ma) // Текущая цена var float entry_price = na // Логика открытия и закрытия сделок if (long_condition) entry_price := close strategy.entry("Long", strategy.long, qty=input_quantity) if (short_condition) entry_price := close strategy.entry("Short", strategy.short, qty=input_quantity) // Логика выхода из сделок if (strategy.position_size > 0) if (close >= entry_price + take_profit_points_1 * syminfo.mintick) strategy.exit("Partial Take Profit", "Long", qty=0.75 * input_quantity, limit=close) strategy.exit("Remaining Take Profit", "Long", qty=0.25 * input_quantity, limit=entry_price + take_profit_points_2 * syminfo.mintick, stop=entry_price) if (close >= entry_price + move_stop_to_entry_points * syminfo.mintick) strategy.exit("Stop Loss at Entry", "Long", qty=strategy.position_size, stop=entry_price) else strategy.exit("Take Profit/Stop Loss", "Long", stop=entry_price - stop_loss_points * syminfo.mintick, limit=entry_price + take_profit_points_1 * syminfo.mintick) if (strategy.position_size < 0) if (close <= entry_price - take_profit_points_1 * syminfo.mintick) strategy.exit("Partial Take Profit", "Short", qty=0.75 * input_quantity, limit=close) strategy.exit("Remaining Take Profit", "Short", qty=0.25 * input_quantity, limit=entry_price - take_profit_points_2 * syminfo.mintick, stop=entry_price) if (close <= entry_price - move_stop_to_entry_points * syminfo.mintick) strategy.exit("Stop Loss at Entry", "Short", qty=strategy.position_size, stop=entry_price) else strategy.exit("Take Profit/Stop Loss", "Short", stop=entry_price + stop_loss_points * syminfo.mintick, limit=entry_price - take_profit_points_1 * syminfo.mintick) // Отображение скользящей средней plot(ma, title="200 MA", color=color.blue)