Chiến lược đường trung bình động hàm mũ kép Williams và Ichimoku Kinko Hyo


Ngày tạo: 2024-02-18 16:20:12 sửa đổi lần cuối: 2024-02-18 16:20:12
sao chép: 1 Số nhấp chuột: 559
1
tập trung vào
1617
Người theo dõi

Chiến lược đường trung bình động hàm mũ kép Williams và Ichimoku Kinko Hyo

Tổng quan

Chiến lược này kết hợp hai chỉ số kỹ thuật của William Bi-index Moving Average và biểu đồ cân bằng một để tận dụng lợi thế của mỗi người và tăng độ chính xác của quyết định giao dịch. Trong đó, William Bi-index Moving Average có thể phản ánh đầy đủ xu hướng thay đổi giá, trong khi biểu đồ cân bằng một có thể đoán trước xu hướng đảo ngược.

Nguyên tắc

Đường trung bình di chuyển hai chỉ số William bao gồm đường nhanh và đường chậm. Công thức tính toán đường nhanh là: 2 (n/2 chu kỳ trung bình di chuyển có trọng lượng), công thức tính toán đường chậm là: n chu kỳ trung bình di chuyển có trọng lượng.

Biểu đồ cân bằng một mắt bao gồm bốn thành phần là đường giao dịch, đường chuẩn, đường dẫn đầu và biểu đồ đám mây. Trong đó, giao dịch và đường chuẩn với đường vàng là tín hiệu mua, giao dịch chết là tín hiệu bán. Giá vượt qua các biểu đồ đám mây là tín hiệu mua, giảm theo các biểu đồ đám mây là tín hiệu bán.

Chiến lược này kết hợp hai lợi thế của các chỉ số, đầu tiên là đánh giá William để phát tín hiệu, thứ hai là đánh giá một chỉ số cân bằng, có thể lọc hiệu quả các tín hiệu giả, cải thiện độ chính xác của quyết định.

Ưu điểm

  1. Đường trung bình di chuyển của chỉ số William rất nhạy cảm và có thể xác định hướng xu hướng mạnh hơn.
  2. Một bản đồ cân bằng nhìn trước có thể đánh giá được xu hướng đảo ngược.
  3. Kết hợp hai chỉ số này có thể xác thực lẫn nhau, giảm tín hiệu giả.
  4. Có thể thích ứng với các chu kỳ và giống khác nhau thông qua các tham số tối ưu hóa.

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

  1. Các tín hiệu có thể xuất hiện thường xuyên trong thị trường không có xu hướng. Các tham số có thể được điều chỉnh thích hợp, lọc một số tín hiệu.
  2. Trong quá trình giao thoa đường dây nhanh và đường dây chậm, sẽ có một số chậm trễ.
  3. Khuyến nghị sử dụng kết hợp với chỉ số xu hướng hoặc chỉ số dao động để tránh thêm tín hiệu sai.

Tóm tắt

Chiến lược này tận dụng tối đa các lợi thế của chỉ số William để xác định hướng xu hướng và xem ngược trước khi biểu đồ cân bằng đầu tiên, có thể nâng cao đáng kể độ chính xác của quyết định giao dịch. Bằng cách điều chỉnh tham số và kết hợp các chỉ số khác, chiến lược tối ưu hóa bền vững, làm cho nó phù hợp hơn với sự thay đổi của thị trường.

Mã nguồn chiến lược
/*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")