IBS và Chiến lược giao dịch tương lai hàng tuần dựa trên SP500

Tác giả:ChaoZhang, Ngày: 2024-01-15 14:42:00
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch tương lai SP500 đơn giản dựa trên chỉ số biến động trong ngày IBS và mức cao hàng tuần. Nó chỉ gửi tín hiệu giao dịch vào ngày thứ Hai mở cửa, sử dụng các điều kiện của IBS dưới 0,5 và giá thấp hơn cuối ngày thứ Sáu để xác định thời gian nhập cảnh. Nó sẽ thoát trong 5 ngày giao dịch sau đó.

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

Chiến lược chủ yếu đánh giá dựa trên hai chỉ số:

  1. IBS - Sức mạnh chiều rộng trong ngày, được sử dụng để xác định xem sự biến động của ngày có đủ thấp hay không. Phương pháp tính toán là: (khiêm - thấp) / (cao - thấp). Khi IBS dưới 0,5, sự biến động được coi là thấp, phù hợp để nhập.

  2. Mức cao hàng tuần - Sử dụng điểm cao của ngày thứ Sáu cuối cùng làm điểm tham chiếu. Nếu điểm đóng của ngày thứ Hai này thấp hơn điểm đóng của ngày thứ Sáu trước, nó có thể tạo thành một sự đảo ngược và tạo ra cơ hội giao dịch.

Các điều kiện tham gia là: Thứ Hai + IBS <0.5 + Close < Last Fridays Close.

Các điều kiện thoát là: đóng trong 5 ngày giao dịch hoặc mở đảo chiều điểm cao vào ngày hôm sau.

Ưu điểm chiến lược

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

  1. Logic chiến lược đơn giản và rõ ràng, dễ hiểu và thực hiện.
  2. Các tín hiệu chỉ có thể được phát hành vào ngày thứ Hai mở cửa, tránh giao dịch quá mức.
  3. Sử dụng chỉ số IBS để xác định biến động trong ngày, tốt để khóa điểm chuyển hướng của xu hướng.
  4. Đề xuất cấu trúc hàng tuần là đơn giản và hiệu quả để đánh giá xem liệu một sự đảo ngược có hình thành hay không.
  5. Kiểm soát rủi ro được thực hiện với việc rút hạn chế.

Rủi ro chiến lược

Có một số rủi ro trong chiến lược này:

  1. Các đánh giá IBS và cấu trúc hàng tuần chỉ dựa trên các chỉ số kỹ thuật, có thể gây ra những đánh giá sai.
  2. Thời gian thoát cố định 5 ngày có thể dẫn đến lợi nhuận hoặc lỗ bổ sung.
  3. Giao dịch chỉ vào thứ Hai có chu kỳ mạnh mẽ, với tần số tín hiệu quá ít, dễ dàng bỏ lỡ tín hiệu vào những thời điểm khác.
  4. Kiểm soát rút vốn có thể không đầy đủ, với mức rút vốn tối đa quá cao.

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

Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tăng xác nhận các chỉ số kỹ thuật để cải thiện độ chính xác tín hiệu.

  2. Thiết lập điều kiện thoát động dựa trên biến động thời gian thực để thiết lập giá dừng lỗ hoặc lấy lợi nhuận. Tránh thêm lợi nhuận / lỗ do thời gian thoát cố định.

  3. Mở rộng khung thời gian giao dịch của chiến lược thay vì giới hạn vào thứ Hai.

  4. Đưa ra các mô-đun quản lý rủi ro để kiểm soát rút tiền bằng cách sử dụng các chiến lược dừng lỗ.

Kết luận

Nói chung, chiến lược này là một chiến lược giao dịch ngắn hạn đơn giản dựa trên các chỉ số IBS trong ngày và các phán đoán cấu trúc hàng tuần. Ý tưởng chiến lược rõ ràng, dễ thực hiện với rủi ro có thể kiểm soát được. Nhưng cũng có một số xác suất sai đánh giá tín hiệu và các vấn đề về lợi nhuận quá mức tiềm ẩn. Không gian tối ưu hóa trong tương lai nằm trong việc thêm nhiều chỉ số kỹ thuật hơn, thiết lập các cơ chế dừng lỗ năng động v.v. Bằng cách liên tục thử nghiệm và tối ưu hóa, dần dần cải thiện tỷ lệ thắng và lợi nhuận của chiến lược.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © hobbiecode

// Today is Monday.
// The close must be lower than the close on Friday.
// The IBS must be below 0.5.
// If 1-3 are true, then enter at the close.
// Sell 5 trading days later (at the close).

//@version=5
strategy("Hobbiecode - SP500 IBS + Higher", overlay=true)

// Check if it's Monday
isMonday = dayofweek(time) == dayofweek.monday

// Calculate the IBS (Intraday Breadth Strength) indicator
ibs = (close - low) / (high - low)

// Calculate the close on the previous Friday
prevFridayClose = request.security(syminfo.tickerid, "W", close[1])

// Entry conditions
enterCondition = isMonday and close < prevFridayClose and ibs < 0.5 and strategy.position_size < 1 

// Exit conditions
exitCondition = (close > high[1] or ta.barssince(enterCondition) == 4) and strategy.position_size > 0 

// Entry signal
if enterCondition
    strategy.entry("Buy", strategy.long)

// Exit signal
if exitCondition
    strategy.close("Buy")

// Plotting the close, previous Friday's close, and entry/exit points on the chart
plot(close, title="Close", color=color.blue)
plot(prevFridayClose, title="Previous Friday Close", color=color.orange)
plotshape(enterCondition, title="Enter", location=location.belowbar, color=color.green, style=shape.labelup, text="Enter")
plotshape(exitCondition, title="Exit", location=location.abovebar, color=color.red, style=shape.labeldown, text="Exit")






Thêm nữa