Chiến lược kết hợp dao động trung bình động đảo ngược tuyến tính kép


Ngày tạo: 2023-11-22 14:49:41 sửa đổi lần cuối: 2023-11-22 14:49:41
sao chép: 1 Số nhấp chuột: 656
1
tập trung vào
1617
Người theo dõi

Chiến lược kết hợp dao động trung bình động đảo ngược tuyến tính kép

Tổng quan

Chiến lược này là sự kết hợp của chiến lược giao dịch đảo ngược hình dạng 123 của Wolf Jansen trong tác phẩm của ông với dao động trung bình chuyển động trọng lượng (KST) của Martin Prinker, để xây dựng một chiến lược định lượng tổng hợp sử dụng các chỉ số đảo ngược hình dạng và biến động xu hướng để tạo ra tín hiệu giao dịch.

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

123 Cơ chế hình thành ngược

Lập luận cốt lõi của chiến lược này là theo dõi xem liệu giá cổ phiếu đã có biến động trong vòng 2 ngày gần đây hay không, cụ thể là:

Nếu giá đóng cửa trong 2 ngày gần đây đang có xu hướng giảm, tức là giá đóng cửa ngày trước cao hơn giá đóng cửa 2 ngày trước; và giá đóng cửa ngày hôm nay đã tăng so với ngày trước, tức là cao hơn giá đóng cửa ngày trước, thì có thể đánh giá được sự đảo ngược của đáy, tạo ra tín hiệu mua.

Ngược lại, nếu giá đóng cửa trong 2 ngày gần đây đang có xu hướng tăng, tức là giá đóng cửa ngày trước thấp hơn giá đóng cửa 2 ngày trước; và giá đóng cửa ngày hôm nay đã giảm so với giá đóng cửa ngày trước, tức là thấp hơn giá đóng cửa ngày trước, thì có thể đánh giá top reversal, tạo ra tín hiệu bán.

Chiến lược này cũng kết hợp với chỉ số Stochastic để xác định xem có quá mua hay quá bán, và lọc các tín hiệu giao dịch tại các thời điểm không đảo ngược.

Cơ chế chỉ số KST

ROC trong chỉ số KST đại diện cho tốc độ thay đổi của giá cả, được tính ROC 6 ngày, 10 ngày, 15 ngày và 20 ngày, và sau khi làm mượt trung bình di chuyển của các tham số khác nhau, cộng trọng lượng để tạo thành chỉ số KST.

Trong trường hợp này, đường nhanh là giá trị KST nguyên bản và đường chậm là trung bình di chuyển của KST.

Chiến lược này sử dụng KST> 0 để xác định là giá lên và KST < 0 để xác định là giá xuống.

Tích hợp tín hiệu

Kết hợp chiến lược đảo ngược hình dạng 123 và tín hiệu Judgment của chỉ số KST:

  • Nếu hai tín hiệu đồng nhất, tạo ra tín hiệu giao dịch theo hướng đó
  • Nếu hai tín hiệu không phù hợp, không giao dịch.

Có thể thấy rằng, chiến lược tổng hợp sử dụng hình thức đảo ngược và chỉ số để đánh giá hai loại chỉ số kỹ thuật khác nhau, kết hợp với cường độ tín hiệu của chúng, để thiết kế một chiến lược giao dịch định lượng tiên tiến hơn.

Lợi thế chiến lược

  • Phần hình dạng đảo ngược có thể xác định các điểm biến đổi hiệu quả, phần chỉ số có thể theo dõi xu hướng, cả hai đều bổ sung cho nhau
  • Kết hợp với bộ lọc hai chỉ số, có thể cải thiện chất lượng tín hiệu và giảm tín hiệu giả
  • Các tham số KST được điều chỉnh linh hoạt để tối ưu hóa cho các cổ phiếu trong các chu kỳ khác nhau
  • Có thể sử dụng cho các cổ phiếu có biến động cao, cũng như các cổ phiếu tương đối ổn định

Rủi ro chiến lược

  • Rủi ro thất bại trong việc đảo ngược, tín hiệu đảo ngược có thể là một đột phá giả
  • Có thể bỏ lỡ một số cơ hội sau khi kết hợp tín hiệu
  • Các tham số KST không chính xác có thể gây nhiễu lớn cho kết quả
  • KST bị chậm trễ khi giá cổ phiếu dao động mạnh, có thể có tín hiệu không đồng nhất

Có thể kiểm soát rủi ro bằng cách điều chỉnh tham số, tối ưu hóa logic phán quyết đảo ngược, giới thiệu cơ chế dừng lỗ.

Hướng tối ưu hóa chiến lược

  • Tối ưu hóa các tham số Stochastic
  • Tối ưu hóa tham số chiều dài của dòng KST
  • Tăng khối lượng giao dịch hoặc lọc các chỉ số biến động
  • Tăng khả năng đánh giá xu hướng, tránh giao dịch ngược
  • Giới thiệu cơ chế dừng lỗ

Tóm tắt

Chiến lược này tích hợp nhiều loại chỉ số kỹ thuật khác nhau, được xác nhận và tối ưu hóa bằng cách kết hợp, được thiết kế một cách khoa học để tạo ra một chiến lược giao dịch định lượng mạnh mẽ, có thể được gọi là một ví dụ điển hình của các chiến lược kết hợp. Hiệu suất thực tế vẫn còn cần được kiểm chứng thêm, nhưng về mặt lý thuyết, nó đã xem xét tổng hợp nhiều kịch bản, giải quyết các hạn chế của chỉ số đơn lẻ và đáng để nghiên cứu và ứng dụng thêm.

Mã nguồn chiến lược
/*backtest
start: 2023-10-22 00:00:00
end: 2023-11-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/03/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
// This indicator really is the KST indicator presented by Martin Pring. 
// the KST indicator is a weighted summed rate of change oscillator that 
// is designed to identify meaningful turns. Various smoothed rate of change 
// indicators can be combined to form different measurements of cycles. 
//
// 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


MROC() =>
    pos = 0.0
    xROC6 = sma(roc(close, 6), 10)
    xROC10 = sma(roc(close, 10), 10)
    xROC15 = sma(roc(close, 15), 9)
    xROC20 = sma(roc(close, 20), 15)
    nRes = xROC6 + (2 * xROC10) + (3 * xROC15) + (4 * xROC20)
    pos := iff(nRes > 0, 1,
    	     iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & MovROC (KST indicator)", 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)
//-------------------------
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMROC = MROC()
pos = iff(posReversal123 == 1 and posMROC == 1 , 1,
	   iff(posReversal123 == -1 and posMROC == -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 )