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

Tác giả:ChaoZhang, Ngày: 2023-09-27 16:14:25
Tags:

Tổng quan

Chiến lược theo dõi xu hướng kép kết hợp hai tín hiệu chiến lược khác nhau để nắm bắt chính xác hơn xu hướng thị trường và tạo ra lợi nhuận dư thừa.

Chiến lược logic

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

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

    Chiến lược đảo ngược 123 đầu tiên đánh giá mối quan hệ giá đóng giữa hai ngày trước. Nếu giá đóng đã đảo ngược gần đây (ví dụ, giá đóng tăng hôm qua và giảm ngày hôm trước), nó cho thấy một điểm chuyển đổi tiềm năng.

    Sau đó, nó kết hợp chỉ số Stoch để xác định thời gian mua và bán. Khi đường nhanh Stoch dưới một mức nhất định (ví dụ 50) và đường chậm nằm trên đường nhanh, nó được coi là quá bán và tạo ra tín hiệu mua. Khi đường nhanh Stoch trên một mức nhất định (ví dụ 50) và đường chậm nằm dưới đường nhanh, nó được coi là quá mua và tạo ra tín hiệu bán.

    Vì vậy, chiến lược đảo ngược 123 đòi hỏi xác nhận từ chỉ số Stoch ngoài việc xác định đảo ngược giá để tạo ra các tín hiệu giao dịch thực tế.

  2. Chỉ số mua quá/bán quá

    Chỉ số mua quá mức / bán quá mức trực tiếp sử dụng chỉ số Stoch. Khi chỉ số Stoch vượt quá một mức nhất định (ví dụ 90), nó được coi là mua quá mức và tạo ra tín hiệu bán. Khi chỉ số Stoch dưới một mức nhất định (ví dụ 20), nó được coi là bán quá mức và tạo ra tín hiệu mua.

    Chỉ số này đánh giá mức mua quá mức / bán quá mức trực tiếp thông qua chỉ số Stoch để theo dõi xu hướng.

Cuối cùng, chiến lược kết hợp các tín hiệu từ hai chiến lược - chỉ khi các tín hiệu ở cùng một hướng, các tín hiệu mua hoặc bán cuối cùng sẽ được tạo ra để nắm bắt chính xác hơn xu hướng thị trường.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược Dual Trend Tracking là nó có thể xác minh cả xu hướng giá và điều kiện mua quá mức / bán quá mức để tránh các tín hiệu giao dịch sai.

  1. Kết hợp hai tín hiệu chiến lược cung cấp xác minh mạnh mẽ hơn và giảm tổn thất do lỗi trong một chiến lược duy nhất.

  2. Chiến lược đảo ngược 123 có thể nắm bắt các điểm đảo ngược xu hướng tiềm năng kịp thời.

  3. Chỉ số mua quá mức / bán quá mức có thể xác minh điều kiện thị trường hiện tại và tránh theo đuổi mức cao và bán thấp.

  4. Hai chiến lược có thể xác minh lẫn nhau để tránh tín hiệu sai, cải thiện sự ổn định.

  5. Nó kết hợp các chỉ số đơn giản và hiệu quả với logic rõ ràng dễ hiểu và áp dụng.

Phân tích rủi ro

Mặc dù chiến lược cải thiện sự ổn định thông qua xác minh kết hợp, một số rủi ro vẫn tồn tại:

  1. Chiến lược đảo ngược 123 không thể xác định hoàn hảo các điểm đảo ngược và có thể bỏ lỡ một số cơ hội.

  2. Chỉ số mua quá mức / bán quá mức chỉ dựa vào một chỉ số Stoch và có thể tạo ra tín hiệu sai. Thêm đường MA vv để xác minh.

  3. Hai tín hiệu chiến lược có thể hủy bỏ nhau và bỏ lỡ cơ hội. Điều chỉnh các tham số để giảm hạn chế.

  4. Chiến lược chỉ được kiểm tra lại trên dữ liệu lịch sử. Các thông số cần tối ưu hóa liên tục trong giao dịch trực tiếp. Thêm cơ chế dừng lỗ để kiểm soát lỗ.

  5. Các tham số cần thử nghiệm và tối ưu hóa độc lập cho các sản phẩm và thời gian giao dịch khác nhau.

Hướng dẫn tối ưu hóa

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

  1. Tối ưu hóa các tham số cho cả hai chiến lược để tạo ra các hồ chứa tham số cho các chương trình tối ưu hóa để chọn trong các điều kiện thị trường khác nhau.

  2. Thêm các điều kiện lọc dựa trên MA, Bollinger Bands vv để tránh tín hiệu sai.

  3. Thêm các cơ chế dừng lỗ như dừng lỗ kéo theo, dừng lỗ di chuyển, dừng lỗ thời gian v.v. để kiểm soát giảm tối đa.

  4. Xem xét thêm các bộ lọc về khối lượng hoặc vị trí cho các sản phẩm khác nhau để tránh thanh khoản thấp.

  5. Nghiên cứu sự tiến hóa của các thông số theo thời gian và sử dụng máy học để tối ưu hóa tự động.

  6. Tối ưu hóa tần suất nhập cảnh để tránh giao dịch quá mức trên các thị trường không có xu hướng.

Kết luận

Chiến lược theo dõi xu hướng kép xác định chính xác sự đảo ngược xu hướng trong khi xác minh mức mua quá mức / bán quá mức bằng cách kết hợp các chiến lược đảo ngược 123 và mua quá mức / bán quá mức. Điều này lọc ra các tín hiệu sai và nắm bắt xu hướng thực tế cho lợi nhuận quá mức. Nó ổn định và có lợi hơn các chiến lược chỉ số duy nhất. Nhưng rủi ro nên được quản lý thông qua việc dừng lỗ kịp thời. Những cải tiến trong tương lai có thể được thực hiện thông qua tối ưu hóa tham số, thêm bộ lọc, tự động hóa vv.


/*backtest
start: 2022-09-20 00:00:00
end: 2023-09-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/03/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
// Simple Overbought/Oversold indicator
//
// 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


OO(Length,BuyBand,SellBand) =>
    pos = 0.0
    xOBOS = stoch(close, high, low, Length)
    nRes = iff(close > close[Length], xOBOS / 100, (100 - xOBOS) / 100)
    pos :=iff(nRes < SellBand, -1,
           iff(nRes > BuyBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Overbought/Oversold", 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, "---- Overbought/Oversold ----")
LengthOO = input(10, minval=1)
BuyBand = input(0.92, step = 0.01)
SellBand = input(0.5, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posOO = OO(LengthOO,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posOO == 1 , 1,
	   iff(posReversal123 == -1 and posOO == -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