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

Stratégie de tendance de l'EMA sur plusieurs périodes avec système de rupture quotidienne haute-basse

Auteur:ChaoZhang est là., Date: 2024-11-28 15:20:59 Je vous en prie.
Les étiquettes:Le taux d'intérêt- Je vous en prie.

img

Résumé

Il s'agit d'une stratégie de trading quantitative qui combine des écarts quotidiens élevés et bas avec des tendances EMA sur plusieurs délais. La stratégie identifie principalement les opportunités de trading en surveillant les écarts de prix des niveaux élevés et bas de la journée précédente, combinés aux tendances EMA et à l'indicateur Chaikin Money Flow (CMF).

Principes de stratégie

La logique de base comprend les éléments clés suivants:

  1. Utilise la fonction request.security pour obtenir les prix hauts et bas de la journée précédente comme niveaux de support et de résistance clés.
  2. Incorpore l'EMA de 24 périodes comme référence pour la détermination de la tendance.
  3. Mettre en œuvre le CMF (période 20) comme indicateur complet du volume et du prix pour évaluer le flux de trésorerie du marché.
  4. Calcule 200 EMA sur des délais courants et d'une heure pour déterminer les grandes tendances.

Règles commerciales spécifiques: Entrée longue: les prix dépassent les sommets de la journée précédente + Fermeture au-dessus de la EMA + CMF positif Entrée courte: les prix dépassent le plus bas de la journée précédente + Fermeture inférieure à la EMA + CMF négatif Exit: Traversez sous la EMA pour les longs, traversez au-dessus de la EMA pour les courts

Les avantages de la stratégie

  1. La validation d'indicateurs techniques multiples améliore la fiabilité des opérations
  2. L'analyse sur plusieurs périodes fournit une évaluation complète des tendances
  3. L'intégration de l'indicateur CMF permet de mieux saisir les conditions de flux de trésorerie du marché
  4. Les niveaux hauts et bas de la journée précédente s'alignent sur les habitudes de négociation des participants au marché
  5. Une logique stratégique claire, facile à comprendre et à exécuter
  6. Des conditions d'entrée et de sortie bien définies réduisent le jugement subjectif.

Risques stratégiques

  1. Peut générer de fréquents faux signaux sur différents marchés
  2. Ne répondant pas suffisamment aux écarts de prix instantanés
  3. Possibilité de manquer des opportunités à des niveaux clés
  4. Manque de prise en compte des tendances sur une période plus longue
  5. Il peut y avoir des prélèvements importants en cas de volatilité extrême du marché

Suggestions pour le contrôle des risques:

  1. Mettre en œuvre des niveaux de stop-loss appropriés
  2. Ajuster les paramètres en fonction des conditions du marché
  3. Ajouter des filtres de tendance
  4. Envisager d'intégrer des indicateurs de volatilité

Directions d'optimisation

  1. Mettre en œuvre des mécanismes d'optimisation des paramètres adaptatifs
  2. Ajouter plus de filtres de conditions de marché
  3. Optimiser les mécanismes de stop-loss et de prise de bénéfices
  4. Inclure des indicateurs de volatilité pour différentes conditions de marché
  5. Considérer les mécanismes de gestion des positions
  6. Ajouter des indicateurs d'analyse du volume

Résumé

Il s'agit d'un système de trading complet combinant plusieurs indicateurs techniques et une analyse multi-temporelle. La stratégie recherche des opportunités de trading grâce à une analyse complète des ruptures intraday, des tendances moyennes mobiles et du flux de trésorerie.


/*backtest
start: 2024-10-28 00:00:00
end: 2024-11-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='The security Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true, 
         default_qty_type=strategy.percent_of_equity, default_qty_value=100, 
         commission_type=strategy.commission.percent, commission_value=0.1)

// General Inputs
len = input.int(24, minval=1, title='Length MA', group='Optimization parameters')
src = input.source(close, title='Source MA', group='Optimization parameters')
out = ta.ema(src, len)

length = input.int(20, minval=1, title='CMF Length', group='Optimization parameters')
ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume
mf = math.sum(ad, length) / math.sum(volume, length)

// Function to get daily high and low
f_secureSecurity(_symbol, _res, _src) =>
    request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on)

pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high)
pricelow = f_secureSecurity(syminfo.tickerid, 'D', low)

// Plotting previous daily high and low
plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))

// Entry Conditions
short = ta.crossunder(low, pricelow) and close < out and mf < 0
long = ta.crossover(high, pricehigh) and close > out and mf > 0

if short and barstate.isconfirmed
    strategy.entry('short', strategy.short, stop=pricelow[1])
    strategy.close('short', when=close > out)

if long and barstate.isconfirmed
    strategy.entry('long', strategy.long, stop=pricehigh[1])
    strategy.close('long', when=close < out)

// 200 EMA on 1-hour timeframe
ema_200 = ta.ema(close, 200)
ema_200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))

plot(ema_200_1h, color=color.purple, title="200 EMA (1H)")
plot(ema_200, color=color.white, title="200 EMA")

Relationnée

Plus de