sigCrossover का उपयोग
सिर्फ एक long फ़िल्टर होना इस रणनीति में ट्रेड लेने के लिए ज़रूरी है, लेकिन पर्याप्त नहीं. हालाँकि, जिस क्षण वह शर्त लागू नहीं रहती, रणनीति को किसी भी प्रकार की पोज़िशन नहीं रखनी चाहिए. इस अभ्यास में, आप ऊपर दी गई नियम का उल्टा sigCrossover() फंक्शन से लागू करेंगे.
sigComparison() के विपरीत, जो हमेशा बताएगा कि कोई शर्त सत्य है या नहीं, sigCrossover() केवल उसी क्षण पॉज़िटिव देता है जब सिग्नल पहली बार होता है, और फिर दोबारा नहीं. यह उन सिग्नलों के लिए उपयोगी है जिनसे ट्रांज़ैक्शन शुरू करना हो, क्योंकि अधिकतर मामलों में आप सिर्फ एक ही ट्रांज़ैक्शन चाहते हैं, बजाय इसके कि ट्रांज़ैक्शन बार-बार ट्रिगर होते रहें.
इस मामले में, आप sigCrossover() फंक्शन लागू करेंगे, यह निर्दिष्ट करते हुए कि SMA50 SMA200 के नीचे क्रॉस करता है. आप इस सिग्नल को filterexit लेबल देंगे, क्योंकि जब मूविंग एवरेज फ़िल्टर संकेत दे कि माहौल इस रणनीति के लिए पोज़िशन रखने लायक नहीं है, तब यह आपकी पोज़िशन से बाहर निकलेगा.
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में फाइनेंशियल ट्रेडिंग
अभ्यास निर्देश
add.signal()का उपयोग करके एकsigCrossoverजोड़ें, जिसमेंSMA50काSMA200के नीचे क्रॉस निर्दिष्ट हो.- इस सिग्नल को
filterexitके रूप में लेबल करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Add a sigCrossover which specifies that the SMA50 is less than the SMA200 and label it filterexit
add.signal(strategy.st, name = "___",
# We're interested in the relationship between the SMA50 and the SMA200
arguments = list(columns = c("___", "___"),
# The relationship is that the SMA50 crosses under the SMA200
relationship = "___"),
# Label it filterexit
label = "___")