Strategi pita giroskopik berdasarkan beberapa kerangka waktu dan amplitudo rata-rata

Penulis:ChaoZhang, Tanggal: 2023-11-24 17:29:39
Tag:

img

Gambaran umum

Strategi ini disebut Gyroscopic Bands Strategy Based on Multi Time Frame and Average Amplitude. Ide utamanya adalah untuk membangun sinyal perdagangan berdasarkan amplitudo rata-rata antara harga dan partikel yang sesuai dengan lintasan harga.

Logika Strategi

Strategi pertama mendefinisikan partikel yang sesuai dengan lintasan harga. Di bawah pengaruh gravitasi dan inersia, lintasan partikel akan berosilasi di sekitar harga. Kemudian kita menghitung penyimpangan rata-rata antara partikel dan harga, dan menggunakannya untuk membangun band atas dan bawah. Ketika harga menembus band atas atau bawah, sinyal perdagangan dihasilkan.

Secara khusus, rumus posisi partikel yang didefinisikan dalam strategi adalah:

pos:=if pos<close  
     nz(pos[1])+grav+traj
else
     nz(pos[1])-(grav)+traj 

Di sini.gravmewakili istilah gravitasi yang membuat partikel mendekati harga;trajmerupakan istilah inersia yang menjaga tren pergerakan partikel. Kombinasi dari kedua item ini membuat partikel berosilasi di sekitar harga.

Kemudian kita menghitung deviasi rata-rataavgdistantara harga dan partikel, dan menggunakannya untuk membangun band atas dan bawah:

bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)  

Akhirnya, pergi panjang ketika harga lebih besar dari band atas, dan pergi pendek ketika di bawah band bawah.

Keuntungan

Dibandingkan dengan strategi rata-rata bergerak tradisional, strategi ini memiliki keuntungan berikut:

  1. Menggunakan lintasan partikel untuk mensimulasikan fluktuasi harga dengan lebih baik;
  2. Band atas dan bawah dapat disesuaikan berdasarkan amplitudo rata-rata historis, yang kondusif untuk menangkap terobosan;
  3. Desain multi time frame dapat beralih antara high dan low time frame untuk menangkap lebih banyak peluang perdagangan.

Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Pengaturan parameter gerakan partikel yang tidak benar dapat menyebabkan sinyal palsu atau sinyal gagal;
  2. Konflik sinyal mungkin terjadi saat beralih antara beberapa kerangka waktu;
  3. Sinyal terobosan dari band atas dan bawah dapat meningkatkan risiko stop loss.

Langkah-langkah manajemen risiko yang sesuai meliputi: mengoptimalkan parameter untuk mengurangi sinyal palsu, mendefinisikan aturan waktu kerangka waktu yang jelas, menetapkan posisi stop loss yang tepat, dll.

Arahan Optimasi

Strategi ini dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan parameter yang terkait dengan gerakan partikel agar sesuai dengan lintasan harga;
  2. Meningkatkan jumlah lapisan kerangka waktu untuk mengkonfirmasi sinyal pada kerangka waktu yang lebih tinggi;
  3. Menambahkan indikator volatilitas untuk menghindari sinyal selama fluktuasi pasar yang keras;
  4. Mengoptimalkan strategi stop loss untuk mengurangi stop loss tunggal.

Kesimpulan

Strategi ini meningkatkan strategi rata-rata bergerak dengan memperkenalkan penyesuaian lintasan harga. Ini memiliki fitur seperti parameter adaptif, beberapa kerangka waktu, pengoptimalan stop loss, dll. Kuncinya adalah menemukan persamaan gerak partikel yang sesuai untuk mensimulasikan harga. Meskipun pengujian dan pengoptimalan lebih lanjut diperlukan, ide dasar adalah layak dan layak penelitian lebih lanjut.


/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//2 revert
strategy("Jomy's Gyroscopic Bands",precision=8,commission_value=.03,overlay=true,initial_capital =10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100,  pyramiding=0)//,calc_on_order_fills= true, calc_on_every_tick=false) 
leverage=input(1,"leverage")
a=0
a:= if volume > -1
    nz(a[1])+1
else
    nz(a)
    
vara=input(4.0,"variable a (10 to the power of __ ",step=.5)
vara:=pow(10,vara)
varb=input(12,"variable b")
pos=0.0
pos:=if a<=5
    close
else
    nz(pos[1])
grav=1/sqrt((close*close))*vara
traj=0.0
traj:=(nz(close[1])-nz(close[2])+nz(traj[1])*varb)/(varb+1)
pos:=if pos<close
    nz(pos[1])+grav+traj
else
    nz(pos[1])-(grav)+traj

plot(pos,color=color.white)
plot(close)

avgdist=abs(close-pos)
bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)

plbbh=plot(bbh,color=color.red)
plbbl=plot(bbl,color=color.red)

long = close>pos
short = close<pos

fill(plbbh,plbbl,color=long?color.lime:color.red)
//bgcolor(close>bbh?color.lime:close<bbl?color.red:na,transp=90)

strategy.entry("Long1",strategy.long,when=long,qty=(strategy.equity*leverage/open)) 
strategy.close("Long1",when=not long)
strategy.entry("Short1",strategy.short,when=short,qty=(strategy.equity*leverage/open)) 
strategy.close("Short1",when=not short)


//plot(strategy.equity,color=color.lime,linewidth=4)

Lebih banyak