
Chiến lược giao dịch đảo ngược hai chỉ số là một chiến lược giao dịch đường ngắn kết hợp chỉ số động lượng và chỉ số xu hướng. Chiến lược này đầu tiên sử dụng một chỉ số đảo ngược để tạo ra tín hiệu giao dịch, sau đó kết hợp với một chỉ số xu hướng để tạo ra tín hiệu giao dịch đáng tin cậy hơn. Chiến lược này được thiết kế để nắm bắt sự đảo ngược giá trong thời gian ngắn và giao dịch trong bối cảnh xu hướng đường ngắn.
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 reversal. Nó theo dõi xem giá có quay trở lại đỉnh hay không. Cụ thể, nó sẽ tạo ra tín hiệu mua trong trường hợp: Giá đóng cửa hai ngày trước giảm, giá đóng cửa ngày hôm đó cao hơn giá đóng cửa ngày trước và đường chậm Stochastic thấp hơn 50.
Chiến lược con thứ hai là chỉ số ngẫu nhiên ergodic ((EMDI)). Nó là một chỉ số theo xu hướng, xác định hướng của xu hướng đường dài trung bình. Nó kết hợp ý tưởng của đường trung bình di chuyển và MACD, sử dụng chỉ số một lần để làm mịn đường trung bình di chuyển và đường nhanh của MACD để tạo ra tín hiệu mua và bán.
Chiến lược này kết hợp tín hiệu của hai chiến lược con. Chiến lược này sẽ chỉ mở lệnh khi hai chiến lược con tạo ra tín hiệu đồng nhất.
Chiến lược giao dịch đảo ngược hai chỉ số cố gắng nắm bắt các cơ hội đảo ngược giá ngắn hạn trên đường ngắn trung bình bằng cách kết hợp các chỉ số đảo ngược và xu hướng. Nó có thể lọc hiệu quả các tín hiệu báo cáo sai lầm và kiểm soát rủi ro giao dịch ở một mức độ nào đó. Tuy nhiên, chiến lược này cũng có một số vấn đề, chẳng hạn như có thể bỏ lỡ các cơ hội ngắn hạn, tham số nhạy cảm và rủi ro quá phù hợp.
/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 28/07/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
// This is one of the techniques described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). If you like to learn more, we advise you to
// read this book. His book focuses on three key aspects of trading: momentum,
// direction and divergence. Blau, who was an electrical engineer before becoming
// a trader, thoroughly examines the relationship between price and momentum in
// step-by-step examples. From this grounding, he then looks at the deficiencies
// in other oscillators and introduces some innovative techniques, including a
// fresh twist on Stochastics. On directional issues, he analyzes the intricacies
// of ADX and offers a unique approach to help define trending and non-trending periods.
//
// 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
EMDI(r,s,u,SmthLen) =>
pos = 0
xEMA = ema(close, r)
xEMA_S = close - xEMA
xEMA_U = ema(ema(xEMA_S, s), u)
xSignal = ema(xEMA_U, u)
pos := iff(xEMA_U > xSignal, 1,
iff(xEMA_U < xSignal, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Ergodic MDI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(32, minval=1)
s = input(5, minval=1)
u = input(5, minval=1)
SmthLen = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMDI = EMDI(r,s,u,SmthLen)
pos = iff(posReversal123 == 1 and posEMDI == 1 , 1,
iff(posReversal123 == -1 and posEMDI == -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 )