Chiến lược đảo ngược trung bình di chuyển kép

Tác giả:ChaoZhang, Ngày: 2023-09-26 15:27:58
Tags:

Tổng quan

Chiến lược đảo ngược trung bình động kép là một chiến lược giao dịch kết hợp các nguyên tắc đảo ngược trung bình và trung bình động. Nó đầu tiên tạo ra các tín hiệu giao dịch đảo ngược bằng cách sử dụng phương pháp đảo ngược 123, và sau đó lọc các tín hiệu với trung bình động theo hàm số 2/20, chỉ giao dịch khi tín hiệu từ cả hai phù hợp để cải thiện độ bền. Chiến lược này nhằm mục đích nắm bắt các cơ hội đảo ngược ngắn hạn trong khi sử dụng bộ lọc xu hướng dài hạn để xác định các thiết lập xác suất cao.

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 bắt nguồn từ cuốn sách How I Tripped My Money in the Futures Market. Nó dựa trên ý tưởng rằng nếu giá đóng giảm từ mức cao xuống mức thấp trong 2 ngày, và stochastic chậm 9 ngày dưới 50, nó báo hiệu một điểm đảo ngược để đi dài. Nếu giá đóng tăng từ mức thấp lên mức cao trong 2 ngày, và stochastic nhanh 9 ngày trên 50, nó báo hiệu một điểm đảo ngược để đi ngắn.

  1. 2/20 Chiến lược đường trung bình chuyển động theo hàm số

Chiến lược này sử dụng EMA 2/20 để xác định xu hướng dài hạn. Khi giá vượt qua đường EMA 2/20, nó báo hiệu xu hướng tăng. Khi giá dưới đường EMA 2/20, nó báo hiệu xu hướng giảm. Điều này lọc ra các đột phá sai.

Chiến lược chỉ tạo ra tín hiệu giao dịch khi tín hiệu đảo ngược 123 phù hợp với tín hiệu EMA 2/20.

Phân tích lợi thế

Chiến lược này có những lợi thế sau đây bằng cách kết hợp sự đảo ngược ngắn hạn và xu hướng dài hạn:

  1. Nhận được cơ hội lợi nhuận cao từ những sự đảo ngược ngắn hạn

123 mục tiêu đảo ngược các kịch bản mua quá mức và bán quá mức, nơi thường xảy ra biến động giá đáng kể, cho phép các mục tiêu lợi nhuận lớn hơn.

  1. 2/20 EMA filter tránh rủi ro phá vỡ sai

Các chiến lược đảo ngược thuần túy dễ bị thị trường xu hướng. Bộ lọc EMA 2/20 loại bỏ các tín hiệu chống lại xu hướng, ngăn chặn các giao dịch xấu trong khi giả mạo.

  1. Các điều kiện kép cải thiện hồ sơ rủi ro và phần thưởng

Một chỉ số duy nhất thường tạo ra các tín hiệu sai. Kết hợp hai chỉ số bổ sung cải thiện đáng kể độ tin cậy và kết quả rủi ro-lợi nhuận.

  1. Logic rõ ràng làm cho tối ưu hóa trực quan

Chức năng rõ ràng của mỗi thành phần làm cho logic trực quan để hiểu, tối ưu hóa và thích nghi với môi trường thị trường thay đổi.

Phân tích rủi ro

Mặc dù có những lợi thế, một số rủi ro cần phải được xem xét:

  1. Sự đảo ngược có thể không xảy ra

Hiệu suất trong quá khứ không đảm bảo kết quả trong tương lai.

  1. Xu hướng có thể kéo dài

EMA 2/20 không thể lọc hoàn toàn các thị trường có xu hướng mạnh.

  1. Tối ưu hóa tham số là rất quan trọng

Hiệu suất rất nhạy cảm với các thiết lập tham số phải được tối ưu hóa mạnh mẽ thông qua kiểm tra ngược rộng rãi và điều chỉnh cho thị trường thay đổi.

  1. Hiệu quả lâu dài không chắc chắn

Kết quả ngắn hạn tốt không đảm bảo hiệu suất lâu dài.

Những rủi ro này có thể được quản lý thông qua điều chỉnh tham số, dừng lỗ, kiểm soát rủi ro vv. Nhiều điều kiện như khối lượng, chỉ số biến động có thể cải thiện độ bền.

Cơ hội gia tăng

Một số cách để tối ưu hóa thêm chiến lược:

  1. Tối ưu hóa các thông số đảo ngược

Kiểm tra các bộ tham số khác nhau để tìm các mô hình đảo ngược ổn định và rõ rệt hơn cho tín hiệu chất lượng cao hơn.

  1. Tối ưu hóa các hệ thống trung bình động

Thử nghiệm với các thông số MA khác nhau hoặc kết hợp nhiều kiểm tra MA để đánh giá xu hướng chính xác hơn.

  1. Thêm thêm bộ lọc

Khối lượng, độ biến động và các bộ lọc khác có thể được kết hợp để giảm tín hiệu sai và cải thiện sự ổn định.

  1. Thực hiện tối ưu hóa động

Kỹ thuật học máy trên các bộ dữ liệu lịch sử lớn có thể cho phép điều chỉnh tham số năng động và mạnh mẽ.

  1. Kết hợp các chiến lược dừng lỗ

Các quy tắc dừng lỗ thông minh giúp kiểm soát mức rút tiền tối đa và rủi ro.

  1. Tối ưu hóa quản lý tiền bạc

Định kích thước vị trí tốt hơn và phân bổ vốn có thể cải thiện hiệu suất tổng thể.

Kết luận

Sự đảo ngược trung bình di chuyển kép là một chiến lược giao dịch ngắn hạn đơn giản nhưng thực tế. Bằng cách kết hợp sự đảo ngược trung bình và các khái niệm theo xu hướng, nó nhằm mục đích kiếm lợi từ sự đảo ngược giá có khả năng cao trong khi tránh phá vỡ sai. Logic rõ ràng làm cho nó trực quan để hiểu, tối ưu hóa và áp dụng. Tuy nhiên, không có chiến lược nào là không có rủi ro.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/08/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 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// 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


EMA220(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ema(xPrice, Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos :=  iff(close > xXA and close > nXS , 1,
    	     iff(close < xXA and close < nXS, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & 2/20 Exponential MA", 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, "---- 2/20 Exponential MA ----")
LengthMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA220 = EMA220(LengthMA)
pos = iff(posReversal123 == 1 and posEMA220 == 1 , 1,
	   iff(posReversal123 == -1 and posEMA220 == -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