क्या आपने कभी अपने चार्ट्स के बीच ग्राफिकल ऑब्जेक्ट्स को कॉपी और पेस्ट करने की जरूरत महसूस की है? यकीनन आपने। लेकिन, चौंकाने वाली बात है कि MetaTrader में ऑब्जेक्ट्स के लिए "कॉपी & पेस्ट" की सुविधा नहीं है। इसके लिए जो एकमात्र विकल्प है, वह है टेम्पलेट्स (tpl-files)। लेकिन टेम्पलेट्स चार्ट की पूरी स्थिति को स्टोर करते हैं, जिसमें इंडिकेटर्स, सेटिंग्स और बहुत सारी सहायक चीजें होती हैं, जो कि आवश्यक कॉपी करने की प्रक्रिया के लिए अप्रासंगिक हो सकती हैं।
इसीलिए मैंने यह इंडिकेटर ChartObjectsCopyPaste.mq5 विकसित किया। यह चयनित ऑब्जेक्ट्स को क्लिपबोर्ड में कॉपी करता है, जिससे उन्हें अन्य चार्ट्स पर पेस्ट किया जा सकता है। बिना किसी शर्त के।
यह इंडिकेटर एक अन्य इंडिकेटर पर आधारित है, जो अल्गोट्रेडिंग किताब में प्रकाशित है - ObjectGroupEdit.mq5।
कृपया सभी अंतर्निहित क्लासेस के बारे में और जानने के लिए लिंक का अनुसरण करें (ObjectMonitor, MapArray और अन्य)।
यह इंडिकेटर बिना बफर्स के होता है। इसे कम से कम 2 चार्ट्स पर लगाना चाहिए: एक स्रोत चार्ट, जिससे आप ऑब्जेक्ट्स कॉपी करना चाहते हैं, और एक लक्ष्य चार्ट, जहाँ आप उन्हें पेस्ट करना चाहते हैं।
जब यह चार्ट पर चल रहा होता है, तो इंडिकेटर मौजूदा ग्राफिकल ऑब्जेक्ट्स को ट्रैक करता है और नोट करता है कि कौन से ऑब्जेक्ट्स चयनित हैं।
जैसा कि हमेशा होता है, "कॉपी & पेस्ट" कमांड्स जोड़ी में कार्य करते हैं:
- सभी चयनित ऑब्जेक्ट्स को विंडोज क्लिपबोर्ड में टेक्स्ट के रूप में कॉपी करने के लिए Ctrl+Q हॉटकी दबाएँ (आप इसे किसी भी टेक्स्ट एडिटर में सहेज और देख सकते हैं, नीचे एक उदाहरण है)।
- लक्ष्य चार्ट पर सभी ऑब्जेक्ट्स को क्लिपबोर्ड से पेस्ट करने के लिए Ctrl+J दबाएँ।
क्यों Ctrl+Q/Ctrl+J? ये बस 2 खाली कुंजी संयोजन हैं जो बहुत कम में से स्वेच्छा से चुने गए हैं। इसका कारण यह है कि MetaTrader कई हॉटकीज़ को इंटरसेप्ट करता है और MQL प्रोग्रामों तक नहीं पहुँचाता। खासकर, यह सामान्य Ctrl+C/Ctrl+V/Ctrl+Ins/Shift+Ins के लिए है, जो इस संदर्भ में काम नहीं करते।
चूंकि स्रोत कोड उपलब्ध है, आप हॉटकीज़ को अन्य संयोजनों में बदल सकते हैं।
चूंकि इंडिकेटर विंडोज क्लिपबोर्ड तक पहुंचने के लिए सिस्टम DLLs का उपयोग करता है, आपको Properties संवाद में DLL आयात करने की अनुमति देनी चाहिए, Dependencies टैब पर।
चूंकि कोडबेस DLL आयात की अनुमति नहीं देता है, इसलिए क्लिपबोर्ड से संबंधित कोड को शर्तीय प्रीप्रोसेसर निदेशिका #ifdef DLL_LINK में लपेटा गया है, इसलिए कृपया लाइनों को अनकमेंट करें:
#define DLL_LINK
संकलन से पहले। अन्यथा, आप देखेंगे कि क्लिपबोर्ड फ़ंक्शन स्टब्स हॉटकीज़ दबाने पर आपको अलर्ट दिखाएंगे, और कोई वास्तविक कार्रवाई नहीं की जाएगी!
इनपुट्स हैं:
- MakeAllSelectable - सभी ऑब्जेक्ट्स को चयन योग्य बनाने का फ़्लैग (जो सामान्यतः उन ऑब्जेक्ट्स के लिए झूठा होता है जो प्रोग्रामेटिक रूप से बनाए गए हैं);
- LogDetails - ट्रांसफर किए गए ऑब्जेक्ट्स के सभी गुणों को लॉग में आउटपुट करने का फ़्लैग;
इंडिकेटर यह जांच नहीं करता है कि पेस्ट किए गए ऑब्जेक्ट्स लक्षित चार्ट से मेल खाते हैं या नहीं, जैसे प्रतीक, मूल्य सीमा, उपविंडो की संख्या, आदि - आपको यह स्वयं करना होगा।
यहाँ 2 ऑब्जेक्ट्स के साथ क्लिपबोर्ड टेक्स्ट का एक उदाहरण है:
OBJ_VLINE H1 वर्टिकल लाइन 5578 0 0enumENUM_OBJECT_PROPERTY_INTEGER0 OBJPROP_COLOR 552951 OBJPROP_STYLE 22 OBJPROP_WIDTH 13 OBJPROP_BACK 04 OBJPROP_SELECTED 17 OBJPROP_TYPE 08 OBJPROP_TIME 172673994010 OBJPROP_SELECTABLE 111 OBJPROP_CREATETIME 172684700912 OBJPROP_TIMEFRAMES 2097151200 OBJPROP_LEVELS 0207 OBJPROP_ZORDER 0208 OBJPROP_HIDDEN 01032 OBJPROP_RAY 1enumENUM_OBJECT_PROPERTY_DOUBLE9 OBJPROP_PRICE 1.11449enumENUM_OBJECT_PROPERTY_STRING5 OBJPROP_NAME H1 वर्टिकल लाइन 55786 OBJPROP_TEXT 206 OBJPROP_TOOLTIPOBJ_CHANNEL H1 इक्वीडिस्टेंट चैनल 40885 5 1enumENUM_OBJECT_PROPERTY_INTEGER0 OBJPROP_COLOR 2551 OBJPROP_STYLE 02 OBJPROP_WIDTH 13 OBJPROP_BACK 04 OBJPROP_SELECTED 17 OBJPROP_TYPE 58 OBJPROP_TIME 17267580008 OBJPROP_TIME.1 17267976008 OBJPROP_TIME.2 172675800010 OBJPROP_SELECTABLE 111 OBJPROP_CREATETIME 172684788312 OBJPROP_TIMEFRAMES 2097151200 OBJPROP_LEVELS 0207 OBJPROP_ZORDER 0208 OBJPROP_HIDDEN 01003 OBJPROP_RAY_LEFT 01004 OBJPROP_RAY_RIGHT 01031 OBJPROP_FILL 0enumENUM_OBJECT_PROPERTY_DOUBLE9 OBJPROP_PRICE -28.1138790035587159 OBJPROP_PRICE.1 -21.7081850533807779 OBJPROP_PRICE.2 -48.04270462633452enumENUM_OBJECT_PROPERTY_STRING5 OBJPROP_NAME H1 इक्वीडिस्टेंट चैनल 408856 OBJPROP_TEXT 206 OBJPROP_TOOLTIP
और यहाँ चार्ट पर पेस्ट किए गए ये ऑब्जेक्ट्स हैं:


टिप्पणी 0