Chiến lược này là một chiến lược ngắn hạn dựa trên chỉ số siêu xu hướng được áp dụng cho giao dịch trong ngày. Người dùng có thể xác định thời gian giao dịch trong ngày, chiến lược chỉ hoạt động trong thời gian đó. Chiến lược thực hiện tín hiệu đảo ngược bằng cách mở vị trí ngược lại với số lượng gấp đôi.
Tính toán chỉ số siêu xu hướng. Tính toán đường siêu xu hướng dựa trên số nhân và chu kỳ ATR được định nghĩa bởi người dùng.
Vẽ đường siêu xu hướng. Vẽ đường siêu xu hướng làm đường hỗ trợ và đường kháng cự.
Xác định điều kiện dài hoặc ngắn. Giá đóng cửa cao hơn đường xu hướng siêu là điều kiện nhiều, giá đóng cửa thấp hơn đường xu hướng siêu là điều kiện ngắn.
Phân định thời gian giao dịch. Xác định liệu giá hiện tại có nằm trong thời gian giao dịch theo thời gian giao dịch trong ngày mà người dùng đã xác định.
Gửi tín hiệu giao dịch. Chỉ khi giao dịch trong thời gian giao dịch và đáp ứng các điều kiện làm thêm trống, gửi tín hiệu mua bán tương ứng.
Khởi đầu ngược. Khi chỉ số siêu xu hướng thay đổi hướng, hãy sử dụng số lượng gấp đôi để mở đầu.
Khi tín hiệu siêu xu hướng không thay đổi và khi kết thúc giai đoạn giao dịch, bắt buộc giữ vị trí bằng phẳng.
Sử dụng chỉ số siêu xu hướng để xác định xu hướng và giảm tín hiệu giả.
Giao dịch với chỉ số siêu xu hướng và giá đóng cửa để tránh bị đè bẹp.
Việc mở đầu tư ngược có thể giúp giảm lỗ.
Giao dịch trong ngày, tránh rủi ro qua đêm.
Cần có một cơ chế cân bằng để tránh nguy cơ quên cân bằng.
Các tham số chỉ số siêu xu hướng được thiết lập không đúng cách có thể dẫn đến hiệu quả chiến lược kém.
Việc mở một vị trí đảo ngược sẽ làm tăng tần suất giao dịch và chi phí giao dịch.
Việc buộc phải thanh toán vào cuối giờ trong ngày có thể gây ra tổn thất.
Rủi ro 1 có thể tìm ra sự kết hợp tối ưu nhất thông qua tối ưu hóa tham số.
Rủi ro 2 có thể thiết lập dừng lỗ để kiểm soát tổn thất.
Rủi ro 3 có thể đặt lệnh dừng lỗ hoặc sử dụng bộ lọc xu hướng để tránh lỗ cân bằng.
Thử các chỉ số xu hướng khác nhau như MA, KDJ, v.v.
Thêm logic dừng lỗ.
Tăng bộ lọc xu hướng để tránh mất mát mạnh mẽ.
Tối ưu hóa số nhân và tham số chu kỳ ATR.
Kiểm tra các loại giao dịch khác nhau.
Chiến lược này tích hợp các chỉ số siêu xu hướng và quản lý thời gian giao dịch trong ngày, nhằm mục đích nắm bắt các bước đột phá xu hướng ngắn. Các cơ chế mở vị trí ngược và buộc phải giữ vị trí thấp có thể kiểm soát rủi ro một cách hiệu quả.
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 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/
// © Pritesh-StocksDeveloper
//@version=4
strategy("Supertrend - Intraday", overlay=true, calc_on_every_tick = true)
// ********** Strategy inputs - Start **********
// Used for intraday handling
// Session value should be from market start to the time you want to square-off
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session,
defval="0915-1455", confirm=true)
var float i_multiplier = input(title = "Multiplier", type = input.float,
defval = 4, confirm=true)
var int i_atrPeriod = input(title = "ATR Period", type = input.integer,
defval = 14, confirm=true)
// ********** Strategy inputs - End **********
// ********** Supporting functions - Start **********
// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0
// ********** Supporting functions - End **********
// ********** Strategy - Start **********
[superTrend, dir] = supertrend(i_multiplier, i_atrPeriod)
colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 0) : color.new(color.red, 100)
colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 100)
plot(superTrend, color = colResistance, linewidth=2)
plot(superTrend, color = colSupport, linewidth=2)
// Long/short condition
longCondition = close > superTrend
shortCondition = close < superTrend
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)
// Trade only if intraday session is active
// Long position
// When longCondition and intradaySession both are true
strategy.entry(id = "Long", long = strategy.long,
when = longCondition and intradaySession)
// Short position
// When shortCondition and intradaySession both are true
strategy.entry(id = "Short", long = strategy.short,
when = shortCondition and intradaySession)
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")
// ********** Strategy - End **********