
Cette stratégie commence par calculer les moyennes mobiles rapides ma_fast et les moyennes mobiles lentes ma_slow, puis combine FRAMA avec les moyennes mobiles adaptatives, en faisant plus lorsque ma_slow est porté sur ma_fast, en plaçant une position en douceur lorsque ma_fast est porté sous ma_slow ou en clôture lorsque FRAMA est porté sous FRAMA.
Calculer la moyenne mobile simple du 13e jour ma_fast et la moyenne mobile simple du 26e jour ma_slow.
Les formules de calcul des FRAMA sont plus complexes, l’idée principale étant de régler la moyenne en fonction des hautes, des basses et de la dynamique volatile des prix.
Lorsque vous portez ma_slow sur ma_fast, faites plus. Cela signifie que la moyenne courte commence à monter et gagne la moyenne longue, conformément à la caractéristique de la tendance.
Il y a une tendance à l’inversion de la tendance.
La combinaison des avantages d’un système à double linéaire et d’un système à double linéaire adaptatif. Les systèmes à double linéaire sont bons pour capturer les tendances, et les systèmes à double linéaire adaptatif filtrent mieux le bruit.
L’indicateur FRAMA peut ajuster automatiquement les paramètres pour éviter la subjectivité des paramètres sélectionnés manuellement.
L’utilisation de deux signaux de sortie en même temps permet de saisir en temps opportun le renversement de tendance.
La présence d’une faille de position dans le croisement de deux lignes homogènes peut entraîner des pertes intermittentes.
L’adaptation des moyennes mobiles augmente le nombre de paramètres de la stratégie, ce qui peut conduire à une optimisation excessive.
Si vous considérez uniquement le facteur prix et ne filtrez pas le volume, vous risquez de manquer une opportunité.
On peut tester des combinaisons de lignes moyennes de différentes périodes pour trouver les paramètres optimaux.
On peut ajouter la confirmation de la transaction pour éviter les signaux inefficaces. Par exemple, ajouter la condition d’augmentation de la transaction.
Il est possible d’optimiser les conditions d’ouverture et de clôture des positions, ce qui rend la stratégie plus stable. Par exemple, il est possible d’ouvrir des positions uniquement lors d’une rupture de la forme continue.
Cette stratégie combine la croisée des deux courbes et la courbe d’adaptation automatique FRAMA, qui s’adapte automatiquement à l’environnement du marché en ajustant dynamiquement les paramètres. La courbe d’adaptation est bonne pour capturer les tendances et la FRAMA peut filtrer le bruit.
/*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())