Menjalankan strategi Anda
Selamat atas pembuatan strategi di quantstrat! Sebagai pengingat, strategi Anda menggunakan tiga indikator terpisah dan lima sinyal terpisah. Strategi ini mensyaratkan ambang DVO_2_126 berada di bawah 20 dan SMA50 lebih besar daripada SMA200. Strategi menjual ketika DVO_2_126 menembus ke atas 80, atau SMA50 menembus ke bawah SMA200.
Agar strategi ini berjalan dengan benar, Anda menentukan lima sinyal terpisah:
sigComparisonuntuk kondisiSMA50lebih besar dariSMA200;sigThresholddengancrossdisetel keFALSEuntukDVO_2_126kurang dari 20;sigFormulauntuk menggabungkan keduanya dan menyetelcrosskeTRUE;sigCrossoverdenganSMA50lebih kecil dariSMA200; dansigThresholddengancrossdisetel keTRUEuntukDVO_2_126lebih besar dari 80.
Strategi menginvestasikan $100.000 (initeq Anda) ke setiap transaksi, dan mungkin melakukan sedikit dollar cost averaging jika DVO_2_126 berosilasi di sekitar 20 (meskipun dampaknya umumnya kecil dibandingkan alokasi awal).
Di bab terakhir ini, Anda akan mempelajari cara melihat hasil aktual dari portofolio Anda. Namun terlebih dahulu, untuk menghasilkan hasil tersebut, Anda perlu menjalankan strategi Anda dan melengkapi beberapa kode boilerplate tambahan agar quantstrat mencatat semuanya. Kode dalam latihan ini adalah kode yang nantinya perlu Anda salin dan tempel.
Latihan ini adalah bagian dari kursus
Perdagangan Finansial dengan R
Petunjuk latihan
- Gunakan applyStrategy() untuk menerapkan strategi Anda (
strategy.st) ke portofolio Anda (portfolio.st). Simpan hasilnya ke objekout. - Jalankan fungsi yang diperlukan untuk merekam hasil strategi Anda, termasuk
updatePortf()dan menyeteldaterangesertaupdateAcct()danupdateEndEq(). - Berdasarkan informasi ini, coba cari tanggal transaksi terakhir.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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(___)