Combinaison d'un suivi de tendance multi-indicateurs et d'une stratégie d'alerte de choc

SMA RSI ADX ATR STOCH
Date de création: 2025-02-18 14:54:47 Dernière modification: 2025-02-18 14:54:47
Copier: 0 Nombre de clics: 343
1
Suivre
1617
Abonnés

Combinaison d’un suivi de tendance multi-indicateurs et d’une stratégie d’alerte de choc

Aperçu

La stratégie est un système de négociation basé sur plusieurs indicateurs techniques, combinant les avantages du suivi de la tendance et des indicateurs de choc. La logique centrale est de juger la direction de la tendance par le croisement de la moyenne SMA, de confirmer la force de la tendance à l’aide de l’ADX, puis d’utiliser le RSI aléatoire pour trouver le meilleur point d’entrée dans la direction de la tendance et de protéger les bénéfices avec un stop-loss de suivi.

Principe de stratégie

Le principe de fonctionnement de la stratégie est le suivant:

  1. Détermination de la tendance: utilisation de la croisée des SMA20 et SMA200 pour déterminer la direction de la tendance, la traversée de la ligne lente sur la ligne rapide est considérée comme une tendance à plusieurs têtes, par opposition à une tendance à vide
  2. Confirmation de l’intensité de la tendance: l’ADX est supérieur à 20 pour indiquer que la tendance est bien développée et éviter de négocier dans un marché de consolidation
  3. La période d’entrée: après la confirmation de la tendance, utilisez le RSI aléatoire pour rechercher des opportunités de survente, cherchez des opportunités de survente lorsque le RSI est inférieur à 30 et des opportunités de survente lorsque le RSI est supérieur à 70
  4. Gestion des positions: utilisation d’un mécanisme de négociation inversé pour automatiquement clôturer et inverser les positions lorsque la tendance change
  5. Contrôle des risques: utilisez un stop-loss de suivi ((40 points, longueur d’avance de 5 points) pour verrouiller les bénéfices et définissez un retard de reprise de 1 ligne K pour éviter les faux signaux

Avantages stratégiques

  1. Analyse multidimensionnelle: amélioration de la fiabilité des transactions en combinant des signaux de transaction confirmés sous différents angles, en combinant la ligne moyenne, l’ADX et le RSI aléatoire
  2. Adaptabilité: la stratégie s’adapte automatiquement à l’état du marché et trouve des opportunités de trading sur les marchés en tendance et en choc
  3. Une gestion des risques perfectionnée: un mécanisme de suivi des arrêts de perte permettant de maintenir la rentabilité tout en protégeant les bénéfices
  4. Participation continue au marché: s’assurer d’être toujours au courant des principales tendances du marché grâce à des mécanismes de négociation inversés
  5. Ajustabilité des paramètres: la stratégie fournit plusieurs paramètres ajustables, permettant une optimisation en fonction des différentes conditions du marché

Risque stratégique

  1. Risque de sur-transaction: les retours fréquents peuvent entraîner des frais de traitement excessifs
  2. Risque de fausse rupture: les signaux de fausse rupture peuvent être fréquents en période de turbulences
  3. Risque de dérapage: sur un cycle de 5 minutes, un coût de dérapage peut être plus élevé
  4. Risque de retard de tendance: le système linéaire est lui-même retardé et risque de manquer des points d’inflexion importants
  5. Sensitivité des paramètres: les effets de la stratégie sont sensibles aux paramètres et nécessitent une optimisation continue

Orientation de l’optimisation de la stratégie

  1. Introduction d’indicateurs de trafic: vous pouvez améliorer la précision des jugements de tendance en ajoutant une analyse de trafic
  2. Optimiser le timing de l’entrée: envisagez d’ajouter des analyses de la forme des prix, telles que la forme du filtrage, pour améliorer la précision de l’entrée
  3. Amélioration du mécanisme d’arrêt de la perte: une adaptation de la distance d’arrêt de la perte de suivi peut être combinée avec l’ajustement dynamique ATR
  4. Augmentation du filtrage temporel: ajout d’un filtrage des périodes de transaction pour éviter les périodes de faible liquidité
  5. Développer des paramètres adaptatifs: recherche et développement de systèmes de paramètres qui s’adaptent automatiquement aux fluctuations du marché

Résumer

La stratégie a construit un système de négociation complet en combinant plusieurs indicateurs techniques classiques. Elle est à la fois capable de capturer les principales tendances et de trouver les meilleurs points d’entrée dans les tendances, et dispose d’un mécanisme de gestion du risque parfait. Bien qu’il existe des risques inhérents, la stratégie est susceptible de maintenir une performance stable dans différents environnements de marché grâce à une optimisation continue et à un ajustement minutieux des paramètres.

Code source de la stratégie
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("XAU/USD 5M SMA + Stochastic RSI + ADX Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// === Входные параметры ===
sma_fast_length = input(20, title="SMA Fast Period")  
sma_slow_length = input(200, title="SMA Slow Period")  
stoch_k_length = input(14, title="Stochastic RSI K Length")
stoch_d_length = input(3, title="Stochastic RSI D Length")
adx_length = input(10, title="ADX Period")  
adx_smoothing = input(10, title="ADX Smoothing Period")
atr_length = input(14, title="ATR Period")

// === Уровни фильтрации ===
adx_min_trend = input(20, title="ADX Minimum Trend Strength")  // Было 25 → уменьшено до 20
stoch_buy_level = input(30, title="Stoch RSI Buy Level")  // Было 20 → увеличено для входов
stoch_sell_level = input(70, title="Stoch RSI Sell Level")  // Было 80 → снижено для входов

// === Трейлинг-стоп ===
use_trailing_stop = input(true, title="Enable Trailing Stop")
trailing_stop_pips = input(40, title="Trailing Stop (Pips)")  // Было 50 → уменьшено для активной торговли
trailing_step_pips = input(5, title="Trailing Step (Pips)")

// === Управление позициями ===
entry_delay = input(1, title="Bars Delay Before Re-Entry")  // Было 2 → уменьшено до 1

// === Расчёт индикаторов ===
sma_fast = ta.sma(close, sma_fast_length)
sma_slow = ta.sma(close, sma_slow_length)
[diPlus, diMinus, adx_value] = ta.dmi(adx_length, adx_smoothing)
atr_value = ta.atr(atr_length)

// === Stochastic RSI ===
stoch_rsi_k = ta.stoch(close, stoch_k_length, stoch_d_length, stoch_d_length)
stoch_rsi_d = ta.sma(stoch_rsi_k, stoch_d_length)

// === Фильтр волатильности (Убран, если мешает входам) ===
// atr_threshold = ta.sma(atr_value, 20)
// volatility_ok = atr_value > atr_threshold  // Комментируем, если ATR слишком строгий

// === Пересечения ===
sma_crossover = ta.crossover(sma_fast, sma_slow)
sma_crossunder = ta.crossunder(sma_fast, sma_slow)
stoch_rsi_crossover = ta.crossover(stoch_rsi_k, stoch_rsi_d)
stoch_rsi_crossunder = ta.crossunder(stoch_rsi_k, stoch_rsi_d)

// === Условия входа ===
longCondition = sma_crossover and adx_value > adx_min_trend and stoch_rsi_crossover and stoch_rsi_k < stoch_buy_level
shortCondition = sma_crossunder and adx_value > adx_min_trend and stoch_rsi_crossunder and stoch_rsi_k > stoch_sell_level

// === Исправленный таймер на повторные входы ===
barsSinceExit = ta.barssince(strategy.position_size == 0)
canReenter = not na(barsSinceExit) and barsSinceExit > entry_delay

// === Переворот позиции (исправлен) ===
if strategy.position_size > 0 and shortCondition and canReenter
    strategy.close("BUY")
    strategy.entry("SELL", strategy.short)

if strategy.position_size < 0 and longCondition and canReenter
    strategy.close("SELL")
    strategy.entry("BUY", strategy.long)

// === Открытие позиций ===
if strategy.position_size == 0 and longCondition
    strategy.entry("BUY", strategy.long)

if strategy.position_size == 0 and shortCondition
    strategy.entry("SELL", strategy.short)

// === Трейлинг-стоп (работает корректно) ===
if use_trailing_stop
    strategy.exit("Exit Long", from_entry="BUY", trail_points=trailing_stop_pips, trail_offset=trailing_step_pips)
    strategy.exit("Exit Short", from_entry="SELL", trail_points=trailing_stop_pips, trail_offset=trailing_step_pips)

// === Визуализация ===
plot(sma_fast, color=color.blue, title="SMA 20")
plot(sma_slow, color=color.red, title="SMA 200")
hline(stoch_buy_level, title="Stoch RSI Buy Level", color=color.blue)
hline(stoch_sell_level, title="Stoch RSI Sell Level", color=color.purple)
hline(adx_min_trend, title="ADX Min Trend Level", color=color.orange)