Chiến lược giao dịch đảo ngược xác nhận hai lần

Tác giả:ChaoZhang, Ngày: 2023-11-14 13:42:47
Tags:

img

Tổng quan

Chiến lược giao dịch đảo ngược hai xác nhận kết hợp mô hình đảo ngược 123 với chỉ số Stochastic RSI để tạo ra một hệ thống đảo ngược trung bình mạnh mẽ. Nó cung cấp hai lớp xác nhận trước khi tham gia giao dịch, cải thiện độ chính xác và ổn định của chiến lược.

Chiến lược logic

Chiến lược bao gồm hai thành phần:

  1. 123 Phục hồi

Nó sử dụng mô hình 123 để xác định khả năng đảo ngược.

  • Long if close < previous close và current close > previous close và 9-day Slow Stochastic < 50

  • Short nếu close > previous close và current close < previous close và 9-day Fast Stochastic > 50

Điều này cung cấp một tín hiệu sớm cho sự đảo ngược giá.

  1. Chỉ số RSI ngẫu nhiên

Nó áp dụng chỉ số Stochastic trên RSI để xác nhận thêm:

  • Tính toán RSI với chiều dài 14

  • Tính toán Stochastic của RSI, với chiều dài 14, để có được K

  • Lấy SMA 3 ngày của K để có được D

  • Nếu K vượt trên 80, nó chỉ ra dài. Nếu K vượt dưới 20, nó chỉ ra ngắn.

Một giao dịch chỉ được kích hoạt khi cả hai bên đồng ý.

Phân tích lợi thế

Ưu điểm chính của chiến lược này là xác nhận hai lần, cải thiện độ chính xác và giảm bớt các whipsaws.

  1. 123 đảo ngược cung cấp phát hiện sớm của sự đảo ngược xu hướng

  2. Stochastic RSI xác nhận tín hiệu đảo ngược

  3. Sự kết hợp cải thiện tỷ lệ thắng và giảm tín hiệu sai

  4. Các thông số có thể được tối ưu hóa cho các thị trường khác nhau

  5. Thực hiện đơn giản và sạch sẽ cho giao dịch trực tiếp

Phân tích rủi ro

Một số rủi ro cần xem xét cho chiến lược này:

  1. Rủi ro đảo ngược không thành công.

  2. Rủi ro tối ưu hóa tham số. Các tham số xấu dẫn đến hiệu suất kém.

  3. Rủi ro quá cao, tối ưu hóa quá nhiều dữ liệu lịch sử.

  4. Rủi ro giao dịch tần suất cao. Nhiều tín hiệu có thể làm tăng chi phí.

  5. Rủi ro lỗi mã hóa, lỗi trong logic thực hiện.

Các giải pháp có thể:

  1. Sử dụng kích thước vị trí thận trọng để hạn chế lỗ.

  2. Sử dụng các phương pháp tối ưu hóa đi trước.

  3. Tập trung vào sự ổn định của các thông số, không phải lợi nhuận cao.

  4. Điều chỉnh điều kiện để giảm tần suất giao dịch.

  5. Kiểm tra kỹ logic mã.

Cơ hội gia tăng

Chiến lược có thể được cải thiện trong các lĩnh vực sau:

  1. Điều chỉnh tham số cho các thị trường cụ thể.

  2. Thêm các bộ lọc để tránh đảo ngược vội vàng.

  3. Bao gồm các cơ chế dừng lỗ.

  4. Giảm tần suất giao dịch với các bộ lọc bổ sung.

  5. Thực hiện kích thước vị trí động.

  6. Điều chỉnh chi phí giao dịch.

Kết luận

Chiến lược đảo ngược hai xác nhận là một hệ thống ổn định và thực tế để đảo ngược trung bình ngắn hạn. Nó cân bằng độ nhạy để bắt được sự đảo ngược và độ chính xác từ xác nhận hai. Với tối ưu hóa và sửa đổi thích hợp, nó có thể bổ sung hiệu quả vào danh mục đầu tư chiến lược định lượng. Nhưng các tham số nên mạnh mẽ và rủi ro như quá phù hợp và whipsaws nên được quản lý một cách thận trọng trong giao dịch trực tiếp.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/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 strategy used to calculate the Stochastic RSI
//
// 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(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand) =>
    pos = 0.0
    Source = close
    rsi1 = rsi(Source, lengthRSI)
    k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
    d = sma(k, smoothD)
    d_cross_80 = cross(d,TopBand) 
    pos := iff(k > TopBand, 1,
              iff(k < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic 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, "---- Stochastic RSI ----")
TopBand = input(80, step=0.01)
LowBand = input(20, step=0.01)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSRSI = SRSI(lengthRSI,lengthStoch,smoothK,smoothD, 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