Chiến lược theo dõi xu hướng kết hợp

Tác giả:ChaoZhang, Ngày: 2024-01-02 10:41:30
Tags:

img

Tổng quan

Chiến lược theo dõi xu hướng combo là một chiến lược giao dịch định lượng kết hợp hai chỉ số để đánh giá xu hướng.

Nguyên tắc chiến lược

Chiến lược bao gồm hai phần chính:

  1. 123 Chỉ số đảo ngược

    Nguyên tắc đánh giá của chỉ số 123 là:

    • Khi giá đóng tăng liên tục trong 2 ngày và đường K chậm 9 ngày thấp hơn 50, mua dài;

    • Khi giá đóng giảm liên tục trong 2 ngày và đường K nhanh 9 ngày cao hơn 50, đi ngắn.

    Điều này có thể nắm bắt thời điểm đảo ngược giá.

  2. Chỉ số xu hướng theo hướng (DTI)

    Nguyên tắc đánh giá chỉ số DTI là: tính toán trung bình động của biến động giá tuyệt đối trong một khoảng thời gian, và sau đó chia nó cho biến động giá trung bình.

    • Khi DTI cao hơn đường mua quá mức, điều đó có nghĩa là dòng chảy là xu hướng giảm;

    • Khi DTI thấp hơn đường bán quá mức, điều đó có nghĩa là hiện tại là một xu hướng tăng.

  3. Sự kết hợp

    Đầu tiên, sử dụng chỉ số 123 đảo ngược để xác định liệu tín hiệu đảo ngược giá có xảy ra hay không. sau đó, kết hợp với chỉ số DTI để xác định hướng xu hướng tổng thể sau khi đảo ngược.

    Điều này tránh được vấn đề đảo ngược sai do chỉ dựa vào tín hiệu đảo ngược, do đó cải thiện sự ổn định và lợi nhuận của các chiến lược.

Ưu điểm

  1. Xác nhận hai chỉ số tránh rủi ro do đảo ngược sai

  2. Kết hợp sự đảo ngược và xu hướng tạo ra sự cân bằng giữa tính linh hoạt và ổn định hoạt động

  3. Không gian tối ưu hóa tham số lớn, có thể được điều chỉnh linh hoạt để thích nghi với các loại khác nhau

Phân tích rủi ro

  1. Đặt các thông số DTI đòi hỏi kinh nghiệm, không phù hợp sẽ đánh giá sai hướng xu hướng

  2. Sự đảo ngược không nhất thiết đại diện cho một xu hướng mới, có thể có dao động giới hạn trong phạm vi

  3. Cần phải dừng lỗ hiệu quả để kiểm soát lỗ đơn

    Giải pháp: Kiểm tra tối ưu hóa tham số + Mất dừng hợp lý + Kết hợp các chỉ số khác

Hướng tối ưu hóa

  1. Kiểm tra các thông số DTI để tìm kết hợp các thông số tối ưu

  2. Sử dụng các chỉ báo khác để lọc các tín hiệu đảo ngược sai

  3. Tối ưu hóa chiến lược dừng lỗ và tìm điểm dừng lỗ tối ưu

Tóm lại

Chiến lược theo dõi xu hướng combo xác định hiệu quả tính thiết yếu của sự đảo ngược giá và nắm bắt các hướng xu hướng mới thông qua việc xác nhận hai lần 123 đảo ngược và DTI, do đó cải thiện lợi nhuận của các chiến lược. Tuy nhiên, cài đặt tham số và chiến lược dừng lỗ vẫn đòi hỏi phải thử nghiệm và tối ưu hóa liên tục để tối đa hóa không gian lợi nhuận của các chiến lược. Nhìn chung, bằng cách kết hợp các lợi thế của giao dịch xu hướng và giao dịch đảo ngược, đây 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 )

Thêm nữa