Chiến lược giao dịch Supertrend của BankNifty

Tác giả:ChaoZhang, Ngày: 2023-12-29 17:09:57
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch dựa trên đường K 5 phút của BankNifty sử dụng chỉ số Supertrend. Chiến lược chủ yếu sử dụng chỉ số Supertrend để xác định xu hướng và kết hợp các phiên giao dịch và các quy tắc quản lý rủi ro để giao dịch.

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

Chiến lược đầu tiên xác định các biến đầu vào như các phiên giao dịch và phạm vi ngày.

Sau đó nó tính toán chỉ số Supertrend và hướng của nó.

Vào đầu mỗi phiên giao dịch, chiến lược chờ 3 ngọn nến hình thành trước khi xem xét tham gia giao dịch.

Tín hiệu dài là khi hướng chỉ số Supertrend thay đổi từ dưới lên; tín hiệu ngắn là khi hướng Supertrend thay đổi từ trên xuống.

Sau khi nhập, stop loss sẽ được thiết lập. Cả điểm stop loss cố định và tỷ lệ stop loss sau có thể được điều chỉnh thông qua các biến đầu vào.

Vào cuối phiên giao dịch, chiến lược sẽ đóng tất cả các vị trí mở.

Ưu điểm của Chiến lược

Đây là một chiến lược giao dịch đơn giản sử dụng các chỉ số để xác định xu hướng.

  1. Sử dụng chỉ số Supertrend để đánh giá hướng xu hướng, có thể xác định hiệu quả xu hướng
  2. Kết hợp các phiên giao dịch có thể tránh các phiên mở và đóng biến động nhất
  3. Thiết lập dừng lỗ để khóa lợi nhuận
  4. Nhiều thông số có thể được điều chỉnh tự do thông qua các biến đầu vào, khả năng thích nghi cao

Rủi ro của chiến lược

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

  1. Chỉ số siêu xu hướng bị tụt hậu, có thể bỏ lỡ điểm đầu vào tốt nhất
  2. Phán quyết chỉ số duy nhất có xu hướng bị ảnh hưởng bởi các đột phá sai, tỷ lệ thắng có thể thấp
  3. Không xem xét xu hướng thị trường, có thể khác với thị trường tổng thể
  4. Việc thiết lập stop loss không chính xác có thể dẫn đến tổn thất lớn hơn dự kiến

Những rủi ro này có thể được giảm bằng cách tối ưu hóa các tham số của chỉ số Supertrend hoặc thêm các đánh giá chỉ số khác.

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

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

  1. Thêm các đánh giá chỉ số khác để hình thành một chiến lược kết hợp, cải thiện sự ổn định
  2. Thêm đánh giá xu hướng thị trường tổng thể để tránh sự khác biệt với thị trường
  3. Tối ưu hóa các tham số của chỉ số Supertrend, tìm ra chiều dài tốt nhất và yếu tố
  4. Điều chỉnh chiến lược dừng lỗ, như dừng lỗ theo dõi cùng với xu hướng
  5. Kiểm tra trên các sản phẩm khác nhau, tìm sự phù hợp tốt nhất

Kết luận

Tóm lại, đây là một chiến lược giao dịch chỉ số Supertrend dựa trên biểu đồ 5 phút của BankNifty. Nó sử dụng chỉ số Supertrend để xác định hướng xu hướng và kết hợp các phiên giao dịch và các quy tắc quản lý rủi ro để giao dịch. So với các chiến lược định lượng phức tạp, chiến lược này có các quy tắc đơn giản và rõ ràng dễ hiểu và thực hiện. Là một chiến lược mẫu, nó cung cấp một nền tảng và hướng cho tối ưu hóa và cải tiến trong tương lai. Thông qua việc tinh chỉnh và nâng cao liên tục, người ta hy vọng rằng chiến lược có thể trở thành một chiến lược giao dịch định lượng đáng tin cậy và có lợi nhuận.


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

//@version=5
strategy("BankNifty 5min Supertrend Based Strategy, 09:15 Entry with Date Range and Risk Management")

// Session and date range input variables
session = input("0915-1510", "Session", group="Indian Session Time")
start_date = input(title="Start Date", defval=timestamp("01 Jan 2022 00:00:00"), group="Backtest Specific Range")
end_date = input(title="End Date", defval=timestamp("01 Dec 2023 23:59:59"))
atrPeriod = input(50, "ATR Length", group="SuperTrend Setting")
factor = input.float(3.0, "Factor", step=0.1)

useDelay = input(true, "Use Delay?", group="Delay at Session Start")
Delay = useDelay ? input(10, title="Delay N numbers of candle", group="Delay at Session Start") : na

useDelay_stopLoss = input(true, "Use Stoploss Points?", group="Risk Management")
stopLoss = useDelay_stopLoss ? input(100, "Stop Loss Points", group="Risk Management"): na

useDelay_stopLossPerc1 = input(true, "Use Stoploss Trail?", group="Risk Management")
stopLossPerc1 =useDelay_stopLossPerc1 ? input.float(0.1, "Stop Loss Trail%", step=0.1,maxval = 1, group="Risk Management"): na
// Check if current time is within the specified session and date range
inSession = true

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

// Wait for 3 candles to form at the start of every session
var candlesFormed = 0
if inSession and not inSession[1]
    candlesFormed := 1
else if inSession and candlesFormed > 0
    candlesFormed := candlesFormed + 1
else
    candlesFormed := 0


//

// Only enter trades if 3 candles have formed at the start of the session
entryce = (ta.change(direction) < 0) or (candlesFormed >= Delay and direction < 0)
exitce = ta.change(direction) > 0
entrype = (ta.change(direction) > 0) or (candlesFormed >= Delay and direction > 0)
exitpe = ta.change(direction) < 0
var entryPrice = 0.0
if entryce and inSession
    // Enter long trade
    onePercent = strategy.position_avg_price *stopLossPerc1
    entryPrice := close
    strategy.entry("My Long Entry Id", strategy.long, comment="long" )
    // Set stop loss at x% below entry price
    strategy.exit("My Long Exit Id", "My Long Entry Id", stop=(entryPrice - stopLoss),trail_points=onePercent )
    
if entrype and inSession
    onePercent1 = strategy.position_avg_price *stopLossPerc1
    entryPrice := close
    // Enter short trade
    strategy.entry("My Short Entry Id", strategy.short, comment="short")
    // Set stop loss at x% above entry price
    strategy.exit("My Short Exit Id", "My Short Entry Id", stop=(entryPrice + stopLoss),trail_points=onePercent1)

// Close all trades at end of session
if not inSession and strategy.opentrades > 0
    strategy.close_all()

// Plot Supertrend with changing colors
plot(supertrend, title="Supertrend", color=direction == 1 ? color.red : color.green, linewidth=2)





Thêm nữa