Chiến lược giao dịch quán tính đảo ngược hai yếu tố định lượng (Quant Dual Factor Reversal Inertia Trading Strategy) là một chiến lược giao dịch định lượng kết hợp tín hiệu đảo ngược giá và tín hiệu quán tính thị trường. Chiến lược này sử dụng các chỉ số ngẫu nhiên để thực hiện tín hiệu đảo ngược giá, sau đó kết hợp với tín hiệu quán tính thị trường của các chỉ số dao động tương đối, cuối cùng để thực hiện quyết định giao dịch được thúc đẩy bởi hai yếu tố.
Chiến lược này dựa trên hai phần chính:
Giá đảo ngược một phần lấy ý tưởng của Ulf Jensen trong tác phẩm của mình, cụ thể là: khi giá đóng cửa tăng 2 ngày liên tiếp, và chỉ số Stochastic chậm 9 ngày thấp hơn 50, làm nhiều; khi giá đóng cửa giảm 2 ngày liên tiếp, và chỉ số Stochastic nhanh 9 ngày cao hơn 50, làm trống.
Phần quán tính của thị trường sử dụng chỉ số tỷ lệ dao động tương đối (RVI). Giá trị chỉ số dao động từ 0 đến 100, cao hơn 50 cho thấy xu hướng dài hạn của thị trường tăng; thấp hơn 50 cho thấy xu hướng dài hạn của thị trường 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. Khi hai tín hiệu này phù hợp, tín hiệu giao dịch được tạo ra.
Lợi thế lớn nhất của chiến lược này là nó kết hợp cả hai tư duy giao dịch là đảo ngược và xu hướng. Tín hiệu đảo ngược có thể nắm bắt sự điều chỉnh ngắn hạn để cung cấp cơ hội giao dịch; tín hiệu tĩnh đảm bảo chỉ mở vị trí khi xu hướng dài hạn phù hợp, có thể lọc nhiễu hiệu quả.
Ngoài ra, điều khiển hai yếu tố có thể cải thiện chất lượng tín hiệu, đồng thời tối ưu hóa tham số chỉ số Stochastic và tối ưu hóa trơn tru RVI cũng cung cấp không gian để tối ưu hóa chiến lược.
Những rủi ro chính của chiến lược này là:
Nguy cơ nhận diện tín hiệu đảo ngược không chính xác. Cần xác minh tham số có hợp lý không.
Tín hiệu quán tính có nguy cơ phát ra tín hiệu sai. Chỉ số RVI có thể bị chậm trễ, cần điều chỉnh tham số mịn.
Kích thước của tín hiệu không phù hợp với thời gian, nguy cơ bỏ lỡ cơ hội giao dịch. Cần thử nghiệm sự phù hợp với các tham số khác nhau.
Ngoài ra, chiến lược đảo ngược có nguy cơ tăng lỗ trong thị trường có xu hướng. Cần tuân thủ nghiêm ngặt các quy tắc dừng lỗ.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Tối ưu hóa các tham số của chỉ số Stochastic, nhận biết chất lượng và tính kịp thời của tín hiệu đảo ngược.
Tối ưu hóa các tham số mịn của chỉ số RVI, tăng độ chính xác của phán đoán quán tính.
Kiểm tra thời gian giữ vị trí khác nhau để xác định chu kỳ giữ vị trí tối ưu.
Tham gia hệ thống dừng lỗ. Đánh giá lại các điểm dừng lỗ khác nhau để tìm vị trí dừng lỗ tối ưu.
Có thể xem xét thêm các tín hiệu yếu tố khác, chẳng hạn như biến động khối lượng giao dịch, để tạo ra động cơ đa yếu tố.
Quantify binary reversal inertial trading strategy comprehensively consider reversal and trend factors, use stochastic indicator and RVI indicator to generate trading signals. Chiến lược này có các lợi thế như điều khiển binary, nắm bắt cơ hội reversal và lọc tín hiệu, có thể được cải thiện hơn nữa bằng cách tối ưu hóa các tham số đa phương. Kiểm soát rủi ro cũng đặc biệt quan trọng, cần thực hiện lệnh dừng lỗ nghiêm ngặt. Chiến lược này cung cấp một cách suy nghĩ 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 )