Chiến lược này thực hiện chiến lược giao dịch hỗn hợp được điều khiển bởi nhiều yếu tố bằng cách kết hợp chiến lược đảo ngược 123 và chiến lược cắt ngang quay ngược tuyến tính. Chiến lược đảo ngược 123 đánh giá mối quan hệ giá trong hai ngày giao dịch gần đây nhất, kết hợp với chỉ số Stoch để đánh giá tín hiệu đảo ngược. Chiến lược cắt ngang quay ngược tuyến tính sử dụng phân tích quay ngược tuyến tính để đánh giá mối quan hệ giữa giá và đường xu hướng, tạo ra giao dịch.
Chiến lược này dựa trên các nguyên tắc sau:
Nếu giá đóng cửa của hai ngày giao dịch gần nhất có liên quan đến giá đóng cửa hôm nay cao hơn giá đóng cửa hôm qua, và đường nhanh của Stoch thấp hơn đường chậm, thì có một tín hiệu đảo ngược lạc quan
Nếu giá đóng cửa của hai ngày giao dịch gần đây là giá đóng cửa ngày hôm nay thấp hơn giá đóng cửa ngày hôm qua, và đường nhanh của Stoch cao hơn đường chậm, cho rằng có tín hiệu đảo ngược giảm giá
Quy tắc phán quyết là:
Nếu giá đóng cửa ngày hôm nay> giá đóng cửa ngày hôm qua và Stoch Fastline đặt tham số, tạo ra tín hiệu mua
Nếu giá đóng cửa hôm nay < giá đóng cửa ngày hôm qua và Stoch đường nhanh > đường chậm Stoch và đường nhanh Stoch < đặt tham số, tạo ra một tín hiệu bán
Chiến lược này yêu cầu thiết lập các tham số chỉ số Stoch, bao gồm: tính toán chu kỳ K của Stoch, chu kỳ làm mịn đường nhanh của Stoch, KSmoothing, chu kỳ làm mịn đường chậm của Stoch, DLength, và Threshold Level của Stoch.
Chiến lược này dựa trên phân tích hồi quy tuyến tính để xác định mối quan hệ giữa giá và đường xu hướng hồi quy tuyến tính, quy tắc phán đoán như sau:
Nếu giá đóng cửa lớn hơn khoảng cách quay trở lại tuyến tính, sẽ tạo ra tín hiệu mua
Nếu giá đóng cửa nhỏ hơn khoảng cách quay trở lại tuyến tính, tạo ra tín hiệu bán
Chiến lược này yêu cầu thiết lập chu kỳ hồi quy tuyến tính LengthLRI, và nhập nguồn dữ liệu hồi quy tuyến tính xSeria.
Chiến lược kết hợp này cần phải đáp ứng tín hiệu mua / bán của chiến lược 123 reversal và chiến lược cắt khoảng cách quay trở lại tuyến tính để tạo ra chỉ thị giao dịch thực tế, từ đó loại bỏ hiệu quả tín hiệu giả và tăng hiệu quả giao dịch.
Chiến lược này có những ưu điểm sau:
Kết hợp hai loại chiến lược khác nhau, hai chiến lược phải tạo ra tín hiệu cùng một lúc để thực sự đặt hàng. Cơ chế xác minh đa yếu tố này có thể lọc các tín hiệu sai do một chiến lược tạo ra thỉnh thoảng, giảm giao dịch không cần thiết và nâng cao chất lượng tín hiệu hiệu hiệu quả.
Khoảng cách quay trở tuyến tính có thể phản ánh mối quan hệ giữa giá và đường xu hướng trong thời gian thực, và nếu giá đã lệch khỏi xu hướng, hãy nhắc nhở chiến lược điều chỉnh hướng vị trí. Như vậy, bạn có thể dừng lỗ kịp thời và tránh bị mắc kẹt trong xu hướng lịch sử.
Chiến lược quay trở lại tuyến tính tốt hơn trong việc xác định điểm mua và bán của xu hướng. Trong khi đó, chiến lược đảo ngược 123 tập trung vào việc xác định điểm đảo ngược. Cả hai chiến lược có thể kết hợp tốt lợi thế của giao dịch xu hướng và giao dịch đảo ngược.
Cả hai chiến lược đều cung cấp một số tham số tùy chỉnh, có thể tối ưu hóa tham số cho các giống khác nhau, các xu hướng khác nhau, tối ưu hóa hiệu quả của chiến lược kết hợp.
Chiến lược này cũng có những rủi ro sau:
Các tín hiệu giao dịch phải đáp ứng cả hai chiến lược, và sẽ bỏ lỡ một phần cơ hội kiếm lợi nhuận chỉ dựa vào một chiến lược. Nếu hiệu quả của một chiến lược bị suy yếu, sẽ làm giảm hiệu quả giao dịch tổng thể.
Sự hồi phục tuyến tính đòi hỏi phải tính toán một số dữ liệu lịch sử nhất định, không thể phản ứng với sự kiện bất ngờ trong thời gian thực, có một sự chậm trễ nhất định. Nếu giá nhảy vọt mạnh, đường xu hướng hồi phục tuyến tính cần phải điều chỉnh một thời gian nhất định, thời gian này có thể tạo ra tín hiệu sai.
Cả hai chiến lược đều cần chọn các tham số phù hợp, và đối với một số giống có thể cần điều chỉnh các tham số một cách độc lập. Nếu tham số được chọn không đúng, sẽ giảm đáng kể hiệu quả của chiến lược.
Những rủi ro này có thể được giảm bớt bằng cách:
Cảnh giác thích hợp cho các điều kiện kích hoạt tín hiệu kết hợp để tránh bỏ lỡ quá nhiều cơ hội
Kết hợp với các chỉ số xu hướng như hồi quy tuyến tính thay thế, để có được phán đoán xu hướng trong thời gian thực hơn
Tăng hiệu quả lựa chọn tham số bằng cách hỗ trợ tối ưu hóa tham số bằng các phương pháp như học máy
Chiến lược này có thể được tối ưu hóa thêm bằng cách:
Có thể thu thập dữ liệu lịch sử, thiết kế mục tiêu tối ưu hóa tham số, sử dụng các thuật toán học máy như thuật toán di truyền, tối ưu hóa Bayesian để tìm kiếm các tham số tốt nhất.
Có thể thiết lập các quy tắc dừng lỗ kết hợp với ATR, chỉ số xu hướng, v.v. để kiểm soát tổn thất tối đa cho một giao dịch.
Có thể thêm các điều kiện hỗ trợ cho việc đưa ra thị trường, chẳng hạn như bộ lọc đường trung bình, phán quyết Brin, trên cơ sở tín hiệu giao dịch, giảm tần suất điều chỉnh vị trí, tránh bị đặt cược.
Công nghệ xử lý ngôn ngữ tự nhiên được sử dụng để đánh giá cảm xúc của người tham gia thị trường, hỗ trợ quyết định giao dịch.
Sử dụng các mô hình học sâu như LSTM, GRU để dự đoán giá cả, như là một tài liệu tham khảo quan trọng cho các quyết định chiến lược.
Chiến lược này thực hiện giao dịch định lượng được điều khiển bởi nhiều yếu tố bằng cách kết hợp chiến lược đảo ngược 123 và chiến lược cắt khoảng cách quay trở lại tuyến tính. Cơ chế xác minh có thể lọc hiệu quả các tín hiệu giả mạo, đồng thời nắm bắt các cơ hội giao dịch đảo ngược và xu hướng. Tuy nhiên, chiến lược cũng có một số rủi ro về sự chậm trễ, cần chú ý đến tối ưu hóa tham số và mở rộng cơ chế kiểm soát gió để nâng cao sự ổn định của chiến lược.
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-19 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 25/01/2021
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Linear Regression Intercept is one of the indicators calculated by using the
// Linear Regression technique. Linear regression indicates the value of the Y
// (generally the price) when the value of X (the time series) is 0. Linear
// Regression Intercept is used along with the Linear Regression Slope to create
// the Linear Regression Line. The Linear Regression Intercept along with the Slope
// creates the Regression line.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
LRI(Length,xSeria) =>
pos = 0.0
xX = Length * (Length - 1) * 0.5
xDivisor = xX * xX - Length * Length * (Length - 1) * (2 * Length - 1) / 6
xXY = 0.0
for i = 0 to Length-1
xXY := xXY + (i * xSeria[i])
xSlope = (Length * xXY - xX * sum(xSeria, Length)) / xDivisor
xLRI = (sum(xSeria, Length) - xSlope * xX) / Length
pos:= iff(close > xLRI, 1,
iff(close < xLRI, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Line Regression Intercept", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Line Regression Intercept ----")
LengthLRI = input(14, minval=1)
xSeria = input(title="Source", type=input.source, defval=close)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posLRI = LRI(LengthLRI,xSeria)
pos = iff(posReversal123 == 1 and posLRI == 1 , 1,
iff(posReversal123 == -1 and posLRI == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )