Williams Double Exponential Moving Average và Ichimoku Kinkou Hyo Chiến lược

Tác giả:ChaoZhang, Ngày: 2024-02-18 16:20:12
Tags:

img

Tổng quan

Chiến lược này kết hợp Trung bình di chuyển hàm số hai Williams và Ichimoku Kinkou Hyo, hai chỉ số kỹ thuật, để sử dụng những lợi thế tương ứng của chúng và cải thiện độ chính xác của các quyết định giao dịch.

Nguyên tắc

Williams Double Exponential Moving Average bao gồm một đường nhanh và một đường chậm. Đường nhanh được tính bằng công thức: 2 * ((n/2 thời gian Đường trung bình chuyển động cân nhắc), và đường chậm được tính bằng: n thời gian Đường trung bình chuyển động cân nhắc. Khi đường nhanh vượt qua trên đường chậm từ dưới, đó là tín hiệu mua; khi nó vượt qua dưới từ trên, đó là tín hiệu bán.

Ichimoku Kinkou Hyo bao gồm bốn thành phần: tenkan sen, kijun sen, đường dẫn và lớp mây. Một đường chéo vàng giữa tenkan sen và kijun sen là tín hiệu mua, trong khi đường chéo chết là tín hiệu bán. Khi giá vượt qua hoặc xuống dưới các cạnh trên hoặc dưới của lớp mây, nó báo hiệu mua hoặc bán, tương ứng.

Chiến lược này kết hợp các điểm mạnh của cả hai chỉ số. Định nghĩa đầu tiên là tín hiệu từ Chỉ số Williams, và thứ hai là xác nhận từ Ichimoku Kinkou Hyo, lọc hiệu quả các tín hiệu sai và cải thiện độ chính xác quyết định.

Ưu điểm

  1. Đường trung bình chuyển động nhân tố hai Williams phản ứng nhạy cảm và có thể xác định một hướng xu hướng mạnh mẽ.
  2. Ichimoku Kinkou Hyo cung cấp các phán đoán hàng đầu và cảnh báo sớm về sự đảo ngược xu hướng.
  3. Kết hợp hai chỉ số cho phép chúng xác nhận lẫn nhau và giảm tín hiệu sai.
  4. Các thông số có thể được tối ưu hóa để thích nghi với các chiều dài chu kỳ và sản phẩm khác nhau.

Rủi ro và tối ưu hóa

  1. Các tín hiệu thường xuyên có thể xảy ra trên các thị trường không có xu hướng. Các thông số có thể được điều chỉnh để lọc một số tín hiệu.
  2. Có thể có một số sự chậm trễ trong việc vượt qua giữa các đường nhanh và chậm. Các lớp mây có thể được tham chiếu để tránh bỏ lỡ các điểm vào và ra tối ưu.
  3. Nó được khuyến cáo kết hợp với các chỉ số xu hướng hoặc biến động để tránh thêm các tín hiệu sai.

Tóm lại

Chiến lược này sử dụng đầy đủ khả năng của Chỉ số Williams để đánh giá hướng xu hướng và Ichimoku Kinkou Hyo để cung cấp cảnh báo sớm về sự đảo ngược, cải thiện đáng kể độ chính xác của các quyết định giao dịch.


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

Thêm nữa