Chiến lược theo dõi đảo ngược nhiều yếu tố

Tác giả:ChaoZhang, Ngày: 2023-09-15 14:31:15
Tags:

Tổng quan chiến lược

Chiến lược theo dõi đảo ngược đa yếu tố tạo ra tín hiệu giao dịch bằng cách kết hợp các mô hình đảo ngược giá và các chỉ số mua quá mức bán quá mức. Nó tổng hợp nhiều yếu tố để xác định mức cao và thấp của thị trường và tạo ra các tín hiệu giao dịch tại các điểm đảo ngược để nắm bắt sự đảo ngược giá trung hạn ngắn hạn.

Chiến lược logic

Chiến lược bao gồm hai mô-đun:

  1. 123 Mô-đun mô hình đảo ngược
  • Đi ngắn khi thấy mức cao mới 2 ngày nhưng rút lại vào ngày thứ 3, cho thấy mức cao ngắn hạn tiềm năng.

  • Đi dài khi thấy mức thấp mới 2 ngày nhưng bật lên vào ngày thứ 3, cho thấy mức thấp ngắn hạn tiềm năng.

  1. Mô-đun RSI được chế tạo ngược
  • Xác định các điểm đảo ngược bằng cách điều chỉnh năng động RSI các đường mua quá mức và bán quá mức.

  • Đi ngắn khi RSI trên đường mua quá mức điều chỉnh, đi dài khi RSI dưới đường bán quá mức điều chỉnh.

Các tín hiệu giao dịch chỉ được tạo ra khi cả hai mô-đun đều liên kết.

Ưu điểm lớn nhất là kết hợp nhiều yếu tố để xác định mức cao và thấp cấu trúc, lọc một số tín hiệu sai từ các yếu tố riêng lẻ và cải thiện tỷ lệ chiến thắng giao dịch thực tế.

Ưu điểm của Chiến lược

  • Kết hợp nhiều yếu tố để xác định toàn diện mức cao/mức thấp

  • Kết hợp các mô hình đảo ngược và các chỉ số mua quá mức / bán quá mức

  • Chế độ lọc đảo ngược sai, cải thiện độ chính xác

  • Các thông số backtest tối ưu hóa có thể thích nghi với các thị trường khác nhau

  • Dễ thực hiện để sao chép nhanh

Cảnh báo về rủi ro

  • Các tín hiệu đảo ngược có thể bị chậm, cần cập nhật tham số

  • Ngăn chặn giao dịch quá mức để tránh thêm hoa hồng

  • Các yếu tố cơ bản của từng cổ phiếu vẫn cần được xem xét

  • Chiến lược đảo ngược phù hợp hơn cho chỉ số và cổ phiếu nóng

Kết luận

Chiến lược theo dõi đảo ngược đa yếu tố kết hợp hoàn hảo các điểm mạnh của các công cụ lượng tử và kinh nghiệm phân tích thủ công bằng cách xem xét nhiều quan điểm cho tín hiệu giao dịch. So với các chiến lược chỉ số duy nhất, nó cải thiện đáng kể sự ổn định giao dịch thực tế và tỷ lệ thắng. Chiến lược này đáng để xác minh và tối ưu hóa trong backtests đầu tiên, sau đó dần dần thực hiện trong giao dịch trực tiếp, với giá trị thực tế rất rõ rệt.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/06/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
// The related article is copyrighted material from
// Stocks & Commodities.
//
// 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


RE_RSI(Value,WildPer) =>
    pos = 0.0
    AUC = 0.0
    ADC = 0.0
    ExpPer = 2 * WildPer - 1
    K = 2 / (ExpPer + 1)
    AUC := iff(close > close[1], K * (close - close[1]) + (1 - K) * nz(AUC[1], 1), (1-K) * nz(AUC[1], 1))
    ADC := iff(close > close[1], (1-K) * nz(ADC[1], 1), K * (close[1] - close) + (1 - K) * nz(ADC[1], 1))
    nVal = (WildPer - 1) * (ADC * Value / (100 - Value) - AUC)
    nRes = iff(nVal >= 0, close + nVal, close + nVal * (100 - Value) / Value)
    pos:= iff(nRes > close, -1,
    	   iff(nRes < close, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Reverse Engineering RSI, by Giorgos Siligardos", 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, "---- Reverse Engineering RSI ----")
Value = input(50, minval=1)
WildPer = input(14,minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRE_RSI = RE_RSI(Value,WildPer)
pos = iff(posReversal123 == 1 and posRE_RSI == 1 , 1,
	   iff(posReversal123 == -1 and posRE_RSI == -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