Strategi Kuantitatif Carta Awan Ichimoku


Tarikh penciptaan: 2023-11-24 10:15:15 Akhirnya diubah suai: 2023-11-24 10:15:15
Salin: 2 Bilangan klik: 736
1
fokus pada
1621
Pengikut

Strategi Kuantitatif Carta Awan Ichimoku

Gambaran keseluruhan

Ini adalah strategi kuantitatif awan Ichimoku yang hanya melakukan lebih banyak. Strategi ini menilai arah trend melalui penunjuk Ichimoku, dengan penapis K-line, rata-rata bergerak dan Stochastic RSI untuk memilih titik masuk yang lebih baik apabila trend meningkat.

Prinsip Strategi

Kriteria utama yang digunakan dalam strategi ini ialah:

  1. Ichimoku merentasi garis panduan 1 di garis panduan 2, menunjukkan perubahan trend
  2. Garis K melintasi garisan peneraju 1 pada harga penutupan, memenuhi syarat untuk mengikuti trend
  3. Garis K adalah Garis Siang, trend ke atas
  4. Untuk mengaktifkan purata bergerak, minta laluan perlahan melalui laluan cepat.
  5. Untuk mengaktifkan Stochastic RSI, minta K melalui D

Apabila syarat di atas dipenuhi secara bersamaan, strategi akan membuka lebih banyak kedudukan; apabila harga jatuh di bawah garis utama 1, strategi akan melonggarkan kedudukan.

Strategi ini menggunakan grafik awan Ichimoku untuk menentukan arah trend utama, dan kemudian menggabungkan isyarat penapis indikator tambahan untuk memilih tempat masuk yang lebih baik apabila trend meningkat.

Kelebihan Strategik

  1. Menggunakan Imej Awan Ichimoku untuk menentukan trend utama, retrospeksi menunjukkan ketepatan penilaian yang tinggi
  2. Berpasangan dengan pelbagai penapis mata masuk, ia dapat meningkatkan kadar keuntungan dengan ketara
  3. Hanya berbilang strategi, digunakan untuk mata wang yang dianggap berbilang mata wang
  4. Optimasi parameter yang besar, parameter penunjuk boleh disesuaikan untuk pengoptimuman lanjut

Risiko Strategik

  1. Ichimoku Cloud Diagram: Kemungkinan Kegagalan, Kemungkinan Salah Arah Trend
  2. Hentian kerugian boleh ditembusi apabila keadaan berubah, menyebabkan kerugian meningkat.
  3. Reka bentuk mata wang yang tidak sesuai untuk tanda-tanda perubahan yang tersembunyi
  4. Tetapan parameter yang tidak betul boleh menyebabkan terlalu masuk ke dalam bidang atau terlalu konservatif

Kaedah pencegahan:

  1. Meningkatkan ketepatan penilaian dengan menggunakan lebih banyak trend penilaian
  2. Tetapkan titik hentian yang munasabah dan kawal kerugian tunggal
  3. Memilih strategi yang sesuai dengan keadaan mata wang yang berbeza
  4. Uji dan optimumkan parameter dengan teliti untuk menjadikan strategi lebih stabil

Arah pengoptimuman strategi

  1. Pengaturan parameter penunjuk tambahan yang dioptimumkan untuk meningkatkan kestabilan strategi
  2. Menambah mekanisme penangguhan kerugian, seperti penangguhan pelacakan, penangguhan purata bergerak indeks dan sebagainya
  3. Menambah pengurusan kedudukan, seperti kedudukan tetap, purata kedudukan dan sebagainya
  4. Optimasi penyesuaian parameter untuk mata wang tertentu

ringkaskan

Strategi kuantitatif awan Ichimoku adalah strategi tunggal dengan menentukan arah trend, mencapai kemenangan yang tinggi dan risiko yang boleh dikawal. Kelebihan strategi jelas, kesannya menonjol dalam situasi pelbagai. Langkah seterusnya dapat diperbaiki dari segi pengoptimuman penunjuk, mekanisme stop-loss, pengurusan kedudukan, dan lain-lain, menjadikan strategi lebih baik dan stabil.

Kod sumber strategi
/*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)