हमने TradingBoxing के कोड से प्रेरणा ली है। हालांकि, नीचे दिया गया कोड केवल विचार पर आधारित है, जबकि सभी कार्यान्वयन MQL5 में है और नए ट्रेडिंग क्लास पर आधारित है।
इस ट्रेडिंग पैनल में केवल एक इनपुट पैरामीटर है, मैजिक नंबर - यह EA के लिए एक अद्वितीय पहचानकर्ता है।
ट्रेडिंग पैनल का रूप:

वोल्यूम (पोजिशन और पेंडिंग ऑर्डर के लिए) दिखाने के लिए, मानक क्लास CSpinEdit को थोड़ा संशोधित किया गया है और इसे CSpinEditDouble के रूप में सहेजा गया है। दुर्भाग्य से, हम इसे विरासत का उपयोग करके नहीं बना सके, क्योंकि हमें "private" के रूप में घोषित क्लास सदस्यों को बदलना पड़ा।
जैसा कि क्लास के नाम से स्पष्ट है, इसे डबल-प्रकार के डेटा को प्रदर्शित करने के लिए बनाया गया था। इसलिए, हमने DisplayedDigits नामक एक मेथड जोड़ा - जो नियंत्रण में टेक्स्ट प्रदर्शित करने की सटीकता को परिभाषित करता है।
इस नियंत्रण में टेक्स्ट फ़ील्ड को संपादनीय भी बनाया गया है। उदाहरण के लिए, जब आपको किसी मूल्य या वॉल्यूम को दर्ज करना हो जो टेक्स्ट फ़ील्ड में दिए गए मान से बहुत भिन्न हो, तो यह सहायक हो सकता है। टेक्स्ट फ़ील्ड से टेक्स्ट को मान के रूप में सहेजने के लिए, क्लास CSpinEditDouble में EndEdit नामक एक मेथड जोड़ा गया है:
int m_digits; // प्रदर्शित अंकों की संख्या //--- void EndEdit() { Value(StringToDouble(Text())); } public: CSpinEditDouble(void);
यह मेथड दर्ज किए गए टेक्स्ट को मान के रूप में याद रखता है।
मेथड EndEdit को क्लास CSpinEditDouble से OnEvent के माध्यम से बुलाया जाता है:
//+------------------------------------------------------------------+ //| चार्ट इवेंट्स का सामान्य हैंडलर | //+------------------------------------------------------------------+ EVENT_MAP_BEGIN(CSpinEditDouble) ON_EVENT(ON_CLICK,m_inc,OnClickInc) ON_EVENT(ON_CLICK,m_dec,OnClickDec) ON_EVENT(ON_END_EDIT,m_edit,EndEdit) EVENT_MAP_END(CWndContainer)
ताकि ट्रेड ऑर्डर को जल्दी से संसाधित किया जा सके (यहां तक कि एक बहुत शांत बाजार में जहां टिक बड़े अंतराल पर आते हैं), ट्रेडिंग पैनल बटन पर हर क्लिक अनिवार्य रूप से आंतरिक हैंडलर CTradingBoxingDialog::OnTick() को कॉल करेगा।
टिप्पणी 0