Chiến lược giao dịch định lượng dựa trên đường trung bình động Hull đã sửa đổi và Ichimoku Kinko Hyo

HMA IKHS WMA
Ngày tạo: 2024-04-28 13:39:00 sửa đổi lần cuối: 2024-04-28 13:39:00
sao chép: 8 Số nhấp chuột: 275
1
tập trung vào
1166
Người theo dõi

Chiến lược giao dịch định lượng dựa trên đường trung bình động Hull đã sửa đổi và Ichimoku Kinko Hyo

Tổng quan

Chiến lược này kết hợp hai chỉ số kỹ thuật Hull Moving Average (HMA) và Equilibrium First (Ichimoku Kinko Hyo) để nắm bắt xu hướng trung và dài hạn của thị trường. Ý tưởng chính của chiến lược là sử dụng tín hiệu chéo của HMA với đường chuẩn Equilibrium First (Kijun Sen) và kết hợp Cloud First (Kumo) như một điều kiện lọc để đánh giá xu hướng của thị trường và giao dịch.

Nguyên tắc chiến lược

  1. Tính toán Hull Moving Average (HMA) sửa đổi
    • Tính toán WMA (Wage Moving Average) và xử lý bằng phẳng đôi, HMA được sửa đổi
  2. Tính toán các chỉ số cân bằng
    • Tính toán đường chuyển đổi ((Tenkan Sen), đường chuẩn ((Kijun Sen), đường lên trước ((Senkou Span A) và đường xuống trước ((Senkou Span B)
  3. Tạo tín hiệu giao dịch
    • HMA tạo ra tín hiệu đa khi vượt qua đường chuẩn và giá đóng cửa nằm trên tầng mây
    • HMA tạo ra tín hiệu giảm giá khi HMA vượt qua đường viền và giá đóng cửa nằm dưới lớp mây
  4. Thực hiện giao dịch
    • Hoạt động giao dịch tương ứng theo tín hiệu mua nhiều hoặc mua ít
  5. Quá bỏ giao dịch
    • Khi HMA vượt qua đường viền theo hướng ngược lại, thoát khỏi vị trí hiện tại

Lợi thế chiến lược

  1. Kết hợp HMA và cân bằng bằng mắt, hai chỉ số theo dõi xu hướng hiệu quả, có thể nắm bắt được xu hướng thị trường tốt hơn
  2. Sử dụng đám mây cân bằng như một điều kiện lọc, có thể giảm hiệu quả tín hiệu giả và tăng tỷ lệ giao dịch
  3. HMA được sửa đổi có tốc độ phản ứng nhanh hơn và độ trễ thấp hơn so với trung bình di chuyển truyền thống, có thể phản ánh kịp thời sự thay đổi của thị trường
  4. Chiến lược logic rõ ràng, dễ hiểu và thực hiện, phù hợp với nhiều thị trường và thời gian

Rủi ro chiến lược

  1. Chiến lược này có thể tạo ra nhiều tín hiệu giả mạo khi thị trường biến động hoặc xu hướng không rõ ràng, dẫn đến giao dịch thường xuyên và mất tiền
  2. Cài đặt tham số của chiến lược có ảnh hưởng lớn đến kết quả giao dịch, các kết hợp tham số khác nhau có thể dẫn đến hiệu suất khác nhau
  3. Chiến lược này không tính đến các sự kiện bất ngờ và hành vi phi lý của thị trường, có thể có rủi ro lớn hơn trong điều kiện thị trường cực đoan

Hướng tối ưu hóa chiến lược

  1. Lập các chỉ số kỹ thuật khác hoặc chỉ số tâm trạng thị trường để tăng độ tin cậy và ổn định của tín hiệu
  2. Tối ưu hóa các tham số chiến lược, chẳng hạn như tìm kiếm sự kết hợp tối ưu của các tham số thông qua các phương pháp như học máy hoặc thuật toán di truyền
  3. Xem xét thêm các mô-đun quản lý rủi ro, chẳng hạn như thiết lập lệnh dừng lỗ, quản lý vị trí, v.v., để kiểm soát lỗ hổng rủi ro trong chiến lược
  4. Điều chỉnh và tối ưu hóa các chiến lược theo mục tiêu cho các thị trường và thời gian khác nhau

Tóm tắt

Chiến lược này, kết hợp với trung bình di chuyển Hull được sửa đổi và cân bằng một lần đầu tiên, tạo ra một hệ thống giao dịch theo dõi xu hướng tương đối ổn định. Logic của chiến lược là rõ ràng, dễ thực hiện, nhưng cũng có một số ưu điểm. Tuy nhiên, hiệu suất của chiến lược vẫn bị ảnh hưởng bởi điều kiện thị trường và cài đặt tham số, cần được tối ưu hóa và cải tiến thêm. Trong ứng dụng thực tế, chiến lược nên được điều chỉnh và quản lý thích hợp để có kết quả giao dịch tốt hơn, kết hợp với các đặc điểm thị trường cụ thể và sở thích rủi ro.

Mã nguồn chiến lược
/*backtest
start: 2024-04-20 00:00:00
end: 2024-04-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Hull MA_X + Ichimoku Kinko Hyo Strategy", shorttitle="HMX+IKHS", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)

// Hull Moving Average Parameters
keh = input(12, title="Double HullMA")
n2ma = 2 * wma(close, round(keh/2)) - wma(close, keh)
sqn = round(sqrt(keh))
hullMA = wma(n2ma, sqn)

// Ichimoku Kinko Hyo Parameters
tenkanSenPeriods = input(9, title="Tenkan Sen Periods")
kijunSenPeriods = input(26, title="Kijun Sen Periods")
senkouSpanBPeriods = input(52, title="Senkou Span B Periods")
displacement = input(26, title="Displacement")

// Ichimoku Calculations
highestHigh = highest(high, max(tenkanSenPeriods, kijunSenPeriods))
lowestLow = lowest(low, max(tenkanSenPeriods, kijunSenPeriods))
tenkanSen = (highest(high, tenkanSenPeriods) + lowest(low, tenkanSenPeriods)) / 2
kijunSen = (highestHigh + lowestLow) / 2
senkouSpanA = ((tenkanSen + kijunSen) / 2)
senkouSpanB = (highest(high, senkouSpanBPeriods) + lowest(low, senkouSpanBPeriods)) / 2

// Plot Ichimoku
p1 = plot(tenkanSen, color=color.blue, title="Tenkan Sen")
p2 = plot(kijunSen, color=color.red, title="Kijun Sen")
p3 = plot(senkouSpanA, color=color.green, title="Senkou Span A", offset=displacement)
p4 = plot(senkouSpanB, color=color.orange, title="Senkou Span B", offset=displacement)
fill(p3, p4, color=color.gray, title="Kumo Shadow")

// Trading Logic
longCondition = crossover(hullMA, kijunSen) and close > senkouSpanA[displacement] and close > senkouSpanB[displacement]
shortCondition = crossunder(hullMA, kijunSen) and close < senkouSpanA[displacement] and close < senkouSpanB[displacement]

// Strategy Execution
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Exit Logic - Exit if HullMA crosses KijunSen in the opposite direction
exitLongCondition = crossunder(hullMA, kijunSen)
exitShortCondition = crossover(hullMA, kijunSen)

if (exitLongCondition)
    strategy.close("Long")
if (exitShortCondition)
    strategy.close("Short")