इस रणनीति का उद्देश्य परिसंपत्तियों के अल्पकालिक डाउनट्रेंड्स के उलट बिंदुओं की पहचान करना और उन बिंदुओं पर एक निश्चित राशि का निवेश करना है। यह अपट्रेंड्स की शुरुआत के बाद अपेक्षाकृत कम कीमतों पर निश्चित डॉलर लागत औसत (डीसीए) की अनुमति देता है।
यह रणनीति मासिक समय सीमा पर काम करती है। प्रत्येक महीने में 240 1-घंटे के बार होते हैं, जिनका उपयोग रुझान उलटने के समय को निर्धारित करने के लिए किया जाता है।
विशेष रूप से, रणनीति तेजी से ईएमए और धीमी ईएमए (ईएमए_सीडी) के बीच अंतर की गणना करती है, साथ ही ईएमए_सीडी की सिग्नल लाइन भी। जब तेजी से रेखा सिग्नल लाइन के ऊपर से गुजरती है, तो यह अल्पकालिक डाउनट्रेंड के अंत को निर्धारित करती है और एक खरीद संकेत को ट्रिगर करती है।
खरीद संकेत के बाद, रणनीति महीने के अंत में सभी पदों को बंद कर देगी। फिर प्रक्रिया अगले महीने दोहराई जाती है, एक महीने के लिए निश्चित आवधिक खरीद और होल्डिंग के साथ।
यह हमें अल्पकालिक गिरावट के अंत में नीचे मछली पकड़ने की अनुमति देता है, और निश्चित अंतराल पर डॉलर की लागत औसत।
इस रणनीति का सबसे बड़ा लाभ यह है कि यह सीमा-बाधित बाजारों को फ़िल्टर कर सकती है और केवल प्रवृत्ति उलट बिंदुओं पर खरीद सकती है, इस प्रकार अपेक्षाकृत बेहतर कीमतों पर डॉलर की लागत औसत हो जाती है।
इसके अलावा, उलटा बिंदु निर्धारित करने के लिए ईएमए का उपयोग करना केवल कैंडलस्टिक उलटा देखने की तुलना में अधिक स्थिर और सटीक हो सकता है। ईएमए अल्पकालिक बाजार शोर को चिकना कर सकता है जो प्रवेश समय को प्रभावित करता है।
अंत में, मासिक स्टॉप लॉस प्रत्येक महीने के निवेश के लिए प्रदर्शन को लॉक करता है, प्रति माह अधिकतम हानि को सीमित करता है।
इस रणनीति का सबसे बड़ा जोखिम यह है कि खरीद के बाद कीमतें गिरती रहती हैं, जिससे महीने के अंत में स्टॉप लॉस होता है। यह आमतौर पर गलत रिवर्सल पहचान के कारण होता है।
हम पहचान में सुधार के लिए ईएमए के मापदंडों का अनुकूलन कर सकते हैं, या उलट संकेतों की पुष्टि करने के लिए आरएसआई जैसे अन्य संकेतकों को जोड़ सकते हैं।
एक और जोखिम स्टॉप लॉस का स्तर है। एक स्टॉप लॉस जो बहुत तंग है, उसे अल्पकालिक उतार-चढ़ाव से आसानी से रोक दिया जा सकता है। एक स्टॉप लॉस जो बहुत चौड़ा है, नुकसान को सीमित करने में विफल रहता है। विभिन्न स्टॉप लॉस स्तरों का परीक्षण करके इष्टतम पैरामीटर खोजने की आवश्यकता है।
इस रणनीति में निम्नलिखित क्षेत्रों में सुधार किया जा सकता हैः
ईएमए अवधि को अनुकूलित करें ताकि उलटने की पहचान के लिए इष्टतम पैरामीटर संयोजन पाया जा सके।
रिवर्स सिग्नल की पुष्टि करने के लिए आरएसआई जैसे अन्य फ़िल्टर जोड़ें।
स्टॉप लॉस के विभिन्न स्तरों का परीक्षण करें ताकि वह इष्टतम बिंदु पाया जा सके जो विनाशकारी प्रभावों के बिना अधिकतम हानि रोकथाम कर सके।
मूल्य के आधार पर गतिशील रूप से स्टॉप स्तर को समायोजित करने के लिए स्टॉप लॉस के ऊपर ट्रेलिंग स्टॉप जोड़ने पर विचार करें।
इस रणनीति के लिए सबसे अच्छा प्रदर्शन देखने के लिए दैनिक या साप्ताहिक जैसे विभिन्न समय सीमाओं का परीक्षण करें।
इस रणनीति का समग्र विचार सरल और स्पष्ट है - अल्पकालिक रुझान उलटों की पहचान करने के लिए ईएमए का उपयोग करना, और प्रति माह उलट बिंदुओं पर डॉलर की लागत का औसत। यह प्रभावी रूप से अस्थिर बाजारों को फ़िल्टर कर सकता है और अपेक्षाकृत कम कीमतों पर निवेश कर सकता है। अनुकूलन स्थान ज्यादातर पैरामीटर ट्यूनिंग और स्टॉप लॉस तकनीकों में निहित है। कुल मिलाकर यह स्थिर परिसंपत्ति आवंटन के लिए एक उत्कृष्ट रणनीति अवधारणा है, जो आगे परीक्षण और सुधार के लायक है।
/*backtest start: 2023-09-07 00:00:00 end: 2023-10-07 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/ // © BHD_Trade_Bot // @version=5 // strategy( // shorttitle = 'DCA After Downtrend', // title = 'DCA After Downtrend (by BHD_Trade_Bot)', // overlay = true, // calc_on_every_tick = true, // calc_on_order_fills = true, // use_bar_magnifier = true, // pyramiding = 100, // initial_capital = 0, // default_qty_type = strategy.cash, // default_qty_value = 1000, // commission_type = strategy.commission.percent, // commission_value = 0.1) // Backtest Time Period start_year = input(title='Start year' ,defval=2017) start_month = input(title='Start month' ,defval=1) start_day = input(title='Start day' ,defval=1) start_time = timestamp(start_year, start_month, start_day, 00, 00) end_year = input(title='end year' ,defval=2050) end_month = input(title='end month' ,defval=1) end_day = input(title='end day' ,defval=1) end_time = timestamp(end_year, end_month, end_day, 23, 59) window() => true // EMA ema50 = ta.ema(close, 50) ema200 = ta.ema(close, 200) // EMA_CD emacd = ema50 - ema200 emacd_signal = ta.ema(emacd, 20) hist = emacd - emacd_signal // Count n candles after x long entries var int nPastCandles = 0 var int entryNumber = 0 nPastCandles := nPastCandles + 1 // ENTRY CONDITIONS // 8 hours per day => 240 hours per month entry_condition1 = nPastCandles > entryNumber * 240 // End of downtrend entry_condition2 = ta.crossover(emacd, emacd_signal) ENTRY_CONDITIONS = entry_condition1 and entry_condition2 if ENTRY_CONDITIONS and window() entryNumber := entryNumber + 1 entryId = 'Long ' + str.tostring(entryNumber) strategy.entry(entryId, strategy.long) // CLOSE CONDITIONS // Last bar CLOSE_CONDITIONS = barstate.islast if CLOSE_CONDITIONS strategy.close_all() // Draw plot(ema50, color=color.orange, linewidth=3) plot(ema200, color=entry_condition1 ? color.green : color.red, linewidth=3)