Stratégie de suivi de tendance de momentum à moyennes mobiles multiples

SMA RSI MA
Date de création: 2024-11-12 15:05:09 Dernière modification: 2024-11-12 15:05:09
Copier: 0 Nombre de clics: 476
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance de momentum à moyennes mobiles multiples

Aperçu

La stratégie est un système de trading de suivi de tendance basé sur plusieurs moyennes et indicateurs dynamiques. La stratégie utilise principalement la relation dynamique des moyennes mobiles simples à 20, 50, 150 et 200 jours (SMA), en combinant les indicateurs de la volatilité et du RSI, pour capturer une forte tendance à la hausse au niveau de la ligne solaire et la position en temps opportun lorsque la tendance s’affaiblit. La stratégie, utilisée en combinaison avec plusieurs indicateurs techniques, filtre efficacement les faux signaux et améliore la précision des transactions.

Principe de stratégie

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

  1. Système de ligne moyenne: utilisez la ligne moyenne 20/50/150/200 pour construire un système de jugement de tendance, qui nécessite une ligne moyenne multiple pour présenter un alignement à plusieurs têtes.
  2. Confirmation de la dynamique: utilisez l’indicateur RSI et sa moyenne mobile pour déterminer la dynamique des prix, en exigeant un RSI supérieur à 55 ou un RSI SMA supérieur à 50 et un RSI à la hausse.
  3. Vérification du volume des transactions: vérification de l’efficacité des signaux d’achat et de vente en comparant le volume moyen des transactions sur 20 jours avec le volume des transactions récentes.
  4. Vérification de la continuité de la tendance: vérifiez que la moyenne des 50 derniers jours a été à la hausse pendant au moins 25 des 40 derniers jours de négociation.
  5. Confirmation de position: le cours doit rester stable au moins 20 jours de négociation au-dessus de la moyenne de 150 jours.

Les conditions d’achat sont les suivantes:

  • Plus de 4 jours d’ensoleillement sur les 10 derniers jours et au moins un jour de prise
  • Le RSI répond aux conditions de dynamique
  • Système linéaire homogène présentant un alignement à plusieurs têtes et en constante augmentation
  • Les prix sont stables au-dessus de la moyenne des 150 jours.

Les conditions de vente comprennent:

  • Le prix a dépassé la moyenne de 150 jours
  • Une baisse continue des émissions
  • La moyenne sur 50 jours est tombée à 150 jours.
  • L’échange a augmenté récemment, principalement par voie vaginale.

Avantages stratégiques

  1. Vérification croisée de multiples indicateurs techniques pour réduire efficacement le taux d’erreur
  2. La tendance à la continuité est stricte et permet de filtrer les fluctuations à court terme.
  3. Combinaison de l’analyse de trafic pour améliorer la fiabilité du signal
  4. Conditions claires de stop-loss et contrôle efficace des risques
  5. Il s’agit d’une plateforme de trading qui permet de capturer les tendances à moyen et long terme et de réduire la fréquence des transactions.
  6. La logique de la stratégie est claire, facile à comprendre et à mettre en œuvre

Risque stratégique

  1. Les systèmes linéaires sont arriérés et risquent de manquer les premiers stades de la tendance
  2. Des conditions d’entrée strictes pourraient faire rater certaines opportunités de trading
  3. Des faux signaux peuvent fréquemment se produire sur des marchés volatils
  4. Il y a un certain retard dans l’identification de l’inversion
  5. Il faut un financement plus important pour supporter le retrait.

Suggestions de contrôle des risques :

  • Définir une position de stop-loss raisonnable
  • La gestion des fonds doit être modérée
  • Considérer une augmentation des indicateurs de confirmation de tendance
  • Paramètres ajustés en fonction des conditions du marché

Orientation de l’optimisation de la stratégie

  1. Ajout de paramètres d’adaptation
  • Cycle de la moyenne ajustée en fonction de la dynamique des fluctuations du marché
  • Optimiser les paramètres de seuil du RSI
  1. Amélioration des mécanismes de couverture
  • Augmentation des pertes de suivi
  • Réglage du temps d’arrêt
  1. Introduction à l’analyse de l’environnement du marché
  • Indicateur de force de tendance à la hausse
  • Prendre en compte les indicateurs de volatilité
  1. Optimiser la taille des transactions
  • Conception de la gestion dynamique des positions
  • Adapté en fonction de l’intensité du signal

Résumer

Il s’agit d’une stratégie de suivi de tendance rigoureuse conçue pour capturer efficacement les opportunités de tendance forte grâce à l’utilisation combinée de multiples indicateurs techniques. Le principal avantage de la stratégie réside dans son mécanisme de confirmation de signal complet et son système de contrôle des risques rigoureux. Bien qu’il y ait un certain retard, la stratégie est capable de maintenir une performance stable sur le long terme grâce à une optimisation des paramètres et une gestion des risques raisonnables.

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

