Les ressources ont été chargées... Je charge...

Tendance à la dynamique moyenne mobile multiple suivant la stratégie

Auteur:ChaoZhang est là., Date: 2024-11-12 15:05:09 Je suis désolé
Les étiquettes:SMAIndice de résistance- Je vous en prie.

img

Résumé

Cette stratégie est un système de trading basé sur de multiples moyennes mobiles et indicateurs de dynamique. Elle utilise principalement les relations dynamiques entre les moyennes mobiles simples (SMA) de 20 jours, 50 jours, 150 jours et 200 jours, combinées à des indicateurs de volume et RSI pour capturer les fortes tendances haussières sur les délais quotidiens et les positions de sortie lorsque les tendances s'affaiblissent.

Principes de stratégie

La logique de base comprend les composantes clés suivantes:

  1. Système de moyenne mobile: utilise des moyennes mobiles de 20/50/150/200 jours pour construire un système de jugement de tendance, nécessitant un alignement haussier.
  2. Confirmation de l'impulsion: utilise l'indicateur RSI et sa moyenne mobile pour juger de l'impulsion des prix, nécessitant un RSI supérieur à 55 ou un RSI SMA supérieur à 50 et en hausse.
  3. Vérification du volume: confirme la validité du signal par comparaison de la moyenne du volume de 20 jours et du volume récent.
  4. Vérification de la persistance de la tendance: vérifie si la MA de 50 jours maintient une tendance haussière pendant au moins 25 jours sur 40 jours de négociation.
  5. Confirmation de position: le prix doit rester au-dessus de l'AM de 150 jours pendant au moins 20 jours de négociation.

Les conditions d'achat exigent:

  • Plus de 4 journées haussières au cours des 10 derniers jours avec au moins 1 jour de volume élevé
  • Indicateur RSI répondant aux conditions de dynamique
  • Système de moyenne mobile montrant un alignement haussier et une hausse continue
  • Stabilité des prix au-dessus de l'AM de 150 jours

Les conditions de vente comprennent:

  • Fracture de prix inférieure à 150 jours de MA
  • Réduction consécutive du volume élevé
  • L'AM de 50 jours dépassant l'AM de 150 jours
  • Des bougies baissières récentes avec un volume accru

Les avantages de la stratégie

  1. La validation croisée de plusieurs indicateurs techniques réduit les erreurs de jugement
  2. Des exigences strictes de persistance de la tendance filtrent les fluctuations à court terme
  3. L'intégration de l'analyse du volume améliore la fiabilité du signal
  4. Conditions claires de stop-loss et de prise de bénéfices pour contrôler efficacement le risque
  5. Convient pour capturer les tendances à moyen et long terme, réduisant la fréquence des transactions
  6. Logique stratégique claire, facile à comprendre et à exécuter

Risques stratégiques

  1. Le système des moyennes mobiles a un retard, peut manquer les premières étapes de la tendance
  2. Des conditions d'entrée strictes peuvent faire perdre certaines opportunités commerciales
  3. Peut générer de fréquents faux signaux sur des marchés instables
  4. Retard dans l'identification des renversements de marché
  5. Requiert une plus grande envergure de capital pour supporter les prélèvements

Suggestions pour le contrôle des risques:

  • Définir des positions de stop-loss raisonnables
  • Gestion conservatrice de l'argent
  • Envisager d'ajouter des indicateurs de confirmation de tendance
  • Ajuster les paramètres en fonction de l'environnement du marché

Directions d'optimisation de la stratégie

  1. Ajouter des paramètres adaptatifs
  • Adaptation dynamique des périodes d'AM en fonction de la volatilité du marché
  • Optimiser les paramètres de seuil RSI
  1. Améliorer le mécanisme d'arrêt des pertes
  • Ajouter des arrêts de trail
  • Mettre en place des arrêts basés sur le temps
  1. Introduction de l'analyse de l'environnement du marché
  • Ajouter des indicateurs de force de tendance
  • Considérer les indicateurs de volatilité
  1. Optimiser la taille des transactions
  • Conception de la gestion dynamique de la position
  • Ajustez en fonction de la force du signal

Résumé

Il s'agit d'une stratégie de suivi de tendance rigoureusement conçue qui capture efficacement les fortes opportunités de tendance grâce à l'utilisation coordonnée de plusieurs indicateurs techniques. Les principaux avantages de la stratégie résident dans son mécanisme de confirmation de signal complet et son système de contrôle des risques strict. Bien qu'il y ait un certain retard, grâce à une optimisation raisonnable des paramètres et à une gestion des risques, la stratégie peut maintenir une performance stable dans l'exploitation à long terme.


/*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")


Relationnée

Plus de