Chiến lược Combination Reversal và Linear Regression Intercept

Tác giả:ChaoZhang, Ngày: 2023-09-26 15:56:48
Tags:

Tổng quan

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.

Nguyên tắc chiến lược

123 Chiến lược đảo ngược

Chiến lược dựa trên các nguyên tắc sau:

  1. 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

  2. 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 chặn hồi quy tuyến tính

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 kết hợp

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.

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Được điều khiển bởi nhiều yếu tố, lọc hiệu quả các tín hiệu sai và cải thiện chất lượng tín hiệu

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.

  1. Theo dõi thời gian thực của mối quan hệ giá và xu hướng tránh bị mắc kẹt

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ử.

  1. Xem xét các cơ hội giao dịch cho cả xu hướng và đảo ngược

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.

  1. Tối ưu hóa tham số tùy chỉnh của các chiến lượ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.

Phân tích rủi ro

Chiến lược này cũng có những rủi ro sau:

  1. Các tài xế đa yếu tố có thể bỏ lỡ một số cơ hội

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.

  1. Phục hồi tuyến tính có độ trễ

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ễ.

  1. Cần tối ưu hóa tham số hợp lý

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:

  1. 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

  2. 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

  3. 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ố

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa thêm theo các cách sau:

  1. Sử dụng các phương pháp học máy để tối ưu hóa tham số

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.

  1. Thêm cơ chế dừng lỗ

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.

  1. Tối ưu hóa logic nhập và xuất

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.

  1. Kết hợp phân tích tình cảm

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.

  1. Thêm mô-đun dự đoán học máy

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.

Tóm lại

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 )

Thêm nữa