Strategi ini menggunakan beberapa isyarat Ichimoku Cloud untuk merancang strategi trend murni yang bertujuan untuk menangkap trend jangka menengah hingga panjang, menapis penyatuan, dan mengikuti arah trend yang kuat.
Strategi ini terutamanya menggunakan Tenkan-sen, Kijun-sen, Chikou Span dan penunjuk utama lain dari Awan Ichimoku. Untuk menilai trend jangka panjang, ia memberi tumpuan kepada hubungan antara Span terkemuka dan tertinggal; untuk masa masuk dan keluar tertentu, ia melihat silang Tenkan-sen dan Kijun-sen dan perubahan hubungan harga dengan Awan.
Ringkasnya, logik teras adalah: mengesahkan trend jangka menengah -> menunggu isyarat pemulihan trend yang kuat -> masuk untuk mengikuti trend -> keluar dengan stop loss.
Khususnya, untuk menentukan trend jangka menengah dan panjang, ia menggunakan hubungan antara Span terkemuka dan tertinggal (di atas Span hijau terkemuka yang menandakan trend menaik dan sebaliknya).
Ini menapis penyatuan jangka pendek hingga pertengahan dan membolehkan menangkap trend yang kuat untuk prestasi yang lebih baik di pasaran.
(1) Menggunakan Awan Ichimoku untuk menentukan arah trend jangka menengah dan panjang adalah bermanfaat untuk mencari tepi arah utama.
(2) Penyambungan silang Tenkan-sen/Kijun-sen dan perubahan hubungan harga dengan Awan membolehkan penapisan penyatuan yang berkesan dan menangkap trend yang kuat pada peringkat awal.
(3) Mekanisme keluar stop loss trailing membolehkan menunggang trend besar sambil juga mengawal kerugian yang terpencil dengan berkesan.
(4) Menggabungkan pelbagai isyarat Ichimoku mewujudkan sistem yang kukuh mengikuti trend dengan lancar.
(1) Risiko sistemik salah mengenal pasti trend yang lebih besar. Jika trend yang lebih besar didiagnosis dengan salah, semua tindakan berikutnya akan membawa risiko arah yang salah.
(2) Risiko daripada masa kemasukan yang tidak dipilih dengan baik.
(3) Risiko daripada berhenti yang diletakkan terlalu ketat. Pergerakan harga yang melampau boleh mengambil berhenti yang terlalu ketat yang mengakibatkan kerugian yang tidak dirancang.
(4) Frekuensi perdagangan yang tinggi yang membawa kepada kos transaksi yang berlebihan.
(1) Uji gabungan yang berbeza tempoh input Ichimoku untuk mencari parameter optimum.
(2) Mengoptimumkan penapis kemasukan untuk memastikan kemasukan berkualiti tinggi.
(3) Sesuaikan jarak berhenti untuk mengimbangi risiko-ganjaran.
(4) Tambah tahap sasaran keuntungan berdasarkan jarak penunjuk kunci harga untuk mewujudkan mekanisme pengambilan keuntungan adaptif.
Ini Ichimoku Cloud trend mengikuti strategi mensintesis beberapa isyarat Ichimoku untuk mendiagnosis trend, entri masa, dan jejak berhenti. amalan menunjukkan ia boleh dengan berkesan menangkap trend pertengahan jangka panjang, menapis penyatuan dan mencapai prestasi yang konsisten. pengoptimuman masa depan dan ujian boleh meningkatkan prestasi untuk pulangan yang lebih baik.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Ichimoku trendfollowing", overlay=true, initial_capital=1000, commission_type=strategy.commission.cash_per_order, commission_value=0.04, slippage=2) //*************************** // INPUT BACKTEST RANGE * //*************************** FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2010, title = "From Year", minval = 2000) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2000) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true //*************** //* ICHIMOKU * //*************** //inizializzazione parametri,, tenkanPeriods = input(9, minval=1, title="Tenkan-Sen") kinjunPeriods = input(26, minval=1, title="Kinjun-Sen") senkouSpanBPeriods = input(52, minval=1, title="Senkou Span B") displacement = input(26, minval=1, title="-ChinkouSpan/+SenkouSpan A") //definizione Tenkan-Sen (9 Period), Kinjun-Sen (26 Period), Chinkou Span (Lagging Line) averageHighLow(period) => avg(lowest(period), highest(period)) tenkan= averageHighLow(tenkanPeriods) kinjun = averageHighLow(kinjunPeriods) senkouSpanA = avg(tenkan, kinjun) senkouSpanB = averageHighLow(senkouSpanBPeriods) //definisco il colore della kumo in base al trend. senkouSpan1Above = senkouSpanA >= senkouSpanB ? 1 : na senkouSpan2Below = senkouSpanA <= senkouSpanB ? 1 : na span1plotU = senkouSpan1Above ? senkouSpanA : na span2plotU = senkouSpan1Above ? senkouSpanB : na span1plotD = senkouSpan2Below ? senkouSpanA : na span2plotD = senkouSpan2Below ? senkouSpanB : na col = senkouSpanA >= senkouSpanB ? lime : red //plots Ichimoku plot(tenkan, title = 'Tenkan-Sen', linewidth=1, color=blue) plot(kinjun, title = 'Kinjun-Sen', linewidth=1, color=red) plot(close, title = 'Chinkou Span', linewidth=1, offset = -displacement, color=aqua) plot( senkouSpanA, title = 'Senkou Span A', style=line, linewidth=1, offset = displacement, color=lime) plot(senkouSpanB, title = 'Senkou Span B', style=line, linewidth=1, offset = displacement, color=red) //Cloud Lines Plot p1 = plot(span1plotU ? span1plotU : na, title = 'Senkou Span A Above Senkou Span B', style=linebr, linewidth=1, offset = displacement, color=col) p2 = plot(span2plotU ? span2plotU : na, title = 'Senkou Span B (52 Period) Below Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col) p3 = plot(span1plotD ? span1plotD : na, title = 'Senkou Span A (26 Period) Below Span B Cloud', style=linebr, linewidth=1, offset = displacement, color=col) p4 = plot(span2plotD ? span2plotD : na, title = 'Senkou Span B (52 Period) Above Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col) //Fills that color cloud based on Trend. fill(p1, p2, color=lime, transp=70, title='Kumo (Cloud)') fill(p3, p4, color=red, transp=70, title='Kumo (Cloud)') //*********************************************** //* condizioni ingresso ed uscita mercato * //*********************************************** isKumoRialzista = senkouSpanA >= senkouSpanB ? true : false isSopraKumo = (close > max(senkouSpanA[displacement], senkouSpanB[displacement])) isSottoKumo = (close < min(senkouSpanA[displacement], senkouSpanB[displacement])) isChinkouSpanSopra = high[displacement]<close isChinkouSpanSotto = low[displacement]>close filtroLong=isSopraKumo and isChinkouSpanSopra filtroShort=isSottoKumo and isChinkouSpanSotto //rimbalzato su kijun quando i prezzi stavano ritracciando e il trend era giĆ in atto(tenkan >kijun x entrare long isPullBackLijunEntryLong = kinjun<tenkan and low<kinjun and (close>kinjun) isPullBackLijunEntryShort =kinjun>tenkan and high>kinjun and (close<kinjun) //Breackout Kumo isBreackoutKumoEntryLong = crossover(close, max(senkouSpanA[displacement], senkouSpanB[displacement])) and (close>tenkan) and (close>kinjun) isBreackoutKumoEntryShort = crossunder(close, min(senkouSpanA[displacement], senkouSpanB[displacement])) and (close<tenkan) and (close<kinjun) ConditionEntryLong = (isPullBackLijunEntryLong or isBreackoutKumoEntryLong ) and filtroLong ConditionEntryShort = (isPullBackLijunEntryShort or isBreackoutKumoEntryLong ) and filtroShort isExitLong = close<kinjun isExitShort = close>kinjun //ingressi ed uscite Mercato strategy.entry ("Long",long=true, when = window() and ConditionEntryLong) strategy.entry ("Short",long=false, when = window() and ConditionEntryShort) strategy.close(id="Long", when=isExitLong) strategy.close(id="Short", when=isExitShort) strategy.close_all(when=not window())