Cette stratégie combine le croisement moyen mobile, l'indice de force relative (RSI) et un volume de trading significativement amplifié pour prendre des positions longues/courtes après avoir détecté un certain pourcentage de recul du prix sur des pics de volume élevés.
L'indicateur RSI évalue les conditions de surachat/survente pour éviter ces scénarios pour des signaux d'entrée plus robustes. Une augmentation significative par rapport au volume moyen indique un mouvement de prix potentiel qui attire l'attention du marché. Ces pics de volume renforcent la force des signaux d'entrée. Après un pic de volume et une augmentation de prix, les ordres d'entrée sont déclenchés lorsque le prix et le volume ont rétracté un pourcentage spécifié, indiquant une correction ou un renversement potentiel.
Les mêmes principes s'appliquent aux signaux d'entrée et de sortie courts.
Principaux avantages de cette stratégie:
Le croisement de MAs rapides/lents combiné à RSI forme des signaux d'entrée robustes, évitant les zones de surachat/survente pour augmenter les cotes gagnantes.
Les pics de volume permettent de capturer les grandes fluctuations de prix pour l'établissement de la position, renforçant la force du signal.
Le mécanisme de recul prix/volume améliore la précision du calendrier d'entrée pour saisir les opportunités d'inversion ou de hausse.
Les TP à trois niveaux utilisent la tendance haussière des prix pour obtenir des bénéfices basés sur la tolérance au risque.
L'arrêt facultatif permet une flexibilité permettant de préserver le capital tout en conservant la possibilité de réaliser des bénéfices plus élevés en fonction de la volatilité du marché.
Applicable à la fois aux transactions longues et courtes, les bénéfices peuvent être réalisés sur les marchés à tendance haussière ou à tendance baissière, ce qui améliore l'utilité.
Malgré une conception soigneuse, le trading de tout produit financier comporte des risques.
Les croisements MA ne déterminent pas toujours avec précision la tendance. Des signaux erronés peuvent se produire si des paramètres MA inappropriés sont utilisés.
Un mauvais réglage de la période de l'indice de volatilité peut entraîner l'échec de l'évitement des zones de surachat/survente.
Les pics de volume ne correspondent pas nécessairement parfaitement aux changements significatifs de prix.
Une baisse excessive ou insuffisante des prix/volumes affecte le calendrier de l'entrée, ce facteur nécessitant également un ajustement fondé sur le marché.
Les niveaux de prise de profit prédéfinis ne peuvent garantir l'exécution complète des ordres TP. Des changements soudains sur le marché peuvent entraîner un glissement.
Un stop-loss trop large peut entraîner une sortie prématurée des positions, ce qui entraîne une perte de plus gros bénéfices.
Ces risques nécessitent une optimisation du code, un ajustement des paramètres et des tests de retour rigoureux pour assurer la fiabilité de la stratégie.
D'autres améliorations:
Ajoutez d'autres indicateurs comme les bandes de Bollinger ou KD pour faciliter les décisions d'entrée, améliorant ainsi la précision.
Incorporer des modèles d'apprentissage automatique tels que LSTM pour établir des MAs dynamiques qui adaptent automatiquement les paramètres aux dernières conditions du marché, améliorant ainsi la capture des tendances.
Mettre en place un stop-loss / profit dynamique basé sur la volatilité du marché pour ajuster automatiquement les niveaux en conséquence.
Utiliser l'analyse de co-intégration pour choisir de manière optimale le facteur de recul par mouvement des prix sur l'ensemble du marché par rapport aux corrélations entre les actions individuelles, afin d'obtenir un moment d'entrée optimal.
Utilisez des modèles multifactoriels avec analyse des sentiments, minage des règles d'association, etc. pour sélectionner les stocks avec les correlations les plus élevées entre les changements de prix et de volume afin de mettre en œuvre une stratégie pour une augmentation énorme de la performance.
Il s'agit d'une excellente stratégie pour les traders à moyen et à court terme après l'amélioration. Avec des fonctions de plus en plus robustes et intelligentes basées sur l'optimisation, il présente de grands mérites pratiques pour le trading en direct tout en s'efforçant d'offrir des rendements supérieurs à ceux du marché avec des risques fermement contrôlés.
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Advanced Strategy with Volume and Price Retracement and Multi-Take Profit (USDT)", overlay=true) // Parametreler fastLength = input(12, minval=1, title="Fast Moving Average") slowLength = input(26, minval=1, title="Slow Moving Average") rsiPeriod = input(14, minval=1, title="RSI Period") volLength = input(20, minval=1, title="Volume MA Length") volMultiplier = input(2.0, title="Volume Spike Multiplier") trailOffset = input(1, title="Trailing Offset (%)") usdtPerTrade = input(50000, title="USDT per Trade") retraceFactor = input(0.8, title="Retracement Factor for Entry") takeProfit1 = input(1, title="Take Profit 1 (%)") takeProfit2 = input(2, title="Take Profit 2 (%)") takeProfit3 = input(3, title="Take Profit 3 (%)") trailForTP = input(true, title="Use Trailing Stop for Take Profits") // Hesaplamalar fastMA = sma(close, fastLength) slowMA = sma(close, slowLength) rsi = rsi(close, rsiPeriod) volMA = sma(volume, volLength) volumeSpike = volume > volMA * volMultiplier // Durum Değişkenleri ve Saklanan Değerler var float spikeVolume = na var float spikePrice = na var int direction = 0 // Alım/Satım Sinyalleri longCondition = crossover(fastMA, slowMA) and rsi < 70 shortCondition = crossunder(fastMA, slowMA) and rsi > 30 // Hacim Spike ve Fiyat Hareketinin Saklanması if (longCondition and volumeSpike) spikeVolume := volume spikePrice := close direction := 1 else if (shortCondition and volumeSpike) spikeVolume := volume spikePrice := close direction := -1 // Retracement Kontrolü ve Giriş Emirleri if (direction == 1 and volume < spikeVolume * retraceFactor and close < spikePrice * (1 - trailOffset / 100)) strategy.entry("Long", strategy.long, qty=usdtPerTrade / close) spikeVolume := na direction := 0 else if (direction == -1 and volume < spikeVolume * retraceFactor and close > spikePrice * (1 + trailOffset / 100)) strategy.entry("Short", strategy.short, qty=usdtPerTrade / close) spikeVolume := na direction := 0 // Take Profit Emirleri if strategy.position_size > 0 strategy.exit("TP1", "Long", limit=strategy.position_avg_price * (1 + takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na) strategy.exit("TP2", "Long", limit=strategy.position_avg_price * (1 + takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na) strategy.exit("TP3", "Long", limit=strategy.position_avg_price * (1 + takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na) if strategy.position_size < 0 strategy.exit("TP1", "Short", limit=strategy.position_avg_price * (1 - takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na) strategy.exit("TP2", "Short", limit=strategy.position_avg_price * (1 - takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na) strategy.exit("TP3", "Short", limit=strategy.position_avg_price * (1 - takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na) // Pozisyon çıkışları strategy.close("Long", when=shortCondition) strategy.close("Short", when=longCondition)