
La stratégie combine une croisée des moyennes mobiles, un indice de relative faiblesse (RSI) et un jugement sur une forte amplification du volume des transactions, la prise de position pour faire plus de courte distance lorsque le prix est en train de reculer d’une certaine proportion après un volume de transactions élevé, et la mise en place de trois stop-loss progressifs pour verrouiller des profits de différentes proportions. La stratégie dispose également d’une fonction de suivi des pertes en option pour capturer les opportunités de continuer à évoluer favorablement.
Le croisement entre les moyennes mobiles rapides et les moyennes mobiles lentes fournit un signal précoce pour détecter le début d’un changement de tendance. L’indicateur RSI est utilisé pour évaluer l’état de survente et de survente, ce qui permet d’éviter la production de signaux d’entrée sur le marché dans ces scénarios afin de garantir la stabilité du signal. Lorsque le volume des transactions est nettement supérieur à la moyenne, cela indique que l’attention du marché est attirée par une éventuelle variation de prix.
Le principe d’acquisition et d’arrêt des signaux d’aération est similaire à celui de la multiplication. Il convient de noter que la stratégie a à la fois la capacité de multiplication et de la multiplication.
La stratégie présente les principaux avantages suivants:
Le croisement de la moyenne rapide avec l’indicateur RSI forme un jugement solide sur le moment d’entrée sur le marché, évitant de construire des positions dans des zones de survente et de survente, ce qui améliore la probabilité de profit.
Utilisez l’explosion du volume des transactions comme indice auxiliaire, assurez-vous de choisir des intervalles de stockage avec une plus grande amplitude de fluctuation des prix, renforcer l’indicatif du signal.
La stratégie de création de position, qui consiste à utiliser un certain pourcentage de baisse des prix et des volumes, augmente la précision du moment de l’entrée sur le marché et les chances de reprise ou de hausse.
La mise en place de trois stop-loss progressifs permet de profiter pleinement de la marge de fluctuation des prix pour verrouiller les bénéfices. L’investisseur peut choisir plusieurs stop-loss en fonction de ses propres risques.
La fonctionnalité de suivi des pertes en option permet aux investisseurs de choisir de l’activer ou non en fonction des fluctuations du marché, tout en obtenant des rendements plus élevés avec la garantie.
Il s’applique également aux transactions à plusieurs têtes et à vide, permettant de réaliser des bénéfices à la fois à la hausse et à la baisse du marché, ce qui augmente la pratique de la stratégie.
Malgré cette stratégie soigneusement conçue, il y a des risques dans la négociation de n’importe quel produit financier et il faut être conscient de ceci:
La croisée des courbes n’est pas toujours correcte pour les tendances du marché, et des signaux erronés peuvent apparaître si les paramètres de la courbe ne sont pas appropriés.
Une mauvaise configuration des paramètres de l’indicateur RSI peut également entraîner une fuite dans la zone de survente. Les paramètres du cycle RSI doivent être ajustés en fonction du marché.
Une augmentation du volume des transactions n’est pas nécessairement synonyme d’une variation significative des prix, et les critères de référence du volume des transactions peuvent être adaptés en conséquence.
La baisse des prix et du volume des transactions peut affecter le timing de la mise en marché, ce qui nécessite également des ajustements en fonction du marché.
Les stop-loss ne sont pas garanties d’être entièrement échangées selon la marge de stop-loss définie, et des changements soudains sur le marché peuvent entraîner des points de glissement.
Si le stop loss est trop élevé, il est possible que le stop loss soit retiré prématurément, ce qui entraîne une perte de plus de gains.
Pour les risques ci-dessus, il est nécessaire d’assurer la stabilité et la fiabilité de la stratégie par l’optimisation du code, l’ajustement des paramètres et un retour d’examen rigoureux.
Il y a encore de la place pour optimiser cette stratégie:
L’ajout d’autres indicateurs de jugement pour aider à la prise de décision, comme la combinaison d’indicateurs tels que les bandes de Brin, KD, etc. peut améliorer encore la précision du signal.
La construction d’une moyenne mobile dynamique, combinée à des méthodes d’apprentissage automatique telles que LSTM, permet d’ajuster automatiquement les paramètres de la moyenne en fonction de la situation récente du marché, ce qui améliore la capacité de jugement sur les tendances.
L’ajout d’une fonction d’ajustement dynamique stop/stop loss basée sur les fluctuations du marché permet à la stratégie d’ajuster automatiquement la marge d’arrêt en fonction de la volatilité du marché.
L’approche dynamique permet d’optimiser en temps réel le facteur de reprise en fonction de la corrélation entre la hausse et la baisse de l’ensemble du marché et les actions individuelles, afin de choisir le meilleur moment pour placer une position.
L’utilisation de modèles multifactoriels, combinés à l’analyse des sentiments et à l’analyse des règles d’association, permet d’améliorer considérablement l’efficacité des stratégies en choisissant celles qui présentent la plus forte corrélation entre les prix et les variations du volume des transactions.
Cette stratégie est généralement très bien adaptée aux investisseurs de petite et moyenne ligne. Les fonctionnalités de la stratégie optimisées seront plus complètes et intelligentes, avec une valeur d’application plus élevée. En tant que stratégie de trading quantitative et proactive, elle fournit un excellent retour sur investissement tout en s’efforçant de réduire les risques et de vraiment faire des affaires solides.
/*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)