Chiến lược kiểm tra ngược SuperTrend Multi Timeframe

Tác giả:ChaoZhang, Ngày: 2023-12-05 10:59:54
Tags:

img

Tổng quan

Ý tưởng chính của chiến lược này là tạo ra các tín hiệu giao dịch bằng cách sử dụng chỉ số Supertrend trên nhiều khung thời gian, và kết hợp nó với bộ lọc trong ngày để bình phương các vị trí mở trong ngày, để thực hiện giao dịch nhiều khung thời gian và cải thiện chất lượng tín hiệu.

Chiến lược logic

Chiến lược đầu tiên gọi hàm siêu xu hướng, truyền vào các tham số mult và len, để tạo ra đường siêu xu hướng siêu xu hướng và đường hướng. Sau đó nó vẽ biểu đồ đường siêu xu hướng.

Các quy tắc tạo tín hiệu là: khi giá đóng trên đường siêu xu hướng, một tín hiệu mua được tạo ra; khi giá đóng dưới đường siêu xu hướng, một tín hiệu bán được tạo ra. Khi nhận được tín hiệu mua, một lệnh mua sẽ được thực hiện để mở một vị trí dài; khi nhận được tín hiệu bán, một lệnh bán sẽ được thực hiện để mở một vị trí ngắn. Nếu bộ lọc intraday được bật, tức là đặt thành true, tất cả các vị trí mở dài và ngắn sẽ được đóng sau 2:45 pm mỗi ngày.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là nó sử dụng chỉ số Supertrend đơn giản nhưng thực tế để thực hiện thế hệ tín hiệu giao dịch nhiều khung thời gian.

Ngoài ra, chiến lược rất ngắn gọn, nó thực hiện logic cốt lõi với rất ít mã, dễ hiểu, sửa đổi và mở rộng. Điều này cung cấp sự linh hoạt lớn cho người dùng để điều chỉnh các tham số hoặc thêm các chỉ số khác v.v. theo nhu cầu của riêng họ.

Phân tích rủi ro

Rủi ro chính của chiến lược này là chỉ số Supertrend có một sự chậm trễ, có thể dẫn đến tổn thất bổ sung.

Để giảm thiểu những rủi ro này, nên tối ưu hóa các thông số Supertrend mult và len để tìm ra sự kết hợp các thông số tối ưu. Các chỉ số khác cũng có thể được thử nghiệm để bổ sung Supertrend và sử dụng nhiều yếu tố hơn để tăng cường tính ổn định của chiến lược. Hơn nữa, thời gian ngắt vuông cố định trong ngày có thể được loại bỏ và một cơ chế năng động có thể được sử dụng để xác định thời gian ngắt vuông dựa trên điều kiện biến động.

Hướng dẫn tối ưu hóa

Các hướng tối ưu hóa chính cho chiến lược này bao gồm:

  1. Kiểm tra nhiều bộ tham số Supertrend để tìm ra sự kết hợp tham số tối ưu.

  2. Thêm các chỉ số kỹ thuật khác như mẫu nến, trung bình động v.v. để lọc tín hiệu với nhiều yếu tố hơn.

  3. Tối ưu hóa và điều chỉnh năng động thời gian tính toán hình vuông cụ thể trong ngày để giảm tính toán hình vuông sớm.

  4. Thêm các cơ chế dừng lỗ như lỗ dừng tỷ lệ phần trăm cố định hoặc lỗ dừng ATR.

  5. Kiểm tra tỷ lệ sử dụng vốn phù hợp và các chiến lược kích thước vị trí.

  6. Backtest thời gian dài hơn để xác minh độ bền của tham số.

Kết luận

Tóm lại, chiến lược backtest nhiều khung thời gian Supertrend này rất thực tế. Nó thực hiện giao dịch nhiều khung thời gian với chỉ số Supertrend đơn giản và kiểm soát lỗ bằng bộ lọc trong ngày. Có nhiều chỗ để tối ưu hóa và người dùng có thể điều chỉnh các tham số hoặc kết hợp với các chỉ số kỹ thuật khác theo nhu cầu của họ. Hiệu suất backtest cũng tương đối ổn định và đáng tin cậy. Nhìn chung, chiến lược này phù hợp với giao dịch xu hướng trung hạn và dài hạn, và cũng tốt cho người mới bắt đầu học và thực hành sửa đổi.


/*backtest
start: 2023-11-27 00:00:00
end: 2023-12-04 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

//@Gurjant_Singh IISMA-Indian Institute of stock Market Analysis 

strategy("SupterTrend ", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=300, calc_on_order_fills=false, calc_on_every_tick=false)




mult = input(type=input.float, defval=3)
len = input(type=input.integer, defval=5)
[superTrend, dir] = supertrend(mult, len)



plot(superTrend)

intrady = input(false, "Do you want to exit intrday position", type = input.bool)

IntraDay_SquareOff = minute >= 45 and hour >= 14



buy = close > superTrend

sell = close < superTrend

if buy
    strategy.entry("Buy", true)
    
if sell
    strategy.entry("sell", false)

if intrady and IntraDay_SquareOff
    strategy.close("buy")
    strategy.close("sell")






Thêm nữa