Chiến lược định lượng thanh thay đổi tỷ lệ phần trăm đảo ngược hai lần

Tác giả:ChaoZhang, Ngày: 2023-12-06 17:44:35
Tags:

img

Tổng quan

Tên của chiến lược này là Double Reversal Percentage Change Bar Quantitative Strategy. Chiến lược này kết hợp hai loại chiến lược khác nhau cho giao dịch danh mục đầu tư để tận dụng tối đa những lợi thế tương ứng của chúng và đạt được hiệu suất giao dịch tốt hơn.

Chiến lược đầu tiên sử dụng nguyên tắc chiến lược đảo ngược để đánh giá liệu có tín hiệu đảo ngược bằng cách so sánh giá đóng với ngày trước hoặc vài ngày. Chiến lược thứ hai sử dụng chỉ số biểu đồ thanh thay đổi tỷ lệ phần trăm để xác định phạm vi biến động hàng ngày và thiết lập các vị trí phù hợp.

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

Chiến lược định lượng thanh thay đổi tỷ lệ thay đổi tỷ lệ đảo ngược đôi sử dụng hai thành phần chính:

Phần đầu tiên là 123 chiến lược đảo ngược.

  1. Nếu giá đóng cửa thấp hơn giá đóng cửa trước đó và đường nhanh Stoch cao hơn đường chậm và trên mức 50, nó được coi là đã mua quá mức và một tín hiệu bán được tạo ra.

  2. Nếu giá đóng cửa cao hơn giá đóng cửa trước đó và đường nhanh Stoch thấp hơn đường chậm và dưới 50, nó được coi là đã bán quá mức và một tín hiệu mua được tạo ra.

  3. Thiết lập các vị trí dài hoặc ngắn theo tín hiệu mua và bán được tạo ra.

Phần thứ hai là chỉ số biểu đồ thanh thay đổi tỷ lệ phần trăm.

  1. Tính toán tỷ lệ thay đổi phần trăm của thanh hiện tại so với thanh N giai đoạn trước (được xác định bởi tham số input_barsback).

  2. Nếu tỷ lệ thay đổi phần trăm cao hơn khu vực giá trị tích cực được xác định bởi tham số BuyZone, một tín hiệu mua sẽ được tạo ra; nếu nó thấp hơn khu vực giá trị âm được xác định bởi SellZone, một tín hiệu bán sẽ được tạo ra.

  3. Thiết lập các vị trí dài hoặc ngắn theo tín hiệu mua và bán được tạo ra.

Cuối cùng, các vị trí sẽ chỉ được thiết lập khi các tín hiệu được tạo ra bởi hai chiến lược là phù hợp.

Phân tích lợi thế

Chiến lược định lượng thanh thay đổi tỷ lệ phần trăm đảo ngược đôi có những lợi thế sau:

  1. Nó hấp thụ điểm mạnh của hai loại chiến lược khác nhau và có tiềm năng thu được lợi nhuận ổn định hơn. Chiến lược đảo ngược 123 hoạt động tốt trong việc xác định các điểm đảo ngược thị trường; chỉ số biểu đồ thanh thay đổi tỷ lệ phần trăm nhanh chóng nhận ra xu hướng đột phá. Sự kết hợp có thể xác định cả sự đảo ngược và nắm bắt xu hướng.

  2. Sự kết hợp của các tín hiệu từ hai chiến lược có thể lọc hiệu quả một số tín hiệu sai và giảm lỗ dừng không cần thiết để giảm rủi ro giao dịch.

  3. Chiến lược đảo ngược 123 có không gian tối ưu hóa lớn. Bằng cách điều chỉnh các kết hợp tham số, nó có thể được tối ưu hóa và thích nghi cho các sản phẩm và chu kỳ khác nhau.

  4. Chiến lược thanh thay đổi tỷ lệ phần trăm là trực quan. Rủi ro giao dịch dễ hiểu và kiểm soát bằng cách điều chỉnh các tham số.

