Chiến lược đảo ngược theo dõi đà tăng gấp đôi

Tác giả:ChaoZhang, Ngày: 2024-01-18 11:33:40
Tags:

img

Tổng quan

Chiến lược này kết hợp yếu tố đảo ngược giá và yếu tố động lực của cổ phiếu để xây dựng một mô hình hai yếu tố để nắm bắt các cơ hội phát sinh từ sự đảo ngược ngắn hạn và sự bền vững dài hạn trên thị trường.

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

Chiến lược bao gồm hai phần:

  1. 123 Nguyên nhân đảo ngược mô hình

    Phần này phát hiện tín hiệu đảo ngược giá ngắn hạn bằng cách kiểm tra sự thay đổi giá đóng trong hai ngày qua. Cụ thể, nếu giá đóng hôm qua thấp hơn hai ngày trước và giá đóng hôm nay cao hơn ngày hôm qua, nó có thể được xác định là tín hiệu đảo ngược giá tăng. Chỉ số Stoch phục vụ như một phương tiện phụ trợ để hỗ trợ phán đoán.

  2. Nguyên nhân RSI được lọc Laguerre

    Phần này xây dựng một chỉ số RSI đáp ứng nhanh hơn bằng cách sử dụng bộ lọc Laguerre. Độ nhạy của các chỉ số RSI truyền thống đối với sự thay đổi giá tương đối thấp. Ngược lại, các bộ lọc Laguerre có thể xây dựng các chỉ số bằng cách sử dụng ít dữ liệu lịch sử hơn, do đó cải thiện độ nhạy với biến động giá.

Cuối cùng, chiến lược kết hợp các tín hiệu từ cả hai yếu tố, đảm bảo sự đảo ngược ngắn hạn xảy ra phù hợp với xu hướng thị trường tổng thể, để tận dụng các cơ hội giảm giá.

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

Lợi thế lớn nhất của chiến lược này nằm trong sự kết hợp thành công của các yếu tố đảo ngược và xu hướng. yếu tố đảo ngược nắm bắt các cơ hội rút ngắn hạn sau khi củng cố giá, trong khi yếu tố xu hướng đảm bảo sự thiên vị dài / ngắn tổng thể không thay đổi. So với các mô hình đảo ngược hoặc động lực độc lập, mô hình hai yếu tố này có thể cải thiện độ chính xác của các tín hiệu dài / ngắn trong khi giảm các tín hiệu sai.

Ngoài ra, việc giới thiệu Laguerre RSI làm tăng độ nhạy của mô hình đối với sự thay đổi giá, đặc biệt quan trọng đối với giao dịch tần số cao.

Phân tích rủi ro

Rủi ro chính mà chiến lược này phải đối mặt là khả năng có các tín hiệu mâu thuẫn từ hai yếu tố. Đặc biệt là trong thời gian điều chỉnh thị trường biến động, giá ngắn hạn có thể đảo ngược thường xuyên trong khi xu hướng trung hạn đến dài hạn cũng bắt đầu thay đổi. Trong những trường hợp như vậy, hai loại tín hiệu có thể dễ dàng không phù hợp hoặc bị trì hoãn. Điều này dẫn đến các tín hiệu chiến lược không chính xác và bỏ lỡ cơ hội nhập cảnh hoặc thua lỗ không cần thiết.

Ngoài ra, cấu hình tham số kém cũng có thể dẫn đến hiệu suất chiến lược kém. Các tham số cho các chỉ số kỹ thuật thuộc về các yếu tố đảo ngược và xu hướng cần được tối ưu hóa và thử nghiệm riêng biệt. Sự kết hợp tham số không đúng có thể làm giảm đáng kể hiệu quả của chiến lược.

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

Các trọng tâm chính của việc tối ưu hóa trong tương lai cho chiến lược này liên quan đến lọc tín hiệu và lựa chọn tham số. Nhiều điều kiện lọc có thể được giới thiệu để có hiệu lực khi các tín hiệu hai yếu tố xung đột, đảm bảo giao dịch chỉ được đặt trong các kịch bản có độ chắc chắn cao. Điều này có thể làm giảm đáng kể các tín hiệu sai.

Đối với việc lựa chọn tham số, các phương pháp học máy và thử nghiệm khoa học có thể được thử nghiệm để kiểm tra một cách có hệ thống các kết hợp tham số khác nhau và đạt được cấu hình tối ưu.

Tóm lại

Chiến lược này đã tích hợp thành công các yếu tố đảo ngược và xu hướng thông qua mô hình hai yếu tố để tận dụng lợi nhuận từ việc rút ngắn hạn và sự bền vững trung hạn đến dài hạn. Việc giới thiệu RSI lọc Laguerre cũng cải thiện độ nhạy của mô hình đối với những thay đổi giá. Giai đoạn tiếp theo sẽ tập trung vào việc lọc tín hiệu và tối ưu hóa tham số để tăng cường thêm chiến lược.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/01/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 is RSI indicator which is more sesitive to price changes. 
// It is based upon a modern math tool - Laguerre transform filter.
// With help of Laguerre filter one becomes able to create superior 
// indicators using very short data lengths as well. The use of shorter 
// data lengths means you can make the indicators more responsive to 
// changes in the price.
//
// 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

LB_RSI(gamma,BuyBand,SellBand) =>
    pos = 0.0
    xL0 = 0.0
    xL1 = 0.0
    xL2 = 0.0
    xL3 = 0.0
    xL0 := (1-gamma) * close + gamma * nz(xL0[1], 1)
    xL1 := - gamma * xL0 + nz(xL0[1], 1) + gamma * nz(xL1[1], 1)
    xL2 := - gamma * xL1 + nz(xL1[1], 1) + gamma * nz(xL2[1], 1)
    xL3 := - gamma * xL2 + nz(xL2[1], 1) + gamma * nz(xL3[1], 1)
    CU = (xL0 >= xL1 ? xL0 - xL1 : 0) + (xL1 >= xL2 ? xL1 - xL2 : 0)  + (xL2 >= xL3 ? xL2 - xL3 : 0)
    CD = (xL0 >= xL1 ? 0 : xL1 - xL0) + (xL1 >= xL2 ? 0 : xL2 - xL1)  + (xL2 >= xL3 ? 0 : xL3 - xL2)
    nRes = iff(CU + CD != 0, CU / (CU + CD), 0)
    pos := iff(nRes > BuyBand, 1,
    	     iff(nRes < SellBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Laguerre-based RSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
gamma = input(0.5, minval=-0.1, maxval = 0.9)
BuyBand = input(0.8, step = 0.01)
SellBand = input(0.2, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posLB_RSI = LB_RSI(gamma,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posLB_RSI == 1 , 1,
	   iff(posReversal123 == -1 and posLB_RSI == -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