Phá vỡ cao thấp cho giao dịch định lượng

Tác giả:ChaoZhang, Ngày: 2023-11-10 11:09:28
Tags:

img

Tổng quan

Chiến lược Fusion kết hợp một chiến lược mô hình đảo ngược 123 và một chiến lược phá vỡ thấp cao thành một hệ thống giao dịch định lượng. Bằng cách tổng hợp các tín hiệu chỉ số trên các khung thời gian khác nhau, nó nhằm mục đích đạt được lợi thế vốn nhiều khung thời gian và tạo ra lợi nhuận dư thừa trong trung hạn đến dài hạn.

Chiến lược logic

Chiến lược Fusion bao gồm hai thành phần:

  1. 123 Chiến lược đảo ngược Chiến lược này bắt nguồn từ ý tưởng trên trang 183 của cuốn sách How I Tripled My Money in the Futures Market của Ulf Jensen. Nó tạo ra tín hiệu giao dịch bằng cách kiểm tra mối quan hệ giữa giá đóng của hai ngày trước và ngày trước, cùng với chỉ số Stochastic để đánh giá điều kiện thị trường mua quá nhiều và bán quá nhiều. Cụ thể, một tín hiệu mua được tạo ra khi giá đóng của hai ngày liên tiếp cao hơn ngày trước, và chỉ số Stochastic Slow dưới 50. Một tín hiệu bán được tạo ra khi giá đóng của hai ngày liên tiếp thấp hơn ngày trước, và chỉ số Stochastic Fast trên 50. Bằng cách kết hợp chỉ số Stochastic, chiến lược này tránh mua ở đỉnh thị trường và bán ở đáy.

  2. Chiến lược đột phá cao thấp Chiến lược này xác định các tín hiệu giao dịch bằng cách phát hiện sự đột phá giá vượt quá mức cao / thấp trước đó trong các khoảng thời gian khác nhau. Nó tính toán mức cao nhất và thấp nhất trong các khoảng thời gian hiện tại và trước đó và tạo ra tín hiệu mua khi giá phá vỡ trên mức cao, và bán tín hiệu khi giá phá vỡ dưới mức thấp.

Chiến lược Fusion kết hợp các tín hiệu từ hai chiến lược trên và tạo ra các tín hiệu giao dịch thực tế chỉ khi các hướng tín hiệu liên kết. Điều này lọc ra một số tín hiệu sai do lỗi trong một chiến lược duy nhất và cải thiện độ tin cậy tín hiệu.

Ưu điểm của Chiến lược

  1. Phối hợp nhiều khung thời gian cải thiện độ chính xác tín hiệu Việc tích hợp các mô hình khung thời gian hàng ngày và cao hơn làm tăng độ chính xác của việc tạo tín hiệu giao dịch, tránh sự phân tâm từ tiếng ồn thị trường ngắn hạn.

  2. Sử dụng đầy đủ đánh giá mua quá mức / bán quá mức của Stochastic Sử dụng chỉ số Stochastic Slow ngăn chặn việc mua mong muốn ở các khu vực mua quá mức. Chỉ số Stochastic Fast ngăn chặn việc bán mong muốn ở các khu vực bán quá mức. Mất mát không cần thiết được giảm.

  3. Bắt kịp thời các mô hình xu hướng, giảm cơ hội bị bỏ lỡ Chiến lược phá vỡ cao thấp xác định sự khởi đầu xu hướng trong các khung thời gian cao hơn sớm hơn, giảm cơ hội giao dịch bị bỏ lỡ.

  4. Tối ưu hóa linh hoạt với nhiều chiến lược con Với nhiều chiến lược con, không gian tối ưu hóa lớn cho phép điều chỉnh tham số của các chiến lược con hoặc giới thiệu những chiến lược mới để làm cho chiến lược ổn định và đáng tin cậy hơn.

  5. Logic đơn giản và rõ ràng Cấu trúc và logic đơn giản làm cho chiến lược dễ hiểu, sửa đổi và duy trì trong tương lai.

Rủi ro của chiến lược

  1. Phân tích nhiều khung thời gian gây ra sự chậm trễ tín hiệu Mặc dù độ chính xác được cải thiện, việc kết hợp các tín hiệu trên các khung thời gian gây ra sự chậm trễ và có thể bỏ lỡ cơ hội giao dịch ngắn hạn.

  2. 123 mô hình không thể xác định sự đảo ngược xu hướng trong khung thời gian dài Chiến lược đảo ngược 123 chỉ xem xét những ngày gần đây và bỏ qua các điểm đảo ngược chính trong các khung thời gian dài hơn.

  3. Cài đặt tham số sai có thể gây ra tín hiệu sai Chế độ điều chỉnh tham số kém của thời gian Stochastic và thời gian đột phá có thể dẫn đến tín hiệu sai quá mức.

  4. Công nghệ thuần túy, khả năng thích nghi yếu đối với các sự kiện cực đoan Không xem xét các nguyên tắc cơ bản, chiến lược thích nghi kém với các sự kiện thiên nga đen.

Các giải pháp tương ứng:

  1. Giảm thời gian tính toán đúng cách để giảm chậm trễ.

  2. Hãy thử giới thiệu các chỉ số dài hạn hoặc mô hình như bộ lọc.

  3. Tối ưu hóa các thông số và kiểm tra độ bền kỹ lưỡng trong các thử nghiệm hậu quả.

  4. Xem xét kết hợp các yếu tố cơ bản cho việc lọc tín hiệu.

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

  1. Kiểm tra và tối ưu hóa các thông số của các chiến lược phụ để đảm bảo độ bền.

  2. Bao gồm các tín hiệu bổ sung như cơ bản, dòng tiền v.v.

  3. Đưa ra dừng lỗ để giới hạn lỗ tối đa cho mỗi giao dịch.

  4. Điều chỉnh các thông số cho các sản phẩm cụ thể để cải thiện khả năng thích nghi.

  5. Hỗ trợ với các mô hình máy học.

Kết luận

Tóm lại, chiến lược Fusion kết hợp các lợi thế của các chỉ số kỹ thuật đa khung thời gian, nhằm mục đích tạo tín hiệu chính xác và kịp thời hơn. So với các chiến lược chỉ số duy nhất, nó có khả năng cảm nhận xu hướng vượt trội và sản xuất tín hiệu mạnh mẽ hơn. Nhưng nó cũng bị chậm trễ và không thích nghi đầy đủ với các sự kiện cực đoan. Những cải tiến trong tương lai có thể đến từ nhiều công cụ phụ trợ hơn, tối ưu hóa tham số tốt hơn và nâng cấp sự ổn định và lợi nhuận.


/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/11/2020
// 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 script shows a high and low period value.
//    Width - width of lines
//    SelectPeriod - Day or Week or Month and etc.
//    LookBack - Shift levels 0 - current period, 1 - previous and etc. 
//
// 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

    
HLL(LookBack, SelectPeriod) =>
    pos = 0.0
    xHigh  = security(syminfo.tickerid, SelectPeriod, high[LookBack])
    xLow   = security(syminfo.tickerid, SelectPeriod, low[LookBack])
    vS1 = xHigh
    vR1 = xLow
    pos := iff(close > vR1, 1,
             iff(close < vS1, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & High and Low Levels", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SelectPeriod = input(title="Resolution", type=input.resolution, defval="D")
LookBack = input(1,  minval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posHLL = HLL(LookBack, SelectPeriod)
pos = iff(posReversal123 == 1 and posHLL == 1 , 1,
	   iff(posReversal123 == -1 and posHLL == -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