अपनी strategy चलाना
quantstrat में strategy बनाने पर बधाई! दोहराते हैं: आपकी strategy तीन अलग-अलग indicators और पाँच अलग-अलग signals का उपयोग करती है. यह strategy तभी काम करती है जब DVO_2_126 indicator की threshold 20 से कम हो और साथ ही SMA50 SMA200 से बड़ा हो. यह strategy तब बेचती है जब DVO_2_126 80 के ऊपर cross करे, या SMA50 SMA200 के नीचे cross करे.
इस strategy के सही से काम करने के लिए आपने पाँच अलग-अलग signals specify किए हैं:
SMA50केSMA200से बड़ा होने के लिएsigComparison;DVO_2_126के 20 से कम होने के लिएcrossकोFALSEसेट करकेsigThreshold;- इन्हें साथ जोड़ने और
crossकोTRUEसेट करने के लिएsigFormula; SMA50केSMA200से कम होने के लिएsigCrossover; औरDVO_2_126के 80 से बड़ा होने के लिएcrossकोTRUEसेट करकेsigThreshold.
यह strategy हर trade में $100,000 (आपका initeq) निवेश करती है, और अगर DVO_2_126 20 के आस-पास oscillate करे तो थोड़ा बहुत dollar cost averaging भी हो सकती है (हालाँकि शुरुआती allocation की तुलना में इसका असर अधिकतर नगण्य रहता है).
इस अंतिम chapter में, आप सीखेंगे कि अपने portfolio के वास्तविक परिणाम कैसे देखें. लेकिन उससे पहले, परिणाम बनाने के लिए आपको अपनी strategy चलानी होगी और कुछ और boilerplate code भरना होगा ताकि quantstrat सब कुछ record कर ले. इस अभ्यास में दिया गया code वही है जिसे आपको आगे चलकर copy-paste करना होगा.
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में फाइनेंशियल ट्रेडिंग
अभ्यास निर्देश
- अपनी strategy (
strategy.st) को अपने portfolio (portfolio.st) पर लागू करने के लिए applyStrategy() का उपयोग करें. इसेoutऑब्जेक्ट में सेव करें. - अपनी strategy के परिणाम record करने के लिए ज़रूरी functions चलाएँ, जिनमें
updatePortf()औरdaterangeसेट करना, साथ हीupdateAcct()औरupdateEndEq()शामिल हैं. - इस जानकारी के आधार पर, देखें कि क्या आप आखिरी trade की तारीख ढूँढ सकते हैं.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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(___)