Chiến lược giao dịch quán tính đảo ngược yếu tố kép định lượng

Tác giả:ChaoZhang, Ngày: 2024-01-12 14:38:02
Tags:

img

Tổng quan

Chiến lược giao dịch quán tính đảo ngược yếu tố kép định lượng là một chiến lược giao dịch định lượng kết hợp các tín hiệu đảo ngược giá và các tín hiệu quán tính thị trường. Chiến lược đầu tiên sử dụng chỉ số Stochastic để tạo ra các tín hiệu đảo ngược giá, sau đó kết hợp các tín hiệu quán tính thị trường từ Chỉ số biến động tương đối (RVI), và cuối cùng đưa ra các quyết định giao dịch dựa trên các yếu tố kép.

Nguyên tắc

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

  1. Phần đảo ngược giá áp dụng ý tưởng được đề xuất bởi Ulf Jensen trong cuốn sách của mình, cụ thể: khi giá đóng tăng liên tục trong 2 ngày và Stochastic chậm 9 ngày dưới 50, đi dài; khi giá đóng giảm liên tục trong 2 ngày và Stochastic nhanh 9 ngày trên 50, đi ngắn.

  2. Phần quán tính thị trường sử dụng Chỉ số biến động tương đối (RVI). Giá trị của chỉ số này dao động từ 0 đến 100. Trên 50 chỉ ra xu hướng dài hạn của thị trường là tăng; dưới 50 chỉ ra xu hướng dài hạn của thị trường là giảm.

Tóm lại, chiến lược này tích hợp các tín hiệu đảo ngược giá và tín hiệu quán tính thị trường để cuối cùng xác định hướng thị trường hiện tại.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là nó kết hợp hai ý tưởng giao dịch chính đảo ngược và theo xu hướng. Các tín hiệu đảo ngược có thể nắm bắt sự điều chỉnh ngắn hạn và cung cấp cơ hội giao dịch. Các tín hiệu quán tính đảm bảo mở các vị trí chỉ khi xu hướng dài hạn sắp xếp để lọc hiệu quả tiếng ồn.

Ngoài ra, cơ chế điều khiển hai yếu tố có thể cải thiện chất lượng tín hiệu. Tối ưu hóa các thông số Stochastic và làm mịn mượt RVI cũng cung cấp không gian cho tối ưu hóa chiến lược.

Phân tích rủi ro

Các rủi ro chính đối với chiến lược này bao gồm:

  1. Nguy cơ các tín hiệu đảo ngược được xác định không chính xác.

  2. Nguy cơ tín hiệu quán tính tạo ra tín hiệu không chính xác.

  3. Nguy cơ bỏ lỡ cơ hội giao dịch do sự phù hợp kém về thời gian của các tín hiệu hai yếu tố.

Ngoài ra, các chiến lược đảo ngược phải đối mặt với rủi ro mất mát gia tăng trong các thị trường xu hướng.

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

Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tối ưu hóa các thông số của chỉ số Stochastic để cải thiện chất lượng và tính kịp thời của việc xác định các tín hiệu đảo ngược.

  2. Tối ưu hóa tham số làm mịn của chỉ số RVI để tăng độ chính xác của phán đoán quán tính.

  3. Kiểm tra các khoảng thời gian giữ khác nhau để xác định chu kỳ giữ tối ưu.

  4. Kết hợp các cơ chế dừng lỗ. Kiểm tra lại các điểm dừng lỗ khác nhau để tìm vị trí dừng lỗ tối ưu.

  5. Xem xét kết hợp các tín hiệu yếu tố khác như sai lệch khối lượng giao dịch để hình thành các chiến lược dựa trên nhiều yếu tố.

Tóm lại

Chiến lược giao dịch quán tính đảo ngược yếu tố kép định lượng xem xét toàn diện các yếu tố đảo ngược và xu hướng, sử dụng chỉ số Stochastic và chỉ số RVI để tạo ra các tín hiệu giao dịch. Chiến lược có những lợi thế như điều khiển bởi yếu tố kép, nắm bắt các cơ hội đảo ngược và lọc tín hiệu. Nó có thể được cải thiện hơn nữa thông qua tối ưu hóa tham số đa mặt. Kiểm soát rủi ro thông qua thực thi lệnh dừng lỗ nghiêm ngặt cũng rất quan trọng. Chiến lược cung cấp những ý tưởng tốt cho giao dịch định lượng.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/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
// The inertia indicator measures the market, stock or currency pair momentum and 
// trend by measuring the security smoothed RVI (Relative Volatility Index). 
// The RVI is a technical indicator that estimates the general direction of the 
// volatility of an asset.
// The inertia indicator returns a value that is comprised between 0 and 100. 
// Positive inertia occurs when the indicator value is higher than 50. As long as 
// the inertia value is above 50, the long-term trend of the security is up. The inertia 
// is negative when its value is lower than 50, in this case the long-term trend is 
// down and should stay down if the inertia stays below 50.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
//
// 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

Inertia(Period, Smooth) =>
    pos = 0.0
    nU = 0.0
    nD = 0.0
    xPrice = close
    StdDev = stdev(xPrice, Period)
    d = iff(close > close[1], 0, StdDev)
    u = iff(close > close[1], StdDev, 0)
    nU := (13 * nz(nU[1],0) + u) / 14
    nD := (13 * nz(nD[1],0) + d) / 14
    nRVI = 100 * nU / (nU + nD)
    nRes = ema(nRVI, Smooth)
    pos :=iff(nRes > 50, 1,
    	   iff(nRes < 50, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Inertia Strategy", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Period = input(10, minval=1)
Smooth = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posInertia = Inertia(Period, Smooth)
pos = iff(posReversal123 == 1 and posInertia == 1 , 1,
	   iff(posReversal123 == -1 and posInertia == -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