Chiến lược này thực hiện theo dõi xu hướng và giao dịch đảo ngược bằng cách kết hợp 123 hình thức đảo ngược với chỉ số lưu lượng tiền.
Đầu tiên, thông qua 123 hình thức đảo ngược để xác định điểm đảo ngược giá. Cụ thể, nếu giá đóng cửa giảm hai ngày trước, giá đóng cửa tăng vào ngày thứ ba và chỉ số ngẫu nhiên thấp hơn giá đóng cửa, tạo ra tín hiệu mua; Nếu giá đóng cửa tăng hai ngày trước, giá đóng cửa giảm vào ngày thứ ba và chỉ số ngẫu nhiên cao hơn giá đóng cửa, tạo ra tín hiệu bán.
Thứ hai, tính toán các chỉ số về dòng chảy tiền của đường nhanh và đường chậm. Đường nhanh bao gồm các chỉ số trung bình di chuyển của dòng chảy tiền trong thời gian gần đây, đường chậm là các chỉ số trung bình di chuyển của chu kỳ dài hơn. Nếu đường nhanh cao hơn đường chậm, xem xét như là dòng chảy tiền, tạo ra tín hiệu mua; ngược lại, tạo ra tín hiệu bán.
Cuối cùng, kết hợp các tín hiệu của 123 reversal với các chỉ số dòng tiền, tạo ra tín hiệu giao dịch nếu cả hai tín hiệu phù hợp.
Có thể kiểm soát rủi ro bằng cách tăng độ tin cậy của hình thức đảo ngược, thiết lập độ nhạy của chỉ số lưu lượng tiền và thêm logic dừng lỗ.
Chiến lược này kết hợp các ưu điểm của giao dịch đảo ngược và theo dõi xu hướng, có thể xác định hiệu quả các điểm biến đổi của thị trường. Tuy nhiên, cần chú ý đến điều chỉnh tham số và kiểm soát rủi ro, đồng thời tránh tạo ra quá nhiều tín hiệu sai trong khi theo dõi xu hướng. Nếu được sử dụng tốt, có thể trở thành một trong những chiến lược giao dịch hiệu quả.
/*backtest
start: 2023-08-17 00:00:00
end: 2023-09-16 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 24/02/2021
// 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
// Indicator plots Money Flow Indicator (Chaikin). This indicator looks
// to improve on Larry William's Accumulation Distribution formula that
// compared the closing price with the opening price. In the early 1970's,
// opening prices for stocks stopped being transmitted by the exchanges.
// This made it difficult to calculate Williams' formula. The Chaikin
// Oscillator uses the average price of the bar calculated as follows
// (High + Low) /2 instead of the Open.
// The indicator subtracts a 10 period exponential moving average of the
// AccumDist function from a 3 period exponential moving average of the
// AccumDist function.
//
// 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
MFI(Fast,Slow) =>
pos = 0.0
lenMax = max(Fast, Slow)
lenMin = min(Fast, Slow)
xDiv = (high - low) * volume
SumMax = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMax)
SumMin = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMin)
emaMax = ema(SumMax, lenMax)
emaMin = ema(SumMin, lenMin)
nRes = emaMax - emaMin
pos:= iff(nRes > 0, 1,
iff(nRes < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Money Flow Indicator", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Money Flow ----")
Fast = input(3, minval=1)
Slow = input(10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMFI = MFI(Fast,Slow)
pos = iff(posReversal123 == 1 and posMFI == 1 , 1,
iff(posReversal123 == -1 and posMFI == -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 )