Strategi ini mula-mula mengira purata bergerak mudah 13 tempoh dan 26 tempoh, dan kemudian mengira penunjuk FRAMA. Ia pergi lama apabila garis cepat memecahkan garis perlahan dari bawah ke atas, dan keluar dari kedudukan apabila garis cepat memecahkan garis perlahan dari atas ke bawah atau apabila penunjuk FRAMA memecahkan harga penutupan dari atas ke bawah.
Strategi ini terutamanya menggunakan persilangan purata bergerak untuk menjana isyarat perdagangan. Apabila purata bergerak jangka pendek memecahkan purata bergerak jangka panjang dari bawah ke atas, ia menunjukkan trend berubah dari penurunan ke kenaikan, dan pergi panjang. Apabila purata bergerak jangka pendek melintasi di bawah jangka panjang, ia menunjukkan pembalikan yang akan datang, dan menutup kedudukan.
Sementara itu, penunjuk FRAMA diperkenalkan sebagai penghakiman tambahan. Penunjuk FRAMA adalah garis purata bergerak adaptif yang diperbaiki berdasarkan hipotesis pasaran fraktal. Dengan mengira kadar perubahan logaritma amplitud turun naik harga dalam tempoh yang berbeza, ia menganggarkan dimensi fraktal pasaran dalam masa nyata untuk menyesuaikan kelancaran purata bergerak secara dinamik. Apabila penunjuk FRAMA melintasi di bawah harga penutupan, ia menunjukkan isyarat pembalikan trend. Digabungkan dengan isyarat persilangan purata bergerak, ia meningkatkan ketepatan penghakiman.
Strategi ini menggabungkan crossover purata bergerak berganda dan penunjuk FRAMA, yang secara berkesan dapat menapis isyarat pecah palsu dan meningkatkan kualiti isyarat perdagangan.
Berbanding dengan satu penunjuk dan model, strategi ini dapat meningkatkan kualiti isyarat dengan ketara dan mengurangkan kebarangkalian penilaian yang salah. Sementara itu, menggabungkan purata bergerak cepat dan perlahan, ia boleh mengikuti trend untuk mengelakkan terperangkap.
Risiko utama strategi ini terletak pada bahawa purata bergerak berganda boleh menghasilkan lebih banyak isyarat pecah palsu, dan tetapan parameter penunjuk FRAMA juga akan mempengaruhi keberkesanan.
Untuk mengawal risiko di atas, parameter seperti tempoh purata bergerak boleh diselaraskan dengan sewajarnya, atau disaring dengan penunjuk lain.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Uji lebih banyak kombinasi dan tempoh purata bergerak untuk mencari pasangan parameter yang optimum.
Tambah strategi stop loss untuk mengawal kerugian tunggal.
Menggabungkan penunjuk jumlah dagangan untuk mengelakkan pecah palsu di bawah jumlah yang rendah.
Tambah model pembelajaran mesin untuk menilai status pasaran dalam masa nyata dan menyesuaikan parameter secara dinamik.
Menggabungkan penunjuk sentimen, berita dan pelbagai faktor lain untuk meningkatkan kualiti keputusan.
Strategi awal ini menggabungkan penggunaan crossover purata bergerak berganda dan penunjuk FRAMA. Berdasarkan mengekalkan kesederhanaan dan intuisi, ia telah meningkatkan kualiti isyarat dengan berkesan dan bernilai ujian dan pengoptimuman lanjut. Dengan pengoptimuman seperti penyesuaian parameter, pengenalan penunjuk baru, strategi ini dapat dijangka menjadi strategi perdagangan yang stabil dan boleh dipercayai.
/*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())