Tuesday 21 November 2017

विदेशी मुद्रा में mql4 बंद लंबित आदेश


मैंने एक लंबित ऑर्डर बंद करने के लिए इस कोड को लिखा था। जब मैं ईए चलाता हूं तो आदेश बंद नहीं होते हैं क्या कोई मुझे किसी भी मदद दे सकता है मैंने क्या गलत किया है यहाँ (cnt0cntlttotalcnt) के लिए कोड (मेरे कार्यक्रम का हिस्सा) है OrderSelect (सीएनटी, SELECTBYPOS, MODETRADES) अगर (ऑर्डर टाइप ()) ओपन स्थिति orderSymbol () प्रतीक () के लिए ऑप्शन जांच ) प्रतीक के लिए जाँच करें यदि (ऑर्डर टाइप () OPBUYSTOP) यदि (ऑर्डरऑनप्रिस () लेफ्टिनेंट ऐस-स्टॉपलॉस पॉइंट) ऑर्डर डिलेइट (ऑर्डरटिकेट ()) रिटर्न (0) मैंने एक लंबित ऑर्डर बंद करने के लिए यह कोड लिखा था। जब मैं ईए चलाता हूं तो आदेश बंद नहीं होते हैं क्या कोई मुझे किसी भी मदद दे सकता है मैंने क्या गलत किया है यहाँ कोड (मेरे प्रोग्राम का हिस्सा है) खैर, शुरुआत के लिए (cnttotal-1cntgt0cnt--) ऑर्डर सेलेक्ट (सीएनटी, SELECTBYPOS, MODETRADES) के लिए मैच के लिए पर्याप्त नहीं हैं यदि (ऑर्डरसिंबोल ( ) प्रतीक ()) प्रतीक के लिए जाँच करें यदि (ऑर्डर टाइप ()) OPBUYLIMIT ऑर्डर टाइप () OPBUYSTOP) स्टॉपप्लिट्स खरीदने के लिए जांचें अगर (ऑर्डर ओपनप्रिस (LT) Ask-StopLossPoint) ऑर्डर डेलेट (ऑर्डरटिकेट ()) और अगर (ऑर्डर टाइप () ऑप्सेलएलआइमेंट ऑर्डर टाइप () ऑप्सेलस्टॉप ) बेचने की रोकथाम के लिए जांच करें यदि (ऑर्डर ओपनप्रिस () एलटी बिड-स्टॉपलॉस पॉइंट) ऑर्डर डेलेट (ऑर्डरटिकेट ()) इसे ऐसा करना चाहिए। यह भी एक जादूगर संख्याएं सम्मिलित करने के लिए एक अच्छा विचार होगा ताकि आपका ईए यह जान सकें कि किस क्रम पर यह रखा गया है। ऑर्डर आदेश को बंद करने और हटाने के आदेश व्यापार आदेशों के लिए बाजार आदेश बंद करने का अनुरोध किया गया है OrderClose () फ़ंक्शन ऑफ़डेक्लोस () यह एक ऐसा फ़ंक्शन है जिसका इस्तेमाल बाजार के आदेश को बंद करने के लिए किया जाता है। अगर फ़ंक्शन सफलतापूर्वक किया जाता है तो फ़ंक्शन रिटर्न देता है यह गलत हो जाता है, अगर व्यापार विफल हो जाता है। टिकट - ऑर्डर की अनूठी संख्या बहुत सारे - बंद करने के लिए बहुत से राशि यह उस क्रम को निर्दिष्ट करने की अनुमति है जो क्रम में बहुत से उपलब्ध मात्रा से कम है इस मामले में, यदि व्यापार अनुरोध को सफलतापूर्वक निष्पादित किया गया है, तो यह आदेश आंशिक रूप से बंद हो जाएगा। कीमत - बंद कीमत यह पैरामीटर ट्रेडों के प्रदर्शन के लिए स्वीकार किए जाने वाली आवश्यकताओं और सीमाओं के अनुसार निर्धारित किया गया है (देखें आदेश विशेषताओं और ट्रेडों और परिशिष्ट 3 बनाने के लिए नियम) यदि मूल्य के प्रवाह में बाजार के आदेश को बंद करने के लिए कोई अनुरोधित मूल्य उपलब्ध नहीं है या अगर यह पुराना है, तो यह व्यापार अनुरोध अस्वीकार कर दिया जाएगा यदि कीमत पुरानी है, लेकिन कीमत के प्रवाह में पाया जाता है, और साथ ही इसका विचलन स्लिपेज के मूल्य के भीतर वर्तमान मूल्य सीमा से, व्यापार अनुरोध क्लाइंट टर्मिनल द्वारा स्वीकार किया जाएगा और व्यापार सर्वर को भेजा जाएगा। slippage - बाजार मूल्य (अंक में) के आदेश को बंद करने के लिए अनुरोधित मूल्य के अधिकतम अनुमत विचलन। रंग - चार्ट में समापन तीर का रंग यदि यह पैरामीटर अनुपलब्ध है या उसके मूल्य CLRNONE के बराबर है, तो तीर चार्ट में प्रदर्शित नहीं किया जाएगा। यदि कार्यक्रम में बंद करने के आदेश के प्रकार, इसके अनूठे नंबर के बारे में और साथ ही बंद होने वाले बहुत से राशि के बारे में जानकारी शामिल है, तो ऑर्डर बंद करना बहुत आसान है। इसके लिए, आपको प्रीसेट पैरामीटर के साथ प्रोग्राम कोड में ऑर्डरक्लोस () फ़ंक्शन कॉल करना चाहिए। उदाहरण के लिए, यदि ऑर्डर खरीदें की अनूठी संख्या 12345 है और यदि आप 0.5 लॉट को बंद करना चाहते हैं तो ऑर्डर बंद करने वाले फ़ंक्शन को कॉल इस तरह दिख सकता है: यह तय करने के लिए कि कौन से ऑर्डर और किस क्रम को बंद किया जाना चाहिए, आपको वर्तमान स्थिति में खोले सभी आदेशों का डेटा रखना होगा MQL4 में, कई फ़ंक्शन हैं जो किसी भी ऑर्डर को चिह्नित करने वाले विभिन्न डेटा प्राप्त करने के लिए उपयोग किए जा सकते हैं। उदाहरण के लिए, ऑर्डर ओपनप्रिस () ऑर्डर ओपन कीमत (या लंबित ऑर्डर के लिए अनुरोध किए गए मूल्य के) ऑर्डर के मूल्य को लौटता है, फ़ंक्शन ऑर्डर लॉट्स () फ़ंक्शन ऑर्डर टाइप () ऑर्डर टाइप प्रकार के बहुत सारे देता है, आदि। सभी फ़ंक्शन जो ऑर्डर विशेषता कॉल के मूल्यों को उनके निष्पादन पर लौटते हैं, ऑर्डर के लिए ऑर्डर से चयनित किया गया है OrderSelect ()। फ़ंक्शन ऑर्डर से चुनें () अपने किसी भी ऑर्डर के पैरामीटर प्राप्त करने के लिए (कोई फर्क नहीं पड़ता या लंबित, बंद या हटाए गए), आपको पहले ऑर्डर सेलेक्शन () का उपयोग करके इसे चुनना चाहिए। OrderSelect एक ऐसा फ़ंक्शन है जो उसके साथ आगे के संचालन के लिए एक आदेश का चयन करता है यह TRUE देता है, अगर फ़ंक्शन सफलतापूर्वक निष्पादित हो जाता है अन्यथा, यह FALSE देता है सूचकांक - ऑर्डर की स्थिति या संख्या, यह दूसरे पैरामीटर पर निर्भर करता है। चयन - चयन विधि का ध्वज पैरामीटर चयन दो संभावित मानों में से एक ले सकता है: SELECTBYPOS - पैरामीटर सूचकांक में, सूची में ऑर्डर नंबर वापस किया जाता है (नंबर 0 से शुरू होता है), SELECTBYTICKET - पैरामीटर सूचकांक में, टिकट संख्या (अद्वितीय ऑर्डर संख्या) है लौटा हुआ। पूल - चयन के लिए डेटा स्रोत पैरामीटर पूल का उपयोग किया जाता है, जब पैरामीटर SELECTBYPOS के मान के बराबर होता है। पैरामीटर पूल को नजरअंदाज किया जाता है, अगर टिकट टिकट संख्या (SELECTBYTICKET) द्वारा चुना जाता है पैरामीटर पूल दो संभावित मूल्यों पर ले जा सकता है: MODETRADES (डिफ़ॉल्ट रूप से) - ऑर्डर खुले और लंबित ऑर्डर में चुना जाता है, अर्थात उद्धरण खिंचाव खिड़की MODEHISTORY के quotTyquot टैब में प्रदर्शित आदेशों के बीच - क्रम बंद और चयनित में चुना जाता है आदेश, अर्थात् quoterminalquot विंडो के quotAccount Historyquot टैब में प्रदर्शित आदेशों के बीच। इस मामले में, बंद किए गए और हटाए गए आदेशों को प्रदर्शित करने के लिए उपयोगकर्ता द्वारा निर्दिष्ट इतिहास की गहराई महत्वपूर्ण है। बाजार के आदेश बंद करने के लिए व्यापार कार्य का उपयोग करने की विधि का प्रदर्शन करने के लिए, एक समस्या का समाधान करने देता है: समस्या 28. एक स्क्रिप्ट लिखें जो खाता पर उपलब्ध एक बाजार ऑर्डर को बंद करती है। स्क्रिप्ट निष्पादन के परिणामस्वरूप माउस के साथ प्रतीक विंडो में संलग्न स्क्रिप्ट के स्थान के सबसे निकटतम आदेश को बंद करना होगा। मान लीजिए कि टर्मिनल में प्रतीक यूरयूएसडी के लिए टर्मिनल में खोले गए तीन ऑर्डर दिए गए हैं और यूएसडीचफी के लिए एक लंबित ऑर्डर खोला गया है: अंजीर 90. टर्मिनल विंडो में विभिन्न प्रतीकों के लिए कई ऑर्डर प्रदर्शित किए गए हैं। हमें इस तरह की एक स्क्रिप्ट लिखनी चाहिए जिसे माउस ने quotVignatorquot खिड़की से प्रतीक विंडो में खींच लिया जा सकता है, जिसके परिणामस्वरूप एक बाज़ार के आदेश को बंद करना चाहिए, अर्थात् कर्सर के सबसे निकटतम आदेश (जैसा कि उपयोगकर्ता के पल के रूप में माउस बटन जारी किया है)। चित्र 9 1 में, आप विकल्प देख सकते हैं, जिस पर कर्सर ऑर्डर के सबसे निकट है 4372889 बेचें। यह ऐसा आदेश है कि स्क्रिप्ट निष्पादन के परिणामस्वरूप बंद होना चाहिए। समस्या को हल करने के लिए, हमें सभी आदेशों के बीच (आदेश OrderSymbol ()) का उपयोग करना चाहिए, केवल उन चिड़ियों के लिए खोले गए आदेशों की खिड़की जिसमें स्क्रिप्ट गिरा दी गई है। इसके बाद हमें सभी चयनित बाज़ार ऑर्डर के खुले मूल्य (यानी क्रम ऑर्डरऑनप्राइस (क्रम ऑर्डर ओपनप्रिस () क्रम में प्रत्येक ऑर्डर के लिए निष्पादित करना चाहिए)। आदेश खुले कीमतों के बारे में जानने के लिए, हम आसानी से उनमें से एक चुन सकते हैं जो समस्या के बयान के साथ मेल खाती है। फ़ंक्शन OrderClose () में मापदंडों के उचित मूल्यों को निर्दिष्ट करने के लिए, हमें चयनित ऑर्डर के बारे में कुछ अन्य डेटा भी जानना होगा: लॉट की मात्रा (फ़ंक्शन OrderLots () द्वारा निर्धारित) और अद्वितीय ऑर्डर संख्या (द्वारा निर्धारित फ़ंक्शन ऑर्डरटिकेट ())। इसके अलावा, दो-तरफ़ा उद्धरण के एक या एक अन्य मूल्य को खोजने के लिए, हमें ऑर्डर के प्रकार (फ़ंक्शन ऑर्डर टाइप-टाइप) द्वारा पता होना चाहिए। विचार करते हैं कि उपरोक्त आदेश विशेषताओं को प्राप्त करने के लिए, फ़ंक्शन OrderSelect () में पैरामीटर क्या निर्दिष्ट किए जाने चाहिए। सबसे पहले, ऑर्डर चयन विधि का चयन करना आवश्यक है। हमारी समस्या में, चयन पद्धति को केवल समस्या बयान ही निर्धारित किया जाता है: क्रम संख्या के बारे में डेटा कार्यक्रम में निष्पादन के लिए स्क्रिप्ट को लॉन्च करने के समय के रूप में अनुपलब्ध माना जाता है, यानी प्रोग्राम को एक ब्लॉक शामिल करना माना जाता है उन क्रम संख्या निर्धारित करें इसका मतलब है कि हमें सभी आदेशों को जांचने के लिए एक कमान के जरिये जांचनी चाहिए (चित्र 64.1), इसलिए हमें पैरामीटर SELECTBYPOS का उपयोग करना होगा। आदेश के चयन के लिए स्रोत स्पष्ट है, साथ ही साथ। समस्या को हल करने के लिए, बंद और हटाए गए आदेशों का विश्लेषण करने की कोई आवश्यकता नहीं है। इस मामले में, हम केवल बाजार के आदेशों में रुचि रखते हैं, इसलिए हम आदेश OrderSelect () में पैरामीटर MODETRADES का उपयोग करके उन्हें खोज करेंगे। पैरामीटर पूल के लिए, MODETRADES का डिफ़ॉल्ट मान फ़ंक्शन हेडर में निर्दिष्ट किया गया है, इसलिए इसे छोड़ा जा सकता है। नीचे दिखाया गया है कि बाजार का विश्लेषण करने के लिए एक ब्लॉक और लंबित ऑर्डर कैसे तैयार किए जा सकते हैं: चक्र ऑपरेटर के शीर्षक में, प्रारंभिक मान को i1 के रूप में निर्दिष्ट किया जाता है, जबकि चक्र से बाहर निकलने की स्थिति अभिव्यक्ति iltOrdersTotal () है। फंक्शन ऑर्डर कुल () बाजार की कुल राशि और लंबित ऑर्डर लौटाता है, अर्थात उन आदेश जो कि कोट टर्मिनल खिड़की के उद्धरण टैब में दिखाए जाते हैं। यही कारण है कि चक्र के रूप में कई पुनरावृत्त होंगे क्योंकि कई ऑर्डर व्यापार में भाग लेते हैं। प्रत्येक आवृत्ति पर, जब हालत ऑपरेटर में गणना की जाती है, तो फ़ंक्शन ऑर्डर सेलेक्ट (i-1, SELECTBYPOS) निष्पादित किया जाएगा। निम्नलिखित महत्वपूर्ण बातों को यहां नोट किया जाना चाहिए: बाजार की सूची में आदेशों की संख्या और लंबित आदेश शून्य से शुरू होते हैं। इसका मतलब यह है कि सूची में पहला आदेश (अंजीर 90) शून्य स्थिति में रखा गया है, दूसरे क्रम की स्थिति को 1 के रूप में गिने जा रहा है, तीसरे क्रम का 2 नंबर के रूप में गिने जा रहा है, आदि। यही कारण है कि, समारोह में ऑर्डर सेलेक्ट () कॉल करें, इंडेक्स का मान I-1 के रूप में दिया जाता है। इस प्रकार, सभी चयनित ऑर्डर के लिए, यह सूचक हमेशा वेरिएबल के मूल्य से कम 1 होगा जो (जो अगले आवृत्ति की संख्या के साथ मेल खाता है)। फ़ंक्शन ऑर्डर सेलेक्ट () सही बताता है, यदि ऑर्डर सफलतापूर्वक चुना गया है। इसका मतलब है कि यह संभव है कि ऑर्डर चयन विफल हो सकता है यह हो सकता है, अगर उनके प्रसंस्करण के दौरान आदेशों की मात्रा बदल गई। MQL4 में प्रोग्रामिंग करते समय, आपको अच्छी तरह से याद रखना चाहिए कि एक एप्लिकेशन प्रोग्राम वास्तविक समय मोड में काम करेगा और, जब यह कुछ मापदंडों को संसाधित कर रहा हो, इन पैरामीटर के मान बदल सकते हैं। उदाहरण के लिए, ऑर्डर खोलने और बाजार में लंबित ऑर्डर को संशोधित करने के परिणामस्वरूप बाजार के आदेश की मात्रा बदल सकती है। यही कारण है कि आप प्रोग्रामिंग आदेश प्रसंस्करण के बाद निम्नलिखित नियमों को रखना चाहिए: आदेशों को जितनी जल्दी हो सके संसाधित किया जाना चाहिए, जबकि इस प्रसंस्करण के लिए जिम्मेदार प्रोग्राम ब्लॉक, यदि संभव हो तो, अनावश्यक प्रोग्राम लाइनों में नहीं होना चाहिए। संख्या 64.3 में प्रस्तुत किए गए कोड के मुताबिक ऑपरेटर के शीर्ष लेख में, कार्यक्रम का विश्लेषण करता है कि क्या अगली ऑर्डर क्रम सूची में उपलब्ध है, जब यह चयन किया जाता है। यदि अगला ऑर्डर उपलब्ध है, तो ऑपरेटर के शरीर में नियंत्रण पारित किया जाएगा यदि ऑर्डर मापदंडों पर कार्रवाई की जाए यह ध्यान दिया जाना चाहिए कि संभावित निर्माण के मामले में ऐसा निर्माण ज्यादा मदद नहीं करता है, क्योंकि उसके मापदंडों के प्रसंस्करण के दौरान आदेश (बंद) हो सकता है हालांकि, यह समाधान सबसे अधिक कुशल साबित हुआ है, यदि इसके चयन के पल के रूप में, ऑर्डर अब उपलब्ध नहीं है। ऑपरेटर के शरीर में, यदि चयनित ऑर्डर के पैरामीटर का विश्लेषण किया जाता है। जब OrderOpenPrice (), ऑर्डरटेट (), ऑर्डर टाइप () और अन्य प्रकार के फ़ंक्शन निष्पादित करते हैं तो उनमें से प्रत्येक ऑर्डर क्रम के निष्पादन के परिणामस्वरूप चुने गए ऑर्डर के एक विशिष्ट विशेषताओं के मान लौटाएंगे। उपरोक्त तर्क प्रोग्राम में इस्तेमाल किया गया था, जो समस्या 28 को सुलझाने वाला था। बाजार आदेश को बंद करने के लिए एक सरल स्क्रिप्ट का एक उदाहरण है, जो की खुली कीमत अन्य आदेशों की खुली कीमतों की तुलना में स्क्रिप्ट संलग्नक के स्थान के करीब है (closeorder. mq4) कार्यक्रम closeorder. mq4 का पूरा कोड विशेष समारोह शुरू में केंद्रित है ()। ब्लॉक 1-2 में, कुछ चर initialized हैं। वेरिएबल जिला उस स्थान से दूरी है जहां स्क्रिप्ट को निकटतम क्रम में हटा दिया गया है। चर RealOrder एक ध्वज है जो ग्राहक टर्मिनल में कम से कम एक मार्केट ऑर्डर की उपलब्धता प्रदर्शित करता है (गैर-नकारात्मक मूल्य)। चर WinPrice कीमत है, जिस पर उपयोगकर्ता ने प्रतीक विंडो में स्क्रिप्ट संलग्न की है। ब्लॉक 2-6 में, ऑर्डर का विश्लेषण किया गया है: उपलब्ध ऑर्डर में से एक को बंद होना सौंपा गया है। ब्लॉक 6-10 ऑर्डर बंद करने और व्यापार के प्रदर्शन के दौरान होने वाली त्रुटियों के प्रसंस्करण के ब्लॉक है। क्षण से शुरू करते समय जब उपयोगकर्ता ने स्क्रिप्ट को प्रतीकात्मक खिड़की से संलग्न किया था, तो चर के मूल्यों को ब्लॉक 1-2 पर गणना किया जाता है, चर WinPrice कीमत का मूल्य लेता है, उस स्तर पर जिस उपयोगकर्ता ने स्क्रिप्ट संलग्न की थी अब यह स्थान (इसकी विशेषताओं के साथ) खोजने के लिए आवश्यक है जो इस स्थान के निकटतम है। (ब्लॉक 2-6) के लिए चक्र में, ऑर्डर की खोज की जाती है। ब्लॉक 2-3 में, प्रोग्राम यह जांचता है कि क्या कोट की अगली पंक्ति में कोई आदेश है या नहीं। यदि कोई ऑर्डर मिल जाता है, तो ऑपरेटर के शरीर को नियंत्रण पारित किया जाता है, तो उस आदेश की विशेषताओं का विश्लेषण और विश्लेषण करें। ब्लॉक 3-4 में, गलत प्रतीकों के लिए खोले गए आदेश (प्रतीक नहीं, जिसके लिए प्रोग्राम निष्पादित किया जा रहा है) को फ़िल्टर किया जाता है। हमारे मामले में, यह ऑर्डर 4372 9 30 यूएसडी CHF के लिए खोला गया है। फ़ंक्शन ऑर्डरसिंबोल () चयनित क्रम का प्रतीक नाम देता है। यदि यह प्रतीक नाम उस के अलावा है, जिसके लिए प्रोग्राम को निष्पादित किया जा रहा है, तो वर्तमान चलना समाप्त हो रहा है, दूसरे प्रतीक के लिए प्रक्रिया को संसाधित करने से रोक दिया गया है। अगर विश्लेषण के तहत आदेश को कम करने वाले चिह्न के लिए खोला जाए, तो एक और जांच की जाएगी। ऑर्डर प्रकार फ़ंक्शन ऑर्डर टाइप करें () का उपयोग करके निर्धारित किया जाता है (ट्रेडों के प्रकार देखें)। यदि ऑर्डर प्रकार 1 से अधिक होने का पता चला है, तो इसका मतलब है कि ऑर्डर एक लंबित है इस मामले में, वर्तमान चलना भी बाधित है, क्योंकि हमें लंबित ऑर्डर में कोई दिलचस्पी नहीं है। हमारे उदाहरण में, हमारे पास ऐसा आदेश है, लेकिन इसे दूसरे प्रतीक के लिए खोल दिया गया है, इसलिए इसे पहले ही फ़िल्टर कर दिया गया है। सभी आदेश जो कि 3-4 ब्लॉक को सफलतापूर्वक मार्केट वाले हैं ब्लॉक 4-5 सभी बाजार आदेशों के केवल एक ऑर्डर को चुनने के लिए लक्षित है, जो पूर्ववर्ती ब्लॉक को सफलतापूर्वक पास कर चुके हैं। यह ऑर्डर पूर्वनिर्धारित मूल्य (चर WinPrice का मूल्य) के निकटतम होना चाहिए। उपयोगकर्ता को अपने माउस कर्सर के साथ ऑर्डर लाइन को उद्धृत करने की आवश्यकता नहीं है। कर्सर को निष्पादन के लिए लॉन्च करने के पल के रूप में किसी भी अन्य ऑर्डर के करीब का आदेश चुना जाएगा। संसाधित आदेश की खुली कीमत फ़ंक्शन ऑर्डर ओपनप्रिस () का उपयोग कर पाई जाती है। यदि वर्तमान क्रम की कीमत और उद्धरण मूल्य की कीमत के बीच दूरी का पूर्ण मूल्य पूर्ववर्ती आदेश के लिए एक ही दूरी से कम है, तो वर्तमान क्रम का चयन किया जाएगा (दूरी का पूर्ण मूल्य इसके प्रभाव को छोड़कर आवश्यक है कर्सर की स्थिति - ऑर्डर लाइन के ऊपर या ऊपर) इस मामले में, इस आदेश को चक्र के वर्तमान चलना पर बंद कर दिया जाएगा क्योंकि इसे बंद होने के लिए फ्रंट-धावक के रूप में रखा गया है। इस आदेश के लिए, टिकट संख्या (ऑर्डर की व्यक्तिगत संख्या) और लॉट 4-5 के अंत में लॉट की गणना की जाती है। इस उदाहरण में (अंजीर 90), ऑर्डर की कुल राशि चार (तीन मार्केट वाले और एक लंबित ऑर्डर) है, इसलिए चक्र के लिए चार पुनरावृत्त कार्य होंगे, जिसके परिणामस्वरूप एक को बंद करने के लिए सभी आवश्यक डेटा प्राप्त होंगे चयनित ऑर्डर फिर निष्पादन कार्यक्रम में नियंत्रण चक्र ऑपरेटर को दिया जाएगा (ब्लॉक 6-10)। ब्लॉक 6-7 में, उपलब्ध बाजार के आदेश की उपलब्धता के लिए जांच की जाती है। यदि ब्लॉक 2-4 में कोई ऑर्डर नहीं मिलता है (यह काफी संभव है, सामान्य तौर पर), फ्लैग का मूल्य, रियल ऑर्डर -1 के बराबर है, जिसका मतलब है कि बाजार के आदेश की अनुपलब्धता यदि ब्लॉक 6-7 में चेकिंग किसी भी बाजार आदेश का पता नहीं लगाता है, तो चक्र का निष्पादन टूट गया है, तो कार्यक्रम उसके कार्यों को पूरा करता है। अगर चर की वास्तविक ऑर्डर की कीमत 0 या 1 के बराबर हो जाती है, तो इसका मतलब है कि एक बाजार बंद करने के लिए पूर्वनिर्धारित है और बंद होना चाहिए। ऑर्डर प्रकार के अनुसार 7-8 ब्लॉक में, ऑर्डर की करीबी कीमत की गणना की जाती है। यह खरीदें ऑर्डर के लिए बोली का मूल्य और बिक्री के आदेश के लिए मूल्य (ट्रेडों बनाने में आवश्यकताओं और सीमाएं देखें) का मूल्य है। ब्लॉक 7-8 में, सहायक चर टेक्स्ट के मूल्य की गणना की जाती है। ऑर्डर बंद करने के लिए व्यापार अनुरोध निम्न पंक्ति में फ़ंक्शन OrderClose () में बनाया गया है: ट्रेड फ़ंक्शन ऑर्डरक्लोस () रिटर्न सही है, अगर व्यापार सफलतापूर्वक किया गया है, और गलत है, यदि नहीं, तो यदि व्यापार अनुरोध सफलतापूर्वक सर्वर पर निष्पादित किया गया है, तो मान सच चर (उत्तर) चर को निर्दिष्ट किया जाएगा। इस मामले में, ब्लॉक 8- 9 निष्पादित करते समय, प्रोग्राम उपयोगकर्ता को सफल ऑर्डर बंद करने के बारे में सूचित करेगा। उसके बाद, चक्र ऑपरेटर के निष्पादन को रोक दिया जाएगा, और कार्यक्रम अपने कार्यों को समाप्त करेगा। अन्यथा, प्रोग्राम को क्लाइंट टर्मिनल द्वारा दी गई त्रुटि का विश्लेषण करने के लिए नियंत्रण को 9-10 ब्लॉक करने के लिए पारित किया जाएगा। ब्लॉक 9-10 की शुरुआत में, त्रुटि कोड की गणना की जाती है। उसके बाद, त्रुटि कोड के अनुसार, या तो कार्यक्रम से बाहर निकलें या दोहराया कार्य निष्पादित किया जाता है। पहले ऑपरेटर स्विच में, कार्यक्रम त्रुटियों को संसाधित करता है जो अप्रत्यक्ष रूप से अतिरेक होते हैं, यानी व्यापार को निष्पादित करने में त्रुटियों को अस्थायी समस्याओं के रूप में माना जा सकता है। ऐसी सभी त्रुटियों के लिए सभी आवश्यक कार्रवाई की जाती है, फिर वर्तमान चलना बंद हो जाता है और पुनरारंभ होने पर चक्र का निष्पादन किया जाता है। (कृपया ध्यान दें कि, इस उदाहरण में, हम ऑपरेटर स्विच के प्रसंस्करण के लिए त्रुटि प्रसंस्करण के लिए उपयोग करते हैं जो ऑपरेटर का उपयोग करने के परिणाम के रूप में निकल जाते हैं, जैसे कि, ऑपरेटर स्विच के बाहर नियंत्रण को पारित करने के लिए अभिप्रेत नहीं है। सिर्फ इसलिए कि ऑपरेटर स्विच बाहरी चक्र ऑपरेटर की सामग्री का एक हिस्सा है, जबकि ऑपरेटर जारी रखता है, जब ऑपरेटर के शीर्ष लेख को नियंत्रित करने से गुजरता है)। यदि त्रुटि कोड को पहले ऑपरेटर स्विच में संसाधित नहीं किया जाता है, तो यह त्रुटि महत्वपूर्ण माना जाता है। इस मामले में, नियंत्रण दूसरे ऑपरेटर स्विच को पारित कर दिया जाता है, जिसे उपयोगकर्ता को सूचित करने के लिए निष्पादित किया जाता है कि एक या एक अन्य महत्वपूर्ण त्रुटि हुई है। इसके अलावा, प्रोग्राम ऑपरेटर ब्रेक का उपयोग करता है जिसमें चक्र के निष्पादन में बाधा उत्पन्न होती है। चक्र को छोड़कर, किसी भी कारण से, 9-10 ब्लॉक करने के लिए नियंत्रण को पारित करने का परिणाम होगा जो प्रोग्राम ऑपरेशन के अंत के बारे में एक संदेश का उत्पादन करता है। ऑपरेटर रिटर्न विशेष समारोह शुरू करने के निष्पादन को रोक देता है (), और कार्यक्रम अपने कार्यों खत्म निर्धारित शर्तों के तहत स्क्रिप्ट की शुरूआत के बाद प्राप्त व्यावहारिक परिणाम (चित्र 9 और 91 देखें) नीचे दिखाया गया है। व्यापार सर्वर पर सफलतापूर्वक बनाया गया था एक आदेश को बंद करने के परिणामस्वरूप, यूरयूएसडी की खिड़की में दो आदेश शेष हैं। आदेश समापन भी quotTerminalquot विंडो में प्रदर्शित किया गया है: अंजीर 94. स्क्रिप्ट के निष्पादन के बाद closeorder. mq4 दो मार्ट ऑर्डर, कोट टर्मिनल विंडो में प्रदर्शित किए जाते हैं। बाद में, इस दो स्क्रिप्ट का उपयोग करके दूसरे दो आदेश भी बंद हो जाते हैं। लंबित आदेश हटाना लंबित आदेशों को हटाने के लिए व्यापार अनुरोध फ़ंक्शन ऑर्डर डिलीटेट () का उपयोग करके बनते हैं। फ़ंक्शन ऑर्डरडेल () फ़ंक्शन पहले से लंबित ऑर्डर को हटा देता है यह TRUE देता है, अगर यह सफलतापूर्वक काम करता है अन्यथा, यह FALSE देता है टिकट - एक आदेश की अनूठी संख्या arrowcolor - एक चार्ट में एक तीर का रंग। यदि यह पैरामीटर अनुपलब्ध है या उसके मूल्य CLRNONE के बराबर है, तो तीर चार्ट में प्रदर्शित नहीं किया जाएगा। यह देखना आसान है कि फ़ंक्शन ऑर्डरडेलिए () में वॉल्यूम का एक विनिर्देश और हटाए जाने के क्रम की करीबी कीमत शामिल नहीं है। किसी भी बाज़ार की कीमतों पर ध्यान दिए बिना आदेश हटा दिया गया है। एक आदेश का आंशिक रूप से हटाना भी असंभव है। आप दो चरणों में एक लंबित ऑर्डर में बहुत सारे की मात्रा में कमी कर सकते हैं: मौजूदा ऑर्डर को हटा दें और फिर एक नया लंबित ऑर्डर करें, जिसकी कमी हुई (किसी भी) मात्रा के साथ। प्रोग्राम का एल्गोरिथ्म जो लंबित ऑर्डर को हटा देगा, वह बाज़ार के क्रम बंद होने के समान हो सकता है। थोड़ी सी अंतर यह है कि लंबित ऑर्डर को हटाने के लिए कोई करीबी कीमत की आवश्यकता नहीं है, इसलिए नीचे दिए गए कार्यक्रम में उस ब्लॉक को शामिल नहीं किया गया है जो बाजार मूल्य अपडेट करता है। एक लंबित ऑर्डर को हटाने के लिए एक सरल स्क्रिप्ट का एक उदाहरण, जिसमें अनुरोधित मूल्य अन्य लंबित ऑर्डर की कीमतों की तुलना में स्क्रिप्ट अटैचमेंट के स्थान के करीब है (deleteorder. mq4)। त्रुटि प्रसंस्करण ब्लॉक भी थोड़ा बदला गया है। बाजार के आदेश को बंद करने पर आपको मूल्य परिवर्तन (त्रुटियों 135 और 136) से संबंधित त्रुटियों की संभावना पर विचार करना चाहिए, लेकिन लंबित ऑर्डर हटाने पर ऐसी त्रुटियां तब नहीं होती हैं। इसी कारण से, समारोह में रिफ्रेश रीसेट () फ़ंक्शन कहीं नहीं किया जाता है। त्रुटि 4 और त्रुटि 137 (त्रुटि कोड देखें) जैसी त्रुटियों को संसाधित करना थोड़ा मुश्किल हो सकता है उदाहरण के लिए, जब त्रुटि 137 हो रही है, तो प्रोग्राम यह ध्यान में रख सकता है कि किलाब्रोक व्यस्त है हालांकि, एक स्वाभाविक सवाल उठता है: उपयोगकर्ता को अपने व्यापार को जारी रखने के लिए दलाल मुक्त कब है त्रुटि 137 ये ऐसी जानकारी नहीं देते हैं। यही कारण है कि प्रोग्रामर को यह तय करना होगा कि प्रोग्रामिंग की प्रक्रिया को कैसे सही ढंग से तैयार करना चाहिए एक साधारण मामले में, एक निश्चित विराम के बाद अनुरोध को दोहराया जा सकता है (हमारे उदाहरण में, 3 सेकंड में)। दूसरी ओर, एक असफल प्रयासों की एक श्रृंखला को हटाने के (या, एक आम मामले में, बंद करने, खोलने या संशोधित करने के लिए) एक आदेश के बाद, सर्वर त्रुटि 141 लौटा सकता है - बहुत अधिक अनुरोध इस त्रुटि का परिणाम है कि स्क्रिप्ट deleteorder. mq4 काम करना बंद हो जाता है आम तौर पर, इस तरह के संघर्ष प्रोग्रामिंग के मामले नहीं होते हैं। ऐसे मामलों में, आपको डीलिंग सेंटर समर्थन सेवा से संपर्क करना चाहिए और व्यापार अनुरोध को निष्पादित करने के लिए अस्वीकृति के कारणों को स्पष्ट करना चाहिए। त्रुटि 145 हो सकती है, यदि एक लंबित ऑर्डर (एक आम मामले में, यह मार्केट ऑर्डर का स्टॉप ऑर्डर हो सकता है) बाजार मूल्य के बहुत करीब है यह त्रुटि उत्पन्न नहीं होती है, यदि आप लगातार एक शांत बाजार पर व्यापार कर रहे हैं यदि कीमतें तेजी से बदल जाती हैं, तो आपका दलाल तय कर सकता है कि एक निश्चित आदेश जल्द ही खोला जाएगा, इसलिए दलाल इसे हटाने या संशोधित करने की अनुमति नहीं देगा। इस त्रुटि को स्क्रिप्ट में एक महत्वपूर्ण माना जाता है और परिणाम को समाप्त करने में परिणाम होता है (यह व्यापार अनुरोधों के साथ दलाल को परेशान करने का कोई मतलब नहीं है)। यदि कीमत थोड़ी देर के बाद बदलती है, तो आप स्क्रिप्ट को फिर से निष्पादन के लिए लॉन्च करके आदेश को हटाने का प्रयास कर सकते हैं। आमतौर पर, त्रुटि 145 की घटना को रोका जा सकता है, अगर आप डीलिंग सेंटर द्वारा निर्धारित फ्रीज स्तर पर विचार करते हैं। फ्रीज लेवल एक मूल्य है जो कीमत बैंड को निर्धारित करता है, जिसके भीतर ऑर्डर को फ्रोजन के रूप में माना जाता है, अर्थात इसे हटाने के लिए निषिद्ध किया जा सकता है। उदाहरण के लिए, यदि एक लंबित आदेश 1.2500 पर रखा गया है और फ्रीज स्तर 10 अंक के बराबर है, तो इसका मतलब है कि, यदि मूल्य 1.24 9 0 से 1.2510 तक है, तो लंबित ऑर्डर हटाने का निषिद्ध है। MODEFREEZELEVEL के अनुरोध पहचानकर्ता के साथ आप MarketInfo () फ़ंक्शन निष्पादित करने के बाद फ़्रीज़ स्तर मान प्राप्त कर सकते हैं विपरीत ऑर्डर ओवरसिपेस (काउंटर) ऑर्डर एक मार्केट ऑर्डर है जो एक ही मार्केट ऑर्डर की दिशा के विपरीत दिशा में सामने आया है। यदि आपके पास एक निश्चित प्रतीक के लिए दो विपरीत आदेश हैं, तो आप एक साथ ऑर्डर क्लासेब्य () फ़ंक्शन का उपयोग करके, एक साथ एक दूसरे को बंद कर सकते हैं। यदि आप ऐसा ऑपरेशन करते हैं तो आप एक फैल बचाएंगे। फ़ंक्शन ऑर्डर क्लासेब्य () फ़ंक्शन विपरीत दिशा में एक ही प्रतीक के लिए खोला गया एक अन्य बाज़ार आदेश द्वारा एक मार्केट ऑर्डर बंद कर देता है। फ़ंक्शन रिटर्न देता है, अगर यह सफलतापूर्वक पूरा हो गया है, और गलत नहीं है, तो नहीं। टिकट - बंद करने के आदेश की अनूठी संख्या विपरीत - विपरीत क्रम की अनूठी संख्या रंग - चार्ट में समापन तीर का रंग यदि यह पैरामीटर अनुपलब्ध है या उसके मूल्य CLRNONE के बराबर है, तो तीर चार्ट में प्रदर्शित नहीं किया जाएगा। यह आवश्यक नहीं है कि विपरीत आदेशों का एक ही वॉल्यूम है। यदि आप किसी विपरीत आदेश द्वारा कोई आदेश बंद कर देते हैं, तो व्यापार उस ऑर्डर के वॉल्यूम में किया जाएगा जो कि छोटे मात्रा में है। एक उदाहरण पर विचार करें क्लाइंट टर्मिनल में एक ही वॉल्यूम के दो मार्केट ऑर्डर हों, एक खरीदें और एक सेल करें। यदि हम इनमें से प्रत्येक को अलग से फ़ंक्शन OrderClose () का उपयोग करते हैं, तो हमारी आर्थिक उत्पादन प्रत्येक आदेश से प्राप्त मुनाफे का योग होगा: अंजीर 95. फ़ंक्शन OrderClose () का उपयोग करके अलग-अलग ऑर्डर बंद करने का परिणाम। हालांकि, अगर हम इस परिस्थिति में उपयोग करते हैं, तो ऑर्डर के विपरीत समापन के लिए फ़ंक्शन ऑर्डरक्लोबै () का इरादा है, एक ऑर्डर फैलाने की लागत के बराबर राशि द्वारा आर्थिक उत्पादन बेहतर होगा (जैसा कि पूर्ववर्ती विकल्प की तुलना में है): चित्र 96। फ़ंक्शन OrderCloseBy () का उपयोग करते हुए अन्य आदेशों के बंद ऑर्डर के परिणाम यह स्पष्ट है कि, यदि टर्मिनल में विपरीत आदेश बंद किए जाते हैं, तो यह ऑर्डरक्लोबै () फ़ंक्शन के उपयोग के लिए आर्थिक रूप से ध्वनि होगी, ऑर्डर-क्लोज़ नहीं ()। विपरीत आदेशों को बंद करने पर प्रसार को बचाने के लिए, हमें कुछ और सामान्य स्पष्टीकरण देना चाहिए वास्तव में, एक ऑर्डर खोलना (उदाहरण के लिए, एक खरीदें ऑर्डर) एक व्यापार है जो विपरीत दिशा में एक ऑर्डर खोलने के विपरीत होता है (अर्थात एक सेल ऑर्डर) आदेश को बंद करने के समान डिग्री आदेश)। दूसरे शब्दों में, यह आर्थिक रूप से एक ही है, जिसका उपयोग करने के विकल्प हैं: बस एक बाज़ार आदेश को बंद करने के लिए या एक ही खंड के विपरीत क्रम को खोलने के लिए (और फिर एक-दूसरे के दोनों आदेश बंद करें) इन दो विकल्पों के बीच का अंतर केवल अलग-अलग तरीके से इस्तेमाल किए जाने वाले विभिन्न तरीकों में शामिल हो सकता है ताकि बाजार के आदेशों का समर्थन करने के लिए धन की गणना की जा सके (चित्र 85 और चित्र 88 देखें)। यह भी देखना आसान है कि विपरीत आदेशों को बंद करने के लिए फ़ंक्शन OrderCloseBy () में निर्दिष्ट किए जाने के लिए करीबी मूल्य आवश्यक नहीं है यह अनावश्यक है, क्योंकि लाभ और दो विपरीत आदेशों के नुकसान परस्पर चुकौती करते हैं, इसलिए कुल आर्थिक उत्पादन बाजार मूल्य पर निर्भर नहीं करता है। बेशक, यह नियम केवल उसी मात्रा के आदेशों के लिए प्रभावी है। उदाहरण के लिए, उदाहरण के लिए, हमारे पास एक प्रतीक के लिए दो आदेश हैं: 1 लॉट के खरीदें ऑर्डर और 0.7 लॉट का सेल ऑर्डर, यह व्यापार केवल 0.3 लॉट के खरीदें ऑर्डर हिस्से के मुताबिक बाजार मूल्य पर निर्भर करता है, जबकि 0.7 लॉट दोनों आदेश प्रतीक मूल्य पर निर्भर नहीं करते हैं विपरीत ऑर्डर कुल व्यापारिक परिणामों को प्रभावित नहीं करते हैं। यही कारण है कि विपरीत आदेश खोलने के आधार पर व्यापारिक रणनीति किसी भी अनौपचारिक सामग्री (इस कारण से, कुछ निपटान केंद्र मजबूती से प्रचलित मात्रा के भीतर किसी भी विपरीत आदेश को बंद कर देते हैं)। इस तरह की रणनीति का केवल (नकारात्मक) प्रभाव कुछ लेन-देन केन्द्रों में स्वीकार किए गए नियमों के अनुसार धन को बदलने में शामिल हो सकता है। इसके अलावा, कई विपरीत आदेशों की उपलब्धता, एक आदेश की तुलना में, क्रमादेशित व्यापार के संदर्भ में अधिक कठिनाइयों को प्रदान करती है। यदि हम विभिन्न कमीशन और स्वैप (प्रत्येक बाजार आदेश के लिए अलग से) पर विचार करते हैं, तो विपरीत आदेश बंद करने की आवश्यकता स्पष्ट हो जाती है। एक साधारण स्क्रिप्ट का एक उदाहरण जो कि प्रतीक के सभी विपरीत आदेश बंद करता है (closeby. mq4)। उपरोक्त स्क्रिप्ट का एल्गोरिथ्म पूर्ववर्ती हिस्सों से थोड़ा अलग है यह अंतर होता है कि कई आदेशों को बंद करने के लिए एक ही कोड को कई बार निष्पादित किया जाना चाहिए (सीमित नहीं होने वाले आदेशों की मात्रा) सफलतापूर्वक स्क्रिप्ट को बाजार के आदेशों के एक यादृच्छिक सेट पर परीक्षण किया गया था। अंजीर 97 में विभिन्न संस्करणों के 5 ऑर्डर का प्रतिनिधित्व किया गया है। उपलब्ध विपरीत आदेश को बंद करने के लिए, हमें चयन मानदंडों को पूर्वनिर्धारित करना चाहिए। दिए गए एल्गोरिथ्म में यह मानदंड ऑर्डर आकार है - बड़ी मात्रा के आदेश पहले बंद हैं, फिर छोटे संस्करणों के आदेश बंद हैं। विभिन्न संस्करणों के विपरीत आदेशों को बंद करने के बाद, आराम करने वाले संस्करणों के आदेश भी शेष रहते हैं। उदाहरण के लिए, विपरीत ऑर्डर खरीदें (1 लॉट) और सेल (0.8 लाट) को बंद करने के परिणामस्वरूप उस ऑर्डर खरीदें (0.2 लॉट) खोला जाएगा। यही कारण है कि, प्रत्येक सफल समापन के बाद, इस अद्यतन सूची में दो अन्य सबसे बड़े विपरीत ऑर्डर देखने के लिए प्रोग्राम को ऑर्डर की अपडेट की गई सूची देखें। उपर्युक्त गणना एक (सशर्त) निरंतर चक्र में होती है, जबकि 2-10 ब्लॉक में चक्र की शुरुआत, प्रत्येक चलना कार्यक्रम में यह समझा जाता है कि अब एक निश्चित प्रकार का कोई आदेश नहीं है। इसके लिए, -1 का मान, हेडबब्यू और हेडजेल के चर को सौंपा गया है। आदेश प्रसंस्करण ब्लॉक के एल्गोरिथ्म, सामान्य रूप से, संरक्षित है (closeby. mq4 का कोड देखें)। ऑर्डर-सर्च चक्र में, 3-4 ब्लॉक के अनुसार, पूर्ववर्ती कार्यक्रमों की तरह, कोटेशन के आदेशों को फ़िल्टर किया जाता है। इस मामले में, ये एक अन्य प्रतीक और लंबित ऑर्डर के लिए खोले गए आदेश हैं। ब्लॉक 4-5 में ब्लॉक 3-4 में प्रत्येक ऑर्डर की मात्रा की गणना की जाती है। अगर गणना के दौरान यह पता चला है कि वर्तमान में संसाधित आदेश संसाधित किए गए सभी आदेशों के बीच मात्रा में सबसे बड़ा है, तो इसका टिकट संग्रहीत है। इसका मतलब यह है कि इस टिकट के क्रम में, गणना के इस चरण में, विपरीत आदेशों को बंद करने के लिए एक उम्मीदवार फिलहाल जब चक्र के आखिरी बार फिर चलना शुरू हो जाता है, तो विपरीत दिशा में खुले बहुत सारे लॉट के साथ ऑर्डर के टिकट पहले ही ज्ञात हो चुके हैं। ये आदेश कार्यक्रम द्वारा चुने गए हैं। अगर किसी भी प्रकार के किसी भी आदेश इस पल के पहले से अनुपलब्ध हो गए हैं, तो ब्लॉक 5-6 से बाहर निकलता है कार्यक्रम। ब्लॉक 6-10 त्रुटि प्रसंस्करण प्रदर्शित करता है। यह पूरी तरह से समान है (ऊपर और पूर्ववर्ती अनुभागों में)। विपरीत आदेशों को बंद करने का व्यापार अनुरोध ब्लॉक 7-8 में फ़ंक्शन OrderCloseBy () का उपयोग करके बनाया गया है। यदि यह विफल हो जाता है, तो त्रुटि कोड के अनुसार, प्रोग्राम नियंत्रण को पास करता है या फिर व्यापार (उसी टिकट के लिए) या ऑपरेटर रिटर्न करने के लिए पुनः प्रयास करता है जो प्रोग्राम ऑपरेशन समाप्त करता है। अगर कोई व्यापार सफलतापूर्वक किया जाता है, तो प्रोग्राम त्रुटि प्रसंस्करण ब्लॉक से बाहर निकलता है, और समाप्त होने के दौरान सबसे बाहरी चक्र की वर्तमान पुनरावृत्ति। इस चक्र की अगली यात्रा, सभी गणना दोहराई जाएगी: उपलब्ध आदेशों में खोज, बाजार आदेशों का चयन, प्रत्येक प्रकार के आदेशों के लिए चुना गया एक विकल्प, विपरीत समापन के लिए व्यापार अनुरोध बनाने और बाद में त्रुटि विश्लेषण। इस चक्र को तब तक निष्पादित किया जाता है जब तक टर्मिनल में एक निश्चित प्रकार (या, किसी विशेष मामले में, दोनों प्रकार के) के कोई उपलब्ध आदेश नहीं हैं। इस घटना की गणना 5-6 ब्लॉक में की जाएगी, फिर कार्यक्रम अपने कार्यों को समाप्त करेगा। स्क्रिप्ट closeby. mq4 के निष्पादन पर निम्न संदेश प्राप्त हुए थे, जो चित्र 97 में दिखाए गए बाजार आदेशों को बंद करने के लिए था: quot; टर्मिनलक्वाट विंडो के कोट इतिहास इतिहास टैब पर, आप देख सकते हैं कि कुछ आदेश शून्य लाभ से बंद हैं विपरीत आदेश बंद करते समय हम इसे बचाते हैं आप चित्र 97 और अंजीर 99 में आर्थिक परिणामों की तुलना कर सकते हैं: quoterminalquot विंडो में जर्नलक्वाट टैब पर, आप ऑर्डर बंद करने के इतिहास को ट्रैक कर सकते हैं (नवीनतम इवेंट शीर्ष पर हैं): स्क्रिप्ट का निष्पादन, एल्गोरिथ्म के अनुसार , इस समय उपलब्ध अधिकतम मात्रा के आदेश बंद हो जाएंगे। इस तथ्य के बावजूद कि आदेश एक यादृच्छिक अनुक्रम (अंजीर 97) में खोले गए थे, पहले बंद होने के पहले आदेश 7785 9 9 खरीदे गए थे और 7785 9 9 बेचें, क्रमशः 1 लॉट और 0.8 लॉट की मात्रा के साथ (अंजीर में निचले रेखाएं 100) Since these orders have different volumes, the opposite closing produced a new order, Buy 778597, with the resting volume of 0.2 lot. Then the program selected orders Buy 778592 and Sell 778593, 0.5 lot each, to be closed as opposite orders. These orders were closed without opening a resting order. By the moment the third iteration started, two orders had remained in the symbol window in the external cycle: initial order Sell 778596 of 0.3 lot and the order opened as a result of the execution of the script, Buy 778597 of 0.2 lot. In the upper lines of Fig. 100, you can see that those orders are also closed as opposite orders. The volumes of those orders were different, so the last trade resulted in that one market order of 0.1 lot remained in the symbol window (please note the economic results): It is convenient to use the script closeby. mq4 in manual trading, especially in cases of many differently-directed market orders available in the symbol window.

No comments:

Post a Comment