Tài nguyên đang được tải lên... tải...

Xu hướng chỉ số sức mạnh tương đối được sửa đổi theo chiến lược

Tác giả:ChaoZhang, Ngày: 2024-03-29 16:16:37
Tags:

img

Tổng quan

Chiến lược này nắm bắt xu hướng thị trường dựa trên Chỉ số sức mạnh tương đối sửa đổi (RSI sửa đổi). Ý tưởng chính của chiến lược là sử dụng các tín hiệu chéo và tín hiệu biểu đồ của chỉ số RSI sửa đổi để xác định xu hướng thị trường và thực hiện giao dịch theo hướng xu hướng.

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

  1. Tính toán EMA của giá như là đầu vào cho RSI sửa đổi
  2. Tính toán chỉ số RSI sửa đổi
  3. Tính toán EMA của RSI sửa đổi dưới dạng đường tín hiệu
  4. Tính toán sự khác biệt giữa RSI sửa đổi và đường tín hiệu như biểu đồ
  5. Khi RSI sửa đổi vượt qua trên đường tín hiệu và biểu đồ lớn hơn 0, tạo ra một tín hiệu mua
  6. Khi RSI sửa đổi vượt qua dưới đường tín hiệu và biểu đồ nhỏ hơn 0, tạo ra một tín hiệu bán

Ưu điểm chiến lược

  1. Chỉ số RSI sửa đổi có thể nắm bắt xu hướng tốt hơn so với chỉ số RSI truyền thống
  2. Kết hợp các tín hiệu chéo và tín hiệu biểu đồ của RSI sửa đổi có thể lọc hiệu quả các tín hiệu sai
  3. Các thông số có thể điều chỉnh và áp dụng cho các thị trường và khung thời gian khác nhau
  4. Chương trình này là ngắn gọn và tính toán hiệu quả

Rủi ro chiến lược

  1. Chỉ số RSI sửa đổi có xu hướng tạo ra tín hiệu sai ở các thị trường giới hạn phạm vi
  2. Việc nắm bắt các điểm chuyển hướng có thể có sự chậm trễ
  3. Chỉ số duy nhất dễ bị ảnh hưởng bởi tiếng ồn giá

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

  1. Nó có thể được kết hợp với các chỉ số xu hướng khác như đường trung bình động để cải thiện độ tin cậy tín hiệu
  2. Một mô-đun dừng lỗ và lấy lợi nhuận có thể được thêm vào để kiểm soát rủi ro giao dịch duy nhất
  3. Các thông số có thể được tối ưu hóa dựa trên các đặc điểm thị trường khác nhau
  4. Một mô-đun quản lý vị trí có thể được thêm vào để điều chỉnh vị trí năng động

Tóm lại

Chỉ số này sử dụng các đặc điểm của chỉ số RSI sửa đổi để xây dựng một hệ thống giao dịch từ góc độ theo xu hướng. Chỉ số RSI sửa đổi vượt qua một số khiếm khuyết của chỉ số RSI truyền thống và có khả năng nắm bắt xu hướng tương đối mạnh. Tuy nhiên, các chiến lược dựa trên một chỉ số duy nhất thường có những hạn chế và cần được cải thiện kết hợp với các phương tiện kỹ thuật khác. Bằng cách tối ưu hóa các thông số chiến lược, làm giàu các nguồn tín hiệu, thêm các mô-đun kiểm soát rủi ro và các phương pháp khác, sự ổn định và lợi nhuận của chiến lược này có thể được cải thiện hơn nữa.


/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 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/
// © YogirajDange

//@version=5


// Verical lines


// // Define the times
// t1 = timestamp(year, month, dayofmonth, 09, 15) // 9:15
// t2 = timestamp(year, month, dayofmonth, 11, 15) // 11:15
// t3 = timestamp(year, month, dayofmonth, 13, 15) // 1:15
// t4 = timestamp(year, month, dayofmonth, 15, 25) // 3:25

// // Check if the current bar is on the current day
// is_today = (year(time) == year(timenow)) and (month(time) == month(timenow)) and (dayofmonth(time) == dayofmonth(timenow))

// // Draw a vertical line at each time
// if is_today and (time == t1 or time == t2 or time == t3 or time == t4)
//     line.new(x1 = bar_index, y1 = low, x2 = bar_index, y2 = high, extend = extend.both, color=color.red, width = 1)

strategy('Modified RSI')
col_grow_above = input(#02ac11, "Above   Grow", group="Histogram", inline="Above")
col_fall_above = input(#6ee47d, "Fall", group="Histogram", inline="Above")
col_grow_below = input(#e5939b, "Below Grow", group="Histogram", inline="Below")
col_fall_below = input(#dd0000, "Fall", group="Histogram", inline="Below")
EMA_length = input.int(13, 'Price_EMA', minval=1)
RSI_length = input.int(14, 'RSI_Period', minval=1)
Avg_length = input.int(5, 'RSI_Avg_EMA', minval=1)
fastMA = ta.ema(close, EMA_length)
modrsi = ta.rsi(fastMA, RSI_length)
RSIAVG = ta.ema(modrsi, Avg_length)
plot(modrsi, color=color.rgb(38, 0, 255), linewidth=2)
plot(RSIAVG, color=color.rgb(247, 0, 0))
rsiUpperBand = hline(60, 'RSI Upper Band', color=#099b0e)
//hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(40, 'RSI Lower Band', color=#e90101)

RSI_hist = modrsi - RSIAVG

//plot(RSI_hist,"RSI_Histogram", color = #c201e9, style = plot.style_columns,linewidth= 5)

plot(RSI_hist, title="RSI_Histogram", style=plot.style_columns, color=(RSI_hist>=0 ? (RSI_hist[1] < RSI_hist ? col_grow_above : col_fall_above) : (RSI_hist[1] < RSI_hist ? col_grow_below : col_fall_below)))


/////// Moving Averages 20 50 EMA

fast_ma = input.int(20, minval=2, title="Fast_EMA")
slow_ma = input.int(50, minval=2, title="Slow_EMA")

src = input.source(close, title="Source")

out = ta.ema(src, fast_ma)
out1 = ta.ema(src, slow_ma)

//plot(out, title="20 EMA", color=color.rgb(117, 71, 247), linewidth = 2)
//plot(out1, title="50 EMA", color=color.rgb(0, 0, 0), linewidth = 2)


longCondition = ((ta.crossover(modrsi, RSIAVG)) and (RSI_hist > 0))
if longCondition
    strategy.entry('B', strategy.long)

shortCondition = ((ta.crossunder(modrsi, RSIAVG)) and (RSI_hist < 0))
if shortCondition
    strategy.entry('S', strategy.short)



Thêm nữa