Một hệ thống mạnh mẽ kết hợp các chiến lược đảo ngược và theo xu hướng

Tác giả:ChaoZhang, Ngày: 2023-10-27 16:22:08
Tags:

img

Tổng quan

Hệ thống Breakout Chuyển đổi Double Dip kết hợp các yếu tố của các chiến lược đảo ngược và theo xu hướng trong giao dịch định lượng. Nó tạo ra tín hiệu mua bằng cách phát hiện các ngày giảm liên tiếp so với giá đóng trước đó và bán tín hiệu khi giá vượt qua đường trung bình động T3, cho phép giao dịch có lợi nhuận trong khi quản lý rủi ro.

Làm thế nào nó hoạt động

Hệ thống bao gồm hai thành phần:

  1. 123 Sự đảo ngược

Nó quan sát sự thay đổi giá đóng trong N ngày qua. Nếu giá đóng hôm nay cao hơn ngày hôm qua và ngày hôm qua thấp hơn ngày hôm trước, nó báo hiệu hai ngày giảm liên tiếp và kích hoạt tín hiệu mua. Nó cũng sử dụng chỉ số STOCH - khi đường nhanh STOCH ngày hôm nay thấp hơn đường chậm, nó xác nhận thêm tính hợp lệ của tín hiệu mua.

  1. Trung bình di chuyển T3

Đường T3 được tính dựa trên các đường trung bình động theo cấp số nhân bằng cách sử dụng một công thức đặc biệt. Bằng cách điều chỉnh các tham số, nó kiểm soát độ nhạy của đường trung bình động đối với sự thay đổi giá. Một tín hiệu bán được tạo ra khi giá vượt qua đường T3.

Hệ thống kết hợp hai tín hiệu trên, tạo ra các tín hiệu giao dịch thực tế chỉ khi tín hiệu mua 123 Reversal và tín hiệu bán T3 xảy ra cùng nhau.

Phân tích lợi thế

  • Hiệu quả đối với các giao dịch đảo ngược đánh bắt cá đáy và đạp ngược xu hướng
  • Mức trung bình động giúp khóa lợi nhuận và quản lý rủi ro
  • Cơ chế hai tín hiệu cải thiện hiệu lực tín hiệu và giảm tín hiệu sai
  • Kết hợp các điểm mạnh của cả hai chiến lược theo xu hướng và đảo ngược
  • Các thông số điều chỉnh cho phép linh hoạt cho các điều kiện thị trường khác nhau

Phân tích rủi ro

  • Các tín hiệu đảo ngược có thể sai, dẫn đến việc thua lỗ giao dịch
  • Điều chỉnh tham số không chính xác có thể gây ra giao dịch quá mức, tăng chi phí
  • Bán tín hiệu từ trung bình động có thể sớm thoát khỏi xu hướng lợi nhuận
  • Rủi ro như săn stop-loss vẫn tồn tại trong thời gian thị trường biến động
  • Các thông số cần được tối ưu hóa cho các thiết bị khác nhau

Để giải quyết rủi ro, có thể làm như sau:

  1. Điều chỉnh các tham số đảo ngược để cải thiện hiệu lực tín hiệu
  2. Điều chỉnh các thông số trung bình động để kéo dài thời gian giữ
  3. Thêm stop-loss để giới hạn lỗ
  4. Tối ưu hóa các tham số riêng biệt cho các thiết bị khác nhau

Cơ hội gia tăng

Chiến lược có thể được cải thiện trong một số khía cạnh:

  1. Thêm bộ lọc để đảm bảo hiệu lực tín hiệu

    Các chỉ số bổ sung như khối lượng đột phá có thể được thêm vào như bộ lọc để tránh giao dịch sai.

  2. Điều chỉnh các tham số cho thị trường thay đổi

    Kiểm tra lại các kết hợp tham số khác nhau và chọn tập hợp mang lại lợi nhuận cao nhất.

  3. Kết hợp học máy cho tối ưu hóa thích nghi

    Thu thập các bộ dữ liệu lịch sử lớn, đào tạo các mô hình ML để dự đoán các điểm vào / ra tối ưu và tối ưu hóa các tham số một cách năng động.

  4. Tối ưu hóa các tham số riêng biệt cho các thiết bị khác nhau

    Các nhạc cụ có các đặc điểm khác nhau, vì vậy các thông số tối ưu của chúng cũng khác nhau.

Kết luận

Hệ thống Breakout đảo ngược đập đôi kết hợp hợp tác hiệu quả giữa việc theo dõi xu hướng và giao dịch đảo ngược. Nó cho phép mua ở mức thấp sau khi giảm và đảm bảo lợi nhuận từ xu hướng bằng cách sử dụng đường trung bình động. Sự kết hợp hiệu quả của các tín hiệu đảo ngược và xu hướng tận dụng các cơ hội đảo ngược trong khi khóa lợi nhuận. Mặc dù có một số rủi ro, chiến lược có thể được cải thiện thông qua tối ưu hóa tham số, thêm các bộ lọc vv để phù hợp với các điều kiện thị trường khác nhau. Nó cung cấp những hiểu biết hiệu quả cho giao dịch định lượng và xứng đáng được nâng cao hơn nữa.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/09/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
// This indicator plots the moving average described in the January, 1998 issue
// of S&C, p.57, "Smoothing Techniques for More Accurate Signals", by Tim Tillson.
// This indicator plots T3 moving average presented in Figure 4 in the article.
// T3 indicator is a moving average which is calculated according to formula:
//     T3(n) = GD(GD(GD(n))),
// where GD - generalized DEMA (Double EMA) and calculating according to this:
//     GD(n,v) = EMA(n) * (1+v)-EMA(EMA(n)) * v,
// where "v" is volume factor, which determines how hot the moving average’s response
// to linear trends will be. The author advises to use v=0.7.
// When v = 0, GD = EMA, and when v = 1, GD = DEMA. In between, GD is a less aggressive
// version of DEMA. By using a value for v less than1, trader cure the multiple DEMA
// overshoot problem but at the cost of accepting some additional phase delay.
// In filter theory terminology, T3 is a six-pole nonlinear Kalman filter. Kalman
// filters are ones that use the error — in this case, (time series - EMA(n)) — 
// to correct themselves. In the realm of technical analysis, these are called adaptive
// moving averages; they track the time series more aggres-sively when it is making large
// moves. Tim Tillson is a software project manager at Hewlett-Packard, with degrees in
// mathematics and computer science. He has privately traded options and equities for 15 years.  
//
// 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


T3A(Length, b) =>
    pos = 0.0
    xPrice = close
    xe1 = ema(xPrice, Length)
    xe2 = ema(xe1, Length)
    xe3 = ema(xe2, Length)
    xe4 = ema(xe3, Length)
    xe5 = ema(xe4, Length)
    xe6 = ema(xe5, Length)
    c1 = -b*b*b
    c2 = 3*b*b+3*b*b*b
    c3 = -6*b*b-3*b-3*b*b*b
    c4 = 1+3*b+b*b*b+3*b*b
    nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3
    pos:= iff(nT3Average > close, -1,
           iff(nT3Average < close, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & T3 Averages", 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, "---- T3 Averages ----")
LengthT3 = input(5, minval=1)
b = input(0.7, minval=0.01,step=0.01) 
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posT3A = T3A(LengthT3, b)
pos = iff(posReversal123 == 1 and posT3A == 1 , 1,
	   iff(posReversal123 == -1 and posT3A == -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