Ichimoku Kinko Hyo Berasaskan Strategi Dagangan BTC

Penulis:ChaoZhang, Tarikh: 2023-12-20 13:34:08
Tag:

img

Ringkasan

Strategi ini dipanggil Ichimoku Kinko Hyo Strategy. Ia adalah strategi perdagangan BTC berdasarkan sistem Ichimoku Kinko Hyo digabungkan dengan penunjuk teknikal lain.

Logika Strategi

Strategi ini terutamanya berdasarkan sistem Ichimoku Kinko Hyo, yang menggabungkan beberapa penunjuk teknikal untuk perdagangan trend.

Kijun Sen: Mewakili arah trend pasaran. Ia adalah titik tengah harga tertinggi dan terendah selama 26 hari yang lalu, bertindak sebagai garis sokongan dan rintangan. Isyarat beli dan jual dihasilkan apabila harga dekat melintasi Kijun Sen.

Tenkan Sen: Mewakili momentum harga. Ia adalah titik tengah harga tertinggi dan terendah selama 9 hari yang lalu, membantu menentukan titik masuk dan keluar terbaik.

Senkou Span A: mewakili garisan pertengahan Ichimoku. Ia adalah purata Kijun Sen dan Tenkan Sen, bertindak sebagai garisan amaran Ichimoku.

Senkou Span B: Mewakili garis trend jangka panjang. Ia adalah titik tengah 52 hari yang lalu. Membentuk awan Ichimoku untuk menentukan trend jangka panjang dan jangka pendek.

Di samping itu, strategi ini juga menggabungkan penunjuk RSI untuk menjana isyarat perdagangan di zon overbought dan oversold.

Isyarat beli dijana apabila harga penutupan melanggar di atas Kijun Sen dan terletak di atas awan. Isyarat jual dijana apabila harga penutupan melanggar di bawah Kijun Sen dan terletak di bawah awan.

Kelebihan

  1. Sistem Ichimoku dengan tepat menentukan trend dengan kadar kemenangan yang agak tinggi.

  2. Penggabungan pelbagai penunjuk mengelakkan peluang yang hilang.

  3. RSI secara berkesan menentukan titik pembalikan.

  4. Awan secara intuitif menunjukkan trend jangka panjang dan jangka pendek.

Analisis Risiko

  1. Sistem Ichimoku mempunyai ketinggalan tertentu, memerlukan penggabungan penunjuk lain.

  2. Berfungsi dengan baik di pasaran yang sedang tren tetapi sederhana di pasaran yang berbeza.

  3. Parameter RSI memerlukan penyesuaian berdasarkan pasaran.

  4. Pembinaan awan adalah kompleks yang memerlukan manipulasi yang mahir.

Parameter Ichimoku boleh dioptimumkan atau lebih banyak penunjuk boleh ditambah.

Arahan pengoptimuman

  1. Mengoptimumkan parameter Ichimoku untuk menentukan trend lebih cepat.

  2. Tambah lebih banyak penunjuk seperti purata bergerak untuk meningkatkan ketepatan isyarat.

  3. Sesuaikan parameter RSI berdasarkan pasaran yang berbeza.

  4. Pertimbangkan untuk menambah mekanisme stop loss untuk mengawal risiko.

Kesimpulan

Ichimoku digabungkan dengan penunjuk seperti RSI mempunyai ketepatan yang tinggi dalam menangkap trend menaik. Ketinggalan Ichimoku dan ketidakupayaan dalam pasaran yang berbeza adalah risiko utama. Penyesuaian parameter yang betul dan menambah lebih banyak penunjuk dapat mengurangkan risiko ini dengan ketara, menjadikan strategi lebih kukuh dan boleh dipercayai.


/*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))))

Lebih lanjut