Chiến lược này lần đầu tiên kết hợp chiến lược đảo ngược được đề xuất bởi Ulf Jensen trong cuốn sách của ông Làm thế nào để tăng gấp ba lần số tiền của tôi trên thị trường tương lai, trang 183, với các chỉ số cường độ tương đối để có được tín hiệu mạnh hơn. Chiến lược kết hợp được gọi là Chiến lược định lượng dựa trên sự đảo ngược và cường độ tương đối.
Ý tưởng chính của chiến lược này là sử dụng nhiều yếu tố để phán đoán cùng một lúc, kết hợp hai tín hiệu là yếu tố đảo ngược và cường độ tương đối, mua hoặc bán chỉ khi cả hai phát ra tín hiệu cùng một lúc, để tăng sự ổn định của chiến lược.
Phần đầu tiên là chiến lược đảo ngược. Chiến lược này được thực hiện với điều kiện sau: Giá mua cuối hai ngày gần đây đã tăng liên tục, và đường chậm Stochastic ngày 9 nằm dưới 50. Điều kiện vị trí yên là: Giá mua cuối hai ngày gần đây đã giảm liên tục, và đường nhanh Stochastic ngày 9 nằm trên 50.
Phần thứ hai là chỉ số so sánh cường độ tương đối. Chỉ số này tính toán trung bình di chuyển của tỷ lệ biến đổi giá đóng cửa N ngày của cổ phiếu mục tiêu so với chỉ số của tiêu chuẩn và so sánh với dải mua, bán và dải vị trí được đặt trước. Khi chỉ số trên vượt qua dải mua vào thì làm nhiều, dưới vượt qua dải bán ra thì làm rỗng, trong nhiều trường hợp phá vỡ vị trí bằng phẳng khi phá vỡ vị trí bằng phẳng, trong trường hợp phá vỡ vị trí bằng phẳng khi phá vỡ vị trí bằng phẳng.
Chiến lược kết hợp này sẽ đánh giá hai phần tín hiệu cùng một lúc và chỉ thực hiện các hoạt động mua hoặc bán tương ứng khi cả hai phát ra cùng một tín hiệu (thị trường mua hoặc bán đôi).
Chiến lược này kết hợp yếu tố đảo ngược và yếu tố cường độ tương đối, có thể sử dụng lợi thế của cả hai. Chiến lược đảo ngược có thể nắm bắt các điểm cực ngắn hạn; chiến lược cường độ tương đối có thể nắm bắt xu hướng chính của thị trường lớn. Cả hai đều phát ra tín hiệu, có thể nâng cao độ tin cậy của tín hiệu, lọc một phần tín hiệu sai gây ra bởi tiếng ồn.
Ngoài ra, chỉ số Stochastic là một chỉ số phân biệt mua và bán quá mức, có thể đánh giá tốt hơn về điểm đảo ngược. Việc kết hợp các chỉ số xu hướng như trung bình di chuyển cũng có thể tạo ra chiến lược kết hợp hợp.
Rủi ro lớn nhất của chiến lược đảo ngược là không thể xác định thời điểm thị trường đảo ngược, có thể tiếp tục chuyển động ngược sau khi mất mát. Tại thời điểm này, các chỉ số cường độ tương đối có thể đóng vai trò để xác định liệu xu hướng lớn có thay đổi hay không.
Rủi ro của chiến lược tương đối mạnh là các tham số chỉ số được đặt không đúng, dẫn đến quá nhiều tín hiệu sai. Trong trường hợp này, chiến lược đảo ngược có thể hoạt động như một bộ lọc, giảm giao dịch không cần thiết.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Kiểm tra nhiều yếu tố đảo ngược hơn để tìm kiếm chiến lược đảo ngược tốt hơn. Hiện tại, chúng tôi chỉ sử dụng chiến lược thống kê mới cao / mới thấp N ngày đơn giản.
Kiểm tra và tối ưu hóa các tham số của chỉ số cường độ tương đối để tìm ra sự kết hợp tham số tối ưu. Cài đặt tham số hiện tại là chủ quan và có thể không phải là tối ưu.
Tăng chiến lược dừng lỗ. Chiến lược này hiện không có thiết lập dừng lỗ, tăng dừng lỗ hợp lý có thể kiểm soát rủi ro mất mát.
Các chỉ số có thể được thử nghiệm với các tiêu chuẩn khác nhau, sau đó tính toán cường độ tương đối với cổ phiếu mục tiêu để tìm chỉ số phù hợp nhất.
Chiến lược này kết hợp các yếu tố đảo ngược và yếu tố cường độ tương đối để giao dịch, có thể sử dụng lợi thế của cả hai để cải thiện chất lượng tín hiệu, là một chiến lược kết hợp khá trưởng thành. Chiến lược này có rất nhiều không gian để tối ưu hóa, có thể đạt được hiệu quả tốt hơn bằng cách tối ưu hóa tham số, chiến lược dừng lỗ và điều chỉnh cách kết hợp chiến lược.
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 30/10/2019
// 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
// Comparative Relative Strength Strategy for ES
//
// 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
CRS(a, b, len, BuyBand, SellBand, CloseBand) =>
pos = 0.0
as = security(a, timeframe.period, close)
bs = security(b, timeframe.period, close)
nRes = sma(as/bs, len)
pos := iff(nRes > BuyBand, 1,
iff(nRes < SellBand, -1,
iff(pos[1] == 1 and nRes < CloseBand, 0,
iff(pos[1] == -1 and nRes > CloseBand, 0, nz(pos[1], 0)))))
pos
strategy(title="Combo Backtest 123 Reversal & Comparative Relative Strength", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
a = syminfo.tickerid
b = input("BTC_USDT:swap", type=input.symbol)
LengthCRS = input(10)
BuyBand = input(0.9988, step = 0.0001)
SellBand = input(0.9960, step = 0.0001)
CloseBand = input(0.9975, step = 0.0001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCRS = CRS(a, b, LengthCRS, BuyBand, SellBand, CloseBand)
pos = iff(posReversal123 == 1 and posCRS == 1 , 1,
iff(posReversal123 == -1 and posCRS == -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 )