Strategi Ichimoku Breakout menggunakan konsep purata bergerak dan menggunakan hubungan antara garisan Ichimoku dan harga untuk menentukan arah trend. Ia tergolong dalam strategi trend berikut.
Inti strategi ini adalah berdasarkan teori garisan Ichimoku.donchian()
fungsi untuk mengira purata tertinggi tertinggi dan terendah terendah dalam tempoh tertentu sebagai garis keseimbangan. ia kemudian menilai jika harga memecahkan garis ini untuk menghasilkan isyarat perdagangan.
Khususnya, strategi ini mula-mula mengira Garis Tenkan (TS
) menggunakanTen
Apabila harga memecahkan di atas garis, ia dianggap sebagai pergerakan trend dan menghasilkan isyarat panjang. Apabila harga memecahkan di bawah garis, ia dianggap sebagai pembalikan trend dan menghasilkan isyarat pendek.
Di samping itu, strategi ini mengira Garis Kijun (KS
) menggunakanKij
bersama denganTS
Hanya apabila ia berfungsi sebagai penapis untuk mengelakkan isyarat palsu.TS
Salib di atasKS
Adakah isyarat panjang akan dicetuskan.
Kod ini juga memetakan Awan Ichimoku untuk membantu penilaian arah trend. Garis Chikou dikira untuk menentukan hubungannya dengan harga sebagai keadaan tambahan.
Pertimbangkan untuk menggabungkan dengan penunjuk momentum seperti MACD untuk kekuatan trend. Mengambil sistem purata bergerak berganda untuk meningkatkan kestabilan. atau menggabungkan stop loss untuk mengawal risiko.
Strategi Ichimoku Breakout adalah agak mudah dan mudah, sesuai untuk pemula untuk memahami trend menggunakan purata bergerak. Ia juga boleh diperluaskan dengan pelbagai penunjuk untuk sistem yang diperkaya. Walau bagaimanapun, prestasi praktikalnya memerlukan pengesahan dan pengoptimuman lanjut sebelum digunakan dalam perdagangan langsung, terutama dalam kawalan risiko. Kuncinya adalah menggunakannya dengan bijak berdasarkan keadaan pasaran, dan tidak mengikut garis secara membabi buta.
/*backtest start: 2023-01-01 00:00:00 end: 2023-10-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Ichimoku Crypto Breakout", shorttitle="Ichimoku Breakout", overlay=true) Ten = input(18, minval=1, title="Tenkan") Kij = input(52, minval=1, title="Kijun") LeadSpan = input(104, minval=1, title="Senkou B") Displace = input(52, minval=1, title="Senkou A") SpanOffset = input(52, minval=1, title="Span Offset") sts = input(true, title="Show Tenkan") sks = input(true, title="Show Kijun") ssa = input(true, title="Show Span A") ssb = input(true, title="Show Span B") source = close //Script for Ichimoku Indicator donchian(len) => avg(lowest(len), highest(len)) TS = donchian(Ten) KS = donchian(Kij) SpanA = avg(TS, KS) SpanB = donchian(LeadSpan) CloudTop = max(TS, KS) Chikou = source[Displace] SpanAA = avg(TS, KS)[SpanOffset] SpanBB = donchian(LeadSpan)[SpanOffset] //Kumo Breakout (Long) SpanA_Top = SpanAA >= SpanBB ? 1 : 0 SpanB_Top = SpanBB >= SpanAA ? 1 : 0 SpanA_Top2 = SpanA >= SpanB ? 1 : 0 SpanB_Top2 = SpanB >= SpanA ? 1 : 0 SpanA1 = SpanA_Top2 ? SpanA : na SpanA2 = SpanA_Top2 ? SpanB : na SpanB1 = SpanB_Top2 ? SpanA : na SpanB2 = SpanB_Top2 ? SpanB : na //plot for Tenkan and Kijun (Current Timeframe) p1= plot(sts and TS ? TS : na, title="Tenkan", linewidth = 2, color = gray) p2 = plot(sks and KS ? KS : na, title="Kijun", linewidth = 2, color = black) p5 = plot(close, title="Chikou", linewidth = 2, offset=-Displace, color = orange) //Plot for Kumo Cloud (Dynamic Color) p3 = plot(ssa and SpanA ? SpanA : na, title="SpanA", linewidth=2, offset=Displace, color=green) p4 = plot(ssb and SpanB ? SpanB : na, title="SpanB", linewidth=2, offset=Displace, color=red) p8 = plot(ssa and SpanA1 ? SpanA1 : na, title="Span A1 above", style=linebr, linewidth=1, offset=Displace, color=green) p9 = plot(ssa and SpanA2 ? SpanA2 : na, title="Span A2 above", style=linebr, linewidth=1, offset=Displace, color=green) p10 = plot(ssb and SpanB1 ? SpanB1 : na, title="Span B1 above", style=linebr, linewidth=1, offset=Displace, color=red) p11 = plot(ssb and SpanB2 ? SpanB2 : na, title="Span B2 above", style=linebr, linewidth=1, offset=Displace, color=red) fill(p8, p9, color = lime, transp=70, title="Kumo Cloud Up") fill (p10, p11, color=red, transp=70, title="Kumo Cloud Down") LongSpan = (SpanA_Top and source[1] < SpanAA[1] and source > SpanAA) or (SpanB_Top and source[1] < SpanBB[1] and source > SpanBB) ? 1 : 0 cupSpan = LongSpan == 1 ? LongSpan : 0 //Kumo Breakout (Long) //plotarrow(cupSpan, title="Kumo Breakout Long", colorup=green, maxheight=50) //Kumo Breakout (Long) Alerts Long_Breakout = (SpanA_Top ==1 and crossover(source, SpanAA)) or (SpanB_Top ==1 and crossover(source, SpanBB)) //Long_Breakout = ((SpanA_Top ==1 and crossover(KS, SpanAA)) or (SpanB_Top ==1 and crossover(KS, SpanBB))) and TS >= KS //alertcondition(Long_Breakout, title="Kumo Breakout Long", message="Kumo Long") //Kumo Breakout (Short) ShortSpan = (SpanB_Top and source[1] > SpanAA[1] and source < SpanAA) or (SpanA_Top and source[1] > SpanBB[1] and source < SpanBB) ? 1 : 0 cdnSpan = ShortSpan == 1 ? ShortSpan : 0 //Kumo Breakout (Short) //plotarrow(cdnSpan*-1, title="Kumo Breakout Short", colordown=red, maxheight=50) //Kumo Breakout (Short) Alerts Short_Breakout = (SpanA_Top ==1 and crossunder(source, SpanBB)) or (SpanB_Top ==1 and crossunder(source, SpanAA)) //alertcondition(Short_Breakout, title="Kumo Breakout Short", message="Kumo Short") //Kumo Twist Kumo_Twist_Long = SpanA[1] < SpanB[1] and SpanA > SpanB ? 1 : 0 Kumo_Twist_Short = SpanA[1] > SpanB[1] and SpanA < SpanB ? 1 : 0 cupD = Kumo_Twist_Long == 1 ? Kumo_Twist_Long : 0 cdnD = Kumo_Twist_Short == 1 ? Kumo_Twist_Short : 0 //Kumo Twist (Long/Short) //plotarrow(cupD, title="Kumo Twist Long", colorup=green, maxheight=50) //plotarrow(cdnD*-1, title="Kumo Twist Short", colordown=red, maxheight=50) //Kumo Twist (Long/Short) Alerts KumoTwistLong_Cross = crossover(SpanA, SpanB) //alertcondition(KumoTwistLong_Cross, title="Kumo Twist Long", message="Kumo Twist Long") KumoTwistShort_Cross = crossunder(SpanA, SpanB) //alertcondition(KumoTwistShort_Cross, title="Kumo Twist Short", message="Kumo Twist Short") //Kumo Twist (Long/Short) - Bar Color BarColor = Kumo_Twist_Long ? green : Kumo_Twist_Short ? red : na barcolor(BarColor) //Chikou above/below Price Chikou_Above = close > Chikou Chikou_Below = close < Chikou //Kumo Twist (Long/Short) - Plot Character on location of Chikou to Price & Price to Kumo //plotchar(Kumo_Twist_Long and Chikou_Above, title="Kumo Twist Long and Chikou above Price", char="A", location=location.abovebar, color=green) //plotchar(Kumo_Twist_Long and Chikou_Below, title="Kumo Twist Long and Chikou below Price", char="B", location=location.abovebar, color=red) //plotchar(Kumo_Twist_Short and Chikou_Above, title="Kumo Twist Short and Chikou above Price", char="A", location=location.belowbar, color=green) //plotchar(Kumo_Twist_Short and Chikou_Below, title="Kumo Twist Short and Chikou below Price", char="B", location=location.belowbar, color=red) //Base and Conversion Line Cross //long = cross(TS, KS) and TS>KS long = (cross(TS, SpanA) or cross(TS, SpanB)) and TS>SpanA and TS>SpanB and TS>=KS short = cross(TS, KS) and KS >= TS strategy.entry("long", strategy.long, when=Long_Breakout) strategy.entry("short", strategy.short, when=Short_Breakout) //strategy.exit("bracket", when=short)