รันกลยุทธ์ของคุณ
ยินดีด้วยที่สร้างกลยุทธ์ใน quantstrat สำเร็จ! ทบทวนกันสักครั้ง กลยุทธ์นี้ใช้ indicator 3 ตัวและ signal 5 ตัวแยกกัน โดยกำหนดให้ค่า DVO_2_126 ต้องต่ำกว่า 20 และ SMA50 ต้องมากกว่า SMA200 พร้อมกัน และจะขายเมื่อ DVO_2_126 ข้ามขึ้นเหนือ 80 หรือ SMA50 ข้ามลงต่ำกว่า SMA200
กลยุทธ์นี้ใช้ signal ทั้งหมด 5 ตัว ได้แก่
sigComparisonสำหรับเงื่อนไขที่SMA50มากกว่าSMA200sigThresholdโดยตั้งcrossเป็นFALSEสำหรับDVO_2_126น้อยกว่า 20sigFormulaเพื่อรวมเงื่อนไขทั้งสองเข้าด้วยกันและตั้งcrossเป็นTRUEsigCrossoverสำหรับกรณีที่SMA50ข้ามลงต่ำกว่าSMA200sigThresholdโดยตั้งcrossเป็นTRUEสำหรับDVO_2_126มากกว่า 80
กลยุทธ์นี้ลงทุน $100,000 (ค่า initeq ของคุณ) ในแต่ละการซื้อขาย และอาจมีการถัวเฉลี่ยต้นทุนเล็กน้อยหาก DVO_2_126 แกว่งตัวรอบระดับ 20 แต่ผลกระทบโดยรวมถือว่าน้อยมากเมื่อเทียบกับเงินลงทุนเริ่มต้น
ในบทสุดท้ายนี้ คุณจะได้เรียนรู้วิธีดูผลลัพธ์จริงของพอร์ตโฟลิโอ แต่ก่อนอื่น ต้องรันกลยุทธ์และเติมโค้ด boilerplate เพิ่มเติมเพื่อให้ quantstrat บันทึกข้อมูลทุกอย่างอย่างครบถ้วน โค้ดในแบบฝึกหัดนี้คือโค้ดที่คุณจะต้องคัดลอกและนำไปใช้ในอนาคต
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเทรดหุ้นด้วย R
คำแนะนำการฝึกหัด
- ใช้ applyStrategy() เพื่อนำกลยุทธ์ (
strategy.st) ไปใช้กับพอร์ตโฟลิโอ (portfolio.st) แล้วบันทึกผลลัพธ์ไว้ในออบเจกต์out - รันฟังก์ชันที่จำเป็นเพื่อบันทึกผลของกลยุทธ์ ได้แก่
updatePortf()พร้อมกำหนดdaterangeรวมถึงupdateAcct()และupdateEndEq() - จากข้อมูลที่ได้ ลองดูว่าคุณสามารถหาวันที่ของการซื้อขายครั้งล่าสุดได้หรือไม่
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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(___)