Chiến lược này kết hợp chiến lược đảo ngược 123 và chiến lược ngắt ngã tuyến tính để thực hiện một chiến lược giao dịch kết hợp nhiều yếu tố. Chiến lược đảo ngược 123 đánh giá mối quan hệ giá giữa hai ngày giao dịch cuối cùng và kết hợp chỉ số Stoch để xác định tín hiệu đảo ngược. Chiến lược ngã tuyến tính sử dụng phân tích hồi quy tuyến tính để đánh giá mối quan hệ giữa đường giá và đường xu hướng và tạo ra tín hiệu giao dịch. Hai chiến lược xác minh lẫn nhau và có thể lọc hiệu quả các tín hiệu sai.
Chiến lược dựa trên các nguyên tắc sau:
Nếu mối quan hệ giá đóng cửa giữa hai ngày giao dịch cuối cùng là giá đóng cửa ngày hôm nay cao hơn ngày hôm qua và đường nhanh Stoch thấp hơn đường chậm, nó được coi là có tín hiệu đảo ngược tăng
Nếu mối quan hệ giá đóng cửa giữa hai ngày giao dịch cuối cùng là giá đóng cửa ngày hôm nay thấp hơn ngày hôm qua và đường nhanh Stoch cao hơn đường chậm, nó được coi là có tín hiệu đảo ngược giảm
Các quy định về phán quyết là như sau:
Nếu giá đóng ngày hôm nay > giá đóng ngày hôm qua và đường nhanh Stoch < đường chậm Stoch và đường nhanh Stoch > đặt tham số, tạo tín hiệu mua
Nếu giá đóng cửa hôm nay < giá đóng cửa hôm qua và đường nhanh Stoch > đường chậm Stoch và đường nhanh Stoch < đặt tham số, tạo tín hiệu bán
Chiến lược cần thiết lập các tham số chỉ số Stoch, bao gồm: K chu kỳ đường dây Thời gian tính toán Stoch, chu kỳ làm mịn KSMình mịn cho Stoch đường dây nhanh, chu kỳ làm mịn DLength cho Stoch đường dây chậm, mức ngưỡng cho phán đoán đường dây nhanh Stoch.
Chiến lược dựa trên phân tích hồi quy tuyến tính để đánh giá mối quan hệ giữa giá và đường xu hướng hồi quy tuyến tính.
Nếu giá đóng cửa lớn hơn đường cắt hồi tuyến tính, một tín hiệu mua được tạo ra
Nếu giá đóng cửa thấp hơn đường cắt giảm hồi quy tuyến tính, một tín hiệu bán được tạo ra
Chiến lược cần thiết lập chu kỳ hồi quy tuyến tính LengthLRI và nguồn dữ liệu đầu vào hồi quy tuyến tính xSeria.
Chiến lược combo đòi hỏi tín hiệu mua / bán đồng thời từ cả chiến lược đảo ngược 123 và chiến lược chặn hồi quy tuyến tính để tạo ra các lệnh giao dịch thực tế, có hiệu quả lọc các tín hiệu sai và cải thiện hiệu suất giao dịch.
Chiến lược có những lợi thế sau:
Sự kết hợp của hai loại chiến lược khác nhau đòi hỏi tín hiệu từ cả hai chiến lược để thực sự đặt lệnh. Cơ chế xác minh đa yếu tố này có thể lọc ra các tín hiệu sai đôi khi từ một chiến lược, giảm giao dịch không cần thiết và cải thiện hiệu quả chất lượng tín hiệu.
Phân đoạn hồi quy 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. Nếu giá lệch đáng kể khỏi xu hướng, nó sẽ nhanh chóng thúc đẩy chiến lược điều chỉnh hướng vị trí. Điều này cho phép 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 hồi quy tuyến tính tốt hơn trong việc xác định các điểm mua và bán xu hướng. Trong khi đó chiến lược đảo ngược 123 tập trung vào việc xác định các điểm đảo ngược. Hai chiến lược có thể kết hợp các 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 các tham số nhất định cho tùy chỉnh, có thể được tối ưu hóa cho các giống khác nhau và 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:
Nhu cầu đáp ứng các tín hiệu giao dịch của cả hai chiến lược sẽ bỏ lỡ một số cơ hội có thể có lợi nhuận chỉ dựa trên một chiến lược duy nhất.
Phân hồi tuyến tính đòi hỏi một số dữ liệu lịch sử để tính toán và không thể phản ứng theo thời gian thực với các sự kiện đột ngột, dẫn đến một số sự chậm trễ.
Cả hai chiến lược đều yêu cầu lựa chọn tham số thích hợp, có thể cần phải được điều chỉnh độc lập cho một số giống.
Các rủi ro có thể được giảm bằng các phương pháp sau:
Nên thư giãn hợp lý các điều kiện kích hoạt tín hiệu combo để tránh bỏ lỡ quá nhiều cơ hội
Kết hợp các chỉ số xu hướng để thay thế sự hồi quy tuyến tính để có được nhiều đánh giá xu hướng thời gian thực hơn
Sử dụng các phương pháp học máy để hỗ trợ tối ưu hóa tham số và cải thiện lựa chọn tham số
Chiến lược có thể được tối ưu hóa thêm theo các cách sau:
Thu thập dữ liệu lịch sử, thiết kế các mục tiêu tối ưu hóa tham số và sử dụng các thuật toán học máy như thuật toán di truyền và tối ưu hóa Bayesian để tìm kiếm các kết hợp tham số tốt nhất.
Các quy tắc dừng lỗ có thể được thiết lập dựa trên ATR, chỉ số xu hướng, v.v. để kiểm soát lỗ tối đa cho mỗi giao dịch.
Các điều kiện phụ như bộ lọc trung bình động và Bollinger Bands có thể được thêm vào trên cơ sở các tín hiệu giao dịch để giảm tần suất điều chỉnh vị trí và tránh bị mắc kẹt.
Sử dụng các kỹ thuật xử lý ngôn ngữ tự nhiên để xác định tâm lý của người tham gia thị trường và hỗ trợ trong các quyết định giao dịch.
Sử dụng các mô hình học sâu như LSTM và GRU để dự đoán giá như một tham chiếu quan trọng cho các quyết định chiến lược.
Chiến lược này kết hợp chiến lược đảo ngược 123 và chiến lược chặn hồi quy tuyến tính để thực hiện giao dịch định lượng dựa trên nhiều yếu tố. Cơ chế xác minh có thể lọc hiệu quả các tín hiệu sai và nắm bắt các cơ hội giao dịch đảo ngược và xu hướng. Nhưng cũng có một số rủi ro chậm trễ trong chiến lược đòi hỏi sự chú ý đến tối ưu hóa tham số và mở rộng các cơ chế kiểm soát rủi ro để cải thiện hơn nữa sự ổn định của chiến lược. Kết hợp máy học và các công nghệ khác để tối ưu hóa tham số và mở rộng tính năng là một hướng tối ưu hóa hơn nữa có giá trị để chiến lược khám phá.
/*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 )