Chiến lược theo dõi xu hướng động cơ chế kép


Ngày tạo: 2024-01-31 11:13:44 sửa đổi lần cuối: 2024-01-31 11:13:44
sao chép: 0 Số nhấp chuột: 558
1
tập trung vào
1617
Người theo dõi

Chiến lược theo dõi xu hướng động cơ chế kép

Tổng quan

Chiến lược theo dõi xu hướng động của hai cơ chế là một chiến lược theo dõi xu hướng kết hợp hai tín hiệu chiến lược giao dịch khác nhau. Chiến lược này đầu tiên sử dụng chiến lược đảo ngược 123 để xác định điểm đảo ngược giá, sau đó kết hợp với chỉ số tổng hợp giá ((D_DSP) để xác định hướng xu hướng giá, và cuối cùng kết hợp hai tín hiệu để tạo ra chỉ thị giao dịch.

Chiến lược này chủ yếu được sử dụng để theo dõi xu hướng trung hạn, thiết lập điểm dừng động thông qua cơ chế kép, có thể khóa lợi nhuận một cách hiệu quả và tránh sự gia tăng lỗ. Đồng thời, kết hợp với chỉ số xu hướng và xác nhận kép của chỉ số đảo ngược, có thể làm giảm tiếng ồn giao dịch.

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

123 Chiến lược đảo ngược

Chiến lược 123 reversal bắt nguồn từ Ulf Jensen’s How I Triple My Money in the Futures Market, trang 183. Chiến lược này đánh giá xem liệu giá có xuất hiện hai hình thức đảo ngược BAR liên tiếp tạo thành tín hiệu đảo ngược giá hay không.

Logic cụ thể là, nếu giá đóng cửa thấp hơn giá đóng cửa ngày trước và đường K chậm thấp hơn 50, sẽ tạo ra tín hiệu mua; Nếu giá đóng cửa cao hơn giá đóng cửa ngày trước và đường K nhanh hơn 50, sẽ tạo ra tín hiệu bán.

Chỉ số giá tổng hợp

Chỉ số giá tổng hợp xu hướng ngược ((D_DSP) là một chỉ số được sử dụng để xác định hướng xu hướng giá, chỉ số này phù hợp với sự thay đổi chu kỳ giá thực. D_DSP được tính bằng cách lấy chỉ số chuyển động trung bình 14 chu kỳ của giá và trừ đi chỉ số chuyển động trung bình 12 chu kỳ.

Nếu D_DSP là dương, nghĩa là giá đang trong xu hướng tăng; nếu D_DSP là âm, nghĩa là giá đang trong xu hướng giảm.

Phân tích cơ chế kép

Chiến lược này tạo ra các lệnh giao dịch bằng cách kết hợp hai cơ chế phán quyết của chiến lược đảo ngược 123 và chỉ số D_DSP, nếu hai tín hiệu đồng hướng (như số đôi hoặc số không), và thanh toán nếu tín hiệu không phù hợp.

Cơ chế xác nhận đôi này có thể lọc hiệu quả các giao dịch ồn ào và khóa các xu hướng lợi nhuận.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược theo dõi xu hướng động của hai cơ chế là thiết lập điểm dừng ở hai cấp. Đầu tiên, trên chiều thời gian, sự chênh lệch của chỉ số ngẫu nhiên nhanh chóng tạo thành một điểm dừng sai thời gian; thứ hai, trên chiều giá, chiến lược đảo ngược tự nó chứa một số chức năng dừng.

Hai lớp dừng này có thể khóa lợi nhuận tối đa và ngăn chặn sự mất mát của chiến lược dừng lỗ đơn. Ngoài ra, cơ chế xác nhận kép cũng có thể lọc hiệu quả các tín hiệu lỗi do biến động giá theo hướng phi chính thống gây ra.

Phân tích rủi ro

Rủi ro lớn nhất của chiến lược này là các tham số được đặt quá cứng. Ví dụ: thiết lập độ dài chu kỳ không đúng có thể bỏ lỡ xu hướng chính, do đó bỏ lỡ cơ hội kiếm lợi nhuận hoặc tăng lỗ; xác nhận kép quá cứng cũng có thể bỏ lỡ lỗ dừng kịp thời.

Ngoài ra, khi chiến lược đảo ngược được kết hợp với chiến lược xu hướng, các hoạt động thanh toán trong trường hợp cả hai phán quyết không phù hợp cũng có thể bỏ lỡ cơ hội để xu hướng tiếp theo tiếp tục chạy theo một hướng chính thống.

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

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Tối ưu hóa tham số chu kỳ. Tính toán giá trị tối ưu của tham số bằng nhiều dữ liệu đo lại, thiết lập tham số chu kỳ phù hợp hơn.

  2. Thêm chiến lược dừng lỗ. Ví dụ: phá vỡ dừng lỗ, theo dõi dừng lỗ, thiết lập điểm dừng động hơn và hợp lý hơn.

  3. Tối ưu hóa quy tắc phán quyết. Điều chỉnh độ nhạy cảm của phán quyết xác nhận đôi, ngăn chặn cơ hội bị mất quá mức thanh toán quá mức.

  4. Thêm bộ lọc. Thiết lập bộ lọc biến động giá, tránh tín hiệu sai lầm biến động chênh lệch đường trung bình cuối xu hướng

Tóm tắt

Chiến lược theo dõi xu hướng động của hai cơ chế thực hiện theo dõi xu hướng và kiểm soát rủi ro hiệu quả bằng cách xác nhận hai lần dừng và đảo ngược và xác định xu hướng bằng các chỉ số ngẫu nhiên nhanh chóng. Chiến lược này xem xét cả yếu tố thời gian của hành động giá cả và cũng xem xét định hướng của chính giá cả, tạo ra cơ sở quyết định ba chiều.

Chiến lược này có thể đạt được hiệu quả tốt hơn bằng cách liên tục tối ưu hóa các quy tắc phán đoán và thiết lập tham số. Tuy nhiên, tối ưu hóa chiến lược giao dịch cần được hỗ trợ bởi nhiều thử nghiệm dữ liệu lịch sử, chiến lược chọn cổ phiếu và chiến lược dừng lỗ cũng cần được cải tiến liên tục.

Mã nguồn chiến lược
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/11/2019
// 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
// Detrended Synthetic Price is a function that is in phase with the 
// dominant cycle of real price data. This DSP is computed by subtracting 
// a half-cycle exponential moving average (EMA) from the quarter cycle 
// exponential moving average.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70. 
//
// 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

D_DSP(Length) =>
    pos = 0.0
    xHL2 = hl2
    xEMA1 = ema(xHL2, Length)
    xEMA2 = ema(xHL2, 2 * Length)
    xEMA1_EMA2 = xEMA1 - xEMA2
    pos := iff(xEMA1_EMA2 > 0, 1,
             iff(xEMA1_EMA2 < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & D_DSP (Detrended Synthetic Price)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDSP = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posD_DSP = D_DSP(LengthDSP)
pos = iff(posReversal123 == 1 and posD_DSP == 1 , 1,
	   iff(posReversal123 == -1 and posD_DSP == -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 )