Chiến lược theo dõi cơ hội dựa trên đường trung bình động và RSI


Ngày tạo: 2024-01-18 15:46:35 sửa đổi lần cuối: 2024-01-18 15:46:35
sao chép: 0 Số nhấp chuột: 556
1
tập trung vào
1617
Người theo dõi

Chiến lược theo dõi cơ hội dựa trên đường trung bình động và RSI

Tổng quan

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

Nguyên tắc chiến lược

  1. Tính toán trung bình di chuyển chỉ số (EMA) 50 chu kỳ như một chỉ số đường trung bình để đánh giá xu hướng.
  2. Hull Moving Average 7 ngày được tính như một chỉ số đường trung bình nhạy cảm hơn và đầu vào, với EMA hình thành Gold Fork Dead Fork.
  3. Cài đặt RSI của đường mua và đường bán 60 và 45, RSI cao hơn 60 là tín hiệu mua quá mức, RSI thấp hơn 45 là khu vực bán quá mức.
  4. Khi quá mua đồng thời xảy ra trên đường EMA, tín hiệu là dấu hiệu giảm giá.
  5. Khi khu vực bán tháo xảy ra cùng một lần vượt qua EMA xuống, hãy tạo thêm tín hiệu.

Lợi thế chiến lược

  1. Kết hợp sử dụng ba chỉ số EMA, Hull và RSI để đánh giá tổng hợp xu hướng thị trường, động lực và khu vực quá mua quá bán, cải thiện độ chính xác của tín hiệu.
  2. EMA đánh giá xu hướng trung và dài hạn, Hull là chỉ số tiên phong ngắn hạn, RSI đánh giá khu vực quá mua quá bán, sử dụng các chỉ số chu kỳ khác nhau để nắm bắt các cơ hội giao dịch ở các cấp khác nhau.
  3. Các tín hiệu giao dịch chỉ được kích hoạt sau khi đáp ứng ba điều kiện cùng một lúc: xu hướng, động lực và khu vực quá mua quá bán, để có thể lọc hiệu quả các tín hiệu giả.

Rủi ro chiến lược

  1. Chỉ sử dụng 3 chỉ số có thể làm bạn bỏ lỡ cơ hội giao dịch.
  2. Các thiết lập chu kỳ của EMA và Hull cần phải được kiểm tra và tối ưu hóa nhiều lần, và việc chọn tham số không phù hợp có thể ảnh hưởng đến chất lượng trục trặc.
  3. Các tham số của RSI cũng cần được điều chỉnh, các chỉ tiêu khác nhau cho việc đánh giá quá mua và quá bán sẽ khác nhau giữa các cổ phiếu và ngoại hối khác nhau.

Tối ưu hóa chiến lược

  1. Có thể giới thiệu thêm các chỉ số phụ trợ như đường Brin, đường KC, v.v. để tạo ra nhiều cộng hưởng cho việc ra quyết định.
  2. Có thể được tối ưu hóa cho các thành phần khác nhau cho các chế độ khác nhau.
  3. Có thể kết hợp các quy trình thời gian cấp cao để đưa ra quyết định và tránh bị lừa dối bởi những đột phá giả định trong thời gian ngắn.
  4. Có thể giới thiệu chiến lược quản lý rủi ro để ngăn chặn tổn thất.

Tóm tắt

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

Mã nguồn chiến lược
/*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)