यह रणनीति ट्रेंड फॉलोइंग को ट्रेलिंग स्टॉप लॉस के साथ जोड़ती है और मुनाफे के लिए ट्रेंड पर लगातार सवारी करने के लिए लाभ तर्क लेती है। यह ट्रेंड की दिशा निर्धारित करने के लिए मूविंग एवरेज का उपयोग करती है और जब कीमत एमए लाइनों के माध्यम से टूटती है तो ट्रेडिंग सिग्नल उत्पन्न करती है। लंबी स्थिति में प्रवेश करने के बाद, रणनीति एटीआर मूल्य के आधार पर स्टॉप लॉस सेट करती है और ट्रेंड का पालन करने के लिए इसे ट्रेलिंग स्टॉप लॉस लॉजिक के साथ समायोजित करती है। जब कीमत एक निश्चित स्तर तक बढ़ जाती है, तो कुछ लाभों को लॉक करने के लिए आंशिक लाभ होता है।
उपयोगकर्ता इनपुट के आधार पर बैकटेस्ट स्टार्ट और स्टॉप टाइमस्टैम्प सेट करें.
लंबी और छोटी स्टॉप कीमत, और पिछली प्रतिशत आरंभ करें.
जब कीमत एमए लाइन से ऊपर टूटती है तो लॉन्ग दर्ज करें.
एटीआर के साथ स्टॉप लॉस दूरी की गणना करें और स्टॉप लॉस मूल्य सेट करें।
जैसे-जैसे मूल्य बढ़ता जाता है, अधिक लाभ प्राप्त करने के लिए ऊपर की ओर स्टॉप लॉस ट्रेल करता है।
जब मूल्य लाभ की सीमा को छूता है, तो आंशिक लाभ प्राप्त करें।
एमए रेखा के नीचे कीमत टूटने पर शॉर्ट में प्रवेश करें.
एटीआर के साथ स्टॉप लॉस दूरी की गणना करें और स्टॉप लॉस मूल्य सेट करें।
जैसे-जैसे कीमत में गिरावट जारी रहती है, अधिक लाभ प्राप्त करने के लिए नीचे की ओर स्टॉप लॉस ट्रेल करें।
जब मूल्य लाभ की सीमा को छूता है, तो आंशिक लाभ प्राप्त करें।
ट्रेलिंग स्टॉप लॉस रुझानों का अनुसरण कर सकता है और लाभ की रक्षा करते हुए अधिक लाभ प्राप्त कर सकता है।
गतिशील एटीआर स्टॉप लॉस फिक्स्ड स्टॉप लॉस की तुलना में बाजार में उतार-चढ़ाव पर बेहतर प्रतिक्रिया करता है।
आंशिक लाभ लेने से कुछ लाभ प्राप्त होते हैं और निकासी के जोखिम कम होते हैं।
सरल और स्पष्ट तर्क, समझने और लागू करने में आसान।
अचानक रुझान उलटा होने से व्यापक स्टॉप लॉस दूरी के साथ बड़ा नुकसान हो सकता है।
एटीआर पर आधारित स्टॉप लॉस बहुत संवेदनशील हो सकता है और समय से पहले बंद हो सकता है।
अनुचित आंशिक लाभ लेने का अनुपात रुझानों को मिस कर सकता है या घाटे को बढ़ा सकता है।
कई मापदंडों को अनुकूलित करने की आवश्यकता है, जैसे एटीआर अवधि, पिछली प्रतिशत, लाभ लेने का अनुपात।
रणनीति केवल एमए और एटीआर पर निर्भर करती है, गलत संकेत हो सकते हैं।
ट्रेडिंग सिग्नल को फ़िल्टर करने और गलत एमए सिग्नल से बचने के लिए एमएसीडी, केडी जैसे अन्य संकेतक जोड़ें।
प्रवृत्ति की ताकत के आधार पर गतिशील लाभ लेने के अनुपात पर विचार करें।
इष्टतम स्थिरता के लिए विभिन्न एटीआर अवधि का परीक्षण करें। या स्टॉप लॉस के लिए अन्य संकेतकों का उपयोग करें।
स्वचालित रूप से मापदंडों को अनुकूलित करने और उन्हें गतिशील रूप से समायोजित करने के लिए मशीन लर्निंग का परिचय दें।
प्रवृत्तियों का पता लगाने और स्वचालित रूप से संकेत उत्पन्न करने के लिए गहरी सीखने के मॉडल का उपयोग करें।
यह रणनीति ट्रेलिंग स्टॉप लॉस, डायनेमिक एटीआर स्टॉप लॉस और ट्रेंड्स का पालन करने और ड्रॉडाउन को नियंत्रित करने के लिए आंशिक लाभ लेने को एकीकृत करती है। लेकिन इसमें कुछ सीमाएं हैं जैसे सरल ट्रेंड डिटेक्शन और कठिन पैरामीटर अनुकूलन। यह स्थिरता और लाभप्रदता बढ़ाने के लिए अधिक तकनीकों और संकेतकों का उपयोग करके रणनीति को और बेहतर बनाने के लिए अच्छे दिशाएं प्रदान करता है। कुल मिलाकर यह लाइव ट्रेडिंग के लिए स्टॉप लॉस और लाभ लेने के तंत्र को डिजाइन करने पर अच्छे संदर्भ प्रदान करता है।
/*backtest start: 2023-09-29 00:00:00 end: 2023-10-29 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © felipefs //@version=4 strategy("Meu Script", overlay=true) plot(ohlc4) //Funçao de Datas testStartYear = input(2018, "Backtest Start Year") testStartMonth = input(6, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false //Funções de Trailing Stop long_stop_price = 0.0 short_stop_price = 0.0 long_trail_perc = 0 short_trail_perc = 0 long_stop_price := if (strategy.position_size > 0) stopValue = close * (1 - long_trail_perc) max(stopValue, long_stop_price[1]) else 0 short_stop_price := if (strategy.position_size < 0) stopValue = close * (1 + short_trail_perc) min(stopValue, short_stop_price[1]) else 999999 //Função de Debug debug(value) => x = bar_index y = close label.new(x, y, tostring(value)) //Take Profit profit = close * (1 + 0.12) strategy.entry("Long", true) strategy.exit("Take Profit 1 Long", from_entry="Long", limit=profit, qty_percent=50.0) //ATR Stop // xATRTrailingStopLong = 0.0 // xATR = atr(nATRPeriod) // nLossLong = nATRMultipLong * xATR // if (strategy.position_size > 0) // xATRTrailingStopLong := max(nz(xATRTrailingStopLong[1]), close - nLossLong)