Chiến lược giao dịch theo dõi xu hướng Noro là một chiến lược theo dõi xu hướng đơn giản dựa trên kênh giá, RSI và bộ lọc thực thể. Nó xác định hướng kênh giá là xu hướng lớn, sử dụng chỉ số RSI mua quá mức để vào và kết hợp với bộ lọc thực thể để phát tín hiệu giao dịch. Chiến lược này phù hợp với các loại xu hướng liên tục như chỉ số cổ phiếu, ngoại hối.
Các logic giao dịch chính của chiến lược này bao gồm:
Sử dụng kênh giá để xác định hướng của xu hướng lớn. Bằng cách tính toán giá cao nhất và giá thấp nhất trong một chu kỳ nhất định, kênh được hình thành, giá nằm trên kênh là giá lên và giá xuống.
Chỉ số RSI đánh giá khoảng mua quá bán, hỗ trợ tìm kiếm điểm vào. RSI cao hơn 60 là vùng mua quá và thấp hơn 40 là vùng bán quá.
Bộ lọc thực thể phát tín hiệu cuối cùng. Chỉ giao dịch khi thực thể lớn hơn một số giờ nhất định, tránh tiếng ồn.
Kết hợp xu hướng lớn, tín hiệu RSI và bộ lọc thực thể để vào. Dưới xu hướng đa đầu có nhiều tín hiệu giảm giá vào, dưới xu hướng không đầu có tín hiệu giảm giá vào.
Nó cung cấp các tùy chọn màu nền mở để đánh giá trực quan xu hướng lớn.
Có thể tùy chỉnh thời gian giao dịch chiến lược, chỉ giao dịch trong khoảng thời gian được chọn.
Chiến lược này cộng hưởng nhiều chỉ số, xu hướng lớn xác định hướng, RSI xác định thời điểm và lọc thực thể xác định chất lượng, tạo thành một chiến lược theo dõi xu hướng tương đối ổn định.
Chiến lược này có những ưu điểm chính sau:
Các kênh giá trực quan đánh giá xu hướng lớn, tránh sự đảo ngược đơn lẻ.
Chỉ số RSI có thể xác định hiệu quả thời điểm đầu vào của quá mua quá bán.
Bộ lọc thực thể tăng cường chất lượng tín hiệu, tránh bị lừa bởi tiếng ồn hoặc tín hiệu giả.
Các nhà nghiên cứu cho rằng, việc sử dụng các công cụ này có thể giúp các doanh nghiệp có thể thực hiện các hoạt động kinh doanh tốt hơn.
Sử dụng chỉ số đơn giản, giảm nguy cơ tối ưu hóa đường cong.
Có thể tùy chỉnh khoảng thời gian giao dịch, ứng dụng linh hoạt theo xu hướng lớn.
Dễ dàng sử dụng, ít tham số và dễ dàng sử dụng cho người mới.
Cho phép bạn chọn màu nền để tạo ra hiệu ứng hình ảnh rõ ràng.
Chiến lược này cũng có một số rủi ro:
Các nhà phân tích cho biết, các nhà đầu tư đang tìm kiếm các giải pháp để giảm giá cả, nhưng không có một giải pháp nào.
RSI có nguy cơ phát ra tín hiệu sai, đánh giá quá mua quá bán không chính xác.
Bộ lọc thực thể loại trừ các rủi ro của tín hiệu bình thường, bỏ lỡ cơ hội giao dịch.
Có thể là một sự thay đổi sâu sắc trong xu hướng lớn.
Rủi ro tối ưu hóa, thiết lập tham số không đúng có thể dẫn đến quá tối ưu hóa.
Rủi ro vị trí, giao dịch toàn vị trí mặc định có thể làm tăng tổn thất.
Chiến lược này chỉ phù hợp với các giống có xu hướng.
Giao dịch là một quá trình đặt ra rủi ro, và nó cần phải được đặt ra một cách hợp lý để có hiệu quả.
Chiến lược này có thể được tối ưu hóa như sau:
Thêm chiến lược dừng lỗ để kiểm soát tổn thất đơn lẻ.
Tối ưu hóa các tham số để phù hợp hơn với đặc điểm của các loại giao dịch cụ thể.
Thêm mô-đun quản lý vị trí, điều chỉnh vị trí theo xu hướng mạnh hoặc yếu.
Có thể thiết lập kiểm soát rút tiền để tránh tổn thất.
Kết hợp với chỉ số giá cả để xác minh tín hiệu, tăng độ chính xác.
Thêm công nghệ học máy để tối ưu hóa tham số.
Tối ưu hóa phân loại cho các loại giao dịch, xây dựng chiến lược cá nhân.
Tối ưu hóa logic thiết lập của thời gian giao dịch, làm cho nó linh hoạt hơn.
Chiến lược theo dõi xu hướng của Noro tích hợp các kênh giá, RSI và bộ lọc thực thể để tạo thành một chiến lược theo dõi xu hướng đơn giản và thực tế. Nó có thể theo dõi và tránh giao dịch ngược. Với các cải tiến như tối ưu hóa tham số, kiểm soát rủi ro, chiến lược này có khả năng trở thành một chiến lược giao dịch xu hướng có lợi nhuận bền vững.
/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-24 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = "Noro's TrendMaster Strategy v1.0", shorttitle = "TrendMaster str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "long")
needshort = input(true, defval = true, title = "short")
len = input(21, defval = 20, minval = 2, maxval = 200, title = "MA Period")
needbg = input(false, defval = false, title = "Need trend Background?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//PriceChannel 1
lasthigh = highest(close, len)
lastlow = lowest(close, len)
center = (lasthigh + lastlow) / 2
//Trend
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend[1]
//Bars
bar = close > open ? 1 : close < open ? -1 : 0
//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2
//Signals
up1 = trend == 1 and rsi < 60 and (strategy.position_avg_price > close or strategy.position_size <= 0) and body
dn1 = trend == -1 and rsi > 40 and (strategy.position_avg_price < close or strategy.position_size >= 0) and body
//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "MA")
//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)
//Trading
if up1
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn1
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()