Chiến lược giao dịch định lượng dựa trên đám mây Ichimoku và đường trung bình động

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

img

Tổng quan

Chiến lược này kết hợp chỉ số Ichimoku Cloud và chỉ số trung bình động để thực hiện một chiến lược giao dịch định lượng đơn giản. Nó tạo ra tín hiệu mua khi đường chuyển đổi nằm trên đường cơ sở và giá đóng trên đường chuyển đổi. Nó tạo ra tín hiệu bán khi đường chuyển đổi nằm dưới đường cơ sở và giá đóng dưới đường chuyển đổi. Chiến lược này phù hợp với giao dịch ngắn hạn của các tài sản biến động cao như tiền điện tử.

Chiến lược logic

Mây Ichimoku bao gồm ba đường: đường chuyển đổi, đường cơ sở và khoảng thời gian chậm. Đường chuyển đổi đại diện cho giá trung bình ngắn hạn và đường cơ sở đại diện cho giá trung bình dài hạn.

Mây Ichimoku cũng chứa hai đường dẫn đầu: Leading Span A và Leading Span B. Chúng đại diện cho phạm vi biến động giá trung bình trong các giai đoạn khác nhau. Khi Leading Span A cao hơn Leading Span B, nó cho thấy sự biến động mở rộng và đà tăng trong ngắn hạn.

Chiến lược này sử dụng đường chuyển đổi để xác định hướng xu hướng tổng thể và các đường dẫn để đo đạc đà. Nó tạo ra các tín hiệu giao dịch dựa trên xu hướng, đà và giá đóng cửa. Nó đi dài khi có xu hướng tăng và biến động mở rộng và đi ngắn khi có xu hướng giảm và biến động thu hẹp.

Ưu điểm

Những lợi thế chính của chiến lược này là:

  1. Sử dụng một sự kết hợp của các chỉ số để cung cấp tín hiệu đáng tin cậy.
  2. Chỉ đi vào các đường thoát hiểm để tránh tín hiệu sai.
  3. Thích hợp cho giao dịch tài sản biến động ngắn hạn với tiềm năng lợi nhuận cao.
  4. Một logic đơn giản dễ hiểu và thay đổi.
  5. Dễ dàng mở rộng sang mô hình đa yếu tố với nhiều chỉ số hơn.

Rủi ro

Những rủi ro chính của chiến lược này là:

  1. Mistrade rủi ro. cần thiết lập stop loss để kiểm soát lỗ cho mỗi giao dịch.
  2. Rủi ro đảo ngược giá. Giá có thể đảo ngược sau khi tín hiệu được kích hoạt. Có thể nới lỏng điều kiện giữ để giảm rủi ro này.
  3. Rủi ro tối ưu hóa tham số, kết quả rất nhạy cảm với các tham số, cần thử nghiệm kết hợp đầy đủ để tìm ra tối ưu.
  4. Có thể hoạt động rất tốt trong lịch sử nhưng thất bại trong giao dịch thực tế.

Cơ hội gia tăng

Một số cách để tăng cường chiến lược này:

  1. Kiểm tra sự kết hợp của nhiều chỉ số như KDJ, BOLL, MACD để tìm các thông số tốt hơn.
  2. Kết hợp các cơ chế dừng lỗ như dừng lỗ di chuyển hoặc x lần atr.
  3. Tối ưu hóa các bộ lọc đầu vào với khối lượng, biến động vv
  4. Tắt chặt các quy tắc nắm giữ bằng cách giảm thời gian nắm giữ hoặc tăng mục tiêu thu lợi nhuận.
  5. Giới thiệu máy học để tìm kết hợp tham số tối ưu bằng mạng thần kinh.

Kết luận

Tóm lại, đây là một chiến lược giao dịch định lượng rất đơn giản kết hợp Ichimoku Cloud và moving average để xác định xu hướng và động lực cho các tín hiệu giao dịch. Nó phù hợp với giao dịch tài sản biến động ngắn hạn với tiềm năng lợi nhuận tốt. Tất nhiên không có chiến lược nào là hoàn hảo và chiến lược này có một số chỗ để cải thiện thông qua các quy tắc nhập cảnh, dừng lỗ, lựa chọn tham số vv để làm cho nó mạnh mẽ hơn.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud + ema 50 Strategy", overlay=true)

len = input.int(50, minval=1, title="Length")
src = input(close, title="Source")
out = ta.ema(src, len)

conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(1, minval=1, title="Lagging Span")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
     title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

plot(out, title="EMA", color=color.white)

// Condition for Buy Signal
buy_signal = close > out and leadLine1 > leadLine2

// Condition for Sell Signal
sell_signal = close < out and leadLine2 > leadLine1

// Strategy entry and exit conditions
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Exit long position if candle closes below EMA 50
if (strategy.opentrades > 0)
    if (close < out)
        strategy.close("Buy")

// Exit short position if candle closes above EMA 50
if (strategy.opentrades < 0)
    if (close > out)
        strategy.close("Sell")


Thêm nữa