Williams Double Exponential Moving Average dan Ichimoku Kinkou Hyo Strategi

Penulis:ChaoZhang, Tarikh: 2024-02-18 16:20:12
Tag:

img

Ringkasan

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.

Prinsip-prinsip

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.

Kelebihan

  1. Rata-rata Bergerak Eksponensial Ganda Williams bertindak balas dengan sensitif dan boleh menentukan arah trend yang kuat.
  2. Ichimoku Kinkou Hyo memberikan penilaian utama dan amaran awal pembalikan trend.
  3. Menggabungkan kedua-dua penunjuk membolehkan mereka mengesahkan satu sama lain dan mengurangkan isyarat palsu.
  4. Parameter boleh dioptimumkan untuk menyesuaikan diri dengan panjang kitaran dan produk yang berbeza.

Risiko dan Pengoptimuman

  1. Isyarat kerap mungkin berlaku di pasaran yang tidak trend. Parameter boleh diselaraskan untuk menapis beberapa isyarat.
  2. Mungkin terdapat beberapa kelewatan dalam persimpangan antara garis cepat dan perlahan. Lapisan awan boleh dirujuk untuk mengelakkan kehilangan titik masuk dan keluar yang optimum.
  3. Ia disyorkan untuk digabungkan dengan penunjuk trend atau turun naik untuk mengelakkan isyarat palsu.

Ringkasan

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")

Lebih lanjut