Strategi ini menggabungkan Rata-rata Bergerak Eksponensial Ganda Williams dan Ichimoku Kinkou Hyo, dua penunjuk teknikal, untuk memanfaatkan kelebihan masing-masing dan meningkatkan ketepatan keputusan perdagangan.
Rata-rata Bergerak Eksponensial Ganda Williams mengandungi garis pantas dan garis perlahan. Garis pantas dikira dengan formula: 2 * ((n/2 tempoh Rata-rata Bergerak Berimbang), dan garis perlahan dikira dengan: n tempoh Rata-rata Bergerak Berimbang. Apabila garis pantas melintasi di atas garis perlahan dari bawah, ia adalah isyarat beli; apabila ia melintasi di bawah dari atas, ia adalah isyarat jual.
Ichimoku Kinkou Hyo terdiri daripada empat komponen: tenkan sen, kijun sen, garis utama dan lapisan awan. Salib emas antara tenkan sen dan kijun sen adalah isyarat beli, sementara salib kematian adalah isyarat jual. Apabila harga melanggar di atas atau di bawah tepi atas atau bawah lapisan awan, ia menandakan pembelian atau penjualan, masing-masing.
Strategi ini menggabungkan kekuatan kedua-dua penunjuk. Penentu pertama adalah isyarat dari Penunjuk Williams, dan yang kedua adalah pengesahan dari Ichimoku Kinkou Hyo, dengan berkesan menapis isyarat palsu dan meningkatkan ketepatan keputusan.
Strategi ini sepenuhnya menggunakan keupayaan Penunjuk Williams untuk menilai arah trend dan Ichimoku Kinkou Hyo untuk memberikan amaran awal pembalikan, meningkatkan ketepatan keputusan perdagangan dengan ketara. pengoptimuman lanjut seperti penyesuaian parameter dan menggabungkan dengan penunjuk lain akan membolehkan peningkatan yang mampan untuk menyesuaikan diri dengan perubahan pasaran.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Hull MA-X + Ichimoku Kinko Hyo", shorttitle="Hi", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1000, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) keh=input(title="Double HullMA",defval=12, minval=1) n2ma=2*wma(close,round(keh/2)) nma=wma(close,keh) diff=n2ma-nma sqn=round(sqrt(keh)) n2ma1=2*wma(close[1],round(keh/2)) nma1=wma(close[1],keh) diff1=n2ma1-nma1 sqn1=round(sqrt(keh)) n1=wma(diff,sqn) n2=wma(diff1,sqn) b=n1>n2?lime:red c=n1>n2?green:red d=n1>n2?red:green TenkanSenPeriods = input(9, minval=1, title="Tenkan Sen Periods") KijunSenPeriods = input(24, minval=1, title="Kijun Sen Periods") SenkouSpanBPeriods = input(51, minval=1, title="Senkou Span B Periods") displacement = input(24, minval=1, title="Displacement") donchian(len) => avg(lowest(len), highest(len)) TenkanSen = donchian(TenkanSenPeriods) KijunSen = donchian(KijunSenPeriods) SenkouSpanA = avg(TenkanSen, KijunSen) SenkouSpanB = donchian(SenkouSpanBPeriods) SenkouSpanH = max(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1]) SenkouSpanL = min(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1]) ChikouSpan = close[displacement-1] Hullfast=plot(n1,color=c) Hullslow=plot(n2,color=c) plot(cross(n1, n2) ? n1:na, style = circles, color=b, linewidth = 4) plot(cross(n1, n2) ? n1:na, style = line, color=d, linewidth = 3) plot(TenkanSen, color=blue, title="Tenkan Sen", linewidth = 2) plot(KijunSen, color=maroon, title="Kijun Sen", linewidth = 3) plot(close, offset = -displacement, color=orange, title="Chikou Span", linewidth = 2) sa=plot (SenkouSpanA, offset = displacement, color=green, title="Senkou Span A", linewidth = 2) sb=plot (SenkouSpanB, offset = displacement, color=red, title="Senkou Span B", linewidth = 3) fill(sa, sb, color = SenkouSpanA > SenkouSpanB ? green : red) longCondition = n1>n2 and close>n2 and close>ChikouSpan and close>SenkouSpanH and (TenkanSen>KijunSen or close>KijunSen) if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and close<n2 and close<ChikouSpan and close<SenkouSpanL and (TenkanSen<KijunSen or close<KijunSen) if (shortCondition) strategy.entry("Short",strategy.short) closelong = n1<n2 and close<n2 and (TenkanSen<KijunSen or close<TenkanSen or close<KijunSen or close<SenkouSpanL) if (closelong) strategy.close("Long") closeshort = n1>n2 and close>n2 and (TenkanSen>KijunSen or close>TenkanSen or close>KijunSen or close>SenkouSpanH) if (closeshort) strategy.close("Short")