Ichimoku Cloud Quant Strategi

Penulis:ChaoZhang, Tanggal: 2023-11-24 10:15:15
Tag:

img

Gambaran umum

Strategi ini menilai arah tren melalui indikator Ichimoku, dikombinasikan dengan pola K-line, moving average dan indikator Stochastic RSI untuk menyaring sinyal dan pergi panjang pada titik masuk yang lebih baik ketika tren naik.

Prinsip Strategi

Kriteria utama penilaian strategi adalah:

  1. Ichimoku lead line 1 melintasi di atas lead line 2, menunjukkan tren naik
  2. Harga penutupan garis K melintasi di atas garis utama 1, memenuhi kondisi untuk mengikuti tren
  3. K-line adalah lilin hijau, tren naik
  4. Bila rata-rata bergerak diaktifkan, MA cepat melintasi MA lambat
  5. Ketika Stochastic RSI diaktifkan, garis %K melintasi garis %D

Ketika semua kondisi di atas terpenuhi pada saat yang sama, strategi akan membuka posisi panjang. Ketika harga turun di bawah garis utama 1, strategi akan menutup posisi.

Strategi ini terutama menggunakan awan Ichimoku untuk menentukan arah tren utama, dikombinasikan dengan indikator tambahan untuk menyaring sinyal dan pergi panjang pada titik yang lebih baik ketika tren naik.

Keuntungan dari Strategi

  1. Gunakan Ichimoku awan untuk menentukan tren utama, backtest menunjukkan akurasi tinggi
  2. Dikombinasikan dengan beberapa indikator tambahan untuk menyaring titik masuk, dapat secara signifikan meningkatkan tingkat keuntungan
  3. Strategi hanya panjang, cocok untuk mata uang yang dinilai berada di pasar bull
  4. Ruang besar untuk optimasi parameter, dapat menyesuaikan parameter indikator untuk optimasi lebih lanjut

Risiko dari Strategi

  1. Ada kemungkinan awan Ichimoku menilai tren dengan salah
  2. Stop loss point dapat dipecahkan selama perubahan pasar yang tiba-tiba, yang menyebabkan kerugian yang diperbesar
  3. Dirancang untuk pasar bull, tidak cocok untuk mata uang dengan tanda-tanda terselubung pembalikan tren
  4. Pengaturan parameter yang tidak benar dapat menyebabkan entri terlalu agresif atau tindakan terlalu konservatif

Pengendalian:

  1. Menggabungkan lebih banyak indikator untuk menilai tren, meningkatkan akurasi
  2. Tetapkan titik stop loss yang wajar untuk mengontrol kerugian tunggal secara ketat
  3. Pilih strategi yang tepat sesuai dengan kondisi pasar dari mata uang yang berbeda
  4. Uji dan optimalkan parameter dengan hati-hati untuk membuat strategi lebih stabil

Arahan untuk Optimasi Strategi

  1. Mengoptimalkan pengaturan parameter indikator bantu untuk meningkatkan stabilitas lebih lanjut
  2. Tambahkan mekanisme stop loss seperti trailing stop loss, exponential moving average stop loss, dll.
  3. Tambahkan manajemen posisi seperti ukuran posisi tetap, rata-rata posisi, dll.
  4. Membuat penyesuaian parameter dan optimasi untuk mata uang tertentu

Ringkasan

Ini Ichimoku strategi awan kuant mencapai tingkat kemenangan tinggi namun risiko-dikendalikan hanya strategi panjang dengan menilai arah tren. Keuntungan dari strategi ini jelas dan menunjukkan kinerja yang luar biasa di pasar bull. Langkah selanjutnya adalah untuk meningkatkan aspek seperti pengoptimalan indikator, mekanisme stop loss, manajemen posisi untuk membuat strategi lebih komprehensif dan stabil.


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

strategy(title="Ichimoku only Long Strategy", shorttitle="Ichimoku only Long", overlay = true, pyramiding = 0, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=10000, currency=currency.USD)

// Time Range
FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12)
FromDay=input(defval=1,title="FromDay",minval=1,maxval=31)
FromYear=input(defval=2017,title="FromYear",minval=2017)
ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12)
ToDay=input(defval=1,title="ToDay",minval=1,maxval=31)
ToYear=input(defval=9999,title="ToYear",minval=2017)
start=timestamp(FromYear,FromMonth,FromDay,00,00)
finish=timestamp(ToYear,ToMonth,ToDay,23,59)
window()=>true
// See if this bar's time happened on/after start date
afterStartDate = time >= start and time<=finish?true:false

//Enable RSI
enableema = input(true, title="Enable EMA?")
enablestochrsi = input(false, title="Enable Stochastik RSI?")

//EMA
emasrc = close, 
len1 = input(24, minval=1, title="EMA 1")
len2 = input(90, minval=1, title="EMA 2")

ema1 = ema(emasrc, len1)
ema2 = ema(emasrc, len2)

col1 = color.lime
col2 = color.red

//EMA Plots
plot(ema1, title="EMA 1", linewidth=1, color=col1)
plot(ema2, title="EMA 2", linewidth=1, color=col2)

//STOCH RSI
smoothK = input(3, minval=1, title="RSI K Line")
smoothD = input(3, minval=1, title="RSI D Line")
lengthRSI = input(14, minval=1, title="RSI Length")
lengthStoch = input(14, minval=1, title="Stochastik Length")
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

//Ichimoku
conversionPeriods = input(9, minval=1, title="Ichi Conversion Line Length")
basePeriods = input(26, minval=1, title="Ichi Base Line Length")
laggingSpan2Periods = input(52, minval=1, title="Ichi Lagging Span 2 Length")
displacement = input(1, minval=0, title="Ichi Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
p1 = plot(leadLine1, offset = displacement - 1, color=color.green,
	 title="Lead 1")
p2 = plot(leadLine2, offset = displacement - 1, color=color.red,
	 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red)


//Long Condition
crossup = k[0] > d[0] and k[1] <= d[1]
ichigreenabovered = leadLine1 > leadLine2
ichimokulong = close > leadLine1
greencandle =  close > open
redcandle = close < open
emacond = ema1 > ema2
longcondition = ichigreenabovered and ichimokulong and greencandle

//Exit Condition
ichimokuexit = close < leadLine1

exitcondition = ichimokuexit and redcandle

//Entrys

if (enablestochrsi == false) and (enableema == false) and (longcondition) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)
    
if (enablestochrsi == true) and (enableema == false) and (longcondition) and (crossup) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)

if (enableema == true) and (enablestochrsi == false) and (longcondition) and (emacond) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)

if (enableema == true) and (enablestochrsi == true) and (longcondition) and (emacond) and (crossup) and (afterStartDate) and (strategy.opentrades < 1)
    strategy.entry("Long", strategy.long)


//Exits
if (afterStartDate)
    strategy.close(id = "Long", when = exitcondition)









Lebih banyak