//@version=5
strategy("Micho's 150 (1D Time Frame Only)", overlay=true)

// Define the length for the SMAs and RSI
sma20Length = 20
sma50Length = 50
sma150Length = 150
sma200Length = 200
volumeMaLength = 20
rsiLength = 14
rsiSmaLength = 14
smaCheckLength = 40  // Check the last month of trading days (~20 days)
requiredRisingDays = 25  // Require SMA to rise in at least 16 of the past 20 days
sma150AboveSma200CheckDays = 1  // Require SMA150 > SMA200 for the last 10 days

// Calculate the SMAs for price
sma20 = ta.sma(close, sma20Length)
sma50 = ta.sma(close, sma50Length)
sma150 = ta.sma(close, sma150Length)
sma200 = ta.sma(close, sma200Length)

// Calculate the 20-period moving average of volume
volumeMA20 = ta.sma(volume, volumeMaLength)

// Calculate the 14-period RSI
rsi = ta.rsi(close, rsiLength)

// Calculate the 14-period SMA of RSI
rsiSMA = ta.sma(rsi, rsiSmaLength)

// Check if most of the last 5 days are buyer days (close > open)
buyerDays = 0
for i = 0 to 9
    if close[i] > open[i]
        buyerDays := buyerDays + 1

// Check if at least 1 day has volume higher than the 20-period volume MA
highVolumeDays = 0
for i = 0 to 9
    if close[i] > open[i] and volume[i] > volumeMA20
        highVolumeDays := highVolumeDays + 1

// Define the new RSI condition
rsiCondition = (rsi >= 55) or (rsiSMA > 50 and rsi > rsi[1])

// Check if the 50-day SMA has been rising on at least 16 of the last 20 trading days
risingDays = 0
for i = 1 to smaCheckLength
    if sma50[i] > sma50[i + 1]
        risingDays := risingDays + 1

// Check if the SMA has risen on at least 16 of the last 20 days
sma50Rising = risingDays >= requiredRisingDays

// Check if the price has been above the SMA150 for the last 20 trading days
priceAboveSma150 = true
for i = 1 to smaCheckLength
    if close[i] < sma150[i]
        priceAboveSma150 := false

// Check if the SMA150 has been above the SMA200 for the last 10 days
sma150AboveSma200 = true
for i = 1 to sma150AboveSma200CheckDays
    if sma150[i] < sma200[i]
        sma150AboveSma200 := false

// Define the conditions for the 150-day and 200-day SMAs being rising
sma150Rising = sma150 > sma150[1]
sma200Rising = sma200 > sma200[1]

// Check if most of the last 5 days are seller days (close < open)
sellerDays = 0
for i = 0 to 9
    if close[i] < open[i]
        sellerDays := sellerDays + 1

// Check if at least 1 day has seller volume higher than the 20-period volume MA
highSellerVolumeDays = 0
for i = 0 to 9
    if close[i] < open[i] and volume[i] > volumeMA20
        highSellerVolumeDays := highSellerVolumeDays + 1

// Check in the last N days the price below 150
priceBelowSma150 = true
for i = 0 to 0
    if close[i] > sma150[i]
        priceBelowSma150 := false

// Restrict the strategy to 1D time frame
if timeframe.isdaily
    // Buy condition:
    // - Most of the last 5 days are buyer days (buyerDays > 2)
    // - At least 1 of those days has high buyer volume (highVolumeDays >= 1)
    // - RSI SMA (14-period) between 45 and 50 with RSI >= 55, or RSI SMA > 50 and RSI rising
    // - 50-day SMA > 150-day SMA and 150-day SMA > 200-day SMA
    // - 50-day SMA has been rising on at least 16 of the last 20 trading days
    // - The price hasn't been below the 150-day SMA in the last 20 days
    // - 150-day SMA has been above the 200-day SMA for the last 10 days
    // - 150-day and 200-day SMAs are rising
    buyCondition = (close > sma150 and buyerDays > 4 and highVolumeDays >= 1 and rsiCondition  and sma50 > sma150 and sma50Rising and sma150Rising and sma200Rising and priceAboveSma150)

    // Sell condition:
    // - Price crossing below SMA 150
    // - Seller volume (current volume > volume MA 20)
    // - 150-day SMA crosses below 200-day SMA
    // - Most of the last 5 days are seller days (sellerDays > 2) and at least 1 day of higher seller volume (highSellerVolumeDays >= 1)
    sellCondition = (priceBelowSma150 and (sma50 < sma150 or (sellerDays >5 and highSellerVolumeDays >= 5)))

    // Execute buy when all conditions are met
    if (buyCondition)
        strategy.entry("Buy", strategy.long)

    // Execute sell when all conditions are met
    if (sellCondition)
        strategy.close("Buy")