Stratégie de capture de l'élan basée sur la moyenne mobile

Auteur:ChaoZhang est là., Date: 2023-11-01 15:55:51 La date est fixée à
Les étiquettes:

img

Résumé

Cette stratégie utilise la moyenne mobile comme principal signal de trading, combinée à Heikin-Ashi pour détecter l'inversion de tendance, visant à capturer la dynamique des prix à court terme.

La logique de la stratégie

  1. Calculer le prix de clôture Heikin-Ashi nAMAn comme base de prix.

  2. Calculer la moyenne mobile rapide (fma) et la moyenne mobile lente (sma) sur la base du nAMAn.

  3. Générer un signal d'achat lorsque le FMA dépasse le SMA, et un signal de vente lorsque le FMA dépasse le SMA.

  4. La repeinture est supprimée dans cette stratégie pour générer des signaux de trading en temps réel et éviter les biais de backtesting.

Analyse des avantages

  1. Heikin-Ashi aide à déterminer plus précisément les points d'inversion de tendance.

  2. Le croisement MA filtre efficacement les faux signaux.

  3. L'absence de retard dans la génération du signal garantit une performance en direct fiable.

  4. La régulation des paramètres est flexible et adaptable à différents produits.

  5. Une logique simple et claire, facile à comprendre et à mettre en œuvre.

  6. Peut être entièrement automatisé pour minimiser les risques de négociation manuelle.

Analyse des risques

  1. Une mauvaise performance sur le marché de l'intervalle avec des prix bas.

  2. Prédisposé à générer de faux signaux avec double croisement MA.

  3. Les paramètres d'AM inappropriés peuvent entraîner des tendances manquantes ou une augmentation du recours.

  4. Les coûts de négociation ont une incidence sur le bénéfice net des transactions en direct.

  5. L'établissement doit fournir des informations détaillées sur les risques liés à l'échange.

  6. Les stratégies de négociation mécanique comportent des risques inhérents de retrait et nécessitent une bonne gestion des capitaux.

Solutions de gestion des risques:

  1. Ajoutez un filtre de volatilité pour éviter le marché à fourchette.

  2. Ajoutez des filtres pour assurer la qualité du signal.

  3. Optimiser les paramètres de MA par des tests approfondis.

  4. Ajustez la fréquence des transactions afin de réduire l'impact sur les coûts.

  5. Définir un stop-loss approprié pour contrôler les pertes lors de transactions uniques.

  6. Optimiser la gestion du capital pour contrôler la taille des positions.

Directions de renforcement

  1. Optimiser les paramètres MA pour améliorer la qualité du signal.

  2. Ajoutez un filtre de tendance pour éviter le marché de la scie.

  3. Incorporer des indicateurs de volume pour confirmer la tendance.

  4. Mettre en œuvre un stop loss et une prise de profit dynamiques pour optimiser la capture des bénéfices.

  5. Intégrer le module de gestion des capitaux pour contrôler la taille des positions.

  6. Ajouter un module de trading algorithmique pour une automatisation complète.

Résumé

Cette stratégie intègre des techniques de croisement Heikin-Ashi et MA pour créer une stratégie de suivi de tendance à court terme simple et pratique. Elle génère des signaux de trading fiables en temps réel et montre de bonnes performances dans le trading en direct.


/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Heikin/Kaufman by Gustavo v5
// strategy('Heikin Ashi EMA v5 no repaint ', shorttitle='Heikin Ashi EMA v5 no repaint', overlay=true, max_bars_back=500, default_qty_value=1000, initial_capital=100000, currency=currency.EUR)


// Settings - H/K
res1 = input.timeframe(title='Heikin Ashi EMA Time Frame', defval='D')
test = input(0, 'Heikin Ashi EMA Shift')
sloma = input(20, 'Slow EMA Period')
nAMA = hlc3

//Kaufman MA
Length = input.int(5, minval=1)
xPrice = input(hlc3)
xvnoise = math.abs(xPrice - xPrice[1])
Fastend = input.float(2.5, step=.5)
Slowend = input(20)
nfastend = 2 / (Fastend + 1)
nslowend = 2 / (Slowend + 1)
nsignal = math.abs(xPrice - xPrice[Length])
nnoise = math.sum(xvnoise, Length)
nefratio = nnoise != 0 ? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMAn = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//Heikin Ashi Open/Close Price
ha_t = ticker.heikinashi(syminfo.tickerid)
ha_close = request.security(ha_t, timeframe.period, nAMAn)
mha_close = request.security(ha_t, res1, hlc3)

//Moving Average
fma = ta.ema(mha_close[test], 1)
sma = ta.ema(ha_close, sloma)
plot(fma, title='MA', color=color.new(color.black, 0), linewidth=2, style=plot.style_line)
plot(sma, title='SMA', color=color.new(color.red, 0), linewidth=2, style=plot.style_line)

//Strategy
golong = ta.crossover(fma, sma)
goshort = ta.crossunder(fma, sma)

strategy.entry('Buy', strategy.long, when=golong)
strategy.entry('Sell', strategy.short,when=goshort)



Plus de