Chiến lược theo dõi cơ hội EMA, Hull và RSI

Tác giả:ChaoZhang, Ngày: 2024-01-18 15:46:35
Tags:

img

Tổng quan

Chiến lược này xây dựng các tín hiệu giao dịch dựa trên đường trung bình động, đường trung bình động Hull và chỉ số sức mạnh tương đối (RSI). Nó thuộc về một chiến lược theo dõi cơ hội điển hình có thể tự động xác định cơ hội thị trường và chuyển đổi giữa các vị trí dài và ngắn. Nó phù hợp với giao dịch trung và ngắn hạn.

Chiến lược logic

  1. Tính toán trung bình chuyển động biểu thức (EMA) 50 giai đoạn như là chỉ số để đánh giá xu hướng.
  2. Tính toán trung bình di chuyển Hull 7 ngày như một chỉ số trung bình nhạy cảm hơn và hàng đầu, vượt qua EMA để tạo thành thập tự vàng và thập tự chết.
  3. Đặt đường mua quá mức và đường bán quá mức cho chỉ số RSI lần lượt là 60 và 45.
  4. Khi mua quá mức xảy ra cùng một lúc với sự thâm nhập tăng của EMA, đó là một tín hiệu ngắn.
  5. Khi bán quá mức xảy ra cùng một lúc với sự thâm nhập giảm của EMA, đó là một tín hiệu dài.

Ưu điểm của Chiến lược

  1. Sử dụng sự kết hợp của EMA, Hull và RSI để đánh giá toàn diện xu hướng thị trường, động lực và khu vực mua quá mức / bán quá mức, cải thiện độ chính xác tín hiệu.
  2. EMA đánh giá xu hướng trung và dài hạn, Hull dẫn đầu các động thái ngắn hạn, RSI xác định mức mua quá mức / bán quá mức.
  3. Các tín hiệu nhập cảnh phải đáp ứng các tiêu chí cho xu hướng, động lực và khu vực mua quá mức / bán quá mức đồng thời kích hoạt, lọc hiệu quả các tín hiệu sai.

Rủi ro của chiến lược

  1. Chỉ sử dụng 3 chỉ số có thể bỏ lỡ một số cơ hội giao dịch.
  2. Thời gian EMA và Hull cần thử nghiệm và tối ưu hóa liên tục, lựa chọn tham số không đúng có thể ảnh hưởng đến chất lượng tín hiệu.
  3. Các thông số RSI cũng cần phải được điều chỉnh cho các cổ phiếu và tiền tệ khác nhau có thể có các tiêu chuẩn mua quá mức / bán quá mức khác nhau.

Các lĩnh vực cải tiến

  1. Nhiều chỉ số phụ trợ có thể được giới thiệu, ví dụ: Bollinger Bands, KC Lines vv để tạo ra quá trình ra quyết định đa cộng hưởng.
  2. Các thông số có thể được tối ưu hóa cho các sản phẩm khác nhau.
  3. Phân tích khung thời gian cao hơn có thể được kết hợp để tránh bị đánh lừa bởi các giả mạo ngắn hạn.
  4. Chiến lược dừng lỗ có thể được thực hiện để quản lý rủi ro.

Tóm lại

Chiến lược này sử dụng sự kết hợp của EMA, Hull và RSI trên các khung thời gian để nắm bắt các cơ hội giao dịch trung hạn và ngắn hạn. Các tín hiệu đầu vào phải đáp ứng các tiêu chí trong xu hướng, động lực và kích thước mua quá mức / bán quá mức đồng thời để lọc ra các tín hiệu sai. Chiến lược có thể được tăng cường hơn nữa thông qua tối ưu hóa tham số và giới thiệu nhiều chỉ số phụ để cải thiện sự ổn định và hiệu suất giao dịch.


/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bitduke

//@version=4
strategy(shorttitle="EHR", title="Simple EMA_Hull_RSI", overlay=false, 
     calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, 
     default_qty_value=1000, currency=currency.USD, initial_capital=1000,
     commission_type=strategy.commission.percent, commission_value=0.075)

// EMA
len = input(minval=1, title="EMA Length", defval=50)
src = input(close, title="EMA Source")
final_ema = ema(src, len)
plot(final_ema, color=color.red, title="EMA")

overbought = input(60, title="overbought value")
oversold = input(45, title="oversold value")

overbought_signal = rsi(close, 14) > overbought
oversold_signal = rsi(close, 14) < oversold
barcolor(overbought_signal ? color.black : na)
barcolor(oversold_signal ? color.blue : na)
// Hull MA
n = input(title="Hull Length", defval=7)
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?color.green:color.red
ma=plot(n1,color=c)

// Strategy Logic
longCondition =  overbought_signal and crossover(n1,final_ema) 
shortCondition = oversold_signal and crossover(final_ema,n1) 

strategy.entry("EHR_Long", strategy.long, when=longCondition)
strategy.entry("EHR_Short", strategy.short, when=shortCondition)


Thêm nữa