Phản hồi và Trung tâm trọng lực Chiến lược giao dịch tích hợp dựa trên nhiều chiến lược

Tác giả:ChaoZhang, Ngày: 2024-01-03 16:51:03
Tags:

img

Tổng quan

Chiến lược này thực hiện các quyết định giao dịch ổn định và hiệu quả hơn bằng cách tích hợp các tín hiệu giao dịch kép. Một là chiến lược đảo ngược kết hợp các tín hiệu đảo ngược giá và các chỉ số chứng khoán, và một là chiến lược đột phá của đường trung tâm và kênh giá. Các tín hiệu giao dịch của hai chiến lược sẽ được AND hợp lý, nghĩa là vị trí sẽ chỉ được mở khi hai chiến lược phát ra tín hiệu theo cùng một hướng cùng một lúc.

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

Phần chiến lược đảo ngược tạo ra tín hiệu giao dịch khi giá cho thấy một mô hình đảo ngược trong hai ngày giao dịch liên tiếp và chỉ số chứng khoán đã bước vào khu vực mua quá mức hoặc bán quá mức. Điều này cho phép sử dụng cả tín hiệu đảo ngược giá và tín hiệu mua quá mức / bán quá mức để xác nhận hai lần.

Hai chiến lược này nắm bắt các cơ hội giá trị và xu hướng tương ứng. Bằng cách AND logic các tín hiệu chiến lược, vị trí chỉ được mở khi hai chiến lược phát ra tín hiệu theo cùng một hướng cùng một lúc. Điều này có thể lọc hiệu quả một số tín hiệu không hợp lệ và làm cho chiến lược cuối cùng đáng tin cậy hơn.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là sự ổn định và độ tin cậy của các tín hiệu. Sự kết hợp của các chiến lược đảo ngược và xu hướng nắm bắt cả cơ hội giao dịch đảo ngược và xu hướng cùng một lúc mà không bỏ lỡ bất kỳ động thái lớn nào. Trong khi đó, hoạt động logic AND lọc ra một số tín hiệu không hợp lệ, làm cho chiến lược cuối cùng đáng tin cậy hơn và tránh bị lừa bởi tiếng ồn.

Ngoài ra, sự kết hợp giữa các chiến lược đảo ngược và xu hướng cũng đạt được hoạt động ổn định trong nhiều khung thời gian. Chiến lược đảo ngược sử dụng các tín hiệu mua quá mức / bán quá mức ngắn hạn trong khi chiến lược trọng tâm dựa trên trung bình động trung bình và dài hạn. Các khung thời gian bổ sung có thể tạo ra các cơ hội giao dịch bền vững và ổn định.

Phân tích rủi ro

Rủi ro lớn nhất của chiến lược này là sự thất bại trong việc khớp các tín hiệu từ các chiến lược kép, dẫn đến các tín hiệu giao dịch không đủ. Điều này có thể xảy ra khi giá bị giới hạn và củng cố mà không có xu hướng hướng rõ ràng. Khi giá dao động theo mô hình bên trong trong một khoảng thời gian dài, khó có thể tạo ra các tín hiệu đảo ngược và tín hiệu xu hướng, dẫn đến ít cơ hội giao dịch hơn.

Ngoài ra, hoạt động AND hợp lý của các chiến lược kép cũng có thể bỏ lỡ một số cơ hội từ một chiến lược duy nhất. Khi chỉ có một chiến lược tạo ra một tín hiệu giao dịch hợp lệ, không có vị trí nào sẽ được mở. Điều này có thể dẫn đến một số chi phí cơ hội nhất định.

Để giảm thiểu rủi ro, các thông số có thể được nới lỏng một cách vừa phải để làm cho các tín hiệu chiến lược dễ dàng phù hợp và mở các vị trí.

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

Có hai khía cạnh chính mà chiến lược này có thể được tối ưu hóa:

Đầu tiên là tối ưu hóa tham số. Các tham số bao gồm cả các chỉ số Stoch và các kênh đường trung tâm có thể được kiểm tra và tối ưu hóa thêm để có được các tín hiệu phù hợp hơn. Điều này có thể đạt được thông qua nhiều backtests hơn.

Thứ hai là giới thiệu các cơ chế tương tự như các hoạt động lựa chọn cổ phiếu. Bởi vì chiến lược này phù hợp hơn cho các cổ phiếu có xu hướng rõ ràng. Do đó, nếu các cổ phiếu đáp ứng một số điều kiện nhất định có thể được lựa chọn để giao dịch dựa trên các chỉ số cụ thể, nó sẽ cải thiện đáng kể hiệu suất chiến lược tổng thể. Điều này đòi hỏi phải thiết kế một mô-đun lựa chọn cổ phiếu kết hợp với xu hướng luân chuyển ngành, hệ thống trung bình động, v.v.

Tóm lại

Chiến lược này đạt được xác nhận hai lần và khớp nhiều khung thời gian của các quyết định giao dịch bằng cách tích hợp các chiến lược đảo ngược và xu hướng, đồng thời đối mặt với vấn đề giảm cơ hội giao dịch do khó khớp tín hiệu.


/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/07/2019
// 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
// The indicator is based on moving averages. On the basis of these, the 
// "center" of the price is calculated, and price channels are also constructed, 
// which act as corridors for the asset quotations.
//
// 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

CenterOfGravity(Length, m,Percent, SignalLine) =>
    pos = 0
    xLG = linreg(close, Length, m)
    xLG1r = xLG + ((close * Percent) / 100)
    xLG1s = xLG - ((close * Percent) / 100)
    xLG2r = xLG + ((close * Percent) / 100) * 2
    xLG2s = xLG - ((close * Percent) / 100) * 2
    xSignalR = iff(SignalLine == 1, xLG1r, xLG2r)
    xSignalS = iff(SignalLine == 1, xLG1s, xLG2s)
    pos :=  iff(close > xSignalR, 1,
             iff(close < xSignalS, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Center Of Gravity", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCoF = input(20, minval=1)
m = input(5, minval=0)
Percent = input(1, minval=0)
SignalLine = input(1, minval=1, maxval = 2, title = "Trade from line (1 or 2)")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(LengthCoF, KSmoothing, DLength, Level)
posCenterOfGravity = CenterOfGravity(Length, m,Percent, SignalLine)
pos = iff(posReversal123 == 1 and posCenterOfGravity == 1 , 1,
	   iff(posReversal123 == -1 and posCenterOfGravity == -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