Strategi perdagangan BTC berdasarkan sistem purata bergerak Ichimoku


Tarikh penciptaan: 2023-12-20 13:34:08 Akhirnya diubah suai: 2023-12-20 13:34:08
Salin: 1 Bilangan klik: 666
1
fokus pada
1621
Pengikut

Strategi perdagangan BTC berdasarkan sistem purata bergerak Ichimoku

Gambaran keseluruhan

Strategi ini dinamakan sebagai “Ichimoku Kinko Hyo Strategy”, iaitu strategi sistem garis purata satu mata. Ia adalah strategi perdagangan BTC berdasarkan garis purata satu mata yang digabungkan dengan petunjuk teknikal lain.

Prinsip Strategi

Strategi ini adalah berdasarkan sistem garis rata-rata satu mata, iaitu satu sistem strategi perdagangan trend yang merangkumi pelbagai petunjuk teknikal. Ia terdiri daripada:

Garis rujukan ((Kijun Sen): mewakili arah trend pasaran, adalah titik pertengahan dari 26 hari yang lalu yang tinggi dan rendah, boleh digunakan sebagai garis sokongan dan rintangan. Apabila harga penutupan menembusi garis rujukan, menghasilkan isyarat beli dan jual.

Garis penukaran ((Tenkan Sen): mewakili pergerakan harga saham, adalah titik pertengahan dari paras tertinggi dan terendah dalam 9 hari yang lalu, yang boleh digunakan untuk menentukan masa untuk membeli atau menjual.

SPAN masa depan A: Garis tengah yang mewakili garis purata pertama, adalah nilai purata garis asas dan garis penukaran, boleh digunakan sebagai garis amaran garis purata pertama.

SPAN B masa depan: mewakili garisan trend jangka panjang, adalah titik tengah 52 hari yang lalu, boleh membentuk carta awan, menilai trend jangka pendek.

Selain itu, strategi ini juga menggabungkan RSI untuk memberi isyarat dagangan di kawasan yang lebih berpatutan.

Apabila harga penutupan menembusi garis rujukan dan terletak di atas carta awan menghasilkan isyarat beli; dan apabila harga penutupan jatuh ke bawah garis rujukan dan terletak di bawah carta awan menghasilkan isyarat jual.

Kelebihan Strategik

  1. Sistem garis purata satu mata menilai trend dengan tepat dan mempunyai kadar kemenangan yang tinggi

  2. Menggabungkan pelbagai petunjuk untuk mengelakkan peluang yang terlewat

  3. Penunjuk RSI dapat menentukan titik balik

  4. Grafik awan menunjukkan trend jangka pendek dan panjang

Analisis risiko

  1. Sistem garis rata-rata satu mata agak ketinggalan zaman, perlu dipertimbangkan bersama-sama dengan petunjuk lain

  2. Pasaran yang sedang berkembang baik, tetapi pasaran yang bergolak

  3. Pengaturan parameter RSI perlu disesuaikan dengan pasaran

  4. Reka bentuk peta awan lebih rumit dan memerlukan kemahiran

Ia boleh dioptimumkan dengan menyesuaikan parameter garis purata, atau menggabungkan lebih banyak petunjuk teknikal.

Arah pengoptimuman

  1. Optimumkan parameter garis purata untuk menilai trend dengan lebih cepat

  2. Menambah petunjuk seperti purata bergerak untuk meningkatkan ketepatan isyarat

  3. Tetapan parameter RSI yang disesuaikan dengan pasaran yang berbeza

  4. Mempertimbangkan untuk memasukkan mekanisme kawalan kerugian untuk mengawal risiko

ringkaskan

Strategi ini menggunakan pelbagai indikator penilaian trend seperti garis purata mata, RSI, dan lain-lain, dan mempunyai ketepatan yang lebih tinggi dalam menentukan trend menaik. Tetapi sistem garis purata mata agak ketinggalan dan tidak dapat menentukan getaran, yang merupakan risiko utama strategi ini. Dengan menetapkan parameter yang dioptimumkan, atau menambah indikator lain, anda dapat mengimbangi kekurangan ini dengan baik, menjadikan strategi lebih stabil dan boleh dipercayai.

Kod sumber strategi
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("My Ichimoku Strat v2", overlay=true,default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=1000, currency=currency.EUR,commission_type=strategy.commission.percent,commission_value=0.05)
// === BACKTEST RANGE ===
FromMonth = input(defval = 3, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// === SERIES SETUP ===



//**** Inputs *******
KijunSenLag = input(6,title="KijunSen Lag",minval=1)

//Kijun-sen
//Support resistance line, buy signal when price crosses it
KijunSen = sma((high+low)/2,26)
buy2 = crossover(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))
sell2= crossunder(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))


//Tenkan-Sen
TenkanSen = sma((high+low)/2,9)

//Senkou Span A 
SenkouSpanA = (KijunSen + TenkanSen)/2

//Senkou Span B 
SenkouSpanB = sma((high+low)/2,52)

//Cloud conditions : ignore buy if price is under the cloud
// Huge cloud means safe support and resistance. Little cloud means danger.
buy3 = close > SenkouSpanA and close > SenkouSpanB
sell3 = close < SenkouSpanA and close < SenkouSpanB


//Chikou Span
//Buy signal : crossover(ChikouSpan,close)
//Sell Signal : crossunder(ChikouSpan,close)
ChikouSpan = close
buy1=crossover(ChikouSpan,close[26])
sell1=crossunder(ChikouSpan,close[26])

plotshape(buy1,style=shape.diamond,color=lime,size=size.small)
plotshape(sell1,style=shape.diamond,color=orange,size=size.small)

//Alerts

buyCompteur = -1
buyCompteur := nz(buyCompteur[1],-1)
buyCompteur := buy2 or buy3 ? 1 : buyCompteur
buyCompteur := buyCompteur > 0 ? buyCompteur + 1 : buyCompteur
buyCompteur := sell2 or sell3 ? -1 : buyCompteur

sellCompteur = -1
sellCompteur := nz(sellCompteur[1],-1)
sellCompteur := sell2 or sell3 ? 1 : sellCompteur
sellCompteur := sellCompteur > 0 ? sellCompteur + 1 : sellCompteur
sellCompteur := buy2 or buy3 ? -1 : sellCompteur



//RSI
src = close, len = input(14, minval=1, title="RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
buyRSI = crossover(rsi,40) and close > TenkanSen and rsi[5]<30 and (rsi-rsi[1])>5
sellRSI = crossunder(rsi,60) and close < TenkanSen and rsi[5]>70 and (rsi[1]-rsi)>5
plotshape(buyRSI,style=shape.triangleup,color=lime,transp=0,location=location.belowbar,size=size.small)

sell= sell2 and sell3 or (sell1 and buyCompteur <= 8) or sellRSI
buy=buy2 and buy3 or (buy1 and sellCompteur <=8) or buyRSI
plotchar(buy,char='B',size=size.small,color=lime) 
plotchar(sell,char='S',size=size.small,color=orange)


//plots
plot(KijunSen,title="Kijun-Sen",color=blue,linewidth=4)
plot(TenkanSen,title="Tenkan-Sen",color=red,linewidth=2)
cloudA = plot(SenkouSpanA,title="cloud A", color=lime,offset=26,linewidth=2)
cloudB = plot(SenkouSpanB,title="cloud B", color=orange,offset=26,linewidth=2)
plot(ChikouSpan,title="lag span",color=fuchsia, linewidth=2,offset=-26)
//plot()
fill(cloudA,cloudB,color=SenkouSpanA>SenkouSpanB?lime:orange)
//plot(close,color=silver,linewidth=4)

// === ALERTS ===
strategy.entry("L", strategy.long, when=(buy and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))
strategy.close("L", when=(sell and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))