
Chiến lược này là một trong những chiến lược theo dõi đảo ngược hai yếu tố trong lĩnh vực giao dịch định lượng. Nó tích hợp cả hai yếu tố của chiến lược 123 và chiến lược Keltner Channel để phát hiện các tín hiệu đảo ngược và thực hiện các chiến lược giao dịch mua thấp và bán cao.
Chiến lược này bao gồm hai chiến lược con. Chiến lược con đầu tiên là chiến lược 123 đảo ngược, nó đánh giá thị trường có đang ở điểm đảo ngược hay không bằng cách tính toán sự thay đổi của giá đóng cửa trong hai ngày giao dịch trước đó kết hợp với chỉ số Stochastic. Cụ thể, khi giá đóng cửa tăng hai ngày liên tiếp và chỉ số Stochastic thấp hơn 50, tín hiệu mua được gửi; khi giá đóng cửa giảm hai ngày liên tiếp và chỉ số Stochastic cao hơn 50, tín hiệu bán được gửi.
Chiến lược con thứ hai là chiến lược Keltner Channel. Chiến lược này tính toán đường trung bình và phạm vi biến động của giá điển hình trong n ngày giao dịch gần nhất.
Cuối cùng, chiến lược này tính toán tín hiệu giữ cuối cùng bằng cách đánh giá hướng tín hiệu của hai chiến lược con. Khi hai tín hiệu chiến lược con phù hợp, lệnh giao dịch thực sự được đưa ra, nếu không thì không giao dịch, nhằm mục đích xác minh hai yếu tố.
Lợi thế lớn nhất của chiến lược theo dõi ngược hai yếu tố này là có thể nắm bắt cơ hội kịp thời khi thị trường đảo ngược, thực hiện ý tưởng giao dịch mua thấp mua cao. Đồng thời, thông qua cơ chế xác nhận hai yếu tố, bạn có thể giảm thiểu tín hiệu giả và nâng cao chất lượng tín hiệu.
Cụ thể, các tham số chỉ số Stochastic của 123 chiến lược đảo ngược được thiết lập bảo thủ hơn, có thể lọc hiệu quả các đảo ngược giả trong tình huống chấn động. Trong khi đó, Keltner Channel theo dõi ý tưởng của Brin và cũng có thể nắm bắt cơ hội đảo ngược khi phá vỡ đường mòn. Sử dụng cả hai cùng nhau, bạn có thể xác minh lẫn nhau, giảm giao dịch không cần thiết, do đó có tỷ lệ thắng cao hơn.
Rủi ro chính của chiến lược này là lựa chọn thời gian xảy ra tín hiệu đảo ngược là rất quan trọng. Nếu xảy ra một sự đảo ngược giả liên tiếp, hoặc lựa chọn thời gian nút xảy ra tín hiệu đảo ngược không đúng, nó sẽ dẫn đến việc không thể giữ xu hướng hoàn chỉnh, do đó ảnh hưởng đến thu nhập cuối cùng.
Ngoài ra, chiến lược hai yếu tố có thể khó chọn và tối ưu hóa các tham số hơn so với chiến lược đơn lẻ. Cần kiểm tra và đánh giá toàn diện các tham số của cả hai chiến lược con, nếu không, nó dễ bị thất bại.
Cuối cùng, tỷ lệ lợi nhuận và lỗ hổng của các giao dịch đảo ngược thường khác nhau, dễ dàng bị phá vỡ nếu gặp phải tình huống bất thường. Điều này cần được tránh bằng cách dừng lỗ nghiêm ngặt.
Theo phân tích rủi ro trên, chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược này là một chiến lược theo dõi ngược hai yếu tố điển hình, bằng cách tích hợp hai chiến lược con của 123 Reversal và Keltner Channel, mục tiêu là nắm bắt chính xác hơn thời điểm thị trường thay đổi. Trong trường hợp các tham số được tối ưu hóa và kiểm soát rủi ro, chiến lược này có thể mang lại lợi nhuận vượt quá đáng kể.
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 09/12/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 Keltner Channel, a classic indicator
// of technical analysis developed by Chester Keltner in 1960.
// The indicator is a bit like Bollinger Bands and Envelopes.
//
// 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
KeltnerChn(nPeriod) =>
pos = 0.0
xPrice = sma(hlc3, nPeriod)
xMove = sma(high - low, nPeriod)
reverse = input(false, title="Trade reverse")
xUpper = xPrice + xMove
xLower = xPrice - xMove
pos := iff(close < xLower, -1,
iff(close > xUpper, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Keltner Channel", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
nPeriod = input(title="Period", defval=10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKeltnerChn = KeltnerChn(nPeriod)
pos = iff(posReversal123 == 1 and posKeltnerChn == 1 , 1,
iff(posReversal123 == -1 and posKeltnerChn == -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 )