
Strategi ini pertama-tama menghitung rata-rata bergerak cepat ma_fast dan rata-rata bergerak lambat ma_slow, kemudian menggabungkan FRAMA dengan rata-rata bergerak yang disesuaikan, melakukan over jika memakai ma_slow di ma_fast, melakukan posisi polos jika memakai ma_fast di bawah ma_slow atau menutup harga saat memakai FRAMA.
Perhitungan rata-rata bergerak sederhana 13 hari ma_fast dan rata-rata bergerak sederhana 26 hari ma_slow.
Rumus perhitungan FRAMA lebih rumit, dan ide utamanya adalah untuk menyesuaikan rata-rata rata-rata dengan harga tertinggi, terendah, dan dinamika fluktuasi.
Ma_fast memakai ma_slow lebih banyak. Ini menandakan bahwa garis rata-rata jangka pendek mulai naik, dan menang di garis rata-rata jangka panjang, sesuai dengan karakteristik tren.
Pada ma_slow atau FRAMA, harga ditutup. Ini adalah sinyal untuk membalikkan tren.
Kombinasi dua sistem linear dan sistem linear adaptif memiliki kelebihan. Sistem linear ganda sangat baik dalam menangkap tren, dan sistem linear adaptif dapat memfilter suara lebih baik.
Indikator FRAMA dapat menyesuaikan parameter secara otomatis, menghindari subjektivitas parameter pilihan buatan.
Dengan menggunakan dua sinyal keluar pada saat yang sama, Anda dapat menangkap pembalikan tren tepat waktu.
Kemungkinan adanya kesalahan posisi pada dua persimpangan yang sama, yang dapat menghasilkan kerugian intermiten.
Adaptasi rata-rata bergerak akan meningkatkan parameter strategi, yang dapat menyebabkan overoptimisasi.
Jika hanya mempertimbangkan faktor harga, tanpa memfilter volume transaksi, Anda mungkin akan kehilangan peluang.
Anda dapat menguji kombinasi garis rata-rata dari periode yang berbeda untuk mencari parameter optimal.
Konfirmasi volume transaksi dapat ditambahkan untuk menghindari sinyal yang tidak valid. Misalnya, menambahkan kondisi peningkatan volume transaksi.
Anda dapat mengoptimalkan kondisi posisi terbuka dan posisi terbuka, membuat strategi lebih stabil. Misalnya, hanya buka posisi ketika bentuk terus menerus terobosan.
Strategi ini menggabungkan crossover dua rata-rata dan FRAMA rata-rata adaptif, secara otomatis menyesuaikan parameter dengan lingkungan pasar melalui penyesuaian dinamis. Dua rata-rata baik dalam menangkap tren, FRAMA dapat memfilter kebisingan.
/*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())