Chiến lược lướt sóng động lực dựa trên chỉ số động lực Stochastics

Tác giả:ChaoZhang, Ngày: 2024-02-27 14:32:46
Tags:

img

Tổng quan

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à Momentum Surfer Strategy. Nó xác định các khu vực mua quá mức và bán quá mức với SMI và đi dài / ngắn để kiếm lợi nhuận từ sự đảo ngược xu hướng.

Chiến lược logic

Chỉ số SMI được sử dụng để xác định các khu vực mua quá mức và bán quá mức. Các giá trị trong khu vực màu đỏ cho thấy cổ phiếu đã bán quá mức trong khi khu vực màu xanh lá cây có nghĩa là điều kiện mua quá mức.

Cụ thể, tín hiệu dài được kích hoạt khi SMI vượt trên EMA và SMI dưới mức bán quá mức -40 tín hiệu ngắn được kích hoạt khi SMI vượt dưới EMA và SMI vượt trên mức mua quá mức 40.

Bằng cách đó, chiến lược có thể nắm bắt sự đảo ngược giá và thực hiện mua thấp bán cao. Nó lướt xu hướng tăng và giảm của cổ phiếu trơn tru.

Phân tích lợi thế

Ưu điểm lớn nhất nằm ở khả năng theo dõi xu hướng. Vì nó sử dụng SMI để xác định các điểm nhập và xuất, các tín hiệu phù hợp hoàn hảo với sự đảo ngược giá.

Ngoài ra, chính SMI có đặc điểm làm mịn giá. So với các đường trung bình động đơn giản, nó phản ứng ổn định hơn với những thay đổi giá. Các tín hiệu giao dịch đáng tin cậy hơn mà không dễ bị ảnh hưởng bởi tiếng ồn thị trường.

Tóm lại, chiến lược này tận dụng thành công sức mạnh của SMI để theo dõi hiệu quả xu hướng chứng khoán. Nó tạo ra lợi nhuận trong khi phù hợp với giao dịch algo.

Phân tích rủi ro

Chiến lược dựa nhiều vào chỉ số SMI, do đó phải đối mặt với một số rủi ro liên quan.

Đầu tiên, SMI nhạy cảm với điều chỉnh tham số. Các tham số không chính xác có thể làm suy yếu đáng kể chất lượng tín hiệu.

Ngoài ra, không chỉ số nào miễn nhiễm với tín hiệu sai, bao gồm cả SMI. Whipsaws có thể xảy ra trong thời gian biến động cao gây ra tổn thất không cần thiết. Sử dụng SMI cùng với các chỉ số khác giúp xác nhận tín hiệu và giảm lỗi.

Cuối cùng, nó không giảm thiểu rủi ro thị trường hệ thống. Những tổn thất nghiêm trọng là không thể tránh khỏi nếu toàn bộ thị trường rơi vào trạng thái gấu.

Tăng cường

Chiến lược có thể được cải thiện hơn nữa từ các khía cạnh sau:

  1. Kết hợp các chỉ số khác để tạo thành một hệ thống hội đồng. Nó giúp tăng độ tin cậy và lợi nhuận tín hiệu. Các yếu tố cơ bản và các biện pháp biến động có thể được thêm vào.

  2. Sử dụng máy học để tự động tối ưu hóa các thông số SMI dựa trên dữ liệu lịch sử lớn.

  3. Thêm các cơ chế dừng lỗ. Stop loss hợp lý làm giảm đáng kể lỗ giao dịch đơn và tránh rủi ro.

  4. Kết hợp các quy tắc kiểm tra lượng hàng tồn kho để cải thiện chất lượng tổng thể của hồ sơ tồn kho.

Kết luận

Trong bài viết này, chúng tôi giới thiệu chiến lược Momentum Surfer theo dõi xu hướng với chỉ số SMI. Sức mạnh lớn nhất của nó nằm trong việc nắm bắt sự đảo ngược và theo dõi xu hướng một cách trơn tru. Một số rủi ro như độ nhạy của các tham số và chất lượng tín hiệu có mặt. Chúng tôi đề xuất một vài cách để tăng cường nó. Nhìn chung, chiến lược hấp dẫn cho giao dịch algo và đáng để xác minh giao dịch thực sự.


/*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)


Thêm nữa