Chiến lược định lượng hai chỉ số

Tác giả:ChaoZhang, Ngày: 21-12-2023 10:59:16
Tags:

img

Tổng quan

Chiến lược này tạo ra tín hiệu giao dịch bằng cách kết hợp chỉ số 123 Reversal và chỉ số RAVI. 123 Reversal thuộc về chiến lược loại đảo ngược, sử dụng chuyển động giá trong hai ngày qua để xác định xu hướng giá trong tương lai. Chỉ số RAVI xác định xem giá đã bước vào vùng mua quá nhiều hay bán quá nhiều. Chiến lược quyết định mua dài hoặc ngắn dựa trên các tín hiệu kết hợp từ cả hai chỉ số.

Chiến lược logic

123 Phục hồi

Chỉ số này dựa trên giá trị K của chỉ số Stochastic. Cụ thể, nó đi dài khi giá đóng ngày hôm nay thấp hơn hai ngày trước và đường stochastic chậm 9 ngày thấp hơn 50. Nó đi ngắn khi giá đóng ngày hôm nay cao hơn hai ngày trước và đường stochastic nhanh 9 ngày cao hơn 50. Vì vậy, nó đi dài dựa trên xác nhận điểm đảo ngược.

Chỉ số RAVI

Chỉ số này tạo ra tín hiệu bằng cách tính toán sự khác biệt giữa các đường trung bình di chuyển nhanh và chậm. Cụ thể, sự khác biệt giữa MA 7 ngày và MA 65 ngày. Nó sẽ dài khi sự khác biệt lớn hơn ngưỡng và ngắn khi thấp hơn ngưỡng. Vì vậy, các khu vực mua quá mức và bán quá mức có thể được xác định khi giao thoa MA nhanh và chậm.

Các tín hiệu chiến lược

Một tín hiệu được tạo ra khi 123 Reversal và RAVI đồng ý về hướng. tín hiệu dài được kích hoạt khi cả hai chỉ số hiển thị 1 và tín hiệu ngắn được kích hoạt khi cả hai chỉ số hiển thị -1.

Phân tích lợi thế

  • Kết hợp hai chỉ số cải thiện độ chính xác tín hiệu và tránh tín hiệu sai
  • 123 Reversal sử dụng dữ liệu giá và RAVI sử dụng dữ liệu trung bình động để xác định xu hướng từ nhiều quan điểm
  • Các thông số của RAVI có thể điều chỉnh và có thể được tối ưu hóa cho các sản phẩm và môi trường thị trường khác nhau
  • Sự kết hợp của sự đảo ngược và xu hướng cho phép bắt cả sự đảo ngược và xu hướng

Rủi ro và tối ưu hóa

  • Sự kết hợp của hai chỉ số đôi khi có thể dẫn đến các tín hiệu mâu thuẫn. Một tham số độ lệch giá có thể được giới thiệu để kích hoạt tín hiệu khi độ lệch giá giữa hai chỉ số nằm trong ngưỡng
  • 123 đảo ngược là một chiến lược tần số cao. Nó nên được kết hợp với các chiến lược tần số thấp khác để giảm tần số giao dịch
  • RAVI là tốt trong việc bắt được xu hướng trung bình đến dài hạn.

Kết luận

Chiến lược này xem xét cả các yếu tố đảo ngược và xu hướng. Chứng nhận kép giúp tránh tín hiệu sai. Các bước tiếp theo có thể là giới thiệu các thuật toán học máy để tối ưu hóa tham số thích nghi. Hoặc kết hợp chiến lược này với các loại chiến lược khác để đạt được đa dạng hóa danh mục đầu tư trong khi duy trì lợi nhuận và giảm giảm tối đa.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/05/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 indicator represents the relative convergence/divergence of the moving 
// averages of the financial asset, increased a hundred times. It is based on 
// a different principle than the ADX. Chande suggests a 13-week SMA as the 
// basis for the indicator. It represents the quarterly (3 months = 65 working days) 
// sentiments of the market participants concerning prices. The short moving average 
// comprises 10% of the one and is rounded to seven.
//
// 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


RAVI(LengthMAFast, LengthMASlow, TradeLine) =>
    pos = 0.0
    xMAF = sma(close, LengthMAFast)
    xMAS = sma(close, LengthMASlow)
    xRAVI = ((xMAF - xMAS) / xMAS) * 100
    pos:= iff(xRAVI > TradeLine, 1,
    	   iff(xRAVI < TradeLine, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Range Action Verification Index (RAVI)", 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, "---- Range Action Verification Index (RAVI) ----")
LengthMAFast = input(title="Length MA Fast", defval=7)
LengthMASlow = input(title="Length MA Slow", defval=65)
TradeLine = input(0.14, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRAVI = RAVI(LengthMAFast, LengthMASlow, TradeLine)
pos = iff(posReversal123 == 1 and posRAVI == 1 , 1,
	   iff(posReversal123 == -1 and posRAVI == -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