Chiến lược kết hợp với nhiều chỉ số

Tác giả:ChaoZhang, Ngày: 2023-10-07 10:25:40
Tags:

Tổng quan

Chiến lược này kết hợp nhiều chỉ báo kỹ thuật để tạo ra các tín hiệu giao dịch chính xác và đáng tin cậy hơn. Nó bao gồm hai phần: phần đầu tiên sử dụng chiến lược đảo ngược 123, và phần thứ hai sử dụng chỉ báo TEMA. Các tín hiệu giao dịch được tạo ra bởi cả hai được kết hợp để lọc ra các tín hiệu sai và cải thiện chất lượng tín hiệu.

Chiến lược logic

Phần đầu tiên sử dụng 123 chiến lược đảo ngược. Nó dựa trên chỉ số chứng khoán. Khi giá đóng cho thấy đảo ngược trong hai ngày liên tiếp (ví dụ như chuyển từ tăng xuống giảm), và chỉ số chứng khoán cho thấy tín hiệu mua quá mức hoặc bán quá mức, nó tạo ra tín hiệu mua hoặc bán.

Cụ thể, khi giá đóng cao hơn các ngày trước và đường chậm ngẫu nhiên dưới 50, nó tạo ra tín hiệu mua. Khi giá đóng thấp hơn các ngày trước và đường nhanh ngẫu nhiên trên 50, nó tạo ra tín hiệu bán.

Phần thứ hai sử dụng chỉ số TEMA. TEMA viết tắt của Trung bình Di chuyển Triple Exponential và được tính như sau:

TEMA = 3EMA ((CLOSE, N) - 3EMA ((EMA(CLOSE, N), N) + EMA ((EMA(EMA(CLOSE, N), N), N)

N là chiều dài của tham số. Nếu giá đóng trên giá trị TEMA, nó tạo ra tín hiệu mua. Nếu giá đóng dưới giá trị TEMA, nó tạo ra tín hiệu bán.

Cuối cùng, các tín hiệu từ hai chỉ số được kết hợp. Chỉ khi cả hai chỉ số tạo ra các tín hiệu nhất quán (cả hai mua hoặc cả hai bán), các tín hiệu giao dịch thực tế được tạo ra.

Ưu điểm

  • Kết hợp nhiều chỉ số giúp lọc ra một số tín hiệu sai và cải thiện chất lượng tín hiệu.
  • 123 chiến lược đảo ngược tránh theo đuổi giá cao và bán hoảng loạn bằng cách phản ứng với sự đảo ngược giá thực tế.
  • TEMA nhiều lần làm mịn giảm tiếng ồn và tạo ra tín hiệu đáng tin cậy hơn.
  • Kết hợp hai loại chỉ số khác nhau phần lớn đảm bảo độ tin cậy của tín hiệu giao dịch.

Rủi ro và cải tiến

  • Các chiến lược đảo ngược có rủi ro vốn có của việc bỏ lỡ các xu hướng tăng trưởng lớn trong thị trường bò.
  • Việc điều chỉnh các thông số TEMA có thể tối ưu hóa độ nhạy của chỉ báo.
  • Nếu các tham số được đặt không đúng, cả hai chỉ số có thể tạo ra quá ít tín hiệu.
  • Thêm các bộ lọc để vô hiệu hóa các chiến lược trong một số môi trường thị trường nhất định có thể giúp kiểm soát rủi ro.

Tóm lại

Chiến lược này cải thiện chất lượng tín hiệu thông qua sự kết hợp hợp lý của nhiều chỉ số, làm cho nó trở thành một chiến lược giao dịch định lượng rất hiệu quả.


/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-06 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/11/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 study plots the TEMA1 indicator. TEMA1 ia s triple MA (Moving Average),
// and is calculated as 3*MA - (3*MA(MA)) + (MA(MA(MA)))
//
// 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


TEMA(Length) =>
    pos = 0.0
    xPrice = close
    xEMA1 = ema(xPrice, Length)
    xEMA2 = ema(xEMA1, Length)
    xEMA3 = ema(xEMA2, Length)
    nRes = 3 * xEMA1 - 3 * xEMA2 + xEMA3
    pos := iff(close > nRes, 1,
             iff(close < nRes, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & TEMA1", 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, "---- TEMA1 ----")
LengthTEMA = input(26, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posT3A = TEMA(LengthTEMA)
pos = iff(posReversal123 == 1 and posT3A == 1 , 1,
	   iff(posReversal123 == -1 and posT3A == -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