Chiến lược giao dịch BankNifty Super Trend


Ngày tạo: 2023-12-29 17:09:57 sửa đổi lần cuối: 2023-12-29 17:09:57
sao chép: 0 Số nhấp chuột: 711
1
tập trung vào
1619
Người theo dõi

Chiến lược giao dịch BankNifty Super Trend

Tổng quan

Đây là một chiến lược giao dịch chỉ số siêu xu hướng dựa trên đường K 5 phút của BankNifty. Chiến lược này chủ yếu sử dụng chỉ số siêu xu hướng để xác định xu hướng, kết hợp với thời gian 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 này đầu tiên xác định các biến đầu vào như giờ giao dịch và phạm vi ngày. Thời gian giao dịch được thiết lập theo giờ giao dịch của Ấn Độ, từ 9:15 AM đến 3:10 PM.

Sau đó tính toán chỉ số siêu xu hướng và hướng của nó. Chỉ số siêu xu hướng có thể xác định hướng của xu hướng.

Khi bắt đầu mỗi giai đoạn giao dịch, chiến lược là chờ đợi 3 đường K hình thành trước khi xem xét vào. Điều này nhằm lọc các đột phá giả.

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

Sau khi vào sân, bạn có thể thiết lập điểm dừng, số điểm dừng cố định và tỷ lệ dừng theo dõi có thể được điều chỉnh bằng cách nhập các biến.

Khi kết thúc giai đoạn giao dịch, chiến lược sẽ thanh toán tất cả các vị trí chưa thanh toán.

Lợi thế 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. Nó có những lợi thế sau:

  1. Sử dụng chỉ số siêu xu hướng để xác định xu hướng, có thể xác định xu hướng hiệu quả
  2. Kết hợp thời gian giao dịch để tránh thời gian mở và đóng cửa khi thị trường biến động mạnh nhất
  3. Thiết lập theo dõi dừng lỗ để khóa lợi nhuận
  4. Có nhiều tham số có thể điều chỉnh tự do thông qua các biến đầu vào, thích ứng mạnh

Rủi ro chiến lược

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

  1. Chỉ số Supertrend bị tụt hậu, có thể bỏ lỡ thời điểm tốt nhất để tham gia
  2. Một chỉ số duy nhất dễ bị ảnh hưởng bởi đột phá giả, có thể không có tỷ lệ chiến thắng cao
  3. Không tính đến xu hướng thị trường lớn, có thể có sự lệch lạc với thị trường lớn
  4. Thiết lập điểm dừng không đúng có thể gây ra thiệt hại nhiều hơn dự kiến

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

Hướng tối ưu hóa chiến lược

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

  1. Thêm các chỉ số khác để hình thành chiến lược giao dịch danh mục, có thể tăng sự ổn định của chiến lược
  2. Thêm phán đoán về xu hướng của thị trường lớn để tránh sự lệch lạc với thị trường lớn
  3. Tối ưu hóa các tham số của chỉ số siêu xu hướng để tìm ra độ dài và hệ số phù hợp nhất
  4. Điều chỉnh chiến lược dừng lỗ, ví dụ như điều chỉnh điểm dừng lỗ theo xu hướng
  5. Kiểm tra các loại giao dịch khác nhau để tìm ra loại phù hợp nhất với chiến lược

Tóm tắt

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

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