Chiến lược đảo ngược kép

Tác giả:ChaoZhang, Ngày: 2024-02-26 12:07:32
Tags:

img

Tổng quan

Chiến lược đảo ngược kép là một chiến lược định lượng kết hợp mô hình đảo ngược 123 và mô hình đảo ngược ba thanh để cải thiện chất lượng tín hiệu và giảm rủi ro. Nó áp dụng phương pháp giao dịch sử dụng sự kết hợp của các chỉ số chênh lệch giá và các chỉ số mô hình nến, chỉ mở các vị trí khi cả hai chỉ ra một tín hiệu, do đó tăng độ chính xác tín hiệu.

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

Chiến lược đảo ngược kép kết hợp hai loại chiến lược giao dịch khác nhau. Đầu tiên là chiến lược đảo ngược 123, sử dụng các chỉ số chênh lệch giá và kích hoạt khi giá đảo ngược trong hai ngày liên tiếp và các chỉ số chứng khoán vượt qua các giá ngưỡng.

Cụ thể, chiến lược đảo ngược 123 sử dụng dao động stochastic 9 ngày để xác định các điều kiện mua quá mức và bán quá mức. Nó tạo ra tín hiệu mua khi giá giảm trong hai ngày liên tiếp và các phép đọc stochastic giảm xuống dưới 50, và tín hiệu bán khi giá tăng trong hai ngày liên tiếp và stochastic tăng 50. Chiến lược mô hình đảo ngược ba thanh phát hiện xem giá đã hình thành một mô hình cao- thấp-cao trong ba ngày, cho thấy quá mức bán trong ngắn hạn bị đảo ngược bởi động lực.

Chiến lược đảo ngược kép đòi hỏi các tín hiệu phù hợp từ cả hai chiến lược trước khi thực hiện bất kỳ vị trí nào. Điều này làm giảm đáng kể các tín hiệu sai, đảm bảo hệ thống chỉ giao dịch với các cơ hội có khả năng cao.

Phân tích lợi thế

So với các hệ thống chiến lược duy nhất, chiến lược đảo ngược kép có những lợi thế sau:

  1. Chất lượng tín hiệu được cải thiện, ít tín hiệu sai
  2. Xác nhận hai chỉ số, rủi ro rút vốn thấp hơn
  3. Khám phá cả cơ hội đảo ngược ngắn hạn và trung hạn
  4. Dễ hiểu và thực hiện

Rủi ro và giải pháp

Rủi ro chính của chiến lược đảo ngược kép là bỏ lỡ một số cơ hội có lợi nhuận. Do các yêu cầu tín hiệu nghiêm ngặt của nó, một số cơ hội giao dịch được xác định bởi các chỉ số riêng lẻ sẽ bị bỏ qua. Điều này có thể được giảm thiểu bằng cách điều chỉnh các tham số để nới lỏng các điều kiện của một chỉ số và tăng tần suất giao dịch.

Một rủi ro khác là cả hai chỉ số đồng thời thất bại trong điều kiện thị trường cực đoan, tạo ra tỷ lệ tín hiệu sai lệch cao hơn. Đối với các trường hợp như vậy, các cơ chế dừng lỗ có thể được thêm vào để nhanh chóng giải quyết các vị trí và hạn chế lỗ. Ngoài ra, vô hiệu hóa tín hiệu giao dịch trong điều kiện thị trường cực đoan bất lợi đã được chứng minh trong lịch sử để tránh nắm giữ vị trí.

Các đề xuất tối ưu hóa

Các tối ưu hóa tiếp theo cho chiến lược đảo ngược kép bao gồm:

  1. Điều chỉnh các tham số chỉ số chứng khoán để cải thiện độ chính xác đánh giá mua quá mức/bán quá mức
  2. Kiểm tra hiệu quả trên các công cụ giao dịch khác nhau để tìm ra sự phù hợp tốt nhất của tài sản
  3. Kết hợp các mô hình học máy để hỗ trợ xác nhận tín hiệu và cải thiện độ chính xác
  4. Kết hợp thêm số liệu thống kê thị trường như thay đổi khối lượng, biến động trong ngày để xác định thời gian nhập khẩu tối ưu.

Kết luận

Chiến lược đảo ngược kép kết hợp thành công các nguyên tắc đảo ngược trung bình với phân tích mô hình nến, nắm bắt đầy đủ tính chu kỳ trong giá. So với các phương pháp theo xu hướng đơn giản, nó đạt được sự cân bằng giữa rủi ro và phần thưởng. Với những cải tiến liên tục, giá trị của chiến lược sẽ được xác nhận theo thời gian.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/04/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon strategy
// This startegy based on 3-day pattern reversal described in "Are Three-Bar 
// Patterns Reliable For Stocks" article by Thomas Bulkowski, presented in 
// January,2000 issue of Stocks&Commodities magazine.
// That pattern conforms to the following rules:
// - It uses daily prices, not intraday or weekly prices;
// - The middle day of the three-day pattern has the lowest low of the three days, with no ties allowed;
// - The last day must have a close above the prior day's high, with no ties allowed;
// - Each day must have a nonzero trading range. 
//
// 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

BarReversalPattern() =>
    pos = 0.0
    pos := iff(open[2] > close[2] and high[1] < high[2] and low[1] < low[2] and low[0] > low[1] and high[0] > high[1], 1,
	         iff(open[2] < close[2] and high[1] > high[2] and low[1] > low[2] and high[0] < high[1] and low[0] < low[1], -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Strategies 123 Reversal and 3-Bar-Reversal-Pattern", shorttitle="Combo Backtest", overlay = true)
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)
pos3BarReversalPattern = BarReversalPattern()
pos = iff(posReversal123 == 1 and pos3BarReversalPattern == 1 , 1,
	   iff(posReversal123 == -1 and pos3BarReversalPattern == -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 ? red: possig == 1 ? green : blue ) 

Thêm nữa