Phân tích rủi ro

Chiến lược định lượng thay đổi tỷ lệ thay đổi tỷ lệ ngược đôi cũng có một số rủi ro:

  1. Khi các tín hiệu từ hai chiến lược không khớp, các vị trí không thể được thiết lập, bỏ lỡ một số cơ hội giao dịch.

  2. Chiến lược đảo ngược 123 nhạy cảm với các tham số. Sự kết hợp tham số không phù hợp có thể dẫn đến quá nhiều tín hiệu sai. Các tham số nên được thử nghiệm riêng cho các sản phẩm khác nhau để đảm bảo sự ổn định.

  3. Nếu hướng của các tín hiệu mua và bán được tạo ra bởi biểu đồ thanh thay đổi tỷ lệ phần trăm là sai và phù hợp với các tín hiệu đảo ngược 123, nó sẽ dẫn đến tổn thất đáng kể.

  4. Sau khi chiến lược được chạy trong một thời gian, khả năng thích nghi của các thông số sẽ giảm. Chúng ta cần theo dõi đường cong lợi nhuận và tín hiệu giao dịch của chiến lược để xác định khi nào để điều chỉnh các thông số.

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

Chiến lược định lượng thay đổi tỷ lệ thay đổi tỷ lệ ngược đôi cũng có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tối ưu hóa các tham số như Dài, KSmoothing, DLength cho chiến lược đảo ngược 123 để tìm danh mục đầu tư tham số phù hợp hơn cho các sản phẩm và chu kỳ khác nhau.

  2. Điều chỉnh tham số input_barsback của biểu đồ thanh thay đổi tỷ lệ phần trăm để đánh giá tác động của thời gian xem lại dài hơn hoặc ngắn hơn đối với chiến lược.

  3. Việc giới thiệu các chiến lược dừng lỗ có thể tránh được các lỗ lớn do tín hiệu không chính xác từ các thanh thay đổi tỷ lệ phần trăm.

  4. Cố gắng đào tạo một mô hình thay đổi tỷ lệ chính xác hơn để xác định thời gian vào và ra thông qua các phương pháp học máy để có được tỷ lệ thắng cao hơn.

  5. Tăng các chỉ số kỹ thuật phụ khác để đánh giá để làm phong phú các tín hiệu giao dịch từ chiến lược và tăng tần suất giao dịch.

Kết luận

Chiến lược định lượng thanh thay đổi tỷ lệ phần trăm đảo ngược đôi sử dụng đầy đủ điểm mạnh của hai loại chiến lược khác nhau và kết hợp chúng để mở rộng không gian lợi nhuận trong khi kiểm soát rủi ro. Chiến lược dễ hiểu và điều chỉnh này phù hợp với nghiên cứu và thực hành. Với việc điều chỉnh tham số và tối ưu hóa chiến lược hơn nữa, nó dự kiến sẽ có được lợi nhuận dư thừa ổn định hơn.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/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 histogram displays price or % change from previous bar. 
//
// 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


PCB(input_percentorprice,input_barsback,SellZone,BuyZone) =>
    pos = 0.0
    xPrice = close
    xPrice1 = iff(input_percentorprice, xPrice - xPrice[input_barsback], ((xPrice - xPrice[input_barsback]) * 100)/ xPrice[input_barsback])
    pos := iff(xPrice1 > BuyZone, 1,
             iff(xPrice1 < SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Percent change bar", 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)
//-------------------------
line2 = input(true, "---- Percent change bar ----")
input_percentorprice = input(false, title="Price Change")
input_barsback = input(1, title="Look Back")
SellZone = input(-0.33, minval=0.01, step = 0.01)
BuyZone = input(0.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPCB = PCB(input_percentorprice,input_barsback,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posPCB == 1 , 1,
	   iff(posReversal123 == -1 and posPCB == -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