Strategi ini adalah strategi untuk melakukan perdagangan berdasarkan sinyal perdagangan Faytterro Estimator. Faytterro Estimator adalah indikator untuk menilai tren dengan menghitung harga convergence dispersion rate. Strategi ini menggabungkan sinyal perdagangan Faytterro Estimator, dan beberapa kondisi tambahan, untuk mengirimkan sinyal beli dan jual dengan ukuran yang berbeda di titik ideal.
Inti dari strategi ini adalah Faytterro Estimator. Metode penghitungannya adalah: pertama-tama menghitung harga convergence divergence rate CR, lalu membangun fungsi sekunder yang dapat mencerminkan karakteristik kurva CR dengan mengatur berbagai faktor.
Secara khusus, strategi pertama menghitung harga convergence dispersion rate (CR) dan kemudian membangun sebuah panjang 2*Array dizi len, mengisi nilai fungsi sekunder secara berurutan. Di mana koefisien fungsi sekunder mencerminkan nilai CR. Kemudian, dengan mengamati dua nilai len + 1 + 5 dan len + 1 + 4, untuk menilai apakah fungsi sekunder muncul titik balik, jika muncul titik balik akan mengirimkan sinyal beli atau jual.
Berdasarkan hal tersebut, strategi ini juga menetapkan beberapa kondisi tambahan, seperti menetapkan interval minimum untuk penembusan harga, untuk menghindari perdagangan yang sering; mengatur sinyal masuk dengan ukuran yang berbeda, dll.
Strategi ini memiliki beberapa keuntungan:
Menggunakan Faytterro Estimator untuk menilai tren, indikator ini memiliki sensitivitas terhadap fluktuasi harga dan dapat menangkap perubahan tren lebih awal.
Membangun fungsi sekunder yang mencerminkan karakteristik kurva CR, mencari sinyal titik balik, dan menilai metode intuitif efektif.
Siapkan sinyal masuk dengan ukuran yang berbeda untuk melakukan perdagangan piramida pada titik ideal, meningkatkan ruang untuk keuntungan.
Menambahkan pengaturan jarak minimum untuk memfilter sinyal secara efektif dan menghindari seringnya transaksi yang tidak valid.
Ada banyak parameter yang dapat disesuaikan, dapat dioptimalkan untuk berbagai varietas, dan sangat adaptif.
Strategi yang jelas dan mudah dipahami, kode yang mudah dibaca, dan mudah untuk belajar.
Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:
Faytterro Estimator memiliki risiko pada fitting kurva dan mungkin tidak bekerja dengan baik pada beberapa varietas.
Sinyal bisa terlalu besar dan menyebabkan kesalahan penilaian.
Seringnya transaksi piramida menambah beban biaya.
Banyaknya parameter yang dapat disesuaikan membuat penyesuaian menjadi lebih sulit.
Tidak mampu menangani kesalahan penilaian yang terjadi pada periode fluktuasi harga.
Tidak ada mekanisme stop loss yang dapat menyebabkan kerugian yang lebih besar.
Solusi untuk menghadapi risiko adalah sebagai berikut:
Parameter optimasi untuk varietas yang berbeda, meningkatkan stamina.
Menambahkan filter untuk indikator lain untuk menghindari kesalahan penilaian hanya berdasarkan titik balik.
Pengaturan Stop Loss yang masuk akal untuk mengendalikan kerugian tunggal.
Parameter disesuaikan secara otomatis melalui metode data besar.
Menambahkan mekanisme identifikasi gempa untuk menghindari fase gempa.
Menetapkan logika stop loss yang masuk akal.
Strategi ini mencakup beberapa hal:
Tambahkan logika stop loss, kendalikan kerugian tunggal. Anda dapat mengatur stop loss bergerak atau stop loss waktu.
Menambahkan kombinasi indikator lain untuk menghindari risiko kesalahan penilaian Faytterro Estimator tunggal. Misalnya, memfilter kombinasi indikator seperti MACD, KDJ dll.
Menambahkan mekanisme konfirmasi untuk menghindari stop loss karena harga kembali dalam waktu singkat. Anda dapat mempertimbangkan konfirmasi masuk kedua.
Mengoptimalkan parameter yang dapat disesuaikan, mengatur parameter yang masuk akal untuk varietas yang berbeda. Metode seperti algoritma genetik, optimasi Bayesian, dan lain-lain dapat digunakan.
Meningkatkan pengenalan terhadap situasi yang bergolak, menghindari transaksi pada saat bergolak. Dapat diidentifikasi dengan indikator seperti ATR, DMI dll.
Mengoptimalkan logika piramida untuk mencegah penangkapan dan penembakan. Misalnya, penambahan posisi secara dinamis sesuai dengan kekuatan tren.
Uji pengaturan parameter dari berbagai periode waktu untuk mencari periode optimal.
Strategi ini didasarkan pada sinyal perdagangan Faytterro Estimator untuk membuat keputusan, dengan menambahkan penilaian logis, dan mengatur sinyal masuk dengan ukuran yang berbeda, membentuk strategi pelacakan tren dengan karakteristik piramida. Strategi ini intuitif, mudah dipahami, dan memiliki kemampuan menangkap tren yang kuat. Namun, ada juga masalah seperti kesalahan penilaian indikator, tanpa stop loss, parameter yang sulit disesuaikan.
/*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)