यह रणनीति शेयरों का व्यापार करने के लिए कई कैंडलस्टिक पैटर्न मॉडल को जोड़ती है। यह विभिन्न बाजार स्थितियों में व्यापार के अवसरों को पकड़ने के लिए निगलने के पैटर्न, हराम पैटर्न और हराम क्रॉस पैटर्न को शामिल करती है।
इस रणनीति का मूल तर्क कई कैंडलस्टिक पैटर्न मान्यता नियमों का निर्माण करना है और फिर इन नियमों को मिलाकर ट्रेडिंग सिग्नल उत्पन्न करना है।
सबसे पहले, यह मोमबत्ती शरीर के आकार, खुलने की कीमत, बंद होने की कीमत आदि जैसे मोमबत्ती के गुणों का वर्णन करने के लिए कुछ बुनियादी चरों को परिभाषित करता है।
फिर बंद होने और खोलने की कीमत के बीच संबंध के आधार पर, यह 3 प्रकार के ट्रेडिंग बार को परिभाषित करता हैः 1 बढ़ रहा है, -1 गिर रहा है और 0 कोई बदलाव नहीं है।
इस आधार पर, 3 कैंडलस्टिक पैटर्न पहचान नियम बनाए गए हैंः
निगलने वाला पैटर्नः वर्तमान मोमबत्ती पिछले एक को निगलती है, खरीद या बिक्री संकेत उत्पन्न करती है।
हरमी पैटर्नः पिछली मोमबत्ती वर्तमान मोमबत्ती को निगल लेती है, खरीद या बिक्री संकेत उत्पन्न करती है।
हरमी क्रॉस पैटर्नः हरमी और डोजी का संयोजन, खरीद या बिक्री संकेत उत्पन्न करता है।
इन कैंडलस्टिक पैटर्न के अनुसार, खरीद और बिक्री का समय निर्धारित किया जा सकता है। कुछ अतिरिक्त शर्तों को अमान्य संकेतों को फ़िल्टर करने के लिए जोड़ा जाता है, जैसे कि व्यापार समय सीमा सीमा।
ट्रेडिंग लॉजिक पहले मौजूदा पोजीशन की जांच करता है. यदि सिग्नल दिशा के विपरीत है, तो यह पहले मौजूदा पोजीशन को बंद कर देगा, फिर सिग्नल के अनुसार नई पोजीशन खोलेगा.
संयोजन स्थिरता को बढ़ाता है। एकल पैटर्न विशिष्ट बाजार स्थितियों के लिए प्रवण है। संयोजन विश्वसनीयता में सुधार कर सकता है।
पुष्टिकरण सटीकता में सुधार करता है। विभिन्न पैटर्न एक दूसरे की पुष्टि करते हैं। झूठे संकेतों से बचा जा सकता है।
लचीलापनः उपयोगकर्ता स्वतंत्र रूप से मॉडल को जोड़ सकते हैं और विभिन्न बाजार गतिशीलता के लिए मापदंडों को समायोजित कर सकते हैं।
जोखिम नियंत्रण। स्टॉप लॉस और स्थिति प्रबंधन तर्क जोखिम को प्रभावी ढंग से प्रबंधित करता है।
जटिलता. अधिक मापदंडों का मतलब है अधिक जटिलता. गलत संयोजन प्रदर्शन को कम कर सकता है.
पैरामीटर ट्यूनिंग के लिए विशेषज्ञता की आवश्यकता होती है। उचित पैटर्न पैरामीटर सेट करने के लिए अनुभव की आवश्यकता होती है।
एकतरफा होल्डिंग जोखिम. लंबी या छोटी केवल लाभ की संभावना को सीमित करता है. दोनों लंबी और छोटी अनुमति मदद कर सकते हैं.
रिवर्स पॉइंट्स की कमी। पैटर्न पर ध्यान केंद्रित करने से ट्रेंड रिवर्स सिग्नल नजर से गायब हो जाते हैं। अन्य संकेतकों को जोड़ने से संभावित रिवर्स पॉइंट्स की पहचान करने में मदद मिल सकती है।
होल्डिंग जोखिम को कम करने के लिए स्टॉप लॉस जोड़ें।
समग्र प्रवृत्ति को निर्धारित करने के लिए अन्य तकनीकी संकेतकों को शामिल करें, प्रमुख प्रवृत्ति के खिलाफ व्यापार से बचें। उदाहरण के लिए एमएसीडी, बोलिंगर बैंड आदि।
विभिन्न उत्पादों में परीक्षण मॉडल पैरामीटर, प्रत्येक उत्पाद के लिए उपयुक्त इष्टतम पैरामीटर सेट स्थापित करें।
एआई का उपयोग करके मापदंडों और पैटर्न पहचान को अनुकूलित करने में मदद करने के लिए मशीन लर्निंग का परिचय दें।
यह रणनीति कई कैंडलस्टिक पैटर्न को मिलाकर अपेक्षाकृत स्थिर अल्पकालिक ट्रेडिंग प्रणाली का निर्माण करती है। लेकिन अधिक जटिल बाजारों को अनुकूलित करने के लिए पैरामीटर ट्यूनिंग और जोखिम नियंत्रण में अभी भी सुधार की आवश्यकता है। कुल मिलाकर इसमें ठोस तर्क है और पर्याप्त डेटा और अनुभव जमा करने और बुद्धिमान अनुकूलन के लिए मशीन लर्निंग का लाभ उठाने के बाद इसकी बड़ी क्षमता है।
/*backtest start: 2022-10-10 00:00:00 end: 2023-10-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's CandleModels Tests", shorttitle = "CandleModels tests", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") eng = input(true, defval = true, title = "Model Engulfing") har = input(true, defval = true, title = "Model Harami") harc = input(true, defval = true, title = "Model Harami Cross") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") rev = input(false, defval = false, title = "Reversive trading") //Body body = abs(close - open) abody = sma(body, 10) //MinMax Bars min = min(close, open) max = max(close, open) //Signals bar = close > open ? 1 : close < open ? -1 : 0 doji = body < abody / 10 up1 = eng and bar == 1 and bar[1] == -1 and min <= min[1] and max >= max[1] dn1 = eng and bar == -1 and bar[1] == 1 and min <= min[1] and max >= max[1] up2 = har and bar == 1 and bar[1] == -1 and min >= min[1] and max <= max[1] dn2 = har and bar == -1 and bar[1] == 1 and min >= min[1] and max <= max[1] up3 = harc and doji and bar[1] == -1 and low >= min[1] and high <= max[1] dn3 = harc and doji and bar[1] == 1 and low >= min[1] and high <= max[1] exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2 and rev == false //Trading if up1 or up2 or up3 if strategy.position_size < 0 strategy.close_all() strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn1 or dn2 or dn3 if strategy.position_size > 0 strategy.close_all() strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) or exit strategy.close_all()