Stratégie de trading dynamique à prix limite avec combinaison multi-indicateurs SMA-RSI-MACD

SMA RSI MACD EMA
Date de création: 2024-12-11 15:15:49 Dernière modification: 2024-12-11 15:15:49
Copier: 2 Nombre de clics: 435
1
Suivre
1617
Abonnés

Stratégie de trading dynamique à prix limite avec combinaison multi-indicateurs SMA-RSI-MACD

Aperçu

La stratégie est un système de négociation combinant plusieurs indicateurs techniques, principalement basé sur la confirmation du triple signal de croisement de la moyenne EMA, de survente du RSI et de la fourchette d’or MACD pour ouvrir des positions et gérer le risque grâce à un système d’entrée unique et de sortie multiple à prix limite dynamique. La stratégie utilise l’indicateur de 9 cycles et 21 cycles (EMA) comme indicateur de tendance principal, combiné à un indice relativement faible (RSI) et à une moyenne mobile de tendance en arrière de l’indicateur (MACD) pour filtrer les signaux de négociation et contrôler le risque en définissant la distance de la limite unique et le nombre de points de stop-loss fixes.

Principe de stratégie

La logique de négociation centrale de la stratégie comprend les éléments clés suivants:

  1. Le signal d’entrée est basé sur une EMA de 9 cycles et est déclenché par une EMA de 21 cycles.
  2. Le prix d’entrée est fixé sur une liste de prix limite qui indique le nombre de points sous l’EMA de 9 cycles
  3. La confirmation d’une transaction nécessite à la fois de satisfaire au RSI inférieur au seuil fixé et au MACD Gold Fork
  4. Les signaux de sortie comprennent les points de perte de MACD, les points de perte de stop-loss fixes et la clôture obligatoire de la position.
  5. Les heures de négociation sont limitées à 9h30 et 15h10.

La stratégie de l’entrée unique à prix limité permet de placer des positions à des prix plus avantageux et d’améliorer la précision des transactions en combinant plusieurs indicateurs techniques.

Avantages stratégiques

  1. Le mécanisme de confirmation de signaux multiples améliore la fiabilité des transactions
  2. Les billets à prix limité offrent de meilleurs tarifs
  3. Un nombre fixe de points de stop-loss pour un contrôle des risques
  4. La fermeture obligatoire des positions de clôture pour éviter les risques du jour au lendemain
  5. Les restrictions de temps de négociation ont permis d’éviter les fluctuations de l’ouverture.
  6. Les EMA sont plus rapides à réagir aux tendances
  7. La combinaison du RSI et du MACD peut filtrer les faux signaux

Risque stratégique

  1. La confirmation de signaux multiples peut entraîner la perte de certaines opportunités commerciales
  2. Le prix de vente limité pourrait être bloqué par une hausse rapide des prix
  3. Les pertes de points fixes peuvent être plus importantes pendant les périodes de forte volatilité
  4. Les signaux MACD pourraient être retardés
  5. La stratégie ne prend pas en compte l’impact des fluctuations du marché
  6. Optimisation des paramètres peut présenter un risque de suradaptation

Orientation de l’optimisation de la stratégie

  1. Introduction d’un nombre d’arrêts de perte adaptatif, ajusté dynamiquement en fonction de la volatilité du marché
  2. L’augmentation du volume de transactions comme signal de confirmation auxiliaire
  3. Considérez l’ajout d’un filtre de force de tendance
  4. Optimisation des méthodes de calcul de la distance par unité de prix limite, en considérant l’adaptation dynamique avec l’ATR
  5. Ajout d’indicateurs de sentiment pour filtrer les conditions défavorables du marché
  6. Adhésion à un mécanisme de gestion des positions afin d’ajuster le volume d’ouverture en fonction de l’intensité du signal

Résumer

Il s’agit d’une stratégie de négociation multi-indicateurs structurée et logiquement claire, permettant d’identifier les tendances grâce à un système homogène, de filtrer les signaux RSI et MACD, de limiter les ordres et de contrôler les risques. L’avantage de la stratégie réside dans la fiabilité du signal et le contrôle des risques, mais il existe également des problèmes de retard de signal et d’optimisation des paramètres.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA 9 & 21 with RSI and MACD Buy Strategy", overlay=true)

// Inputs for Simple Moving Averages
sma_short = ta.ema(close, 9)
sma_long = ta.ema(close, 21)

// Plotting SMA
plot(sma_short, color=color.green, title="SMA 9")
plot(sma_long, color=color.red, title="SMA 21")

// RSI Calculation
rsi_length = input.int(14, title="RSI Length")
rsi_threshold = input.int(70, title="RSI Threshold")
rsi = ta.rsi(close, rsi_length)

// MACD Calculation
macd_fast = input.int(8, title="MACD Fast Length")
macd_slow = input.int(18, title="MACD Slow Length")
macd_signal = input.int(6, title="MACD Signal Length")
[macd_line, signal_line, _] = ta.macd(close, macd_fast, macd_slow, macd_signal)

// Inputs for Limit Order Offset
limit_offset = input.int(50, title="Limit Order Offset", minval=1)  // 50 points below 9 EMA

// User input for specific date
simulationStartDate = input(timestamp("2024-12-01 00:00"), title="Simulation Start Date", group = "Simulation Dates")
simulationEndDate = input(timestamp("2024-12-30 00:00"), title="Simulation End Date", group = "Simulation Dates")

// Declare limit_price as float
var float limit_price = na

// Calculate Limit Order Price
if (sma_short[1] < sma_long[1] and sma_short > sma_long)  // 9 EMA crosses above 21 EMA
    limit_price := sma_short - limit_offset

// Buy Signal Condition (only on the specified date)
buy_condition = not na(limit_price) and rsi < rsi_threshold and ta.crossover(macd_line, signal_line) 

// Sell Signal Condition (MACD crossover down)
sell_condition = ta.crossunder(macd_line, signal_line)

// Track Entry Price for Point-Based Exit
var float entry_price = na

if (buy_condition )
    strategy.order("Buy", strategy.long, comment="Limit Order at 9 EMA - Offset", limit=limit_price)
    label.new(bar_index, limit_price, "Limit Buy", style=label.style_label_up, color=color.green, textcolor=color.white)
    entry_price := limit_price  // Set entry price

// Exit Conditions
exit_by_macd = sell_condition
exit_by_points = not na(entry_price) and ((close >= entry_price + 12) or (close <= entry_price - 12))  // Adjust as per exit points

// Exit all positions at the end of the day
if hour == 15 and minute > 10 and strategy.position_size > 0
    strategy.close_all()  // Close all positions at the end of the day
    strategy.cancel_all()  

// Exit based on sell signal or point movement
if (exit_by_macd or exit_by_points  and strategy.position_size > 0 )
    strategy.close("Buy")
    label.new(bar_index, close, "Close", style=label.style_label_down, color=color.red, textcolor=color.white)