मेटाट्रेडर 4 - मेटाट्रेडर परिचय में तंत्रिका नेटवर्क का उपयोग करने वाले उदाहरण आपके में से बहुत से आपके ईए में तंत्रिका नेटवर्क का उपयोग करने की संभावना पर विचार किया है। यह विषय विशेष रूप से 2007 ऑटोमेटेड ट्रेडिंग चैंपियनशिप और न्यूरल नेटवर्क पर आधारित अपने सिस्टम के साथ बेहतर द्वारा शानदार जीत के बाद बहुत गर्म था। कई इंटरनेट मंचों को तंत्रिका नेटवर्क और विदेशी मुद्रा व्यापार से संबंधित विषयों के साथ बाढ़ आ गई थी। दुर्भाग्य से NN के देशी MQL4 कार्यान्वयन आसान नहीं है। इसके लिए कुछ प्रोग्रामिंग कौशलों की आवश्यकता होती है और परिणाम विशेष रूप से बहुत प्रभावी नहीं होगा यदि आप अपने अंतिम परिणाम को टेस्टेरर में बड़ी संख्या में डेटा पर जांचना चाहते हैं। इस अनुच्छेद में आपको यह पता चलता है कि आप कुछ विशिष्ट बाधाओं और सीमाओं से बचते समय अपने MQL4 कोड में स्वतंत्र रूप से उपलब्ध (एलजीपीएल के तहत), प्रसिद्ध फास्ट कृत्रिम तंत्रिका नेटवर्क पुस्तकालय (फैन) का उपयोग कैसे कर सकते हैं। इसके अलावा मुझे लगता है कि पाठक इस विषय से संबंधित कृत्रिम तंत्रिका नेटवर्क (एन) और शब्दावली से परिचित है, इसलिए एमक्यूएल 4 भाषा में एन के विशेष कार्यान्वयन के व्यावहारिक पहलुओं पर बीमार ध्यान केंद्रित करता है। फैन सुविधाएँ फैन के कार्यान्वयन की संभावनाओं को पूरी तरह से समझने के लिए, इसके दस्तावेजों और सबसे अधिक इस्तेमाल किये जाने वाले कार्यों के साथ परिचित होने की जरूरत है। फैन का सामान्य उपयोग एक साधारण फीडबर्ड नेटवर्क बनाने के लिए है, इसे कुछ डेटा के साथ प्रशिक्षित करता है और चलाता है। निर्मित और प्रशिक्षित नेटवर्क को बाद में उपयोग के लिए फ़ाइल और पुनर्स्थापित करने के लिए बचाया जा सकता है। एक साल बनाने के लिए फ़ैनक्रिएटेस्टैंड () फ़ंक्शन का उपयोग करना होगा इसकी सिंटैक्स देखें: जहां numlayers इनपुट और आउटपुट परत सहित परतों की कुल संख्या का प्रतिनिधित्व करता है एलएनएनयूएम और निम्नलिखित तर्क इनपुट परत के साथ शुरू होने वाले प्रत्येक परत में न्यूरॉन्स की संख्या का प्रतिनिधित्व करते हैं और आउटपुट परत के साथ समाप्त होते हैं। 5 न्यूरॉन्स, 10 आदानों और 1 आउटपुट के साथ एक छिपी हुई परत के साथ एक नेटवर्क बनाने के लिए इसे इस प्रकार से कॉल करना होगा: एक बार एन बन जाता है तो अगले ऑपरेशन को इसे कुछ इनपुट और आउटपुट डेटा से प्रशिक्षित करना होगा। सरलतम प्रशिक्षण पद्धति में वृद्धिशील प्रशिक्षण दिया जाता है जो निम्नलिखित फ़ंक्शन द्वारा प्राप्त किया जा सकता है: यह फ़ंक्शन फ़ैनकार्टेस्टैंड () और इनपुट डेटा वेक्टर और आउटपुट डेटा वेक्टर दोनों से पहले लौटा संरचना फ़ैन में सूचक लेता है। इनपुट और आउटपुट वैक्टर फ़ैनटाइप प्रकार की सरणी हैं। यह तथ्य तथ्य के मामले में है कि फैन के संकलन के तरीके के आधार पर एक डबल या फ्लोट प्रकार होता है। इस कार्यान्वयन में इनपुट और आउटपुट वैक्टर डबल की सरणी होने जा रहे हैं एन को प्रशिक्षित करने के बाद अगले वांछित सुविधा उस नेटवर्क को चलाने के लिए होगी। कार्यान्वयन समारोह को निम्नानुसार परिभाषित किया गया है: यह फ़ंक्शन सूचक फ़ैन को पूर्वनिर्मित नेटवर्क का प्रतिनिधित्व करता है और परिभाषित प्रकार (डबल सरणी) के एक इनपुट वेक्टर को दर्शाता है। लौटा दिया गया मूल्य एक आउटपुट वेक्टर सरणी है। यह तथ्य एक यूटपुट नेटवर्क के लिए महत्वपूर्ण है क्योंकि हम सभी को आउटपुट मान के बजाय आउटपुट मान के साथ एक तत्व एरे मिलते हैं। दुर्भाग्य से अधिकांश फ़ैन फ़ंक्शंस एक एनक्यूचर फ़ैन के लिए सूचक का उपयोग करते हैं, जो एनएन का प्रतिनिधित्व करता है जिसे सीधे एमक्यूएल 4 द्वारा नियंत्रित नहीं किया जा सकता जो संरचनाओं को डेटाटाइप के रूप में समर्थन नहीं करता है। उस सीमा से बचने के लिए हमें इसे किसी तरह से लपेट कर MQL4 से छुपाना होगा। सबसे आसान तरीका उचित मूल्यों को पकड़ने वाले स्ट्रैटेन्ट फ़ैन पॉइंटर्स की एक सरणी बनाने और उन्हें एक इंटरेरियल द्वारा दर्शाई गई इंडेक्स के साथ संदर्भित करना है। इस तरह हम असमर्थित प्रकार के वेरिएबल को एक समर्थित के साथ बदल सकते हैं और एक आवरण पुस्तकालय बना सकते हैं जिसे आसानी से एमक्यूएल 4 कोड के साथ एकीकृत किया जा सकता है। फैन को लपेटते हुए मेरे सबसे अच्छे ज्ञान के रूप में MQL4 चर तर्कों के साथ फ़ंक्शंस का समर्थन नहीं करता है इसलिए हमें उस से भी निपटना होगा। दूसरी तरफ अगर सी फ़ंक्शन (चर तर्क लंबाई) को बहुत सारे तर्कों के साथ कुछ भी गलत नहीं कहा जाता है तो हम सी लाइब्रेरी को पास किए गए MQL4 फ़ंक्शन में निश्चित अधिकतम संख्या तर्क समझ सकते हैं। जिसके परिणामस्वरूप आवरण समारोह इस प्रकार दिखता है: हमने एफ 2 एम (जो कि फ़ैन टू एमक्यूएल के लिए खड़ा है) के साथ अग्रणी फ़ैन बदल दिया है, तर्कों (4 परतों) की स्थिर संख्या का इस्तेमाल किया है और लौटने का मान अब संरचना वाले एनआरएस के आंतरिक सरणी का सूचकांक है संचालित करने के लिए फ़ैन द्वारा आवश्यक फ़ैन डेटा इस तरह हम एमकएलएल कोड के भीतर से ऐसे फ़ंक्शन को आसानी से कॉल कर सकते हैं। वही निम्न के लिए चला जाता है: अंतिम, लेकिन कम से कम यह तथ्य नहीं है कि आपको कॉल के द्वारा अपने एक बार तैयार किए गए नाम को नष्ट करना चाहिए: एन रिलीज़ करने के लिए आपको रिवर्स ऑर्डर में नेटवर्क को नष्ट करना चाहिए, क्योंकि उन्हें बनाया गया था। वैकल्पिक रूप से आप इसका उपयोग कर सकते हैं: हालांकि, मुझे पूरा यकीन है कि आप में से कुछ अपने प्रशिक्षित नेटवर्क को बाद में उपयोग के लिए सहेज सकते हैं: बेशक सहेजे गए नेटवर्क बाद में लोड किए जा सकते हैं (या इसके बजाय पुन: निर्मित) के साथ: एक बार जब हम बुनियादी कार्यों को जानते हैं हमारे ईए में, लेकिन पहले हमें Fann2MQL पैकेज को स्थापित करने की आवश्यकता है। Fann2MQL को स्थापित करना इस पैकेज के उपयोग की सुविधा के लिए मैंने एमएसआई इंस्टॉलर बना दिया है जिसमें सभी स्रोत कोड और प्रीकंपिल्ड लाइब्रेरी और Fann2MQL. mqh हैडर फ़ाइल शामिल है जो सभी Fann2MQL कार्यों को घोषित करता है स्थापना की प्रक्रिया काफी सरल है। पहले आपको सूचित किया जाता है कि Fann2MQL GPL लाइसेंस के अंतर्गत है: Fann2MQL की स्थापना, चरण 1 फिर पैकेज को स्थापित करने के लिए फ़ोल्डर चुनें। आप डिफ़ॉल्ट प्रोग्राम FilesFann2MQL का उपयोग कर सकते हैं या सीधे अपनी मेटा ट्रेडरेक्स्पर्ट्स निर्देशिका में स्थापित कर सकते हैं। बाद में सभी फ़ाइलों को सीधे अपने स्थानों में स्थान दिया जाएगा अन्यथा आपको इन्हें मैन्युअल रूप से कॉपी करना होगा Fann2MQL की स्थापना, चरण 2 इंस्टॉलर फाइलों को निम्नलिखित फ़ोल्डर्स में डालता है: यदि आपने समर्पित Fann2MQL फ़ोल्डर में स्थापित करना चुना है, तो कृपया अपने मेटा ट्रेडर उपयुक्त निर्देशिका में इसके शामिल और पुस्तकालयों सबफ़ोल्डर की सामग्री की प्रतिलिपि बनाएँ। इंस्टॉलर आपके सिस्टम पुस्तकालयों फ़ोल्डर (ज्यादातर मामलों में WindowsSystem32) में भी फ़ैन लाइब्रेरी को स्थापित करता है। Src फ़ोल्डर में Fann2MQL के सभी स्रोत कोड हैं आप स्रोत कोड पढ़ सकते हैं जो एक अंतिम दस्तावेज़ है यदि आपको आंतरिक के बारे में और अधिक जानकारी की आवश्यकता है। आप कोड सुधार सकते हैं और अतिरिक्त सुविधाओं को जोड़ सकते हैं मैं आपको अपने पैच को भेजने के लिए प्रोत्साहित करता हूं यदि आप कुछ दिलचस्प बनाते हैं आपके ईए में तंत्रिका नेटवर्क का प्रयोग करना एक बार Fann2MQL स्थापित हो जाने पर आप अपना ईए या संकेतक लिखना शुरू कर सकते हैं। एनएन के संभावित उपयोग के बहुत सारे हैं आप भविष्य की कीमतों के आंदोलनों की भविष्यवाणी करने के लिए उनका उपयोग कर सकते हैं, लेकिन ऐसी भविष्यवाणियों की गुणवत्ता और इसका वास्तविक लाभ लेने की संभावना संदेहजनक है। सुदृढीकरण सीखने की तकनीकों का उपयोग करके आप अपनी स्वयं की रणनीति लिखने का प्रयास कर सकते हैं, एक क्यू-लर्निंग या कुछ इसी तरह का कहना है। आप एनएन को अपने अनुमानी ईए के लिए एक सिग्नल फिल्टर के रूप में इस्तेमाल करने का प्रयास कर सकते हैं या सभी तकनीकों को जोड़ सकते हैं और जो भी आप चाहते हैं आप केवल अपनी कल्पना से सीमित हैं यहां मैं आपको एमएसीडी द्वारा उत्पन्न संकेतों के लिए सरल फिल्टर के रूप में एनएन का उपयोग करने का एक उदाहरण दिखाऊंगा। कृपया इसे मूल्यवान ईए के रूप में मत मानो, लेकिन Fann2MQL के एक उदाहरण के आवेदन के रूप में उदाहरण के उदाहरण के उदाहरण ईए: NeuroMACD. mq4 काम करता है Ill बताता है कि Fann2MQL प्रभावी ढंग से MQL में कैसे उपयोग किया जा सकता है। प्रत्येक ईए के लिए सबसे पहली बात यह है कि वैश्विक चर की घोषणा, परिभाषित और अनुभाग शामिल हैं ये उन चीजों से युक्त न्यूरोएमएसीडी की शुरूआत है: इसमें शामिल कमांड Fann2MQL. mqh हेडर फ़ाइल को लोड करता है जिसमें सभी फ़ैन 2 एमक्यूएल फ़ंक्शंस की घोषणा होती है। उसके बाद सभी Fann2MQL पैकेज फ़ंक्शन स्क्रिप्ट में उपयोग के लिए उपलब्ध हैं। ANNPATH निरंतर, प्रशिक्षित फ़ैन नेटवर्क के साथ फ़ाइलों को संग्रहीत और लोड करने के लिए पथ को परिभाषित करता है। आपको उस फ़ोल्डर को बनाने की आवश्यकता है I. e. C: ANN NAME स्थिर में इस ईए का नाम होता है, जिसे बाद में नेटवर्क फ़ाइलों को लोड और सहेजने के लिए उपयोग किया जाता है। इनपुट पैरामीटर स्पष्ट नहीं हैं और जो भी नहीं हैं वे बाद में समझाएंगे, साथ ही वैश्विक वैरिएबल भी। प्रत्येक ईए के प्रवेश बिंदु इसकी init () फ़ंक्शन है: पहले यह जांच करता है कि क्या ईए सही समय सीमा अवधि पर लागू होता है या नहीं। एनइनपुट्स वेरिएबल में न्यूरल नेटवर्क इनपुट की संख्या शामिल है। साथ ही विभिन्न तर्कों के 3 सेट का उपयोग करें, हम इसे 3 से विभाज्य चाहते हैं। एनपीएथ को ईए नाम और मैजिकनम्बर को प्रतिबिंबित करने के लिए गणना की जाती है। जो स्लोएमए से गणना की जाती है फास्टएमए और सिग्नलएमए इनपुट आर्गुग्स जो कि बाद में एमएसीडी इंडिकेटर सिग्नलिंग के लिए इस्तेमाल की जाती हैं। एक बार यह जानता है कि एएनपीथ एनएएल का उपयोग करके तंत्रिका नेटवर्क को लोड करने की कोशिश करता है, जो कि बीमार नीचे वर्णित है। भारित नेटवर्क का आधा दीर्घ अवधि फ़िल्टरिंग के लिए होता है और दूसरा आधा शॉर्ट्स के लिए होता है। एनएसएललोडेड वैरिएबल का उपयोग इस तथ्य को इंगित करने के लिए किया जाता है कि सभी नेटवर्क सही तरीके से आरंभ किए गए थे। जैसा कि आपने शायद इस उदाहरण पर ईए को कई नेटवर्क लोड करने का प्रयास किया है। मुझे इस आवेदन में वास्तव में जरूरी संदेह है, फिर भी मैं आपको Fann2MQL की पूरी क्षमता दिखाना चाहता हूं, जो एक ही समय में एक से अधिक नेटवर्क का प्रबंधन कर रहा है और उन्हें कई कोर या सीपीयू का समानांतर लाभ ले सकता है इसे संभव बनाने के लिए Fann2MQL इंटेल थ्रेडिंग बिल्डिंग ब्लॉकों प्रौद्योगिकी का लाभ ले रहा है फ़ंक्शन F2Mparallelinit () उस इंटरफ़ेस को प्रारंभ करने के लिए उपयोग किया जाता है। जिस तरह से मैंने नेटवर्क को शुरू करने के लिए उपयोग किया है: जैसा कि आप देख सकते हैं कि अगर f2Mcreatefromfile () विफल रहता है, जो नकारात्मक रिटर्न मान द्वारा इंगित किया जाता है, तो नेटवर्क को F2Mcreatestandard () फ़ंक्शन के साथ तर्कों के साथ बनाया जाता है जो दर्शाता है कि निर्मित नेटवर्क में 4 परतें होनी चाहिए (इनपुट और आउटपुट सहित), एनिनपुट इनपुट, पहले छिपी हुई परत में एनिनपुट न्यूरॉन्स, दूसरी छिपी हुई परत में एनइनपुट 21 न्यूरॉन्स और आउटपुट परत में 1 न्यूरॉन। F2Msetactfunctionhidden () को छिपी परतों के सक्रियण फ़ंक्शन को SIGMOIDSYMMETRICSTEPWISE पर सेट करने के लिए प्रयोग किया जाता है (कृपया फ़ैन डॉक्यूमेंटेशन के फ़ैनैक्टिवेशनफंसेनम देखें) और वह आउटपुट परत के लिए भी जाता है। फिर f2mrandomizeweights () को कॉल किया जाता है जो नेटवर्क के अंदर न्यूरॉन कनेक्शन वजन को प्रारंभ करने के लिए उपयोग किया जाता है। यहां मैंने एलटी-0.4 0.4 जीटी की श्रेणी का इस्तेमाल किया था लेकिन आप अपने आवेदन के आधार पर किसी भी अन्य का उपयोग कर सकते हैं। इस बिंदु पर आप शायद डिबग () फ़ंक्शन को देखा है जो मैंने कई बार इस्तेमाल किया था अपने ईए के वर्बोज़ स्तर को बदलने के लिए सरल तरीकों में से एक इसके साथ और इनपुट पैरामीटर डीबग लेवल आप जिस तरह से आपके कोड डीबग आउटपुट का उत्पादन कर सकते हैं, उस पर ट्यून कर सकते हैं। यदि डिबग () फ़ंक्शन का पहला तर्क, डीबग स्तर डीबग लेवल से अधिक है, तो फ़ंक्शन किसी आउटपुट का उत्पादन नहीं करता है। यदि इसके बराबर टेक्स्ट स्ट्रिंग छपी हुई है। यदि डीबग का स्तर 0 स्ट्रिंग त्रुटि है: आरंभ करने के लिए जोड़ा गया है इस तरह से आप अपने कोड के द्वारा एकाधिक स्तरों पर उत्पादित डीबग को विभाजित कर सकते हैं। सबसे महत्वपूर्ण शायद त्रुटियों हैं, इसलिए वे स्तर 0 को सौंपे गए हैं। जब तक आप नीचे अपना डीबग लेवल नहीं कम करते हैं (जो सलाह नहीं दी जाती है) तब तक इसे प्रिंट किया जाएगा। स्तर 1 पर कुछ महत्वपूर्ण जानकारी मुद्रित की जाएगी, जैसे कि सफल नेटवर्क लोडिंग या सृजन की पुष्टि। स्तर 2 या उच्चतर पर मुद्रित जानकारी का महत्व धीरे-धीरे कम हो रहा है। प्रारंभ () फ़ंक्शन की विस्तृत व्याख्या से पहले, जो काफी लंबा है, मुझे आपको नेटवर्क इनपुट तैयार करने और वास्तविक नेटवर्क चलाने के लिए कुछ और फ़ंक्शन दिखाना होगा: फंक्शन एनिप्परपेरिनपुट () का उपयोग नेटवर्क के लिए इनपुट नाम तैयार करने के लिए किया जाता है (इस प्रकार नाम) इसका उद्देश्य काफी सीधा है, फिर भी यह बात है कि मुझे आपको याद दिलाना होगा कि इनपुट डेटा को ठीक से सामान्यीकृत होना चाहिए। इस मामले में कोई अत्याधुनिक सामान्यीकरण नहीं है, मैंने एमएसीडी मुख्य और सिग्नल मूल्यों का उपयोग किया है जो कि लेखे डेटा पर वांछित सीमा से अधिक नहीं हैं। वास्तविक उदाहरण में आपको शायद इस मुद्दे पर अधिक ध्यान देना चाहिए। जैसा कि आप शायद नेटवर्क इनपुट के लिए उचित इनपुट तर्कों को चुनने पर संदेह कर सकते हैं, यह कोडन, कमजोर करना और सामान्यीकरण तंत्रिका नेटवर्क संसाधनों में सबसे महत्वपूर्ण कारकों में से एक है। जैसा कि मैंने उल्लेख किया है कि Fann2MQL के पास मेटाट्रेडर की सामान्य कार्यक्षमता को विस्तारित करने की क्षमता है, जो तंत्रिका नेटवर्क के समानांतर मल्टीथ्रेडेड प्रसंस्करण है। वैश्विक तर्क समानांतर इस व्यवहार को नियंत्रित करता है। रनन () फ़ंक्शन सभी प्रारंभिक नेटवर्क चलाता है और एनओयूटीपुट सरणी में उन और आउटपुट के आउटपुट को प्राप्त करता है। एन्सेरुनपाराल फंक्शन, बहुस्तरीय तरीके से नौकरी को संभालने के लिए जिम्मेदार है। यह f2mrunparallel () को कॉल करता है जो कि पहली तर्क के रूप में संसाधित करने के लिए नेटवर्क की संख्या को दर्शाता है, दूसरा तर्क एक सरणी है जिसमें सभी नेटवर्कों को संभालती है, जो कि आप एक तृतीय तर्क के रूप में इनपुट वेक्टर प्रदान करना चाहते हैं। सभी नेटवर्क को बहुत ही इनपुट डेटा पर चलाना होगा। नेटवर्क से आउटपुट प्राप्त करने के लिए कई कॉल्स द्वारा किया जाता है f2mgetoutput () अब प्रारंभ () फ़ंक्शन देखें: बीमार इसे संक्षेप में वर्णन करते हैं क्योंकि यह काफी अच्छी तरह से टिप्पणी की जाती है। व्यापारित () जांच करता है कि उसे व्यापार करने की अनुमति है या नहीं। असल में यह एन्सलोडेड चर की जाँच करता है कि सभी एनआरएस ठीक से आरंभ किए गए थे, फिर उचित समय सीमा अवधि के न्यूनतम खाता शेष के लिए जांच की जाती है और बहुत ही अंत में केवल एक नई बार की पहली टिक पर व्यापार करने की अनुमति मिलती है। अगले दो फ़ंक्शन जो नेटवर्क इनपुट तैयार करने और नेटवर्क प्रसंस्करण को चलाने के लिए उपयोग किए जाते हैं, उन्हें ऊपर दिए गए कुछ पंक्तियों का वर्णन किया गया था। इसके बाद हम पिछले बिल्डअप बार और पिछले एक के लिए सिग्नल और मुख्य लाइन के एमएसीडी मूल्यों को प्रोसेस करने के लिए वैरिएबल्स की गणना और डालते हैं। वर्तमान बार के रूप में छोड़ा गया है क्योंकि यह अभी तक का निर्माण नहीं हुआ है और संभवत: इसे फिर से तैयार किया जाएगा। सेलसैग्नल और बैकसाइन्गल की गणना एमएसीडी सिग्नल और मुख्य लाइन क्रॉसओवर के हिसाब से की जाती है। दोनों सिग्नल लंबी और छोटी स्थिति प्रसंस्करण के लिए उपयोग किया जाता है जो सममित होते हैं, इसलिए बीमार केवल लम्बे के मामले का वर्णन करते हैं। लॉन्गटेट वैरिएबल वर्तमान में खोले स्थान की टिकट संख्या रखती है। यदि इसकी -1 के बराबर स्थिति नहीं है तो खरीदा जाता है यदि BuySignal सेट किया गया है जो कि लंबे समय तक स्थिति को खोलने का अच्छा मौका दिखा सकता है। यदि परिवर्तक न्यूरोफिल्टर सेट नहीं किया जाता है तो लंबी स्थिति खोली जाती है और यह सिग्नल के तंत्रिका नेटवर्क फ़िल्टरिंग के बिना मामला है - यह आदेश खरीदने के लिए भेजा जाता है। इस बिंदु पर लॉन्गइनपॉप वैरिएबल का मतलब इनप्रेडिटेटर को बाद में उपयोग के लिए एनिप्टपेरिन इनपुट () द्वारा तैयार किया गया है। अगर LongTicekt चर वैध टिकट संख्या धारण करता है तो EA यह जांचता है कि क्या अभी भी खोला गया है या StopLoss या TakeProfit द्वारा बंद किया गया था। यदि आदेश बंद नहीं हुआ है, तो कुछ भी नहीं होता है, हालांकि यदि ऑर्डर बंद है तो ट्रेन आउटपुट वेक्टर, जिसमें केवल एक ऑप्ट्यूशन है, को 1 के मान रखने की गणना की जाती है यदि आदेश हानि के साथ बंद हो गया या 1 अगर लाभ मुनाफे के साथ बंद हो गया । उस वैल्यू को एनट्रैन () फ़ंक्शन के लिए पारित किया जाता है और लंबी स्थिति को संभालने के लिए उत्तरदायी सभी नेटवर्क इसके साथ प्रशिक्षित होते हैं। इनपुट वेक्टर के रूप में चर का इस्तेमाल किया जाता है, जो कि लाइन खोलने के समय इनपुट इनवेक्टर को रखता है। इस तरह से नेटवर्क सिखाया जाता है कि कौन सा संकेत लाभ ला रहा है और जो नहीं है। एक बार जब आपके पास न्यूरोफिल्टर को सचमुच स्विच करने के लिए एक प्रशिक्षित नेटवर्क है, तो नेटवर्क फ़िल्टरिंग बदल जाती है। एनविज़ेलॉन्ग () न्यूरल नेटवर्क का उपयोग कर रहा है, जिसकी लंबी स्थिति को संभालने के लिए सभी नेटवर्कों द्वारा लौटाए गए मानों का मतलब माना जाता है। डेल्टा पैरामीटर को थ्रेसहोल्ड मान के रूप में प्रयोग किया जाता है, यह दर्शाता है कि फ़िल्टर्ड सिग्नल मान्य है या नहीं जैसा कि कई अन्य मूल्यों को ऑप्टिमाइज़ेशन की प्रक्रिया के माध्यम से प्राप्त किया गया था। अब एक बार हम जानते हैं कि यह कैसे काम करता है Ill बताता है कि इसका इस्तेमाल कैसे किया जा सकता है परीक्षण जोड़ी निश्चित रूप से EURUSD है मैंने अल्पारी से डेटा का इस्तेमाल किया एम 5 समय सीमा में परिवर्तित मैंने प्रशिक्षण के लिए 2007.12 से 200 9 .01.01 की अवधि का प्रयोग किया था और 2009.01.01-2009.03.22 परीक्षण प्रयोजनों के लिए बहुत पहले रन में मैंने स्टॉपलॉस, टेक पाइफिट, स्लोमा, फास्टमा और सिग्नल एमएआर तर्क के लिए सबसे लाभदायक मान प्राप्त करने की कोशिश की, जिसे मैंने तब न्योरोएमएसीडी.एमसी 4 फ़ाइल में कोडित किया। NeuroFIlter बंद कर दिया गया था और साथ ही SaveAnn। न्यूरल प्रसंस्करण से बचने के लिए एन्सनम्बर 0 पर सेट किया गया था। मैंने अनुकूलन प्रक्रिया के लिए आनुवंशिक एल्गोरिदम का इस्तेमाल किया एक बार मूल्य प्राप्त किए गए परिणामस्वरूप रिपोर्ट निम्नानुसार दिखाई दी: मूल पैरामीटर अनुकूलन के बाद प्रशिक्षण डेटा पर रिपोर्ट करें। जैसा कि आप देख सकते हैं कि मैंने 0.01 के लॉट आकार और 200 के प्रारंभिक शेष के साथ मिनी खाते पर इस ईए को चलाया है। हालांकि आप अपने खाते की सेटिंग्स या प्राथमिकताओं के अनुसार इन पैरामीटर को ठीक कर सकते हैं। इस समय हमारे पास पर्याप्त लाभदायक है और ट्रेडों को खोना है ताकि हम SaveAnn को चालू कर सकें और AnnsNumber को 30 सेट कर सकें। एक बार ऐसा किया जाता है तो मैं एक बार फिर परीक्षक चलाता हूं। नतीजा यह था कि वास्तव में प्रक्रिया बहुत धीमी थी (न्यूरल प्रसंस्करण के परिणामस्वरूप) और फ़ोल्डर सी: एएनएन प्रशिक्षित नेटवर्क से आबादी थी जैसा कि नीचे की छवि पर दिखाया गया है। सुनिश्चित करें कि सी: एएनएन फ़ोल्डर इस चलाने से पहले मौजूद है सी: एएनएन फ़ोल्डर एक बार जब हम परीक्षण करने के लिए अपना समय प्रशिक्षित नेटवर्क करते हैं तो यह कैसे व्यवहार करता है। पहले अच्छी तरह से प्रशिक्षण डेटा पर कोशिश करो न्यरोफिल्टर को सच्चे और सेवएन्ने को झूठे में बदलें और परीक्षक को शुरू करें। मैंने जो परिणाम प्राप्त किया है वह नीचे दिखाया गया है। ध्यान दें कि यह आपके लिए मामूली भिन्न हो सकता है क्योंकि नेटवर्क इनिशियलाइज़ेशन प्रक्रिया में दिए गए न्यूरॉन कनेक्शन वजन में नेटवर्क के अंदर कुछ यादृच्छिकता है (इस उदाहरण में मैं अनलोड ()) के अंदर स्पष्ट कॉल को f2Mrandomizeweights () में इस्तेमाल किया है। सिग्नल न्यूरल फ़िल्टरिंग के साथ प्रशिक्षण डेटा पर परिणाम प्राप्त हुआ। शुद्ध लाभ थोड़ा अधिक है (20.03 बनाम 16.92), फिर भी लाभ का कारक बहुत अधिक है (1.25 बनाम 1.1)। ट्रेडों की संख्या बहुत कम है (83 बनाम 1188) और लगातार लगातार घाटे की संख्या 7 से 2 कम हो गई है। हालांकि यह केवल दिखाता है कि तंत्रिका सिग्नल फ़िल्टरिंग काम कर रही है, लेकिन यह कुछ भी नहीं बताता है कि यह डेटा किस प्रकार संचालित होता है प्रशिक्षण के दौरान परिणाम मैं परीक्षण अवधि (2009.01.01 - 2009.30.28) से प्राप्त किया है नीचे दिखाया गया है: तंत्रिका छानने के साथ परीक्षण डेटा से प्राप्त परिणाम चालू है। प्रदर्शन किए गए ट्रेडों की संख्या काफी कम है और इस रणनीति की गुणवत्ता को जानने में कठिनाई होती है, फिर भी मैं आपको यह नहीं बता रहा था कि कैसे सबसे अच्छा लाभदायक ईए लिखना है, लेकिन यह समझाने के लिए कि आप अपने MQL4 कोड में तंत्रिका नेटवर्क कैसे उपयोग कर सकते हैं। इस मामले में तंत्रिका नेटवर्क का उपयोग करने का वास्तविक प्रभाव केवल तब ही देखा जा सकता है जब न्यरोफिल्टर के साथ टेस्ट डेटा पर ईए के परिणाम की तुलना में चालू और बंद हो। नीचे न्यूरल सिग्नल फ़िल्टरिंग के बिना डेटा अवधि का परीक्षण करने से प्राप्त परिणाम है: न्यूरल फ़िल्टरिंग के बिना परीक्षण डेटा के परिणाम अंतर काफी स्पष्ट है जैसा कि आप देख सकते हैं कि तंत्रिका सिग्नल फ़िल्टरिंग ने खोया ईए को एक लाभदायक एक में बदल दिया है निष्कर्ष मुझे उम्मीद है कि आपने मेटाट्रेडर में तंत्रिका नेटवर्क का उपयोग कैसे किया है। सरल, स्वतंत्र और ओपनसोर्स पैकेज Fann2MQL की मदद से आप आसानी से तंत्रिका नेटवर्क परत लगभग किसी भी विशेषज्ञ सलाहकार में जोड़ सकते हैं या अपने खुद के एक लिखना शुरू कर सकते हैं जो पूरी तरह या आंशिक रूप से तंत्रिका नेटवर्क पर आधारित है। अनूठी मल्टीथ्रेडिंग क्षमता आपके प्रोसेसिंग को कई बार बढ़ा सकती है, अपने CPU कोर की संख्या के आधार पर, खासकर जब कुछ मापदंडों का अनुकूलन करते हैं एक मामले में, उसने अपने सुदृढीकरण सीखना आधारित ईए प्रसंस्करण को लगभग 4 दिनों से 4 कोर इंटेल सीपीयू पर केवल 28 घंटे के लिए ऑप्टिमाइज़ किया। इस लेख के लेखन के दौरान मैंने अपनी वेबसाइट पर Fann2MQL डाल करने का निर्णय लिया है: fann2mql. wordpress आप वहां Fann2MQL का नवीनतम संस्करण और संभवतः सभी भविष्य के संस्करणों के साथ-साथ सभी फ़ंक्शन के दस्तावेज़ीकरण भी देख सकते हैं। मैं इस सॉफ्टवेयर को सभी रिलीज के लिए जीपीएल लाइसेंस के तहत रखने का वादा करता हूं इसलिए यदि आप मुझे कोई टिप्पणी, फीचर अनुरोध या पैच भेजते हैं जो मुझे रोचक लगेगा तो इसे अगले रिलीज को ढूंढना सुनिश्चित करें कृपया ध्यान दें कि यह आलेख केवल Fann2MQL का मूलभूत उपयोग दिखाता है जैसा कि यह पैकेज फैन से ज्यादा नहीं है, आप फ़ैन नेटवर्क के प्रबंधन के लिए डिज़ाइन किए गए सभी टूल का उपयोग कर सकते हैं, जैसे: और फाइन आर्टिफिशियल न्यूरल नेटवर्क लाइब्रेरी होमपेज पर फ़ैन के बारे में बहुत कुछ है: leenissen. dkfann Post Scriptum इस आलेख को लिखने के बाद मैंने पाया है NeuroMACD. mq4 में एक तुच्छ त्रुटि। शॉर्ट पोजीशन के लिए ऑर्डरक्लोस () फ़ंक्शन लम्बी पोजिशन टिकट संख्या से खिलाया गया था। इसके परिणामस्वरूप एक तिरछी रणनीति बन गई, जो शॉर्ट्स और निकटता को लेकर अधिक होने की संभावना थी: स्क्रिप्ट के सही संस्करण में मैंने इस त्रुटि को तय किया है और ऑर्डर-क्लोज () रणनीति को बिल्कुल भी हटा दिया है। इसने ईए पर न्यूरल फ़िल्टरिंग के प्रभाव की समग्र तस्वीर को बदल नहीं किया है, फिर भी संतुलन वक्र आकार काफी भिन्न था। आप इस ईए के दोनों संस्करणों को इस लेख से जुड़ा कर सकते हैं। नेशनल नेटवर्क: पूर्वानुमान मुनाफ़ा तंत्रिका नेटवर्क अत्याधुनिक, प्रशिक्षित एल्गोरिदम हैं जो मानव मस्तिष्क के कामकाज में कुछ प्रमुख पहलुओं का अनुकरण करते हैं। इससे उन्हें एक अनूठी, स्व-प्रशिक्षण क्षमता, अवर्गीकृत जानकारी को औपचारिक बनाने की क्षमता और सबसे महत्वपूर्ण बात यह है कि उन्हें उनके निपटान में होने वाली ऐतिहासिक जानकारी के आधार पर पूर्वानुमान बनाने की क्षमता है। पूर्वानुमान और विपणन अनुसंधान समाधानों सहित विविध प्रकार के व्यावसायिक अनुप्रयोगों में तंत्रिका नेटवर्क का तेजी से उपयोग किया गया है। कुछ क्षेत्रों में, जैसे धोखाधड़ी का पता लगाने या जोखिम मूल्यांकन वे निर्विवाद नेताओं हैं जिन प्रमुख क्षेत्रों में तंत्रिका नेटवर्क को आवेदन मिला है वह वित्तीय संचालन, एंटरप्राइज़ योजना, व्यापार, व्यवसाय विश्लेषण और उत्पाद रखरखाव हैं। सभी प्रकार के व्यापारियों द्वारा तंत्रिका नेटवर्क को लाभप्रद रूप से लागू किया जा सकता है, इसलिए यदि आप एक व्यापारी हैं और आप अभी तक तंत्रिका नेटवर्क के लिए पेश किए गए हैं, तो आपको तकनीकी विश्लेषण की इस पद्धति के माध्यम से लेना और यह दिखाता है कि आप इसे अपने व्यापारिक शैली में कैसे लागू करें। आम भ्रूषण अधिकांश लोगों ने न्यूरल नेटवर्क के बारे में कभी नहीं सुना है और अगर वे व्यापारी नहीं हैं, तो उन्हें शायद यह जानने की जरूरत न हो कि वे क्या हैं। सचमुच आश्चर्य की बात है, हालांकि, यह तथ्य है कि उन लोगों की बड़ी संख्या जो तंत्रिका नेटवर्क प्रौद्योगिकी से बड़े पैमाने पर लाभान्वित हो सकते हैं, कभी भी इसके बारे में नहीं सुना है, यह एक महान वैज्ञानिक विचार के लिए लेते हैं या एक चालाक विपणन नौटंकी के रूप में सोचते हैं। ऐसे भी लोग हैं जो न्यूरल नेटवर्क पर अपनी सारी उम्मीदों को पिन करते हैं, जाल को अपने साथ कुछ सकारात्मक अनुभव के बाद, और किसी भी प्रकार की समस्या का रजत बुलेट समाधान के रूप में उनके बारे में चिंतित करते हैं। हालांकि, किसी भी व्यापार रणनीति की तरह तंत्रिका नेटवर्क कोई त्वरित तय नहीं है जो आपको एक बटन या दो पर क्लिक करके इसे अमीरों को मारने देगा। वास्तव में, तंत्रिका नेटवर्क और उनके उद्देश्य की सही समझ उनके सफल आवेदन के लिए महत्वपूर्ण है। जहाँ तक व्यापार का संबंध है, तंत्रिका नेटवर्क तकनीकी विश्लेषण का एक नया, अनोखा तरीका है, जो उन लोगों के लिए इरादा है जो अपने व्यवसाय के लिए एक सोच दृष्टिकोण लेते हैं और इस पद्धति को उनके लिए काम करने के लिए कुछ समय और प्रयास करने के लिए तैयार हैं। सबसे अच्छा, जब सही तरीके से लागू किया जाता है, तंत्रिका नेटवर्क नियमित आधार पर लाभ ला सकता है। अवसरों को उजागर करने के लिए तंत्रिका नेटवर्क का उपयोग करें एक प्रमुख गलत धारणा यह है कि कई व्यापारियों ने एक भविष्यवाणी उपकरण के लिए तंत्रिका नेटवर्क को गलती की है जो किसी विशेष बाजार की स्थिति में कैसे कार्य करने की सलाह दे सकता है। तंत्रिका नेटवर्क कोई पूर्वानुमान नहीं बनाते हैं इसके बजाय, वे मूल्य डेटा का विश्लेषण करते हैं और अवसरों को उजागर करते हैं। तंत्रिका नेटवर्क का उपयोग करके, आप अच्छी तरह से विश्लेषण किए गए डेटा के आधार पर व्यापार निर्णय ले सकते हैं, जो पारंपरिक तकनीकी विश्लेषण विधियों का उपयोग करते समय जरूरी नहीं है। एक गंभीर, सोच व्यापारी के लिए, तंत्रिका नेटवर्क एक अगली पीढ़ी के उपकरण हैं जो महान संभावनाएं हैं जो सूक्ष्म गैर-रेखीय अंतर-निर्भरता और पैटर्न का पता लगा सकते हैं जो तकनीकी विश्लेषण के अन्य तरीकों को उजागर करने में असमर्थ हैं। सर्वश्रेष्ठ जाल किसी भी तरह के महान उत्पाद या तकनीक की तरह, तंत्रिका नेटवर्क ने उन सभी को आकर्षित करना शुरू कर दिया है जो एक नवोदित बाजार की तलाश में हैं। अगली पीढ़ी के सॉफ्टवेयर के बारे में विज्ञापनों के टोरेंट ने बाजार में बाढ़ आ गई है - जो कभी भी बनाए गए सभी तंत्रिका नेटवर्क एल्गोरिदम के सबसे शक्तिशाली का जश्न मनाते हैं। यहां तक कि उन दुर्लभ मामलों में जब विज्ञापन के दावों के सच्चे समान होते हैं, तो ध्यान रखें कि दक्षता में 10 वृद्धि संभवतः सबसे अधिक है जो आप कभी भी तंत्रिका नेटवर्क से प्राप्त करेंगे। दूसरे शब्दों में, यह चमत्कारी रिटर्न का उत्पादन नहीं करता है और चाहे किसी विशेष परिस्थिति में यह कितनी अच्छी तरह काम करता है, कुछ डेटा सेट और कार्य कक्षाएं होंगी, जिसके लिए पहले से इस्तेमाल किए गए एल्गोरिदम बेहतर बने रहते हैं। यह याद रखें: इसकी कोई एल्गोरिथ्म नहीं है जो चाल करता है। लक्षित सूचक पर अच्छी तरह से तैयार की गई जानकारी, न्यूरल नेटवर्क के साथ आपकी सफलता का सबसे महत्वपूर्ण घटक है। तेजी से कन्वर्जेंस बेहतर होता है, जो पहले से ही तंत्रिका नेटवर्क का उपयोग करते हैं, वे गलती से मानते हैं कि तेजी से उनके नेट परिणाम प्रदान करता है, बेहतर यह है। यह, हालांकि, एक भ्रम है। एक अच्छा नेटवर्क दर से निर्धारित नहीं होता है जिस पर यह परिणाम पैदा करता है और उपयोगकर्ताओं को उस वेग के बीच का सबसे अच्छा संतुलन प्राप्त करना सीखना चाहिए जिस पर नेटवर्क गाड़ियों और परिणामों की गुणवत्ता उत्पन्न होती है। न्यूरल नेट के सही आवेदन कई व्यापारियों ने तंत्रिका जाल को गलत तरीके से लागू किया है क्योंकि वे सॉफ्टवेयर में बहुत भरोसा रखते हैं जिससे वे सही तरीके से इसका उपयोग करने के तरीके के उचित निर्देश प्रदान किए बिना सभी का उपयोग करते हैं। एक तंत्रिका नेटवर्क का सही तरीके से उपयोग करने के लिए और, इस प्रकार, लाभप्रद रूप से, एक व्यापारी को नेटवर्क तैयारी चक्र के सभी चरणों पर ध्यान देना चाहिए। यह एक व्यापारी है और न ही उसकी जाल है जो एक विचार की खोज के लिए जिम्मेदार है, इस विचार को औपचारिक रूप से तैयार करने और उसे सुधारने के लिए, और, आखिरकार, जब इसे अब उपयोगी नहीं है, तो इसे निपटाने के लिए सही समय का चयन करना। हमें इस महत्वपूर्ण प्रक्रिया के चरणों को और अधिक विस्तार से देखें: 1. ट्रेडिंग आइडिया ढूँढना और फॉर्मलाइज करना एक व्यापारी को पूरी तरह से समझना चाहिए कि उसके तंत्रिका नेटवर्क को जीतने वाले व्यापारिक विचारों और अवधारणाओं का आविष्कार करने का इरादा नहीं है। यह आपके व्यापारिक विचार या अवधारणा को कितना प्रभावशाली है पर सबसे भरोसेमंद और सटीक जानकारी प्रदान करने के लिए है इसलिए, आपको एक मूल व्यापारिक विचार के साथ आना चाहिए और इस विचार के उद्देश्य को स्पष्ट रूप से परिभाषित करना चाहिए और इसे नियोजित करके आप क्या हासिल करना चाहते हैं। यह नेटवर्क तैयारी चक्र में सबसे महत्वपूर्ण चरण है। (संबंधित रीडिंग के लिए, ट्रेडर्स डायरीज़ से पाठ देखें।) 2. अपने मॉडल के पैरामीटर को सुधारना अगला, आपको उपयोग किए गए डेटा सेट को संशोधित करके और विभिन्न पैरामीटरों को समायोजित करके समग्र मॉडल की गुणवत्ता में सुधार करने का प्रयास करना चाहिए। चित्रा 1: अनुकूलन एल्गोरिथ्म और इसकी गुणधर्म निर्दिष्ट करना 3. मॉडल का निपटान जब यह अप्रचलित हो जाता है हर तंत्रिका-नेटवर्क आधारित मॉडल का जीवन काल होता है और उसे अनिश्चित काल तक उपयोग नहीं किया जा सकता। मॉडल के जीवन काल की लंबी अवधि बाजार की स्थिति पर निर्भर करती है और उसमें परस्पर निर्भरता कितनी लंबी है, इसके बारे में सामयिक रहता है। हालांकि, अभी या बाद में कोई भी मॉडल अप्रचलित हो जाता है जब ऐसा होता है, तो आप या तो पूरी तरह से नए डेटा का उपयोग करके मॉडल को फिर से प्रशिक्षित कर सकते हैं (यानी सभी डेटा का उपयोग किया गया है जो प्रतिस्थापित किया गया), मौजूदा डेटा सेट में कुछ नया डेटा जोड़ें और मॉडल को फिर से प्रशिक्षित करें, या फिर मॉडल पूरी तरह से सेवानिवृत्त करें। कई व्यापारी सरलतम मार्ग का अनुसरण करने की गलती करते हैं - वे उस पर निर्भर हैं और उस दृष्टिकोण का उपयोग करते हैं जिसके लिए उनका सॉफ्टवेयर सबसे उपयोगकर्ता-अनुकूल और स्वचालित कार्यक्षमता प्रदान करता है। यह सबसे आसान तरीका कुछ पूर्वानुमानों की भविष्यवाणी कर रहा है और इस पूर्वानुमान पर आपके व्यापार प्रणाली का आधार बना रहा है। अन्य व्यापारियों ने कीमत में बदलाव या कीमत में बदलाव का प्रतिशत बताया। इस दृष्टिकोण को सीधे कीमत की भविष्यवाणी से बेहतर परिणाम मिलते हैं। दोनों सरल दृष्टिकोण अपूर्ण और लंबी अवधि के अन्य अन्तर्राष्ट्रीय निर्भरताओं को लाभप्रद रूप से फायदा उठाने में विफल रहते हैं, परिणामस्वरूप, मॉडल जल्दी से अप्रचलित हो जाता है क्योंकि वैश्विक ड्राइविंग बल बदलते हैं। न्यूरल नेटवर्क का उपयोग करने के लिए सबसे अधिक अनुकूलतम उपाय एक सफल व्यापारी अपने तंत्रिका नेटवर्क के लिए संचालन इनपुट आइटम का चयन करने और उनके मापदंडों को समायोजित करने के लिए काफी समय पर ध्यान केंद्रित करेगा और खर्च करेगा। वह (कई सालों से) कम से कम खर्च करेगा - और कभी-कभी कई महीनों तक - नेटवर्क की तैनाती। एक सफल व्यापारी अपने जीवनकाल में बदलती परिस्थितियों में अपने नेट को समायोजित करेगा। क्योंकि प्रत्येक तंत्रिका नेटवर्क केवल बाज़ार के अपेक्षाकृत छोटा पहलू को कवर कर सकता है, तंत्रिका नेटवर्क का उपयोग एक समिति में भी किया जाना चाहिए। उपयुक्त के रूप में कई तंत्रिका नेटवर्क के रूप में उपयोग करें - कई बार एक से कार्य करने की क्षमता इस रणनीति का एक और लाभ है। इस तरह, इन एकाधिक नेट्स के प्रत्येक बाजार के कुछ विशिष्ट पहलू के लिए जिम्मेदार हो सकते हैं, जिससे आपको बोर्ड भर में एक बड़ा फायदा मिल सकता है। हालांकि, यह अनुशंसा की जाती है कि आप नेट की संख्या 5 से 10 के भीतर उपयोग करते हैं। अंत में, तंत्रिका नेटवर्क को शास्त्रीय दृष्टिकोणों में से एक के साथ जोड़ा जाना चाहिए इससे आप अपने व्यापारिक प्राथमिकताओं के अनुसार हासिल किए गए परिणामों का बेहतर लाभ उठा सकते हैं। निष्कर्ष आप न्यूरल नेट्स के साथ वास्तविक सफलता का अनुभव करेंगे, जब आप सर्वश्रेष्ठ नेट की तलाश करना बंद कर देंगे। सब के बाद, तंत्रिका नेटवर्क के साथ आपकी सफलता की कुंजी नेटवर्क पर ही नहीं है, बल्कि आपकी ट्रेडिंग रणनीति में है। इसलिए, आपके लिए काम करने वाली एक लाभदायक रणनीति का पता लगाने के लिए, आपको तंत्रिका नेटवर्क की एक समिति बनाने और शास्त्रीय फिल्टर और धन प्रबंधन नियमों के साथ संयोजन में उनका उपयोग करने के बारे में एक मजबूत विचार विकसित करना होगा। संबंधित पढ़ने के लिए, न्यूरल ट्रेडिंग की जांच करें: लाभकारी जैविक कुंजी और ट्रेडिंग सिस्टम कोडिंग ट्यूटोरियल।
No comments:
Post a Comment