Hệ thống theo dõi đảo ngược trung bình di chuyển kép

Tác giả:ChaoZhang, Ngày: 2023-11-07 16:00:33
Tags:

img

Tổng quan

Hệ thống theo dõi đảo ngược trung bình động kép tích hợp chiến lược mô hình đảo ngược 123 và chiến lược Ichimoku để xác định các cơ hội đảo ngược và theo dõi xu hướng lợi nhuận vượt quá.

Chiến lược logic

Chiến lược bao gồm hai tiểu chiến lược:

  1. 123 Chiến lược đảo ngược mô hình

Chiến lược này giao dịch dựa trên các mô hình giá.

  • Đi dài khi giá đóng tăng trong hai ngày liên tiếp và stochastic chậm 9 ngày dưới 50.

  • Đi ngắn khi giá đóng giảm trong hai ngày liên tiếp và stochastic nhanh 9 ngày trên 50.

Nó sử dụng sự đột phá của ngày trước để xác định sự đảo ngược và sử dụng stochastics để lọc tiếng ồn.

  1. Chiến lược của Ichimoku

Chiến lược giao dịch này dựa trên 5 dòng giao dịch của Ichimoku.

  • Đi dài khi giá đóng là trên đường cơ sở.

  • Đi ngắn khi giá đóng dưới đường chuyển đổi.

Trong đó đường cơ sở là điểm trung bình của mức cao nhất và thấp nhất trong 26 ngày qua, và đường chuyển đổi là điểm trung bình của mức cao nhất và thấp nhất trong 9 ngày qua.

Chiến lược cuối cùng kết hợp các tín hiệu từ hai chiến lược phụ, vào khi cả hai tín hiệu dài hoặc ngắn và thoát khi chúng không đồng ý.

Phân tích lợi thế

  • Kết hợp đảo ngược và theo xu hướng, linh hoạt trong việc bắt đảo ngược và xu hướng.

  • Mô hình 123 đơn giản và hiệu quả trong việc xác định sự đảo ngược.

  • Các thông số của Ichimoku được tối ưu hóa, với nguy cơ thoát bệnh thấp hơn.

  • Kết hợp hai chiến lược khác nhau có thể đạt được tối ưu hóa.

Phân tích rủi ro

  • Các chiến lược đảo ngược có xu hướng mắc cạm bẫy và thua lỗ.

  • Ichimoku có thể trải qua những đòn thổi phồng trong các thị trường giới hạn phạm vi.

  • Các thông số không tương thích khi kết hợp các chiến lược có thể dẫn đến tín hiệu quá thường xuyên hoặc thưa thớt.

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

  • Kiểm tra nhiều chỉ số hơn để lọc tốt hơn, ví dụ như kết hợp khối lượng.

  • Tối ưu hóa các thông số Ichimoku để phù hợp với các đặc điểm của thiết bị.

  • Thêm các cơ chế dừng lỗ, ví dụ như thiết lập lối ra dựa trên ATR.

  • Thêm mô-đun quản lý tiền để kiểm soát rủi ro.

  • Thu thập nhiều dữ liệu hơn cho backtesting mạnh mẽ, khám phá các vấn đề và lặp lại.

Kết luận

Hệ thống theo dõi đảo ngược trung bình di chuyển kép kết hợp các điểm mạnh của các chiến lược đảo ngược và theo xu hướng thông qua tối ưu hóa và kết hợp cho thế hệ alpha. Nó có những ưu điểm giao dịch nhưng rủi ro như whipsaws và dừng lỗ tồn tại. Chúng ta cần tiếp tục cải thiện logic trong backtests và thực hiện kiểm soát rủi ro thích hợp cho sự ổn định và hiệu suất trong thế giới thực. Nhìn chung nó cung cấp một cách tiếp cận tốt để kết hợp các chiến lược khác nhau cho kết quả tổng thể tốt hơn.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 26/11/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
//  Ichimoku Strategy
//
// 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

middleDonchian(Length) =>
    lower = lowest(Length)
    upper = highest(Length)
    avg(upper, lower)    
    
Ichimoku2c(conversionPeriods, basePeriods,laggingSpan2Periods,displacement) =>
    pos = 0.0
    Tenkan = middleDonchian(conversionPeriods)
    Kijun =  middleDonchian(basePeriods)
    xChikou = close
    SenkouA = middleDonchian(laggingSpan2Periods)
    SenkouB = (Tenkan[basePeriods] + Kijun[basePeriods]) / 2
    pos := iff(close < SenkouA[displacement], -1,
              iff(close > SenkouB, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ichimoku2c", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
conversionPeriods = input(9, minval=1),
basePeriods = input(26, minval=1)
laggingSpan2Periods = input(52, minval=1),
displacement = input(26, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posIchimoku2c = Ichimoku2c(conversionPeriods, basePeriods,laggingSpan2Periods,displacement)
pos = iff(posReversal123 == 1 and posIchimoku2c == 1 , 1,
	   iff(posReversal123 == -1 and posIchimoku2c == -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