Bắt đầu ngayBắt đầu miễn phí

Tự viết chỉ báo của bạn - I

Đến giờ, bạn đã dùng các chỉ báo được viết sẵn thông qua hàm add.indicator(). Bây giờ là lúc bạn tự viết và áp dụng chỉ báo của riêng mình.

Hàm chỉ báo của bạn sẽ tính trung bình của hai chỉ báo khác nhau để tạo ra một RSI 3.5. Cách làm như sau:

  • Nhận vào một chuỗi giá.
  • Tính RSI 3.
  • Tính RSI 4.
  • Trả về giá trị trung bình của RSI 3 và RSI 4.

Bạn có thể xem đây là một RSI 3.5, vì nó dài hơn RSI 3 nhưng ngắn hơn RSI 4. Bằng cách lấy trung bình, chỉ báo này vẫn phản ánh tác động của dữ liệu cách đây bốn ngày trong khi nhanh hơn RSI 4 đơn giản, đồng thời giảm nhiễu của cả RSI 3 và RSI 4.

Trong bài tập này, bạn sẽ tạo một hàm cho chỉ báo này tên là calc_RSI_avg() và thêm nó vào chiến lược strategy.st. Tất cả các gói liên quan đã được nạp sẵn cho bạn.

Bài tập này là một phần của khóa học

Giao dịch tài chính với R

Xem khóa học

Hướng dẫn bài tập

  • Tạo và đặt tên một hàm calc_RSI_avg với ba đối số price, n1n2, theo đúng thứ tự đó.
  • Tính RSI với khoảng hồi tố n1, đặt tên là RSI_1.
  • Tính RSI với khoảng hồi tố n2, đặt tên là RSI_2.
  • Tính trung bình của RSI_1RSI_2. Gọi kết quả là RSI_avg.
  • Đặt tên cột của RSI_avg thành RSI_avg bằng colnames(), và trả về RSI_avg.
  • Thêm chỉ báo này vào chiến lược của bạn với đầu vào n1 = 3n2 = 4. Gán nhãn chỉ báo là RSI_3_4.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Write the calc_RSI_avg function
calc_RSI_avg <- function(price, n1, n2) {
  
  # RSI 1 takes an input of the price and n1
  RSI_1 <- RSI(price = price, n = ___)
  
  # RSI 2 takes an input of the price and n2
  RSI_2 <- RSI(price = price, n = ___)
  
  # RSI_avg is the average of RSI_1 and RSI_2
  RSI_avg <- (___ + ___)/2
  
  # Your output of RSI_avg needs a column name of RSI_avg
  colnames(RSI_avg) <- "___"
  return(___)
}

# Add this function as RSI_3_4 to your strategy with n1 = 3 and n2 = 4
add.indicator(strategy.st, name = ___, arguments = list(price = quote(Cl(mktdata)), n1 = ___, n2 = ___), label = ___)
Chỉnh sửa và Chạy Mã