Candelabre de moyenne de Fibonacci avec stratégie de moyenne mobile pour le trading quantitatif

Auteur:ChaoZhang est là., Date: 19 janvier 2024 à 14h36h45
Les étiquettes:

img

Résumé

Cette stratégie construit des bougies moyennes et des moyennes mobiles basées sur la séquence de Fibonacci pour mettre en œuvre un trading quantitatif avec seulement des positions longues et pas de positions courtes.

Principe de stratégie

Les principales étapes de cette stratégie sont les suivantes:

  1. Calculez la moyenne des prix de clôture, de hausse, de baisse et d'ouverture des 10 cycles de Fibonacci les plus récents pour construire une bougie moyenne.

  2. Calculer les moyennes mobiles exponentielles (EMA) de 1, 2, 3, 5, 8, 13, 21, 34 et 55 périodes du prix de clôture moyen, et prendre leur moyenne pour obtenir l'EMA moyenne.

  3. Définir des conditions longues et fermées: ouvrir une position longue lorsque la bougie moyenne montre des tendances haussières (comme la fermeture au-dessus de l'ouverture, l'engorgement haussier) et fermer est au-dessus de la moyenne EMA; fermer une position longue lorsque la bougie moyenne montre des tendances baissières (comme la fermeture au-dessous de l'ouverture, l'engorgement baissier) et fermer est au-dessous de la moyenne EMA.

En calculant les bougies moyennes pour filtrer les fluctuations des prix et en les combinant avec des indicateurs de moyenne mobile pour générer des signaux de négociation, cette stratégie permet d'identifier efficacement les tendances et de contrôler les risques de négociation.

Les avantages

  1. Les bougies moyennes basées sur la séquence de Fibonacci peuvent filtrer efficacement le bruit des prix aléatoires et identifier les signaux de tendance.

  2. La moyenne des EMA multiples améliore la stabilité des niveaux de support/résistance et améliore la qualité du signal.

  3. Seules les positions longues réduisent le nombre de transactions, les coûts de négociation et les effets du glissement.

  4. Performe bien sur des délais plus longs, adapté aux transactions à moyen et long terme.

Les risques

  1. La stratégie de long terme peut entraîner des pertes importantes sur les marchés baissiers.

  2. Les lignes EMA sont sujettes à des retards, manquant potentiellement les meilleurs points d'entrée.

  3. En poursuivant des délais trop longs, on risque de manquer des opportunités dans des délais plus courts.

  4. L'espace d'optimisation limité des paramètres signifie que les performances réelles des transactions peuvent être inférieures aux résultats des backtests.

Les domaines d'amélioration

  1. Peut tester en ajoutant un stop loss approprié aux positions de sortie lorsque les pertes augmentent.

  2. Pour les opérations de titrisation, le montant de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée.

  3. Peut tester en prenant des positions courtes de manière appropriée pendant les tendances à la baisse pour augmenter les bénéfices.

  4. Peut optimiser les paramètres de la période EMA pour trouver les meilleures combinaisons.

Conclusion

Cette stratégie identifie les signaux de tendance pour le trading quantitatif en construisant des bougies moyennes de Fibonacci et des indicateurs de moyennes mobiles. Elle tire parti de la filtration du bruit des prix avec des bougies moyennes et réduit les coûts de négociation en n'allant que long.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21

//@version=4
strategy("Fibonacci candle", overlay=false  )


//plot of our fibonacci candle
// Fibonacci 
// Fn = Fn-1 + Fn-2
// F10 = 55
// 0 1 2 3 5 8 13 21 34 55

avg_close = (close[0] + close[1] + close[2] + close[3] +close[5] + close[8] + close[13]+ close[21] + close[34] + close[55]) / 10
avg_high = (high[0] + high[1] + high[2] + high[3] +high[5] + high[8] + high[13]+ high[21] + high[34] + high[55]) / 10
avg_low = (low[0] + low[1] + low[2] + low[3] +low[5] + low[8] + low[13]+ low[21] + low[34] + low[55]) / 10
avg_open = (open[0] + open[1] + open[2] + open[3] +open[5] + open[8] + open[13]+ open[21] + open[34] + open[55]) / 10


src = avg_close//input(avg_close, title="Source")


out55 = ema(src, 55)
out1 = ema(src, 1)
out2 = ema(src, 2)
out3 = ema(src, 3)
out5 = ema(src, 5)
out8 = ema(src, 8)
out13 = ema(src, 13)
out21 = ema(src, 21)
out34 = ema(src, 34)

avg_ema = (out55 + out1 + out2 + out3+ out5 + out8 + out13 + out21 + out34)/9

plot(avg_ema)

plotcandle(avg_open, avg_high, avg_low, avg_close, title='Title', color = avg_open < avg_close ? color.green : color.red, wickcolor=color.white)

long = avg_open < avg_close and avg_close > avg_close[1] and avg_high > avg_high[1] and  avg_close[1] > avg_close[2] and avg_high[1] > avg_high[2]
short = avg_open > avg_close and avg_close < avg_close[1] and avg_low < avg_low[1] and avg_close[1] < avg_close[2] and avg_low[1] < avg_low[2]

strategy.entry("long",1,when=long and avg_close > avg_ema)
strategy.close('long',when=short and avg_close < avg_ema)


Plus de