Stratégie quantitative du MACD du gradient

Auteur:ChaoZhang est là., Date: 2023-12-19 16:14:50 Il est temps de faire le point.
Les étiquettes:

img

Résumé

Cette stratégie calcule les chandeliers Heikin-Ashi pour lisser les lignes de prix et combine l'indicateur MACD pour générer des signaux de trading, en mettant en œuvre une stratégie quantitative qui suit les tendances à moyen et long terme.

La logique de la stratégie

  1. Calculer les prix d'ouverture, de clôture, de hausse et de baisse de Heikin-Ashi pour tracer les chandeliers Heikin-Ashi et les tendances des prix.

  2. Définir les paramètres MACD: longueur rapide 12, longueur lente 26, longueur du signal 9.

  3. Calculer la ligne lente DEA, la ligne rapide DEA et l'histogramme MACD.

  4. Aller long lorsque l'histogramme MACD dépasse 0, aller court lorsqu'il dépasse 0.

  5. Ajouter des filtres d'année, de mois et de jour pour limiter les transactions à une plage de temps spécifiée.

Analyse des avantages

  1. Les chandeliers Heikin-Ashi filtrent efficacement le bruit du marché pour identifier les tendances.

  2. Le MACD fournit des signaux de trading de tendance clairs.

  3. La combinaison de Heikin-Ashi et du MACD améliore la qualité et la rentabilité du signal.

  4. Les filtres horaires aident à optimiser le calendrier des transactions en fonction des performances historiques.

Analyse des risques

  1. Des pertes potentiellement importantes lors d'un renversement de tendance.

  2. Des paramètres MACD incorrects peuvent générer des signaux inutiles excessifs.

  3. Les filtres à temps rigide peuvent manquer de bonnes opportunités commerciales.

Les contre-mesures:

  1. Définir le stop loss/take profit pour limiter les pertes.

  2. Optimiser les paramètres MACD pour déterminer la meilleure combinaison.

  3. Ajouter des indicateurs pour déterminer les tendances locales.

Directions d'optimisation

  1. Testez différentes combinaisons de paramètres pour trouver le meilleur.

  2. Ajoutez des mécanismes de stop-loss comme le stop-loss de suivi.

  3. Ajoutez des indicateurs comme EMA, KDJ pour déterminer les points de renversement.

  4. Ajouter des indicateurs de volume pour éviter les divergences.

Résumé

Cette stratégie facilite l'action des prix avec des chandeliers Heikin-Ashi et détermine la direction de la tendance et les signaux d'entrée avec l'indicateur MACD Tradingview pour mettre en œuvre une stratégie quantitative de suivi de tendance.


/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD ASHI BARS .v1 ", overlay=false,default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,slippage=1)

// Calculation HA Values 
haopen  = 0.0
haclose = (open + high + low + close) / 4
haopen := na(haopen[1]) ? (open + close) / 2 : (haopen[1] + haclose[1]) / 2
hahigh  = max(high, max(haopen, haclose))
halow   = min(low,  min(haopen, haclose))

// HA colors
hacolor = haclose > haopen ? color.green : color.red
src=haclose



fastmacd = input(12,title='MACD Fast  Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')

macdslowline1 = sma(src,slowmacd)
macdslowline2 = sma(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = sma(src,fastmacd)
macdfastline2 = sma(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)

MACDLine = (DEMAfast - DEMAslow)

SignalLine = sma(MACDLine, signalmacd)

delta = MACDLine-SignalLine




swap1 = delta>0?color.green:color.red



plot(delta,color=swap1,style=plot.style_columns,title='Histo',histbase=0,transp=20)
p1 = plot(MACDLine,color=color.blue,title='MACD Line')
p2 = plot(SignalLine,color=color.red,title='Signal')
fill(p1, p2, color=color.blue)
hline(0)



yearfrom = input(2020)
yearuntil =input(2042)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)







if ( crossover(delta,0)  and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if (  crossunder(delta,0) and  year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND",  comment="SAT")
else
    strategy.cancel(id="MMSAT")
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    


Plus de