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

Stratégie de croisement de tendance multi-indicateurs: système de négociation de bandes de soutien au marché haussier

Auteur:ChaoZhang est là., Date: 2024-12-27 à 14h35
Les étiquettes:SMABMSBLe taux d'intérêt

img

Résumé

Cette stratégie est un système de trading de suivi de tendance basé sur la bande de support du marché haussier. Elle utilise principalement des signaux croisés entre la moyenne mobile simple (SMA) de 20 semaines et la moyenne mobile exponentielle (EMA) de 21 semaines pour déterminer la direction de la tendance du marché et prendre des décisions de trading.

Principes de stratégie

La logique de base de la stratégie est de surveiller la position relative de la SMA de 20 semaines et de l'EMA de 21 semaines pour juger des tendances du marché. Lorsque la moyenne à court terme (20-semaine SMA) dépasse la moyenne à long terme (21-semaine EMA), elle indique une tendance haussière potentielle, déclenchant une entrée de position longue. Lorsque la moyenne à court terme tombe en dessous de la moyenne à long terme, elle indique une fin potentielle de la tendance haussière, déclenchant la fermeture de position.

Les avantages de la stratégie

  1. Suivi de tendance forte: utilise les croisements de moyennes mobiles hebdomadaires pour filtrer le bruit du marché à court terme et saisir les opportunités de tendance à moyen et long terme
  2. Contrôle raisonnable des risques: utilise des moyennes mobiles dynamiques comme référence de stop-loss pour des sorties opportunes du marché
  3. Réglage des paramètres scientifiques: les paramètres de 20 et 21 semaines assurent la stabilité du signal sans retard excessif
  4. Logie d'exécution claire: les signaux d'entrée et de sortie sont explicites, éliminant le jugement subjectif
  5. Gestion souple des capitaux: aide à la dimensionnement des positions basée sur le capital de compte, permettant un ajustement dynamique des positions

Risques stratégiques

  1. Inefficace sur les marchés à courte portée: les croisements fréquents sur les marchés latéraux peuvent entraîner de fausses ruptures et des pertes consécutives
  2. Impact significatif du glissement: les opérations hebdomadaires peuvent faire l'objet d'un glissement substantiel dans les opérations réelles
  3. Temps d'entrée retardé: les signaux croisés moyens mobiles sont intrinsèquement en retard, manquant potentiellement des points d'entrée optimaux
  4. Contrôle insuffisant du prélèvement: se fier uniquement aux moyennes mobiles croisées pour le stop-loss peut entraîner de gros prélèvements
  5. Exigences de capital élevées: les opérations hebdomadaires nécessitent un capital important et une résilience psychologique

Directions d'optimisation

  1. Ajouter des indicateurs de filtrage: intégrer RSI, MACD, etc. pour confirmer les tendances et améliorer la fiabilité du signal
  2. Optimiser le mécanisme de stop-loss: mettre en œuvre un stop-loss dynamique à l'aide de l'indicateur ATR pour améliorer la maîtrise des risques
  3. Améliorer la gestion des positions: ajuster dynamiquement la taille des positions en fonction de la volatilité du marché
  4. Ajouter le filtrage de tendance: introduire un jugement de tendance à plus long terme pour ne négocier que dans la direction principale de la tendance
  5. Améliorer l'exécution des transactions: Optimiser les règles de négociation pour réduire l'impact des glissements et améliorer la stabilité de la stratégie

Résumé

La stratégie Bull Market Support Band est un système de suivi des tendances basé sur la théorie classique de l'analyse technique. Elle capture les opportunités de tendance à moyen et long terme grâce à des croisements moyens mobiles hebdomadaires, avec une logique claire et un risque contrôlable.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0
// © zkdev

//@version=6
strategy(title='Demo GPT - Bull Market Support Band', 
     overlay=true, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, 
     commission_type=strategy.commission.percent, 
     commission_value=0.1, 
     slippage=3)

// -------------------------------------------------------------------------
// Compile-time timestamp constants for default date range
// (2018-01-01 00:00:00 UTC -> 1514764800000
//  2069-12-31 23:59:59 UTC -> 3155759999000)
// -------------------------------------------------------------------------
const int defaultFromDate = 1514764800000
const int defaultToDate   = 3155759999000

// -------------------------------------------------------------------------
// Inputs: date range
// -------------------------------------------------------------------------
fromDate = input(title='Start Date', defval=defaultFromDate)
toDate   = input(title='End Date',   defval=defaultToDate)

// -------------------------------------------------------------------------
// Indicator settings & calculations
// -------------------------------------------------------------------------
smaLength = 20
emaLength = 21

source = close
sma    = ta.sma(source, smaLength)
ema    = ta.ema(source, emaLength)

// -------------------------------------------------------------------------
// Fetch weekly SMA & EMA
// -------------------------------------------------------------------------
outSma = request.security(syminfo.tickerid, 'W', sma, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)
outEma = request.security(syminfo.tickerid, 'W', ema, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)

// -------------------------------------------------------------------------
// Plot visuals (20w SMA, 21w EMA, fill in between)
// -------------------------------------------------------------------------
smaPlot = plot(outSma, color=color.new(color.red,   0), title='20w SMA')
emaPlot = plot(outEma, color=color.new(color.green, 0), title='21w EMA')
fill(smaPlot, emaPlot, color=color.new(color.orange, 75), fillgaps=true)

// -------------------------------------------------------------------------
// We evaluate crossover/crossunder on *every bar* and store the result
// -------------------------------------------------------------------------
crossUp   = ta.crossover(outSma, outEma)
crossDown = ta.crossunder(outSma, outEma)

// -------------------------------------------------------------------------
// Trade logic: only operate within chosen date range
// Buy when outSma crosses above outEma; Sell (close) when outSma crosses below outEma
// -------------------------------------------------------------------------
inDateRange = true

if inDateRange
    // If we have a crossUp event on this bar, buy (go Long)
    if crossUp
        strategy.entry('Long', strategy.long)

    // If we have a crossDown event on this bar, sell (close Long)
    if crossDown
        strategy.close('Long')


Relationnée

Plus de