
Strategi ini pertama-tama menghitung rata-rata bergerak sederhana selama 13 periode dan 26 periode, lalu menghitung indikator FRAMA. Melakukan kenaikan ketika garis cepat menembus garis lambat dari bawah ke atas, atau posisi terendah ketika garis cepat menembus garis lambat dari atas ke bawah, atau indikator FRAMA dari atas ke bawah menembus harga penutupan.
Strategi ini terutama menggunakan crossover dua rata-rata untuk membentuk sinyal perdagangan. Ketika rata-rata jangka pendek dari bawah ke atas menembus rata-rata jangka panjang, menunjukkan bahwa pasar telah berbalik dari turun ke bawah, dan melakukan lebih banyak; Ketika rata-rata jangka pendek dari atas ke bawah menembus rata-rata jangka panjang, menunjukkan bahwa pasar akan berbalik, dan bernegosiasi.
Pada saat yang sama, strategi ini memperkenalkan indikator FRAMA sebagai penilaian tambahan. Indikator FRAMA adalah rata-rata bergerak yang beradaptasi yang dikembangkan berdasarkan hipotesis pasar yang terpotong. Dengan menghitung tingkat perubahan logaritma dari amplitudo fluktuasi harga dalam periode yang berbeda, ini memperkirakan dimensi terpotong pasar secara real-time, sehingga secara dinamis menyesuaikan kesederhanaan rata-rata.
Strategi ini menggabungkan crossover bilateral dan indikator FRAMA, yang dapat secara efektif memfilter sinyal breakout palsu dan meningkatkan kualitas sinyal perdagangan. Crossover bilateral menentukan arah perdagangan utama, dan penilaian tambahan FRAMA dapat menghindari kehilangan titik balik dalam situasi yang bergolak.
Dibandingkan dengan indikator dan model tunggal, strategi ini secara signifikan meningkatkan kualitas sinyal dan mengurangi probabilitas kesalahan penilaian. Di samping itu, dengan kombinasi rata-rata cepat dan lambat, dapat dilakukan secara berurutan dan menghindari kecocokan.
Risiko utama dari strategi ini adalah bahwa garis rata-rata ganda dapat menghasilkan lebih banyak sinyal pecah palsu, dan pengaturan parameter indikator FRAMA juga dapat mempengaruhi efek penilaian. Selain itu, dalam situasi tertentu, garis cepat dan lambat, antara FRAMA dan harga penutupan mungkin tidak saling berselisih untuk waktu yang lama, sehingga tidak ada peluang perdagangan.
Untuk mengontrol risiko di atas, parameter siklus rata-rata dapat disesuaikan dengan benar, atau digabungkan dengan indikator lain untuk melakukan penyaringan. Selain itu, parameter seperti panjang, faktor pemisahan indikator FRAMA juga perlu disetel secara masuk akal untuk pasar yang berbeda, untuk menghindari terlalu halus atau alergi.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Uji lebih banyak kombinasi garis rata dan parameter periodik untuk mencari pasangan parameter optimal.
Meningkatkan strategi stop loss untuk mengendalikan kerugian tunggal.
Dengan menggunakan indikator volume transaksi, menghindari penembusan palsu dengan volume rendah.
Menambahkan model pembelajaran mesin, evaluasi real-time kondisi pasar, parameter penyesuaian dinamis.
Menggunakan indikator sentimen, berita, dan banyak faktor lainnya untuk menilai sentimen pasar dan meningkatkan kualitas keputusan.
Strategi ini merupakan praktik awal dari strategi crossover dua rata-rata dengan penggunaan kombinasi indikator FRAMA. Dengan menjaga dasar yang sederhana dan intuitif, meningkatkan kualitas sinyal secara efektif dan layak untuk pengujian lebih lanjut. Dengan penyesuaian parameter, pengenalan indikator baru dan lain-lain, strategi ini diharapkan menjadi strategi perdagangan kuantitatif yang stabil dan andal.
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-16 00:00:00
period: 30m
basePeriod: 15m
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())