SMA Ichimoku Strategy Crossover

Penulis:ChaoZhang, Tarikh: 2023-10-16 15:46:38
Tag:

Ringkasan

Strategi crossover SMA Ichimoku adalah strategi dagangan yang biasa. Strategi ini menggunakan prinsip silang emas dan silang mati purata bergerak, digabungkan dengan awan Ichimoku dan purata bergerak lancar SMA, untuk membentuk sistem dagangan yang agak lengkap. Strategi ini boleh membuka dan menutup kedudukan saham secara automatik.

Prinsip Strategi

Strategi ini terutamanya menilai pembelian dan penjualan saham melalui perbandingan antara garis penukaran dan garis asas dalam penunjuk Ichimoku dan persilangan purata bergerak SMA jangka pendek dan jangka panjang.

Khususnya, kod ini menentukan garis penukaran, garis asas, rentang utama 1 dan rentang utama 2 penunjuk Ichimoku. Pada masa yang sama, purata bergerak SMA jangka panjang ma1 dan purata bergerak SMA jangka pendek ma2 ditakrifkan.

Apabila menilai untuk membeli, garis penukaran perlu lebih rendah daripada garis asas, dan purata bergerak jangka pendek lebih rendah daripada purata bergerak jangka panjang, iaitu, salib emas berlaku.

Apabila menilai untuk menjual, garis penukaran perlu lebih tinggi daripada garis asas, dan purata bergerak jangka pendek lebih tinggi daripada purata bergerak jangka panjang, iaitu, persilangan mati berlaku.

Di samping itu, kod ini juga menentukan beberapa syarat tambahan, seperti harga penutupan yang lebih tinggi daripada hari sebelumnya, dan menggunakan perbezaan dan pembahagian nilai purata bergerak untuk menilai cerun.

Analisis Kelebihan

Strategi ini menggabungkan kelebihan pelbagai penunjuk teknikal dan mempunyai kelebihan berikut:

  1. Awan Ichimoku sendiri mengandungi penilaian trend, digabungkan dengan purata bergerak SMA boleh membentuk penilaian trend yang kuat.

  2. purata bergerak SMA sendiri boleh menentukan trend harga dan momentum. MA cepat melintasi MA perlahan boleh menentukan titik perdagangan.

  3. Menambah penilaian harga penutupan boleh mengelakkan pembukaan dan penutupan kedudukan yang tidak perlu.

  4. Pengiraan cerun purata bergerak meningkatkan pertimbangan mengenai momentum persilangan purata bergerak dan boleh menapis persilangan palsu.

  5. Secara keseluruhan, strategi ini mempunyai penilaian trend yang agak tepat, dapat mengurangkan perdagangan yang tidak perlu, dan mempunyai beberapa ruang untuk pengoptimuman.

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko:

  1. Kedua-dua Ichimoku dan SMA mungkin ketinggalan dan gagal mencerminkan perubahan harga dalam masa.

  2. Gabungan pelbagai keadaan meningkatkan kerumitan dan kebarangkalian kesilapan.

  3. Strategi ini hanya berdasarkan kepada penunjuk teknikal dan tidak dapat menilai kesan berita utama.

  4. Strategi ini tidak menetapkan syarat berhenti kerugian, dengan risiko peningkatan kerugian.

  5. Strategi ini tidak mengambil kira keadaan pasaran khas seperti penyatuan.

  6. Tetapan parameter yang tidak betul juga boleh mempengaruhi prestasi strategi.

Pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Tetapkan keadaan stop loss untuk menghentikan kerugian secara automatik apabila kerugian meningkat.

  2. Tingkatkan penilaian mengenai peristiwa berita utama untuk mengelakkan kesannya.

  3. Meningkatkan penilaian terhadap keadaan pasaran khas seperti meningkatkan julat perdagangan atau menyesuaikan parameter.

  4. Uji dan optimumkan kombinasi parameter untuk mencari parameter optimum.

  5. Memperkenalkan algoritma pembelajaran mesin untuk pengoptimuman parameter dan penilaian pasaran.

  6. Tambah penunjuk momentum untuk mengelakkan pembocoran palsu.

  7. Gabungkan lebih banyak asas seperti perubahan dalam jumlah.

Kesimpulan

Ringkasnya, strategi crossover SMA Ichimoku ini mengintegrasikan kelebihan rata-rata bergerak Ichimoku dan SMA untuk membentuk strategi perdagangan saham yang agak lengkap. Strategi ini mempunyai keupayaan yang kuat untuk menentukan trend dan dapat menangkap peluang trend dengan berkesan. Tetapi terdapat juga masalah seperti lag, kerumitan yang tinggi, kekurangan stop loss. Ini memberikan ruang yang besar untuk mengoptimumkan strategi ini. Dengan menetapkan stop loss, menilai peristiwa berita utama, mengoptimumkan parameter dan banyak lagi, strategi ini boleh terus dipertingkatkan untuk menjadi strategi perdagangan kuantitatif yang stabil dan boleh dipercayai.


/*backtest
start: 2023-09-15 00:00:00
end: 2023-10-15 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// strategy("Ichimoku+SMAsmoothed", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
// 
conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")
SMA1=input(title="SMA LONG",defval=21)
SMA2=input(title="SMA SHORT",defval=19)
p=ohlc4[1]


donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

//plot(conversionLine, color=#0496ff, title="Conversion Line")
//plot(baseLine, color=#991515, title="Base Line")
//plot(close, offset = -displacement, color=#459915, title="Lagging Span")

//p1 = plot(leadLine1, offset = displacement, color=green,
// title="Lead 1")
//p2 = plot(leadLine2, offset = displacement, color=red, 
// title="Lead 2")
//fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)

ma1=sma(p, SMA1)
ma2=sma(p, SMA2)
p_a = ma1*2
p_b = ma1
p_c = p_a - p_b
p_d = p_c/24
p_e = ma2*2
p_f = ma2
p_g = p_e - p_f
p_h = p_g/24

closelong = ohlc4<ohlc4[SMA1] and ohlc4<ohlc4[1]// and leadLine1<leadLine2 and p_h<p_d
if (closelong)
    strategy.close("Long")
closeshort = ohlc4>ohlc4[SMA1] and ohlc4>ohlc4[1]// and leadLine1>leadLine2 and p_h>p_d
if (closeshort)
    strategy.close("Short")

longCondition = ohlc4>ohlc4[1] and leadLine1>leadLine2 and p_h>p_d
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = ohlc4<ohlc4[1] and leadLine1<leadLine2 and p_h<p_d
if (shortCondition)
    strategy.entry("Short",strategy.short)

Lebih lanjut