
Chiến lược này được gọi là chiến lược giao dịch đường trung bình trơn định hai chỉ số động. Đây là chiến lược giao dịch định lượng dựa trên đường trung bình trơn định hai chỉ số ((Double Exponential Moving Average, DEMA). Chiến lược này tạo ra tín hiệu mua bán dựa trên giá trị TSI và đường tín hiệu của nó.
Chỉ số trung tâm của chiến lược là chỉ số cường độ thực (TSI). Công thức tính toán của TSI là:
TSI = 100 * (PC1 / PC2)
Trong đó, PC1 và PC2 tương ứng là đường trung bình trơn trượt chỉ số kép của tỷ lệ biến đổi giá và đường trung bình trơn trơn chỉ số kép của giá trị tuyệt đối của tỷ lệ biến đổi giá. Quá trình tính toán đường trung bình trơn trơn chỉ số kép là áp dụng chỉ số chuyển động trung bình một thời gian trước tiên cho tỷ lệ biến đổi giá, sau đó áp dụng một chỉ số chuyển động trung bình ngắn hơn cho chỉ số chuyển động chỉ số thu được. Bằng cách này, bằng cách phẳng kép, bạn có thể loại bỏ tốt hơn sự ngẫu nhiên trong tỷ lệ biến đổi giá, do đó cải thiện sự ổn định của chỉ số TSI.
Sau khi tính toán giá trị TSI, chiến lược cũng tính toán đường tín hiệu của giá trị TSI. Đường tín hiệu được định nghĩa là chỉ số di chuyển trung bình của một chu kỳ nhất định của giá trị TSI. Trong giao dịch thực tế, chiến lược sẽ xác định xu hướng thị trường và tạo tín hiệu giao dịch bằng cách quan sát mối quan hệ giữa giá trị TSI và đường tín hiệu.
Một đặc điểm khác của chiến lược này là kích thước giao dịch được điều chỉnh động. Trong mã chiến lược, một số tiền ban đầu và một tỷ lệ lỗ hổng rủi ro được đặt làm tham số đầu vào. Hai tham số này kết hợp với giá của cổ phiếu vào thời điểm đó để tính toán động số lượng giao dịch hoặc lỗ hổng rủi ro mỗi lần.
Chiến lược giao dịch trung bình di động với hai chỉ số có nhiều lợi thế:
Nó sử dụng chỉ số TSI, áp dụng chỉ số trơn kép, làm cho nó ít nhạy cảm với tiếng ồn thị trường và có thể tạo ra tín hiệu chính xác hơn.
Nó dựa trên một nguyên tắc đã được chứng minh là các chỉ số chéo và đường tín hiệu của nó tạo ra tín hiệu giao dịch. Điều này loại bỏ nhiều tín hiệu giả.
Chiến lược này điều chỉnh kích thước vị trí tùy theo động lực ngân sách rủi ro. Điều này giúp ngăn chặn giao dịch quá mức và thao tác cảm xúc.
Nó được sử dụng trong các khung thời gian hàng ngày và hàng tuần, phù hợp với giao dịch swing và giao dịch định vị.
Do logic đầu vào / đầu ra đơn giản, nó dễ dàng thực hiện trong robot và các hệ thống giao dịch khác.
Không có nhiều tham số cần điều chỉnh, làm cho hệ thống tối ưu hóa trở nên đơn giản.
Những ưu điểm này làm cho nó trở thành một chiến lược giao dịch mạnh mẽ và đa chức năng cho các nhà giao dịch chứng khoán. Việc xử lý trơn tru và thiết lập kích thước vị trí cẩn thận giúp ngăn chặn tín hiệu giả và tổn thất lớn.
Mặc dù có nhiều ưu điểm, chiến lược giao dịch đường trung bình di động có một số rủi ro vốn có, giống như hầu hết các chiến lược chứng khoán:
Vì TSI và đường tín hiệu dựa trên dữ liệu giá lịch sử, luôn có nguy cơ tín hiệu sai, đặc biệt là khi thị trường có nhiều biến động.
Nếu thị trường dao động xung quanh đường 0 của chỉ số TSI, có thể có sự điều chỉnh lại. Điều này có thể dẫn đến tổn thất.
Nếu xu hướng này tiếp tục, TSI có thể sớm đảo ngược xu hướng và mất lợi nhuận.
Do tác động của đòn bẩy, có thể tạo ra tổn thất lớn hơn giới hạn được đặt cho các tham số rủi ro.
Tuy nhiên, những rủi ro này có thể được giảm thiểu bằng cách áp dụng các khía cạnh như kích thước vị trí, dừng lỗ và các kỹ thuật quản lý rủi ro khác. Ngoài ra, các tham số và bộ lọc có thể được tối ưu hóa hơn nữa để tối đa hóa hiệu suất trong các điều kiện thị trường khác nhau.
Một số ý tưởng để tối ưu hóa chiến lược này bao gồm:
Kiểm tra các kết hợp khác nhau của các tham số cân bằng đôi để tìm các kết hợp có thể tạo ra tín hiệu giao dịch chính xác hơn. Các tham số chu kỳ dài và ngắn có thể được điều chỉnh để tối ưu hóa.
Thêm bộ lọc dựa trên biến động, khối lượng giao dịch hoặc các chỉ số khác để giảm tín hiệu giao dịch không cần thiết. Điều này có thể làm giảm tần suất giao dịch và tăng lợi nhuận cho mỗi giao dịch.
Thêm logic dừng lỗ. Như dừng lỗ khi giá trị TSI đi qua trục 0 . Điều này có thể làm giảm tổn thất không cần thiết.
Đánh giá hiệu suất của các loại giao dịch khác nhau như chỉ số, hàng hóa, v.v. theo chiến lược. Chọn loại giao dịch tập trung tốt nhất.
Chọn lọc ưu đãi cho các loại giao dịch. Ví dụ, đánh giá tính thanh khoản của các loại, chỉ số biến động, chọn các loại có chỉ số tham số cao hơn để giao dịch.
Sử dụng phương pháp học máy Làm thế nào để phân tích tiến bộ Chọn bộ tham số tốt nhất. Điều này có thể làm giảm sự thiên vị của lựa chọn nhân tạo và có được tham số tốt hơn.
Sử dụng nhiều tập hợp tham số và chuyển đổi động theo các môi trường thị trường khác nhau. Ví dụ, một tập hợp tham số tích cực hơn có thể được sử dụng trong thị trường bò và một tập hợp bảo thủ hơn trong thị trường gấu.
Bằng cách thử nghiệm và tối ưu hóa các khía cạnh trên, chúng tôi hy vọng sẽ cải thiện hơn nữa sự ổn định và lợi nhuận của chiến lược.
Nhìn chung, chiến lược này dựa trên tính chất trơn trơn của chỉ số hai chỉ số của chỉ số TSI, thiết kế một chiến lược giao dịch cổ phiếu tương đối ổn định và đáng tin cậy. Bằng cách điều chỉnh động quy mô vị trí, bạn có thể kiểm soát hiệu quả mức độ rủi ro tổng thể. Chiến lược này đồng thời có lợi thế phù hợp cho giao dịch ngắn và dài trung bình.
Tất nhiên, giống như hầu hết các chiến lược giao dịch định lượng, chiến lược này cũng có một số hạn chế, chủ yếu được thể hiện trong khả năng bị ảnh hưởng bởi sự biến động mạnh mẽ của thị trường. Ngoài ra, lựa chọn tham số và điều kiện lọc cũng cần được kiểm tra và tối ưu hóa hơn nữa để có được khả năng thích ứng và lợi nhuận mạnh mẽ hơn trong thị trường biến động phức tạp.
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © shankardey7310
//@version=5
strategy("TSI STOCKS", shorttitle="TSI", overlay=true)
initialCapital = input(10000, title="Initial Capital")
riskPercent = input(1, title="Risk Percentage") / 100
longLength = input(12, title="Long Length")
shortLength = input(9, title="Short Length")
signalLength = input(12, title="Signal Length")
price = close
pc = ta.change(price)
double_smooth(src, long, short) =>
first_smooth = ta.ema(src, long)
ta.ema(first_smooth, short)
double_smoothed_pc = double_smooth(pc, longLength, shortLength)
double_smoothed_abs_pc = double_smooth(math.abs(pc), longLength, shortLength)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
tsi_signal = ta.ema(tsi_value, signalLength)
riskAmount = (initialCapital * riskPercent) / close
if (tsi_value > tsi_signal and tsi_value[1] <= tsi_signal[1])
strategy.entry("Long", strategy.long)
if (tsi_value < tsi_signal and tsi_value[1] >= tsi_signal[1])
strategy.close("Long")
plot(tsi_value, title="True Strength Index", color=#2962FF)
plot(tsi_signal, title="Signal", color=#E91E63)
hline(0, title="Zero", color=#787B86)