Cette stratégie calcule d'abord la ligne moyenne mobile rapide ma_fast et la ligne moyenne mobile lente ma_slow, puis la combine avec la ligne moyenne mobile adaptative FRAMA.
Calculez la moyenne mobile simple de 13 jours ma_fast et la moyenne mobile simple de 26 jours ma_slow.
La formule FRAMA est complexe, l'idée principale est d'ajuster dynamiquement la douceur α de la moyenne mobile en fonction du plus haut, du plus bas et de la volatilité des prix.
Allez long lorsque ma_fast traverse ma_slow. Cela indique que la moyenne mobile à court terme commence à monter et à courir plus vite que la moyenne mobile à long terme, correspondant aux caractéristiques de la tendance.
Fermez la position lorsque ma_slow passe sous ma_fast ou FRAMA tombe sous le prix de clôture.
Combine les avantages du système de moyenne mobile double et du système de moyenne mobile adaptative.
L'indicateur FRAMA ajuste automatiquement les paramètres, évitant ainsi la subjectivité du réglage manuel des paramètres.
L'utilisation de deux signaux de sortie permet de détecter rapidement les renversements de tendance.
Les doubles croisements de moyennes mobiles peuvent avoir des fléchettes, ce qui entraîne des pertes intermittentes.
Les moyennes mobiles adaptatives introduisent plus de paramètres, ce qui risque de suradapter.
Il ne prend en considération que les facteurs de prix sans filtre de volume de négociation, et peut donc manquer des opportunités.
Testez différentes périodes d'AM pour trouver la combinaison optimale.
Ajouter une confirmation de volume pour éviter de faux signaux, par exemple des pics de volume.
Optimiser les règles d'entrée et de sortie pour rendre la stratégie plus robuste, par exemple en ne prenant que des signaux dans des modèles de continuation.
Cette stratégie combine une double moyenne mobile croisée et une moyenne mobile adaptative FRAMA, s'adaptant automatiquement aux conditions du marché en ajustant dynamiquement les paramètres.
/*backtest start: 2023-01-14 00:00:00 end: 2024-01-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Fractal Adaptive Moving Average",shorttitle="FRAMA",overlay=true) ma_fast = sma(close,13) ma_slow = sma(close,26) plot(ma_fast,color = green) plot(ma_slow, color = yellow) price = input(hl2) len = input(defval=16,minval=1) FC = input(defval=1,minval=1) SC = input(defval=198,minval=1) len1 = len/2 w = log(2/(SC+1)) H1 = highest(high,len1) L1 = lowest(low,len1) N1 = (H1-L1)/len1 H2 = highest(high,len)[len1] L2 = lowest(low,len)[len1] N2 = (H2-L2)/len1 H3 = highest(high,len) L3 = lowest(low,len) N3 = (H3-L3)/len dimen1 = (log(N1+N2)-log(N3))/log(2) dimen = iff(N1>0 and N2>0 and N3>0,dimen1,nz(dimen1[1])) alpha1 = exp(w*(dimen-1)) oldalpha = alpha1>1?1:(alpha1<0.01?0.01:alpha1) oldN = (2-oldalpha)/oldalpha N = (((SC-FC)*(oldN-1))/(SC-1))+FC alpha_ = 2/(N+1) alpha = alpha_<2/(SC+1)?2/(SC+1):(alpha_>1?1:alpha_) out = (1-alpha)*nz(out[1]) + alpha*price plot(out,title="FRAMA",color=purple,transp=0) entry() => crossover(ma_fast, ma_slow) and (out < close) exit() => crossover(ma_slow, ma_fast) or crossunder(out, close) strategy.entry(id= "MA cross", long = true, when = entry()) strategy.close(id= "MA cross", when = exit())