Strategi ini adalah strategi untuk berdagang berdasarkan isyarat perdagangan Faytterro Estimator. Faytterro Estimator adalah penunjuk untuk menilai trend dengan mengira kadar perpaduan harga. Strategi ini menggabungkan isyarat perdagangan Faytterro Estimator, dan beberapa syarat tambahan, untuk menghantar isyarat beli dan jual dengan saiz yang berbeza di titik yang ideal.
Strategi ini berpusat pada Faytterro Estimator. Kaedah pengiraannya adalah: pertama, mengira peratusan perpaduan harga CR, dan kemudian membina fungsi sekunder yang dapat mencerminkan ciri-ciri kurva CR dengan menetapkan faktor yang berbeza.
Khususnya, strategi pertama mengira kadar perpaduan harga CR. Kemudian membina satu panjang 2*Array dizi len, kemudian mengisi nilai fungsi sekunder. Di mana pekali fungsi sekunder mencerminkan nilai CR. Kemudian, dengan melihat dua nilai yang dilambangkan sebagai len + 1 + 5 dan len + 1 + 4, untuk menentukan sama ada fungsi sekunder muncul titik balik, jika titik balik muncul, ia akan menghantar isyarat beli atau jual.
Berdasarkan ini, strategi ini juga menetapkan beberapa syarat tambahan, seperti menetapkan selang minimum untuk penembusan harga, untuk mengelakkan perdagangan yang kerap; menetapkan isyarat masuk dengan saiz yang berbeza, dan sebagainya.
Strategi ini mempunyai beberapa kelebihan:
Menggunakan Faytterro Estimator untuk menilai trend, yang mempunyai sensitiviti terhadap turun naik harga dan dapat menangkap perubahan trend lebih awal.
Membina fungsi sekunder yang mencerminkan ciri-ciri keluk CR, mencari isyarat titik tikungan, menilai kaedah intuitif berkesan.
Ia menyediakan pelbagai saiz isyarat masuk untuk perdagangan piramid di tempat yang sesuai untuk meningkatkan ruang keuntungan.
Menambah seting jarak minimum untuk menapis isyarat dengan berkesan dan mengelakkan perdagangan yang tidak sah yang kerap.
Lebih banyak parameter yang boleh disesuaikan, dapat dioptimumkan untuk pelbagai jenis, dan sangat beradaptasi.
Strategi yang jelas dan mudah difahami, kod yang mudah dibaca dan mudah dipelajari.
Strategi ini juga mempunyai risiko yang perlu diperhatikan:
Faytterro Estimator mempunyai risiko untuk pemasangan melengkung, dan mungkin tidak berfungsi dengan baik pada beberapa jenis.
Jika hanya bergantung pada titik pusingan fungsi sekunder, isyarat mungkin terlalu besar dan menyebabkan kesalahan.
Perdagangan piramid yang kerap berlaku menambah bebanan yuran.
Banyak parameter yang boleh disesuaikan menambah kesukaran untuk disesuaikan.
Tidak dapat menangani kesalahan penilaian semasa turun naik harga.
Tidak ada mekanisme stop loss yang boleh menyebabkan kerugian meningkat.
Penyelesaian untuk menghadapi risiko adalah seperti berikut:
Parameter pengoptimuman untuk varieti yang berbeza, meningkatkan stamina.
Menambah penapis untuk penunjuk lain untuk mengelakkan kesalahan penghakiman berdasarkan titik balik sahaja.
Menetapkan stop loss yang munasabah dan mengawal kerugian tunggal.
Parameter disesuaikan secara automatik melalui kaedah data besar.
Menambah mekanisme pengenalan gegaran untuk mengelakkan fasa gegaran.
Menetapkan logik stop loss yang munasabah.
Kaedah ini bertujuan untuk mengoptimumkan antara lain:
Tambah logik stop loss, mengawal kerugian tunggal. Anda boleh menetapkan stop loss bergerak atau stop loss masa.
Menambah kombinasi indikator lain untuk mengelakkan risiko kesalahan penghakiman Faytterro Estimator tunggal. Sebagai contoh, penapisan digabungkan dengan MACD, KDJ dan sebagainya.
Menambah mekanisme pengesahan, untuk mengelakkan daripada keluar dari stop loss kerana kenaikan harga jangka pendek. Anda boleh mempertimbangkan pengesahan masuk kedua.
Mengoptimumkan parameter yang boleh disesuaikan, menetapkan parameter yang munasabah untuk pelbagai jenis. Kaedah seperti algoritma genetik, pengoptimuman Bayesian boleh digunakan.
Menambah pengenalan kepada keadaan gegaran, mengelakkan perdagangan semasa gegaran. Ia boleh dikenali dengan penunjuk seperti ATR, DMI.
Mengoptimumkan logik piramid, untuk mengelakkan kejatuhan dan kejatuhan. Sebagai contoh, penyesuaian dinamika kenaikan harga mengikut kekuatan trend.
Uji tetapan parameter untuk tempoh masa yang berbeza untuk mencari tempoh terbaik.
Strategi ini berdasarkan pada isyarat perdagangan Faytterro Estimator untuk membuat keputusan, menambah penilaian logik, dan menetapkan isyarat masuk dengan saiz yang berbeza, membentuk strategi trend-tracking dengan ciri-ciri piramid. Strategi ini mudah difahami, mempunyai keupayaan menangkap trend yang kuat. Tetapi ada juga masalah seperti penipuan indikator, tanpa henti, parameter yang sukar disesuaikan. Arah pengoptimuman masa depan termasuk menambah mekanisme penapis, logik henti, parameter yang disesuaikan, untuk meningkatkan kestabilan dan kebolehpasaran strategi.
/*backtest
start: 2022-09-21 00:00:00
end: 2023-08-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © faytterro
//@version=5
// strategy("Faytterro Estimator Strategy", overlay=true, pyramiding=100)
src=input(hlc3,title="source")
len=input.int(10,title="faytterro estimator lenght", maxval=500)
len2=100
len3=input.float(500,title="minumum enrty-close gap (different direction)")
len4=input.float(500,title="minumum entry-entry gap (same direction)")
cr(x, y) =>
z = 0.0
weight = 0.0
for i = 0 to y-1
z:=z + x[i]*((y-1)/2+1-math.abs(i-(y-1)/2))
z/(((y+1)/2)*(y+1)/2)
cr= cr(src,2*len-1)
width=input.int(10, title="strong entry size", minval=1)
dizi = array.new_float(500)
// var line=array.new_line()
//if barstate.islast
for i=0 to len*2
array.set(dizi,i,(i*(i-1)*(cr-2*cr[1]+cr[2])/2+i*(cr[1]-cr[2])+cr[2]))
buy = array.get(dizi,len+1+5)>array.get(dizi,len+1+4) and array.get(dizi,len+1+5)<cr[len]
sell = array.get(dizi,len+1+5)<array.get(dizi,len+1+4) and array.get(dizi,len+1+5)>cr[len]
bb=buy? hlc3 : na
ss=sell? hlc3 : na
sbuy= buy and close<(close[ta.barssince(buy or sell)])[1]-len4 and close<ta.highest(fixnan(ss),len2)-len3*3
ssell= sell and close>(close[ta.barssince(buy or sell)])[1]+len4 and close>ta.lowest(fixnan(bb),len2)+len3*3
buy:= buy and close<(close[ta.barssince(buy or sell)])[1]-len4 and close<ta.highest(fixnan(ss),len2)-len3 //and close>ta.highest(fixnan(ss),len2)-len3*3
sell:= sell and close>(close[ta.barssince(buy or sell)])[1]+len4 and close>ta.lowest(fixnan(bb),len2)+len3 //and close<ta.lowest(fixnan(bb),len2)+len3*3
alertcondition(buy or sell)
if (sbuy)
strategy.entry("strong buy", strategy.long,width)
if (ssell)
strategy.entry("strong sell", strategy.short,width)
if (buy)
strategy.entry("buy", strategy.long)
if (sell)
strategy.entry("sell", strategy.short)