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
Hướng dẫn bài tập
- Tạo và đặt tên một hàm
calc_RSI_avgvới ba đối sốprice,n1vàn2, 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_1vàRSI_2. Gọi kết quả làRSI_avg. - Đặt tên cột của
RSI_avgthànhRSI_avgbằ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 = 3vàn2 = 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 = ___)