La stratégie d'entrée des moyennes mobiles de Fibonacci est basée sur des signaux de croisement ou de croisement des moyennes mobiles pour générer des signaux de trading. Lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, un signal croisé doré haussier est généré. Lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, un signal croisé de mort baissier est généré. Les moyennes mobiles couramment utilisées sont les moyennes mobiles à 50 jours et 200 jours.
La stratégie Fibonacci Moving Averages Input (FibMAI) vous permet de choisir n'importe quelle valeur pour vos croisements haussiers ou baissiers. Pour l'affichage visuel, j'ai tracé les moyennes mobiles de Fibonacci, y compris 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, tout en cachant les bougies. Mais pour utiliser cet indicateur, je n'active que quelques MA
Par exemple, la saisie des paramètres Long ou Short pour ce graphique de jour NQ1! est:
- Une tendance haussière FibEMA34 croisement FibEMA144
Baissière = FibEMA55 sous-traitant FibSMA144
Comme vous pouvez le voir, vous pouvez mélanger et faire correspondre 4 différentes valeurs MA, soit exponentielle ou simple.
Par défaut, les couleurs: Valeur croissante = couleur verte Faible valeur = couleur rouge
Par défaut, les paramètres FibMA visuels: FibEMA 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181 Les résultats de cette étude sont les suivants:
Par défaut, les paramètres Visual MA: La valeur de la valeur de référence est la valeur de la valeur de référence
Par défaut, réglage long ou court: - Une tendance haussière FibEMA34 croisement FibEMA144
Baissière = FibEMA55 sous-traitant FibSMA144
La logique de base de cette stratégie est basée sur des signaux croisés entre deux moyennes mobiles pour générer des signaux de trading.
Les moyennes mobiles sont des indicateurs techniques utilisés pour analyser les tendances du marché. Ils calculent le prix de clôture moyen sur une certaine période et peuvent filtrer efficacement les fluctuations du marché.
La SMA est la moyenne arithmétique simple des prix de clôture sur une période.
Lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, elle signale un changement de tendance haussière et génère un signal d'achat. Cela s'appelle une croix dorée.
La flexibilité de cette stratégie réside dans la possibilité de définir manuellement les paramètres pour les 4 moyennes mobiles. Les paramètres par défaut sont l'EMA de 34 périodes qui traverse au-dessus de l'EMA de 144 périodes pour le signal haussier et l'EMA de 55 périodes qui traverse au-dessous de l'EMA de 144 périodes pour le signal baissier. Ces paramètres peuvent être librement ajustés dans les zones d'entrée.
En outre, la stratégie trace plusieurs moyennes mobiles de séquence de Fibonacci sur différentes périodes. Des moyennes mobiles courantes telles que 50 jours, 100 jours, 150 jours et 200 jours sont également tracées.
Les avantages de cette stratégie de croisement des moyennes mobiles sont les suivants:
L'utilisation de moyennes mobiles filtre le bruit du marché et identifie la direction de la tendance
Les signaux croisés ont une certaine fiabilité
Combinaisons de moyennes mobiles longues et courtes personnalisables pour optimiser les paramètres
Incorpore plusieurs délais pour identifier les tendances
Peut utiliser à la fois EMA et SMA en fonction des caractéristiques des instruments
Visuellement intuitif avec des croix moyennes mobiles colorées
Simple à comprendre et adapté aux débutants
Appliquer de manière flexible sur différents instruments avec une universalité
Cette stratégie comporte également certains risques:
Trop de signaux de piqûre à la scie pendant les marchés agités, conduisant à un sur-échange
Signaux incorrects si des combinaisons de moyennes mobiles inappropriées sont utilisées
Décalage des signaux lors d'inversions de tendance extrêmes, incapable de refléter les changements de prix dans le temps
Les croisements de moyennes mobiles n'évitent pas complètement les pertes, il faut un stop loss raisonnable
Les paramètres doivent être robustes à travers les cycles du marché.
Les paramètres peuvent avoir besoin d'être affinés pour différents instruments
Quelques façons d'optimiser cette stratégie:
Testez différentes combinaisons de moyennes mobiles longues et courtes pour trouver des paramètres optimaux en utilisant le backtesting
Essayez d'ajuster les types de moyennes mobiles, de comparer les performances des SMA et des EMA. Utilisez les SMA pour les instruments présentant des tendances plus claires et les EMA pour les instruments plus volatils.
Incorporer d'autres indicateurs tels que KDJ, MACD pour filtrer les faux signaux et améliorer la qualité
Ajouter des stratégies de stop loss pour contrôler les pertes sur les transactions uniques, telles que le stop loss de suivi
Optimiser les stratégies de gestion de l'argent, comme l'ajustement de la taille de la position en fonction du tirage
Stabilité des paramètres d'essai sur différents instruments et délais pour évaluer la robustesse
Dans l'ensemble, la stratégie d'entrée des moyennes mobiles de Fibonacci est un système fiable de suivi des tendances. Elle utilise des croisements de moyennes mobiles simples et intuitifs pour les signaux commerciaux et peut être adaptée à différents instruments grâce à l'optimisation des paramètres. Avec un stop loss et une gestion de l'argent appropriés, les risques peuvent être contrôlés. Une optimisation excessive et des signaux d'inversion de tendance en retard doivent être évités. Avec des paramètres bien choisis et une discipline de trading, cela peut être une stratégie efficace et stable pour générer des profits.
/*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 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Options360 : Fibonacci MAI (Moving Averages Input) beta 10/15/22 // © Options360 original public release = 2/25/23 // * This script uses altered pieces of code from my @Options360 "Fibonacci MA7" indicator* // 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811 //// strategy(title="Fibonacci Moving Averages Input", shorttitle = "FibMAI", overlay=true) src = input(ohlc4, 'source') // string GRP = "Long or Short Settings" exponential1 = input(true, title="long EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP) long = input.int(34, minval=1, title="long", tooltip="Signal Moving average long input") long1 = exponential1 ? ta.ema(src, long) : ta.sma(src, long) exponential2 = input(true, title="crossover EMA or SMA", tooltip="EMA checked or SMA unchecked") longer = input.int(144, minval=1, title="crossover", tooltip="Crossed over Moving average long input") long2 = exponential2 ? ta.ema(src, longer) : ta.sma(src, longer) exponential3 = input(true, title="short EMA or SMA", tooltip="EMA checked or SMA unchecked") short = input.int(55, minval=1, title="short", tooltip="Signal Moving average short input") short1 = exponential3 ? ta.ema(src, short) : ta.sma(src, short) exponential4 = input(false, title="crossunder EMA or SMA", tooltip="EMA checked or SMA unchecked") shorter = input.int(144, minval=1, title="crossunder", tooltip="Crossed under Moving average short input") short2 = exponential4 ? ta.ema(src, shorter) : ta.sma(src, shorter) // string GRP2 = "Visual FibMA Settings" exponential = input(true, title="Fib EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP2) // smaplot11 = input (true, title="MA1") len11 = input.int(1, minval=1, title="ma Length") out11 = exponential ? ta.ema(src, len11) : ta.sma(src, len11) up11 = out11 > out11[1] down11 = out11 < out11[1] mycolor11 = up11 ? #3cfe12 : down11 ? #ff0202 : #008eff plot(out11 and smaplot11 ? out11 :na, title="1", color=mycolor11, linewidth=1) smaplot18 = input (true, title="MA2") len18 = input.int(2, minval=1, title="ma Length") out18 = exponential ? ta.ema(src, len18) : ta.sma(src, len18) up18 = out18 > out18[1] down18 = out18 < out18[1] mycolor18 = up18 ? #3cfe12 : down18 ? #ff0202 : #008eff plot(out18 and smaplot18 ? out18 :na , title="2", color=mycolor18, linewidth=1) smaplot13 = input (true, title="MA3") len13 = input.int(3, minval=1, title="ma Length") out13 = exponential ? ta.ema(src, len13) : ta.sma(src, len13) up13 = out13 > out13[1] down13 = out13 < out13[1] mycolor13 = up13 ? #3cfe12 : down13 ? #ff0202 : #008eff plot(out13 and smaplot13 ? out13 :na , title="3", color=mycolor11, linewidth=1) smaplot9 = input (true, title="MA5") len9 = input.int(5, minval=1, title="ma Length") out9 = exponential ? ta.ema(src, len9) : ta.sma(src, len9) up9 = out9 > out9[1] down9 = out9 < out9[1] mycolor9 = up9 ? #3cfe12 : down9 ? #ff0202 : #008eff plot(out9 and smaplot9 ? out9 :na , title="5", color=mycolor9, linewidth=1) smaplot8 = input (true, title="MA8") len8 = input.int(8, minval=1, title="ma Length") out8 = exponential ? ta.ema(src, len8) : ta.sma(src, len8) up8 = out8 > out8[1] down8 = out8 < out8[1] mycolor8 = up8 ? #3cfe12 : down8 ? #ff0202 : #008eff plot(out8 and smaplot8 ? out8 :na , title="8", color=mycolor8, linewidth=1) smaplot7 = input (true, title="MA13") len7 = input.int(13, minval=1, title="ma Length") out7 = exponential ? ta.ema(src, len7) : ta.sma(src, len7) up7 = out7 > out7[1] down7 = out7 < out7[1] mycolor7 = up7 ? #3cfe12 : down7 ? #ff0202 : #008eff plot(out7 and smaplot7 ? out7 :na , title="13", color=mycolor7, linewidth=1) smaplot = input (true, title="MA21") len = input.int(21, minval=1, title="ma Length") out = exponential ? ta.ema(src, len) : ta.sma(src, len) up = out > out[1] down = out < out[1] mycolor = up ? #3cfe12 : down ? #ff0202 : #008eff plot(out and smaplot ? out :na, title="21", color=mycolor, linewidth=1) smaplot2 = input (true, title="MA34") len2 = input.int(34, minval=1, title="ma Length") out2 = exponential ? ta.ema(src, len2) : ta.sma(src, len2) up2 = out2 > out2[1] down2 = out2 < out2[1] mycolor2 = up2 ? #3cfe12 : down2 ? #ff0202 : #008eff plot(out2 and smaplot2 ? out2 :na , title="34", color=mycolor2, linewidth=1) smaplot3 = input (true, title="MA55") len3 = input.int(55, minval=1, title="ma Length") out3 = exponential ? ta.ema(src, len3) : ta.sma(src, len3) up3 = out3 > out3[1] down3 = out3 < out3[1] mycolor3 = up3 ? #3cfe12 : down3 ? #ff0202 : #008eff plot(out3 and smaplot3 ? out3 :na, title="55", color=mycolor3, linewidth=1) smaplot4 = input (true, title="MA89") len4 = input.int(89, minval=1, title="ma Length") out4 = exponential ? ta.ema(src, len4) : ta.sma(src, len4) up4 = out4 > out4[1] down4 = out4 < out4[1] mycolor4 = up4 ? #3cfe12 : down4 ? #ff0202 : #008eff plot(out4 and smaplot4 ? out4 :na , title="89", color=mycolor4, linewidth=1) smaplot5 = input (true, title="MA144") len5 = input.int(144, minval=1, title="ma Length") out5 = exponential ? ta.ema(src, len5) : ta.sma(src, len5) up5 = out5 > out5[1] down5 = out5 < out5[1] mycolor5 = up5 ? #3cfe12 : down5 ? #ff0202 : #008eff plot(out5 and smaplot5 ? out5 :na, title="144", color=mycolor5, linewidth=1) smaplot6 = input (true, title="MA233") len6 = input.int(233, minval=1, title="ma Length") out6 = exponential ? ta.ema(src, len6) : ta.sma(src, len6) up6 = out6 > out6[1] down6 = out6 < out6[1] mycolor6 = up6 ? #3cfe12 : down6 ? #ff0202 : #008eff plot(out6 and smaplot6 ? out6 :na , title="233", color=mycolor6, linewidth=1) smaplot10 = input (true, title="MA377") len10 = input.int(377, minval=1, title="ma Length") out10 = exponential ? ta.ema(src, len10) : ta.sma(src, len10) up10 = out10 > out10[1] down10 = out10 < out10[1] mycolor10 = up10 ? #3cfe12 : down10 ? #ff0202 : #008eff plot(out10 and smaplot10 ? out10 :na , title="377", color=mycolor10, linewidth=1) smaplot14 = input (true, title="MA610") len14 = input.int(610, minval=1, title="ma Length") out14 = exponential ? ta.ema(src, len14) : ta.sma(src, len14) up14 = out14 > out14[1] down14 = out14 < out14[1] mycolor14 = up14 ? #3cfe12 : down14 ? #ff0202 : #008eff plot(out14 and smaplot14 ? out14 :na , title="610", color=mycolor14, linewidth=1) smaplot15 = input (true, title="MA987") len15 = input.int(987, minval=1, title="ma Length") out15 = exponential ? ta.ema(src, len15) : ta.sma(src, len15) up15 = out15 > out15[1] down15 = out15 < out15[1] mycolor15 = up15 ? #3cfe12 : down15 ? #ff0202 : #008eff plot(out15 and smaplot15 ? out15 :na , title="987", color=mycolor15, linewidth=1) smaplot16 = input (true, title="MA1597") len16 = input.int(1597, minval=1, title="ma Length") out16 = exponential ? ta.ema(src, len16) : ta.sma(src, len16) up16 = out16 > out16[1] down16 = out16 < out16[1] mycolor16 = up16 ? #3cfe12 : down16 ? #ff0202 : #008eff plot(out16 and smaplot16 ? out16 :na , title="1597", color=mycolor16, linewidth=1) smaplot17 = input (true, title="MA2584") len17 = input.int(2584, minval=1, title="ma Length") out17 = exponential ? ta.ema(src, len17) : ta.sma(src, len17) up17 = out17 > out17[1] down17 = out17 < out17[1] mycolor17 = up17 ? #3cfe12 : down17 ? #ff0202 : #008eff plot(out17 and smaplot17 ? out17 :na , title="2584", color=mycolor17, linewidth=1) smaplot19 = input (true, title="MA4181") len19 = input.int(4181, minval=1, title="ma Length") out19 = exponential ? ta.ema(src, len19) : ta.sma(src, len19) up19 = out19 > out19[1] down19 = out19 < out19[1] mycolor19 = up19 ? #3cfe12 : down19 ? #ff0202 : #008eff plot(out19 and smaplot19 ? out19 :na , title="4181", color=mycolor19, linewidth=1) // string GRP3 = "Visual MA Settings" exponential5 = input(false, title="EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP3) smaplot50 = input (true, title="MA50") len50 = input.int(50, minval=1, title="ma Length") ma50 = exponential5 ? ta.ema(src, len50) : ta.sma(src, len50) up50 = ma50 > ma50[1] down50 = ma50 < ma50[1] mycolor50 = up50 ? #3cfe12 : down50 ? #ff0202 : #008eff plot(ma50 and smaplot50 ? ma50 :na , title="50", color=mycolor50, linewidth=1) smaplot100 = input (true, title="MA100") len100 = input.int(100, minval=1, title="ma Length") ma100 = exponential5 ? ta.ema(src, len100) : ta.sma(src, len100) up100 = ma100 > ma100[1] down100 = ma100 < ma100[1] mycolor100 = up100 ? #3cfe12 : down100 ? #ff0202 : #008eff plot(ma100 and smaplot100 ? ma100 :na , title="100", color=mycolor100, linewidth=1) smaplot150 = input (true, title="MA150") len150 = input.int(150, minval=1, title="ma Length") ma150 = exponential5 ? ta.ema(src, len150) : ta.sma(src, len150) up150 = ma150 > ma150[1] down150 = ma150 < ma150[1] mycolor150 = up150 ? #3cfe12 : down150 ? #ff0202 : #008eff plot(ma150 and smaplot150 ? ma150 :na , title="150", color=mycolor150, linewidth=1) smaplot200 = input (true, title="MA200") len200 = input.int(200, minval=1, title="ma Length") ma200 = exponential5 ? ta.ema(src, len200) : ta.sma(src, len200) up200 = ma200 > ma200[1] down200 = ma200 < ma200[1] mycolor200 = up200 ? #3cfe12 : down200 ? #ff0202 : #008eff plot(ma200 and smaplot200 ? ma200 :na , title="200", color=mycolor200, linewidth=1) // if (ta.crossover(long1, long2)) strategy.entry("maL", strategy.long, comment="maLong") if (ta.crossunder(short1, short2)) strategy.entry("maS", strategy.short, comment="maShort") ////