Chạy chiến lược của bạn
Chúc mừng bạn đã tạo một chiến lược trong quantstrat! Ôn lại một chút: chiến lược của bạn dùng ba chỉ báo riêng biệt và năm tín hiệu riêng biệt. Chiến lược yêu cầu cả ngưỡng của chỉ báo DVO_2_126 phải dưới 20 và SMA50 phải lớn hơn SMA200. Chiến lược sẽ bán khi DVO_2_126 cắt lên trên 80, hoặc khi SMA50 cắt xuống dưới SMA200.
Để chiến lược hoạt động đúng, bạn đã chỉ định năm tín hiệu:
sigComparisoncho trường hợpSMA50lớn hơnSMA200;sigThresholdvớicrossđặt làFALSEchoDVO_2_126nhỏ hơn 20;sigFormulađể liên kết chúng và đặtcrosslàTRUE;sigCrossovervớiSMA50nhỏ hơnSMA200; vàsigThresholdvớicrossđặt làTRUEchoDVO_2_126lớn hơn 80.
Chiến lược đầu tư $100,000 (giá trị initeq của bạn) vào mỗi giao dịch, và có thể có một chút bình quân giá theo đô la nếu DVO_2_126 dao động quanh mức 20 (mặc dù hiệu ứng này nhìn chung không đáng kể so với phân bổ ban đầu).
Trong chương cuối này, bạn sẽ học cách xem kết quả thực tế của danh mục. Nhưng trước hết, để tạo ra kết quả, bạn cần chạy chiến lược và điền thêm một số đoạn mã khung để đảm bảo quantstrat ghi nhận mọi thứ. Mã trong bài tập này là phần bạn sẽ cần sao chép và dán cho các lần sau.
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
- Dùng applyStrategy() để áp dụng chiến lược (
strategy.st) lên danh mục (portfolio.st). Lưu kết quả vào đối tượngout. - Chạy các hàm cần thiết để ghi nhận kết quả của chiến lược, gồm
updatePortf()và đặtdaterange, cũng nhưupdateAcct()vàupdateEndEq(). - Dựa trên thông tin này, thử tìm ngày của giao dịch cuối cùng.
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.
# Use applyStrategy() to apply your strategy. Save this to out
out <- applyStrategy(strategy = ___, portfolios = ___)
# Update your portfolio (portfolio.st)
updatePortf(___)
daterange <- time(getPortfolio(___)$summary)[-1]
# Update your account (account.st)
updateAcct(___, daterange)
updateEndEq(___)