Chiến lược theo xu hướng dựa trên nhiều EMA và RSI


Ngày tạo: 2024-03-01 13:26:24 sửa đổi lần cuối: 2024-03-01 13:26:24
sao chép: 10 Số nhấp chuột: 774
1
tập trung vào
1617
Người theo dõi

Chiến lược theo xu hướng dựa trên nhiều EMA và RSI

Tổng quan

Bài viết này chủ yếu phân tích chiến lược giao dịch định lượng dựa trên nhiều chỉ số động trung bình (EMA) và chỉ số tương đối mạnh (RSI) được phát triển bởi Ravikant_sharma. Chiến lược này được xác định thông qua sự giao thoa của các chu kỳ khác nhau của EMA và các giá trị của RSI, xác định xu hướng giá, xác định thời gian vào và ra khỏi thị trường.

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

Tính toán chỉ số

Chiến lược sử dụng 5 EMA khác nhau, bao gồm 9 ngày, 21 ngày, 51 ngày, 100 ngày và 200 ngày. Chỉ có 4 EMA đầu tiên được vẽ trong mã.

Điều kiện nhập học

Chiến lược mở nhiều vị trí nếu đáp ứng một trong các điều kiện sau:

  1. EMA ngày 9 trên EMA ngày 21
  2. Ngày 9 EMA trên mặc ngày 51 EMA
  3. 51 ngày EMA dưới 100 ngày EMA

RSI cần lớn hơn 65, cho thấy xu hướng tăng mạnh.

Điều kiện thi đấu

Chiến lược rút lui khi thỏa mãn một trong các điều kiện sau:

  1. EMA ngày 9 vượt qua EMA ngày 51, cho thấy xu hướng đảo ngược
  2. Giá đóng cửa cao hơn 125% so với giá nhập cảnh, đạt mục tiêu lợi nhuận
  3. RSI dưới 40 cho thấy có dấu hiệu đảo ngược
  4. Giá đóng cửa thấp hơn 98% so với giá nhập cảnh

Phân tích lợi thế

Đây là một chiến lược theo dõi xu hướng điển hình với những lợi thế sau:

  1. Sử dụng EMA để đánh giá xu hướng, theo dõi xu hướng giá một cách hiệu quả
  2. Kết hợp các EMA khác nhau có thể nhận ra tín hiệu xu hướng đáng tin cậy hơn
  3. Bộ lọc RSI tránh phát ra tín hiệu sai trong tình huống xung đột
  4. Cài đặt điểm dừng lỗ để khóa lợi nhuận, kiểm soát rủi ro

Phân tích rủi ro và giải pháp

Chiến lược này cũng có một số rủi ro:

  1. Có thể có nhiều tín hiệu không chắc chắn trong tình huống biến động, dẫn đến giao dịch quá thường xuyên. Bạn có thể điều chỉnh các tham số chu kỳ EMA thích hợp, hoặc tăng điều kiện lọc RSI.
  2. Trong trường hợp biến động mạnh, tín hiệu giao chéo EMA có thể bị chậm trễ và không thể dừng lại kịp thời. Có thể kết hợp với các chỉ số khác để đánh giá cường độ tín hiệu giảm giá và giảm giá.
  3. Mục tiêu lợi nhuận và mức dừng lỗ được thiết lập không đúng cách, có thể xảy ra dừng lỗ sớm hoặc dừng lại không kịp thời. Các tham số tối ưu hóa nên được dựa trên các đặc điểm khác nhau của giống và môi trường thị trường.

Hướng tối ưu hóa chiến lược

Chiến lược này cũng có thể được tối ưu hóa theo các hướng sau:

  1. Tăng tối ưu hóa tham số cho các giống giao dịch, thiết lập các tham số tốt nhất cho các giống khác nhau
  2. Thêm các chỉ số khác, như KDJ, MACD, để tạo ra mô hình đa yếu tố
  3. Tăng khả năng kiểm soát gió bằng máy học, sử dụng mô hình để đánh giá chất lượng tín hiệu, giảm khả năng sai lệch
  4. Kết hợp phân tích cảm xúc để tránh giao dịch sai lầm do cảm xúc cực đoan
  5. Kiểm tra các chiến lược dừng lỗ khác nhau để tìm các tham số tối ưu

Tóm tắt

Chiến lược này nói chung là một chiến lược theo dõi xu hướng đáng tin cậy và dễ thực hiện. Nó sử dụng EMA nhiều chu kỳ để xác định xu hướng, sau đó kết hợp với tín hiệu lọc RSI để lọc các tín hiệu giả, để tối ưu hóa tham số và tối ưu hóa mô hình dựa trên hiệu quả đo lường tốt hơn, có thể đạt được lợi nhuận ổn định. Tuy nhiên, khi sử dụng, các nhà giao dịch vẫn cần cảnh giác về rủi ro của biến động và tham số không phù hợp.

Mã nguồn chiến lược
/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 3h
basePeriod: 15m
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/
// © Ravikant_sharma

//@version=5

strategy('new', overlay=true)

start = timestamp(1990, 1, 1, 0, 0)
end = timestamp(2043, 12, 12, 23, 59)
ema0 = ta.ema(close, 9)
ema1 = ta.ema(close, 21)
ema2 = ta.ema(close, 51)
ema3 = ta.ema(close, 100)
ema4 = ta.ema(close, 200)

rsi2=ta.rsi(ta.sma(close,14),14)
plot(ema0, '9', color.new(color.green, 0))
plot(ema1, '21', color.new(color.black, 0))
plot(ema2, '51', color.new(color.red, 0))
plot(ema3, '200', color.new(color.blue, 0))   

//plot(ema4, '100', color.new(color.gray, 0)) 


//LongEntry = (  ta.crossover(ema0,ema3)  or  ta.crossover(ema0,ema2) or  ta.crossunder(ema2,ema3) ) // ta.crossover(ema0,ema1) //
LongEntry=false
if ta.crossover(ema0,ema1) 
    if rsi2>65
        LongEntry:=true
if ta.crossover(ema1,ema2)
    if rsi2>65
        LongEntry:=true
        
LongExit =  ta.crossunder(ema0,ema2) or close >(strategy.position_avg_price*1.25) or rsi2 <40 or close < (strategy.position_avg_price*0.98)



if time >= start and time <= end 
    if(LongEntry and rsi2>60)
        strategy.entry('Long', strategy.long, 1)
    if(LongExit)
        strategy.close('Long')