Strategi crossover purata bergerak Ichimoku mengenal pasti isyarat panjang dan pendek dengan mengira satu set purata bergerak dan mengesan persilangan harga.
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.
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.
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.
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.
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()