Chiến lược giao dịch định lượng dựa trên cân bằng Ichimoku và xung đột ngầm


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

Chiến lược giao dịch định lượng dựa trên cân bằng Ichimoku và xung đột ngầm

Tổng quan

Chiến lược này kết hợp các chỉ số cân bằng trực tiếp và các chỉ số xung đột ẩn để thực hiện một chiến lược giao dịch định lượng đơn giản hơn. Nó tạo ra tín hiệu mua khi đường cân bằng trực tiếp cao hơn đường xung đột ẩn và giá đóng cửa cao hơn đường cân bằng trực tiếp; nó tạo ra tín hiệu bán khi đường cân bằng trực tiếp thấp hơn đường xung đột ẩn và giá đóng cửa thấp hơn đường cân bằng trực tiếp.

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

Chỉ số cân bằng một mắt bao gồm ba đường cong của đường chuyển tiếp, đường chuẩn và đường trì hoãn. Đường chuyển tiếp trước đại diện cho giá trung bình của một khoảng thời gian nhất định gần đây nhất, đường chuẩn đại diện cho giá trung bình của một khoảng thời gian dài hơn, và đường trì hoãn thường là trung bình của đường chuyển tiếp trước và đường chuẩn.

Chỉ số xung đột ẩn bao gồm hai đường cong A và B. Chúng đại diện cho giá trị trung bình của biến động giá trong các chu kỳ chiều dài khác nhau. Khi đường A cao hơn đường B, biểu thị sự biến động trong ngắn hạn tăng lên, giá sẽ tăng lên.

Chiến lược này sử dụng đường cân bằng để xác định hướng xu hướng chung, sử dụng đường dẫn trước xung đột ẩn để xác định động lực giá, kết hợp với giá đóng cửa để tạo ra tín hiệu giao dịch chính xác. Mua khi có xu hướng tăng và biến động tăng lên, bán khi có xu hướng giảm và biến động thu hẹp, để kiếm lợi nhuận.

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

Đây là một chiến lược giao dịch số lượng đơn giản, có một số lợi thế:

  1. Sử dụng các chỉ số kết hợp, phân tích xu hướng giá cả và động lực, tín hiệu giao dịch là đáng tin cậy hơn.
  2. Chỉ tham gia vào các điểm đột phá được xác định, tránh quá nhiều giao dịch không có hiệu lực.
  3. Giao dịch ngắn hạn phù hợp với tài sản biến động cao có thể mang lại lợi nhuận cao hơn.
  4. Lập luận của chiến lược đơn giản, dễ hiểu và dễ sửa đổi.
  5. Có thể dễ dàng mở rộng thêm các chỉ số để tạo ra mô hình đa yếu tố.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro, bao gồm:

  1. Rủi ro mistrade. Cần thiết lập dừng lỗ để kiểm soát lỗ đơn.
  2. Rủi ro giá đảo ngược. Giá có thể đảo ngược sau khi chỉ số phát ra tín hiệu, dẫn đến tổn thất. Các điều kiện nắm giữ có thể được nới lỏng thích hợp để giảm rủi ro này.
  3. Rủi ro tối ưu hóa tham số. Các tham số khác nhau có ảnh hưởng lớn đến kết quả, cần thử nghiệm đa kết hợp để tìm tham số tối ưu nhất.
  4. Rủi ro tối ưu hóa quá mức. Hiệu suất tốt trên dữ liệu lịch sử, nhưng thất bại trong giao dịch thực tế.

Tối ưu hóa chiến lược

Chính sách này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Kiểm tra các kết hợp của các chỉ số khác nhau để tìm các tham số tốt hơn. Các tham số phổ biến có thể thử nghiệm là KDJ, BOLL, MACD, v.v.
  2. Tham gia vào cơ chế dừng lỗ. Thiết lập dừng di chuyển hoặc dừng nhân.
  3. Tối ưu hóa các điều kiện sàng lọc để tham gia.
  4. Tối ưu hóa các quy tắc giữ vị trí. Bạn có thể cố gắng giảm thời gian dừng lỗ hoặc tăng mức độ dừng lỗ.
  5. Thêm thành phần học máy. Sử dụng mạng thần kinh để tìm các tham số tốt hơn.

Tóm tắt

Chiến lược này nói chung là một chiến lược giao dịch định lượng rất đơn giản, nó kết hợp các chỉ số cân bằng và xung đột ẩn để xác định xu hướng và động lực giá, tạo ra tín hiệu giao dịch. Chiến lược này phù hợp với giao dịch ngắn hạn của tài sản có tính biến động cao, có thể thu được lợi nhuận tốt. Tất nhiên, không có chiến lược nào hoàn hảo, chiến lược này cũng có một số không gian tối ưu hóa, có thể cải thiện từ các quy tắc nhập cảnh, cơ chế dừng lỗ, lựa chọn tham số, v.v.

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