Points hauts et bas quotidiens combinés à une stratégie de trading quantitative de tendance EMA sur plusieurs périodes

EMA MA
Date de création: 2024-11-28 15:20:59 Dernière modification: 2024-11-28 15:20:59
Copier: 1 Nombre de clics: 116
1
Suivre
1166
Abonnés

Points hauts et bas quotidiens combinés à une stratégie de trading quantitative de tendance EMA sur plusieurs périodes

Aperçu

Il s’agit d’une stratégie de négociation quantitative combinant une rupture des hauts et des bas du jour et une tendance EMA à plusieurs périodes. La stratégie consiste principalement à surveiller la rupture des prix par rapport aux hauts et bas de la journée précédente, en combinaison avec la moyenne EMA et l’indicateur des flux de capitaux (CMF) pour déterminer le moment de la transaction. La stratégie utilise à la fois la moyenne EMA à 200 périodes sur les deux périodes de l’heure et du jour, afin d’améliorer la précision des transactions grâce à la vérification de plusieurs indicateurs techniques.

Principe de stratégie

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

  1. Utilisez la fonction request.security pour obtenir le prix le plus élevé et le prix le plus bas de la journée précédente comme point de résistance de support critique.
  2. L’EMA moyenne à 24 cycles est utilisée comme référence pour déterminer la tendance.
  3. L’introduction du CMF (en 20 cycles) comme indicateur global du volume et des prix des transactions, utilisé pour juger de l’orientation des flux de capitaux sur le marché.
  4. En même temps, on calcule la moyenne des cycles de temps actuels et des cycles d’une heure, qui est de 200, pour déterminer la direction de la tendance des cycles plus importants.

Les règles de transaction sont les suivantes: Conditions multiples: le prix atteint le sommet de la veille + le prix de clôture est au-dessus de l’EMA + le CMF est positif Conditions de dépréciation: prix au-dessous du jour précédent + prix de clôture en dessous de l’EMA + CMF négatif Conditions de placement: le cours de la position en cours de négociation est inférieur à l’EMA et le cours de la position en cours de négociation est supérieur à l’EMA

Avantages stratégiques

  1. La vérification intégrée de multiples indicateurs techniques améliore la fiabilité des transactions
  2. L’analyse de plusieurs périodes permet de mieux saisir les tendances du marché
  3. L’indicateur CMF, combiné à la relation quantité-prix, permet de mieux juger de la situation financière du marché
  4. Utilisation des hauts et des bas de la veille comme prix clés, en accord avec les habitudes de négociation des participants au marché
  5. La logique de la stratégie est claire, facile à comprendre et à mettre en œuvre
  6. Des conditions d’entrée et de sortie claires, réduisant les jugements subjectifs

Risque stratégique

  1. Les signaux erronés peuvent être fréquents dans les marchés en crise
  2. La réaction à une hausse des prix instantanée est insuffisante.
  3. Il est possible de rater des opportunités commerciales dans des endroits clés.
  4. Environnement tendanciel sans prise en compte d’un cycle plus large
  5. Les retombées pourraient être plus importantes en cas de fortes fluctuations du marché

Suggestions de contrôle des risques :

  1. Définir une position de stop-loss raisonnable
  2. Paramètres adaptés aux différentes conditions du marché
  3. Ajouter un filtre de tendance
  4. Considérer l’ajout d’un indicateur de volatilité

Orientation de l’optimisation de la stratégie

  1. Présentation d’un mécanisme d’optimisation adaptatif des paramètres
  2. Ajouter plus de conditions de filtrage à l’environnement du marché
  3. Optimisation des mécanismes d’arrêt et d’arrêt
  4. Ajout d’indicateurs de volatilité pour s’adapter à différentes conditions de marché
  5. Considérer l’adhésion à un mécanisme de gestion de position
  6. Augmentation des indicateurs d’analyse du volume des transactions

Résumer

Il s’agit d’un système de négociation complet qui combine plusieurs indicateurs techniques et une analyse de plusieurs périodes de temps. La stratégie recherche des opportunités de négociation grâce à une analyse intégrée des hauts et des bas de la journée, des tendances de la moyenne et des flux de fonds. Bien qu’il y ait un certain risque, la stratégie présente une bonne valeur d’application grâce à un contrôle raisonnable des risques et à une amélioration continue de l’optimisation.

Code source de la stratégie
/*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")