Dựa trên chiến lược đảo ngược kép


Ngày tạo: 2024-02-26 12:07:32 sửa đổi lần cuối: 2024-02-26 12:07:32
sao chép: 0 Số nhấp chuột: 611
1
tập trung vào
1617
Người theo dõi

Dựa trên chiến lược đảo ngược kép

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 123 đảo ngược và hình thức đảo ngược ba ngày để cải thiện chất lượng tín hiệu giao dịch và giảm rủi ro. Chiến lược này sử dụng phương pháp giao dịch kết hợp chỉ số chênh lệch giá với chỉ số hình dạng k-line để giao dịch khi cả hai chỉ số phát ra tín hiệu cùng một lúc, do đó cải thiện độ chính xác của 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 chỉ số chênh lệch giá để đảo ngược giá đóng cửa hai ngày liên tiếp và phát ra tín hiệu khi chỉ số ngẫu nhiên kích hoạt giảm giá. Chiến lược khác là chiến lược hình dạng đảo ngược ba ngày, theo dõi đường k ba ngày, phát ra tín hiệu khi giá đóng cửa thấp nhất vào ngày giữa và cao hơn giá cao nhất ngày trước khi cả hai chiến lược phát ra tín hiệu đồng thời, tức là thực hiện giao dịch mua hoặc bán.

Cụ thể, 123 chiến lược đảo ngược sử dụng chỉ số ngẫu nhiên 9 ngày để đánh giá quá mua quá bán. Nếu giá giảm hai ngày liên tiếp và chỉ số ngẫu nhiên thấp hơn 50, nó là tín hiệu mua; Nếu tăng hai ngày liên tiếp và chỉ số ngẫu nhiên cao hơn 50, nó là tín hiệu bán.

Chiến lược đảo ngược kép yêu cầu cả hai chiến lược phát tín hiệu đồng thời để mở vị trí. Điều này sẽ làm giảm đáng kể tỷ lệ tín hiệu giả, khiến hệ thống chỉ giao dịch khi có cơ hội có xác suất cao.

Phân tích lợi thế

So với chiến lược đơn lẻ, chiến lược đảo ngược kép có những lợi thế sau:

  1. Cải thiện chất lượng tín hiệu, giảm tín hiệu giả
  2. Xác nhận hai chỉ số, ít có khả năng rút lại
  3. Khám phá đầy đủ các cơ hội đảo ngược trong ngắn hạn và trung hạn
  4. Dễ hiểu và dễ thực hiện

Rủi ro và giải quyết

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. Do yêu cầu tín hiệu khắc nghiệt, một số cơ hội giao dịch chỉ số đơn sẽ bị bỏ lỡ. Có thể giải quyết bằng cách điều chỉnh tham số, nới lỏng điều kiện của một trong những chỉ số, một phần tăng tần suất giao dịch.

Một rủi ro khác là trong một số tình huống cực đoan, có nhiều khả năng chỉ số kép sẽ thất bại cùng một lúc. Đối với tình huống này, có thể tăng cơ chế dừng lỗ, nhanh chóng xóa bỏ vị trí để giảm tổn thất. Hoặc hủy tín hiệu giao dịch để tránh mở vị trí dựa trên đặc điểm của tình huống cực đoan mà kinh nghiệm lịch sử đã chứng minh là không hiệu quả.

Lời khuyên tối ưu hóa

Chiến lược đảo ngược kép có thể được tiếp tục tối ưu hóa trong các khía cạnh sau:

  1. Điều chỉnh các tham số chỉ số ngẫu nhiên để tăng độ chính xác trong việc đánh giá quá mua quá bán
  2. Kiểm tra hiệu quả của các loại giao dịch khác nhau để tìm đối tượng phù hợp nhất
  3. Tăng khả năng phán đoán hỗ trợ mô hình học máy, tăng độ chính xác tín hiệu
  4. Kết hợp các đặc điểm thống kê thị trường như biến đổi khối lượng giao dịch, biến động trong ngày và tìm ra thời điểm tốt nhất để mở vị trí

Tóm tắt

Chiến lược đảo ngược kép kết hợp thành công tư tưởng giao dịch đảo ngược với phân tích hình dạng k-line. Nó khai thác đầy đủ quy luật về bản chất của giá quay trở lại trong thời gian ngắn và trung bình, và nắm bắt hiệu quả cơ hội mà đảo ngược cung cấp. So với phương pháp theo dõi xu hướng đơn giản, chiến lược này tìm thấy sự cân bằng giữa kiểm soát rủi ro và lợi nhuận.

Mã nguồn chiến lược
/*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 )