Chiến lược kết hợp 123 đảo ngược và RSI làm mịn

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

img

Tổng quan

Chiến lược này kết hợp mô hình đảo ngược 123 và chỉ số RSI làm mịn để nắm bắt các điểm đảo ngược xu hướng chính xác hơn cho tỷ lệ thắng cao hơn.

Chiến lược logic

  1. 123 xác định mô hình đảo ngược: tín hiệu đảo ngược dưới cùng khi giá đóng của hai ngày trước tạo thành một điểm cao thấp và ngày thứ ba đóng cao hơn ngày trước. tín hiệu đảo ngược trên cùng khi giá đóng của hai ngày trước tạo thành một điểm cao thấp và ngày thứ ba đóng thấp hơn ngày trước.

  2. Chỉ số RSI trơn tru: RSI trơn tru làm giảm sự chậm trễ của RSI bình thường bằng cách sử dụng đường trung bình động cân nhắc. RSI vượt qua ngưỡng cao là tín hiệu mua. RSI vượt dưới ngưỡng thấp là tín hiệu bán.

  3. Tín hiệu chiến lược: Tín hiệu giao dịch chỉ được tạo ra khi mô hình 123 đảo ngược và tín hiệu RSI trơn tru đồng ý. Mua khi 123 đảo ngược cho thấy đáy và RSI vượt qua mức cao. Bán khi 123 đảo ngược hình thành đỉnh và RSI vượt qua mức thấp.

Ưu điểm

  1. Kết hợp chỉ số xu hướng RSI và mô hình đảo ngược có thể xác định chính xác các điểm đảo ngược xu hướng.

  2. Chỉ số RSI làm mịn giảm sự chậm trễ của chỉ số RSI bình thường.

  3. Mô hình đảo ngược là đơn giản và dễ dàng để xác định.

  4. Các tham số linh hoạt có thể được điều chỉnh cho các công cụ và khung thời gian khác nhau.

  5. Dễ dàng tối ưu hóa và cải thiện với khả năng mở rộng cao.

Rủi ro

  1. 123 đơn giản đảo ngược có thể gây ra tín hiệu sai trong khi rút nhỏ.

  2. Tối ưu hóa RSI mượt là không đủ và dễ bị quá phù hợp.

  3. Xác nhận hai lần dẫn đến ít tín hiệu giao dịch hơn.

  4. Chi phí giao dịch bị bỏ qua có thể ngăn chặn các tài khoản nhỏ kiếm lợi nhuận.

  5. Không có cơ chế dừng lỗ để hạn chế downside.

Tăng cường

  1. Tối ưu hóa các thông số RSI để tìm ra sự kết hợp tốt nhất.

  2. Thêm các chỉ số hoặc mô hình khác để lọc tín hiệu.

  3. Thực hiện dừng lỗ để kiểm soát lỗ giao dịch duy nhất.

  4. Xem xét chi phí giao dịch, điều chỉnh các tham số cho các quy mô vốn khác nhau.

  5. Các thông số thử nghiệm trên các thiết bị và khung thời gian khác nhau để có các thông số tối ưu.

  6. Thêm chức năng để tối ưu hóa tham số tự động.

Tóm lại

Chiến lược này có logic rõ ràng và đơn giản, sử dụng mô hình đảo ngược kết hợp với chỉ số xu hướng để xác định sự đảo ngược xu hướng tiềm năng. Nó có lợi thế của khả năng áp dụng rộng rãi và tối ưu hóa dễ dàng, nhưng cũng có một số rủi ro để lưu ý và cải thiện.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/07/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 is new version of RSI oscillator indicator, developed by John Ehlers. 
// The main advantage of his way of enhancing the RSI indicator is smoothing 
// with minimum of lag penalty. 
//
// 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


SRSI(Length, TopBand,LowBand) =>
    pos = 0.0
    xValue = (close + 2 * close[1] + 2 * close[2] + close[3] ) / 6
    CU23 = sum(iff(xValue > xValue[1], xValue - xValue[1], 0), Length)
    CD23 = sum(iff(xValue < xValue[1], xValue[1] - xValue, 0), Length)
    nRes = iff(CU23 + CD23 != 0, CU23/(CU23 + CD23), 0)
    pos:= iff(nRes > TopBand, 1,
    	   iff(nRes < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Smoothed RSI", 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, "---- Smoothed RSI ----")
LengthRSI = input(10, minval=1)
TopBand = input(0.8, step=0.01)
LowBand = input(0.2, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSRSI = SRSI(LengthRSI, TopBand,LowBand )
pos = iff(posReversal123 == 1 and posSRSI == 1 , 1,
	   iff(posReversal123 == -1 and posSRSI == -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