
Strategi ini menilai trend dan turun naik harga dengan mengira rata-rata dan perbezaan untuk tempoh yang berbeza, untuk mengenal pasti titik tinggi dan rendah.
Logik teras strategi ini adalah untuk mengira rata-rata dan perbezaan bagi tempoh yang berbeza dalam tempoh yang baru-baru ini. Secara khusus, rata-rata ((ma, mb, mc) dan perbezaan ((da, db, dc) untuk 5 hari, 4 hari dan 3 hari yang lalu, masing-masing. Kemudian lebih besar, pilih satu tempoh yang paling besar perbezaan yang mewakili trend semasa.
Dengan cara ini, apabila harga berlaku pecah ke atas atau pecah ke bawah, perubahan besar akan berlaku dalam kitaran dan perbezaan yang mewakili trend. Oleh itu, output akhir WG juga akan mengalami perubahan besar, untuk mengenal pasti titik tinggi dan rendah.
Pendekatan ini berdasarkan pada perubahan trend dalam penilaian pelbagai kitaran adalah berkesan, dapat mengenal pasti titik perubahan harga. Berbanding dengan penilaian satu kitaran, pendekatan ini menggabungkan beberapa kitaran dapat meningkatkan ketepatan dan ketepatan masa penilaian.
Pengiraan rata-rata dan perbezaan kuasa dua juga sangat mudah dan berkesan, tidak banyak kod, dan sangat sensitif terhadap perubahan harga yang tiba-tiba, sehingga dapat dengan cepat mengesan penembusan.
Period yang digunakan dalam strategi ini adalah lebih pendek, dan penghakiman mungkin tidak cukup tepat dan menyeluruh untuk garis panjang dan tengah. Pertembungan harga dalam jangka masa pendek boleh menyebabkan kesalahan penghakiman.
Selain itu, penyetempatan berat rata-rata dan perbezaan kuadrat juga boleh mempengaruhi keputusan, dan jika berat tidak betul, isyarat mungkin menyimpang.
Anda boleh cuba menambah lebih banyak pengiraan kitaran yang berbeza, membentuk kombinasi kitaran, untuk membuat penghakiman yang lebih menyeluruh. Sebagai contoh, masukkan penghakiman kitaran jangka panjang dan sederhana seperti 10 hari, 20 hari.
Anda juga boleh mencuba pelbagai skim penyetempatan berat, meningkatkan fleksibiliti penyetempatan berat. Anda boleh menambah pengoptimuman parameter, supaya berat dapat disesuaikan secara automatik mengikut keadaan pasaran, mengurangkan kemungkinan kesalahan penilaian.
Selain itu, ia boleh digabungkan dengan petunjuk lain, seperti ketidaksuburan dalam jumlah dagangan, dan sebagainya, untuk mengelakkan penghakiman yang keliru dalam perdagangan lelang.
Strategi ini mempunyai pemikiran keseluruhan yang jelas dan mudah difahami, menggunakan garis rata-rata dan perbezaan untuk menilai trend harga dan turun naik, dan kemudiannya output gabungan dapat mengenal pasti garis kurva yang tinggi dan rendah. Kaedah berdasarkan penilaian gabungan pelbagai kitaran ini dapat memperoleh ciri jangka panjang dan jangka pendek pasaran dengan berkesan, meningkatkan ketepatan penilaian pada titik-titik perubahan. Ruang pengoptimuman juga besar, dapat disesuaikan dengan pelbagai aspek, berat kitaran, dan indikator, menjadikan strategi lebih stabil dan menyeluruh.
/*backtest
start: 2024-02-12 00:00:00
end: 2024-02-19 00:00:00
period: 12h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("x²", overlay=false)
a1=(close[2]-close[3])/1
a2=(close[1]-close[3])/4
a3=(close[0]-close[3])/9
b1=(close[3]-close[4])/1
b2=(close[2]-close[4])/4
b3=(close[1]-close[4])/9
b4=(close[0]-close[4])/16
c1=(close[4]-close[5])/1
c2=(close[3]-close[5])/4
c3=(close[2]-close[5])/9
c4=(close[1]-close[5])/16
c5=(close[0]-close[5])/25
ma=(a1+a2+a3)/3
da=(a1-ma)*(a1-ma)
da:=da+(a2-ma)*(a2-ma)
da:=da+(a3-ma)*(a3-ma)
da:=sqrt(da)
da:=min(2, da)
da:=1-da/2
da:=max(0.001, da)
mb=(b1+b2+b3+b4)/4
db=(b1-mb)*(b1-mb)
db:=db+(b2-mb)*(b2-mb)
db:=db+(b3-mb)*(b3-mb)
db:=db+(b4-mb)*(b4-mb)
db:=sqrt(db)
db:=min(2, db)
db:=1-db/2
db:=max(0.001, db)
mc=(c1+c2+c3+c4+c5)/5
dc=(c1-mc)*(c1-mc)
dc:=dc+(c2-mc)*(c2-mc)
dc:=dc+(c3-mc)*(c3-mc)
dc:=dc+(c4-mc)*(c4-mc)
dc:=dc+(c5-mc)*(c5-mc)
dc:=sqrt(dc)
dc:=min(2, dc)
dc:=1-dc/2
dc:=max(0.001, dc)
g=close
if(da>db and da>dc)
g:=da*da*ma
else
if(db > da and db > dc)
g:=db*db*mb
else
g:=dc*dc*mc
wg=wma(g, 2)
plot(wg)
plot(0, color=black)
longCondition = true //crossover(sma(close, 14), sma(close, 28))
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = true //crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)