Combo Backtest 123 Reversal & Relative Volatility Index

Tác giả:ChaoZhang, Ngày: 2023-09-11 09:01:03
Tags:giao dịchphân tích kỹ thuậtđảo ngượcbiến độngRVIstochasticsmạnh mẽtín hiệukết hợpTăng cường hiệu quảQuản lý rủi roquản lý tiền bạckỷ luật

Kết hợp các chiến lược đảo ngược và biến động cho các tín hiệu mạnh mẽ

Chiến lược combo này kết hợp phối hợp hệ thống đảo ngược 123 với chỉ số biến động tương đối (RVI) để tạo ra các tín hiệu giao dịch mạnh mẽ.

Làm thế nào nó hoạt động

Chiến lược đảo ngược 123 xác định các đáy và đỉnh tiềm năng. Nó đi dài nếu đóng cửa cao hơn hai ngày trước và chỉ số chứng khoán quá bán. Nó đi ngắn nếu đóng cửa thấp hơn hai ngày trước và chỉ số chứng khoán quá mua.

RVI đo hướng biến động. Nó theo dõi liệu biến động đang mở rộng hay thu hẹp. Chiến lược đi dài dưới 30 RVI và ngắn trên 70 RVI.

Bằng cách kết hợp cả hai, chiến lược tìm cách cô lập các mục có độ tin cậy cao khi sự đảo ngược phù hợp với sự biến động cực đoan.

Ưu điểm và nhược điểm

Việc kết hợp các chiến lược đảo ngược và biến động cung cấp các tín hiệu mạnh mẽ hơn. RVI tăng sự tự tin bằng cách xác nhận kiệt sức. Sử dụng hai hệ thống làm giảm các tín hiệu sai và sai vốn có trong các chiến lược duy nhất.

Tuy nhiên, bất kỳ hệ thống nào cũng có thể phù hợp với đường cong. Tối ưu hóa nhiều đầu vào có nguy cơ quá phù hợp với chiến lược. Kỷ luật nghiêm ngặt là cần thiết để tránh giao dịch quá mức. Không có chiến lược nào thay thế cho rủi ro thận trọng và quản lý tiền bạc.

Nhìn chung, việc kết hợp các chiến lược khác nhau có thể thúc đẩy hiệu suất nếu được thực hiện một cách khôn ngoan. Đảm bảo kích thước vị trí thích hợp, giới hạn rủi ro và dung nạp rút vốn là chìa khóa cho sự thành công lâu dài.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 08/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 RVI is a modified form of the relative strength index (RSI). 
// The original RSI calculation separates one-day net changes into 
// positive closes and negative closes, then smoothes the data and 
// normalizes the ratio on a scale of zero to 100 as the basis for the 
// formula. The RVI uses the same basic formula but substitutes the 
// 10-day standard deviation of the closing prices for either the up 
// close or the down close. The goal is to create an indicator that 
// measures the general direction of volatility. The volatility is 
// being measured by the 10-days standard deviation of the closing prices. 
//
// 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


RVI(Period,BuyZone, SellZone) =>
    pos = 0.0
    nU = 0.0
    nD =0.0
    xPrice = close
    StdDev = stdev(xPrice, Period)
    d = iff(close > close[1], 0, StdDev)
    u = iff(close > close[1], StdDev, 0)
    nU:= (13 * nz(nU[1],0) + u) / 14
    nD:= (13 * nz(nD[1],0) + d) / 14
    nRes = 100 * nU / (nU + nD)
    pos:= iff(nRes < BuyZone, -1,
    	   iff(nRes > SellZone, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Relative Volatility Index", 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, "---- Relative Volatility Index ----")
Period = input(10, minval=1)
BuyZone = input(30, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRVI = RVI(Period,BuyZone, SellZone)
pos = iff(posReversal123 == 1 and posRVI == 1 , 1,
	   iff(posReversal123 == -1 and posRVI == -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 )

Có liên quan

Thêm nữa