
Bài viết này giới thiệu một chiến lược theo dõi xu hướng cổ phiếu dựa trên chỉ số Stochastics Momentum Index (SMI). Chiến lược này được gọi là Chiến lược Momentum Surfer.
Chỉ số SMI được sử dụng để xác định khu vực mua bán quá mức của cổ phiếu. Khi chỉ số SMI đi vào khu vực màu đỏ, nó cho thấy cổ phiếu đã bán quá mức, và khi khu vực màu xanh lá cây, nó cho thấy cổ phiếu đã mua quá mức.
Cụ thể, một tín hiệu mua được tạo ra khi chỉ số SMI đi qua đường EMA của nó và tại thời điểm đó giá trị SMI nằm dưới khu vực bán tháo -40. Một tín hiệu bán được tạo ra khi chỉ số SMI đi qua đường EMA của nó và tại thời điểm đó giá trị SMI nằm trên khu vực mua hơn 40.
Bằng cách này, chiến lược này có thể bắt kịp các tín hiệu khi giá cổ phiếu đảo ngược, nhằm mục đích mua thấp và bán cao. Do đó, theo dõi xu hướng giảm của cổ phiếu.
Ưu điểm lớn nhất của chiến lược này là có thể theo dõi xu hướng của cổ phiếu. Bởi vì nó sử dụng chỉ số SMI để xác định thời gian nhập và thoát ra, nó có thể bắt được tín hiệu khi giá cổ phiếu đảo ngược.
Ngoài ra, chỉ số SMI tự nó có đặc điểm làm phẳng giá. Nó phản ứng với biến động giá một cách ổn định hơn so với các chỉ số như trung bình di chuyển đơn giản. Điều này cũng làm cho tín hiệu giao dịch được tạo ra đáng tin cậy hơn và không dễ bị ảnh hưởng bởi tiếng ồn thị trường ngắn hạn.
Nhìn chung, chiến lược này đã thành công trong việc sử dụng lợi thế của chỉ số SMI để theo dõi hiệu quả các xu hướng cổ phiếu. Nó có thể giúp các nhà đầu tư kiếm lợi nhuận và cũng rất phù hợp với giao dịch tự động.
Chiến lược này phụ thuộc chủ yếu vào chỉ số SMI, vì vậy nó có một số rủi ro liên quan đến SMI.
Đầu tiên, chỉ số SMI nhạy cảm với cài đặt tham số. Nếu tham số không được cài đặt đúng, hiệu quả tín hiệu giao dịch sẽ bị giảm giá. Điều này đòi hỏi nhà đầu tư phải thử nghiệm nhiều lần để xác định sự kết hợp tham số tốt nhất.
Ngoài ra, SMI cũng không thể tự mình tránh hoàn toàn các tín hiệu giao dịch sai. Khi thị trường biến động mạnh, nó có thể tạo ra các tín hiệu sai dẫn đến tổn thất không cần thiết. Điều này cần được sử dụng với các chỉ số khác để xác nhận tín hiệu giao dịch và giảm khả năng giao dịch sai.
Cuối cùng, chiến lược này không thể thay đổi rủi ro thị trường chứng khoán tổng thể. Chiến lược này vẫn khó tránh được tổn thất lớn khi toàn bộ thị trường đi vào thị trường gấu. Đây là rủi ro hệ thống mà tất cả các chiến lược dựa trên phân tích kỹ thuật không thể tránh được hoàn toàn.
Chiến lược này có thể được tối ưu hóa hơn nữa ở những khía cạnh sau:
Kết hợp các chỉ số khác, sử dụng lợi thế của các chỉ số kết hợp để giảm khả năng tín hiệu giao dịch sai và tăng khả năng kiếm lợi nhuận. Ví dụ: có thể thêm các yếu tố cơ bản, chỉ số biến động, v.v.
Sử dụng phương pháp học máy để tự động tối ưu hóa các tham số SMI. Bằng cách đào tạo với một lượng lớn dữ liệu lịch sử, tìm kiếm các tổ hợp tham số tối ưu.
Tăng chiến lược dừng lỗ. Đặt dừng lỗ hợp lý có thể làm giảm đáng kể tác động của tổn thất đơn lẻ và giảm rủi ro.
Kết hợp với chiến lược chọn cổ phiếu định lượng, nâng cao chất lượng tổng thể của bể cổ phiếu. Chất lượng bể cổ phiếu tốt sẽ trực tiếp nâng cao sự ổn định của chiến lược.
Bài viết này giới thiệu chi tiết về chiến lược Momentum Surfer dựa trên chỉ số SMI để thực hiện theo dõi xu hướng. Ưu điểm lớn nhất của chiến lược này là có thể bắt được sự đảo ngược giá theo chiều hướng, theo dõi sự thay đổi xu hướng của cổ phiếu. Nó cũng có một số rủi ro như độ nhạy thiết lập tham số, độ tin cậy tín hiệu.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Stochastics Momentum Index Strategy", shorttitle="Stoch_MTM_Doan", overlay=true)
// Input parameters
a = input.int(10, "Percent K Length")
b = input.int(3, "Percent D Length")
ob = input.int(40, "Overbought")
os = input.int(-40, "Oversold")
// Range Calculation
ll = ta.lowest(low, a)
hh = ta.highest(high, a)
diff = hh - ll
rdiff = close - (hh+ll)/2
avgrel = ta.ema(ta.ema(rdiff,b),b)
avgdiff = ta.ema(ta.ema(diff,b),b)
// SMI calculations
SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0
SMIsignal = ta.ema(SMI,b)
emasignal = ta.ema(SMI, 10)
// Color Definition for Stochastic Line
col = SMI >= ob ? color.green : SMI <= os ? color.red : color.white
plot(SMIsignal, title="Stochastic", color=color.white)
plot(emasignal, title="EMA", color=color.yellow)
level_40 = ob
level_40smi = SMIsignal > level_40 ? SMIsignal : level_40
level_m40 = os
level_m40smi = SMIsignal < level_m40 ? SMIsignal : level_m40
plot(level_40, "Level ob", color=color.red)
plot(level_40smi, "Level ob SMI", color=color.red, style=plot.style_line)
plot(level_m40, "Level os", color=color.green)
plot(level_m40smi, "Level os SMI", color=color.green, style=plot.style_line)
//fill(level_40, level_40smi, color=color.red, transp=ob, title="OverSold")
//fill(level_m40, level_m40smi, color=color.green, transp=ob, title="OverBought")
// Strategy Tester
longCondition = ta.crossover(SMIsignal, emasignal) and (SMI < os)
if (longCondition)
strategy.entry("Buy", strategy.long)
shortCondition = ta.crossunder(SMIsignal, emasignal) and (SMI > ob)
if (shortCondition)
strategy.entry("Sell", strategy.short)