Ichimoku Moving Average Crossover Strategi

Penulis:ChaoZhang, Tarikh: 2023-12-19 15:40:53
Tag:

img

Ringkasan

Strategi crossover purata bergerak Ichimoku mengenal pasti isyarat panjang dan pendek dengan mengira satu set purata bergerak dan mengesan persilangan harga.

Logika Strategi

Strategi Ichimoku menggunakan sistem khusus yang terdiri daripada 5 garis purata bergerak, iaitu garisan penukaran, garis asas, lead span 1, lead span 2, dan lagging span. Khususnya, garis penukaran menggambarkan momentum harga baru-baru ini, garis asas menunjukkan trend jangka menengah hingga panjang, garis utama menggabungkan penukaran dan asas untuk meramalkan pergerakan masa depan, dan span lagging memaparkan harga masa lalu untuk rujukan. Isyarat perdagangan dihasilkan apabila harga memecahkan garis asas. Strategi ini juga menggabungkan penapis badan dan warna candlestick untuk mengelakkan pemutusan palsu.

Kelebihan

Strategi Ichimoku menggabungkan kekuatan pelbagai penunjuk teknikal ke dalam satu sistem. Ia menggabungkan konsep purata bergerak, saluran harga, pengesahan jumlah dan lain-lain, membentuk metodologi yang sistematik. Ini memastikan ketepatan dan arah isyarat perdagangan. Berbanding dengan strategi satu penunjuk, ia sangat mengurangkan isyarat palsu dan meningkatkan faktor keuntungan.

Risiko

Sebagai sistem mengikuti trend, strategi Ichimoku mempunyai selang perdagangan yang agak panjang. Ini bermakna turun naik harga jangka pendek tidak dapat ditangkap. Juga, purata bergerak gagal apabila harga turun naik secara ganas. Situasi sedemikian boleh menyebabkan isyarat yang salah dan kehilangan perdagangan. Adalah dinasihatkan untuk menggunakan berhenti untuk mengawal risiko.

Peluang Peningkatan

Strategi Ichimoku boleh ditingkatkan dalam bidang seperti: 1) Penyesuaian parameter purata untuk tempoh dan produk yang berbeza; 2) Menggabungkan penunjuk jumlah untuk mengesahkan hubungan harga-volume; 3) Memperkenalkan model pembelajaran mesin untuk memperbaiki penentuan isyarat; 4) Menambah lebih banyak penapis untuk mengurangkan kebarangkalian perdagangan yang salah.

Kesimpulan

Strategi crossover purata bergerak Ichimoku yang stabil dan boleh dipercayai sesuai sebagai strategi teras yang digabungkan dengan algoritma lain. panduan trend yang jelas dan fleksibiliti kerana penyesuaian parameter dan pengoptimuman pelbagai penunjuk menjadikannya bernilai untuk penyelidikan mendalam dan aplikasi jangka panjang oleh peniaga kuant.


/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Ichimoku Strategy v1.0", shorttitle = "Ichimoku str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
conversionPeriods = input(9, minval = 1, title = "Conversion Periods")
basePeriods = input(26, minval = 1, title = "Base Periods")
laggingSpan2Periods = input(52, minval = 1, title = "Lagging Span")
usebf = input(true, defval = true, title = "Use body filter")
usecf = input(true, defval = true, title = "Use color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Ichimoku
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

//Lines
plot(conversionLine, color=red, title="Conversion Line")
plot(baseLine, color=blue, title="Base Line")
plot(close, offset = -basePeriods, color=green, title="Lagging Span")
p1 = plot(leadLine1, offset = basePeriods, color=green, title="Lead 1")
p2 = plot(leadLine2, offset = basePeriods, color=red, title="Lead 2")
fill(p1, p2)

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 3 or usebf == false

//Color Filter
bar = close > open ? 1 : close < open ? -1 : 0
gb = bar == 1 or usecf == false
rb = bar == -1 or usecf == false

//Signals
up = low > baseLine and rb and body
dn = high < baseLine and gb and body

//Trading
if up
    //if strategy.position_size < 0
    //    strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    //if strategy.position_size > 0
    //    strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

Lebih lanjut