
Chiến lược theo dõi xu hướng kép là một chiến lược giao dịch định lượng kết hợp hai chỉ số để xác định xu hướng. Chiến lược này đầu tiên sử dụng chỉ số 123 để xác định tín hiệu đảo ngược giá, sau đó kết hợp với chỉ số xu hướng hướng ((DTI) để xác định xu hướng giá, để thực hiện tín hiệu đặt hàng xác nhận kép.
Chiến lược này bao gồm hai phần chính:
123 chỉ số đảo ngược được đánh giá theo nguyên tắc:
Khi giá đóng cửa tăng 2 ngày liên tiếp và K-line chậm hơn 50 ngày, hãy làm nhiều hơn;
Khi giá đóng cửa giảm 2 ngày liên tiếp và đường K nhanh hơn 50 ngày 9, hãy làm trống.
Các nhà đầu tư cũng có thể sử dụng các con số này để xác định thời điểm giá sẽ thay đổi.
Nguyên tắc đánh giá chỉ số DTI là: tính trung bình giá trị tuyệt đối trong một khoảng thời gian, sau đó chia cho giá trị trung bình của giá.
Khi DTI cao hơn đường mua quá mức, nó cho thấy hiện tại đang có xu hướng giảm;
Khi DTI thấp hơn đường bán quá mức, nó cho thấy hiện tại đang có xu hướng tăng.
Đầu tiên, sử dụng chỉ số 123 để xác định liệu có tín hiệu đảo ngược hay không. Sau đó kết hợp với chỉ số DTI để xác định xu hướng chung của giá sau khi đảo ngược.
Điều này giúp tránh các vấn đề đảo ngược giả tạo do đơn thuần phụ thuộc vào tín hiệu đảo ngược, từ đó cải thiện sự ổn định và lợi nhuận của chiến lược.
Xác nhận hai chỉ số, tránh rủi ro của sự đảo ngược sai
Kết hợp sự đảo ngược và định hướng, tính linh hoạt và ổn định trong hoạt động
Các tham số có thể được tối ưu hóa rộng rãi và có thể được điều chỉnh linh hoạt để phù hợp với các giống khác nhau
Thiết lập tham số DTI cần kinh nghiệm, không phù hợp để đánh giá sai hướng xu hướng
Sự thay đổi không nhất thiết phải là một xu hướng mới, mà có thể là sự biến động của thị trường RANGE
Cần có hiệu quả trong việc ngăn chặn và kiểm soát tổn thất đơn lẻ
Cách giải quyết: Thử nghiệm tối ưu hóa tham số + Giảm tổn thất hợp lý + Kết hợp với các chỉ số khác
Kiểm tra các tham số DTI để tìm ra sự kết hợp tham số tốt nhất
Kết hợp các chỉ số khác để lọc tín hiệu đảo ngược giả
Tối ưu hóa chiến lược dừng lỗ, tìm điểm dừng lỗ tốt nhất
Chiến lược theo dõi xu hướng kép được xác nhận bởi 123 reversal và DTI, có thể xác định hiệu quả về tính chất của sự đảo ngược giá và nắm bắt hướng xu hướng mới, do đó cải thiện khả năng chiến lược. Tuy nhiên, thiết lập tham số và chiến lược dừng lỗ vẫn cần được kiểm tra và tối ưu hóa liên tục để tối đa hóa lợi nhuận của chiến lược. Nói chung, chiến lược này kết hợp các lợi thế của xu hướng và giao dịch đảo ngược, là một chiến lược định lượng đáng khuyên.
/*backtest
start: 2023-12-25 00:00:00
end: 2024-01-01 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 19/02/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 technique was described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). 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.
// Directional Trend Index is an indicator similar to DM+ developed by Welles Wilder.
// The DM+ (a part of Directional Movement System which includes both DM+ and
// DM- indicators) indicator helps determine if a security is "trending." William
// Blau added to it a zeroline, relative to which the indicator is deemed positive or
// negative. A stable uptrend is a period when the DTI value is positive and rising, a
// downtrend when it is negative and falling.
//
// 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
TDI(r,s,u,OS,OB) =>
pos = 0.0
xHMU = iff(high - high[1] > 0, high - high[1], 0)
xLMD = iff(low - low[1] < 0, -(low - low[1]), 0)
xPrice = xHMU - xLMD
xPriceAbs = abs(xPrice)
xuXA = ema(ema(ema(xPrice, r),s),u)
xuXAAbs = ema(ema(ema(xPriceAbs, r),s),u)
Val1 = 100 * xuXA
Val2 = xuXAAbs
DTI = iff(Val2 != 0, Val1 / Val2, 0)
pos := iff(DTI > OS, -1,
iff(DTI < OB, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Directional Trend Index (DTI)", 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(14, minval=1)
s = input(10, minval=1)
u = input(5, minval=1)
OS = input(45, minval=1)
OB = input(-45, maxval=-1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posTDI = TDI(r,s,u,OS,OB)
pos = iff(posReversal123 == 1 and posTDI == 1 , 1,
iff(posReversal123 == -1 and posTDI == -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 )