MT4 গোল্ড EA সপ্তাহান্তে কোনো লগ নেই, এটি কি আটকে গেছে? প্রথমে কোট ও টাইমার ইভেন্ট আলাদা করুন
OnTick চার্টের সিম্বলের নতুন কোটের উপর নির্ভর করে, OnTimer-এর জন্য প্রোগ্রাম সাবস্ক্রিপশন প্রয়োজন। ইভেন্ট এন্ট্রি, লগের অবস্থান ও পুনরায় ইনিশিয়ালাইজেশনের রেকর্ড অনুযায়ী তদন্ত করুন, বাজার বন্ধে আউটপুট না থাকা দেখেই সরাসরি ত্রুটি ধরে নেবেন না।
লেখক: টমাস|MT4 বাস্তব প্রয়োগ|২০২৬ সালের ১৪ নভেম্বর
সারসংক্ষেপ: সপ্তাহান্তে টার্মিনাল খুললে EA-এর ইন্টারফেস থাকলেও দীর্ঘ সময় নতুন লগ না থাকলে, শুধু এই ঘটনা দেখে প্রোগ্রাম আটকে গেছে বলে সিদ্ধান্ত নেওয়া যাবে না। তদন্তের প্রথমে স্পষ্ট করতে হবে প্রোগ্রামটি কোন ইভেন্ট দ্বারা ট্রিগার হয়, সেই এন্ট্রিতে সত্যিই লগ প্রিন্ট হবে কি না, তারপর টার্মিনালের অবস্থা পরীক্ষা করতে হবে। এই লেখায় লাইভ অর্ডার দিয়ে প্রোগ্রাম পরীক্ষা করা হয়নি, এবং ফ্লোচার্টকে কোনো EA পরীক্ষায় উত্তীর্ণ হওয়ার প্রমাণ হিসেবে উপস্থাপন করা হয়নি।
নতুন কোট না থাকলে কোট ইভেন্ট নাও ঘটতে পারে
MetaQuotes-এর অফিসিয়াল MQL4 ডকুমেন্টেশন অনুযায়ী, EA-এর সংযুক্ত চার্টের সিম্বল নতুন কোট পেলে সংশ্লিষ্ট NewTick ইভেন্ট তৈরি হয় এবং সঠিকভাবে ঘোষিত OnTick হ্যান্ডলার ফাংশন কল হয়। যদি প্রোগ্রাম পরীক্ষা ও লগ উভয়ই এই এন্ট্রির ভেতরে লেখা থাকে, নতুন কোট না থাকা সময়ে নতুন কার্যকর রেকর্ড নাও থাকতে পারে।
এর মানে এই নয় যে সব EA-কে কোটের জন্য অপেক্ষা করতে হবে। প্রোগ্রাম টাইমার বা চার্ট ইভেন্টের মতো এন্ট্রিও ব্যবহার করতে পারে। তাই "সপ্তাহান্ত" দেখেই সব নীরবতা ব্যাখ্যা করা যাবে না, আর অন্য সিম্বল এখনও আপডেট হচ্ছে এই ঘটনাকে বর্তমান গোল্ড চার্টে অবশ্যই কোট পাওয়ার প্রমাণ ধরা যাবে না।
প্রথমে চিনুন প্রোগ্রামটি কোন ইভেন্টের জন্য অপেক্ষা করছে

চিত্রটি মূল ফ্লোচার্ট শিক্ষামূলক উদাহরণ, বাস্তব বাজার নয়, এবং কোনো প্রকৃত ট্রেডিং অ্যাকাউন্টও দেখানো হয়নি। প্রথম পথটি চার্টের সিম্বলের নতুন কোটের উপর নির্ভর করে; দ্বিতীয়টি প্রোগ্রাম সফলভাবে টাইমার সাবস্ক্রাইব করার উপর নির্ভর করে। টাইমার ইভেন্ট পরীক্ষা লজিক ট্রিগার করতে পারে, কিন্তু এর মানে এই নয় যে বর্তমান বাজারে অর্ডার সম্পাদন সম্ভব; প্রোগ্রামকে অবশ্যই ট্রেডিং শর্ত ও ডেটার বৈধতা যাচাই করতে হবে।
অফিসিয়াল সুপারিশ অনুযায়ী ইনিশিয়ালাইজেশনের সময় টাইমার সাবস্ক্রাইব করতে হবে এবং আনলোডের সময় বাতিল করতে হবে। শুধু OnTimer ফাংশন লেখা কিন্তু সাবস্ক্রাইব না করলে এটি পর্যায়ক্রমে চলবে বলে বোঝায় না। ফাংশনের নাম, প্যারামিটার ও রিটার্ন টাইপও ইভেন্ট হ্যান্ডলিংয়ের প্রয়োজনীয়তা অনুযায়ী হতে হবে, যেকোনো বানান ভুলে প্রত্যাশিত এন্ট্রি কল না-ও হতে পারে।
সাধারণ ব্যবহারকারীরা কীভাবে ধাপে ধাপে তদন্ত করবেন
প্রথমে অ্যাকাউন্ট, সার্ভার, চার্টের সিম্বলের নাম ও বর্তমান সংযোগের অবস্থা যাচাই করুন, নিশ্চিত করুন সঠিক টার্মিনাল দেখছেন। শেষ কোটের সময় ও প্ল্যাটফর্মের ট্রেডিং সময় লিখে রাখুন, কম্পিউটারের ঘড়িকে সার্ভারের বাজার সময়ের বিকল্প হিসেবে ব্যবহার করবেন না। সপ্তাহান্তে সাধারণ বাজার বন্ধ থাকলেও অন্য পণ্যের ট্রেডিং সময়সূচি সম্পূর্ণ একই নাও হতে পারে, নির্দিষ্ট প্ল্যাটফর্মের ঘোষণাই মানতে হবে।
তারপর Experts ও Journal ইত্যাদি সংশ্লিষ্ট লগ দেখুন, শেষ কয়েকটি ইনিশিয়ালাইজেশন, আনলোড বা ত্রুটির রেকর্ড সংরক্ষণ করুন। লগ ফিল্টার, তারিখ এবং অন্য কোনো টার্মিনাল দেখা হচ্ছে কি না লক্ষ্য করুন। যদি EA নিজেই শুধু ট্রেডিং শর্ত ঘটলে লগ প্রিন্ট করে, নতুন রেকর্ড না থাকা মানে শুধু প্রিন্টের শর্ত পূরণ হয়নি-ও হতে পারে, এটি দিয়ে প্রোগ্রাম কখনো চলেনি বলে প্রমাণ হয় না।
এরপর দেখুন EA-এর বিবরণে পর্যায়ক্রমিক পরীক্ষা, হার্টবিট আউটপুট বা সপ্তাহান্ত রক্ষণাবেক্ষণ ব্যবস্থা আছে কি না। সোর্স কোড না থাকলে সংস্করণ, প্যারামিটার, চার্টের সিম্বল, শেষ কোটের সময় ও লগ সরবরাহকারীকে যাচাইয়ের জন্য দিন, সব পণ্য একই ইভেন্ট কাঠামো ব্যবহার করে বলে অনুমান করবেন না।
সোর্স কোড থাকলে প্রথমে কী যাচাই করবেন
সিমুলেশন পরিবেশে OnInit, OnTick, OnTimer ইত্যাদি এন্ট্রির ঘোষণা ও প্রয়োজনীয় সাবস্ক্রিপশন যাচাই করুন, এবং উপযুক্ত ফ্রিকোয়েন্সির ডায়াগনস্টিক লগ দিয়ে প্রকৃত পথ নিশ্চিত করুন। লগে ইভেন্টের ধরন, সিম্বল ও ডেটার সময় লিখুন, শুধু "স্বাভাবিক" লিখে পুনরায় যাচাইযোগ্য প্রসঙ্গ ছাড়া রাখবেন না। অ্যাকাউন্টের পাসওয়ার্ড বা অন্য কোনো ক্রেডেনশিয়াল ডায়াগনস্টিক আউটপুটে লিখবেন না।
টার্মিনাল চলা, চার্ট লোড হওয়া, ইভেন্ট ট্রিগার হওয়া ও ট্রেড সম্পাদন ভিন্ন ভিন্ন স্তর। টাইমার এখনও আউটপুট দিচ্ছে এর মানে বাজার ডেটা সতেজ বলে প্রমাণ নয়, অর্ডার অবশ্যই পাঠানো যাবে বলেও প্রমাণ নয়। কোট ইভেন্ট ট্রিগার না হলে, ট্রেডিং অনুমতি শিথিল করে বা বারবার অর্ডার জমা দিয়ে প্রোগ্রাম জীবিত আছে কি না যাচাই করা আরও উচিত নয়।
বারবার পিরিয়ড পরিবর্তন কেন তদন্তে বাধা দিতে পারে
অফিসিয়াল ডকুমেন্টেশন অনুযায়ী, চার্টের সিম্বল বা পিরিয়ড পরিবর্তন, ইনপুট প্যারামিটার পরিবর্তন আনলোড ও পুনরায় ইনিশিয়ালাইজেশনের সাথে সম্পর্কিত। বারবার পরিবর্তন করলে মূল সমস্যা নতুন ইনিশিয়ালাইজেশন প্রক্রিয়ায় ঢাকা পড়তে পারে, আবার প্রোগ্রাম পুনরায় লোড হওয়া অবস্থাও ট্রিগার হতে পারে। প্রথমে লগ ও প্যারামিটার সংরক্ষণ করুন, তারপর নির্দেশনা অনুযায়ী নিরাপদ পরিবেশে যাচাই করুন, বারবার EA পুনরায় সংযুক্ত করে মাঝে মাঝে ঠিক হয় কি না দেখবেন না।
বিভিন্ন EA-এর পজিশন পুনরুদ্ধার, ভেরিয়েবল স্থায়িত্ব ও পুনরায় অর্ডার প্রতিরোধের বাস্তবায়ন ভিন্ন। এই লেখায় পুনরায় লোড নিরাপদ বলে নিশ্চয়তা দেওয়া হয় না, প্রকৃত এক্সপোজার থাকা অবস্থায় অন্ধভাবে আনলোড বা রিস্টার্ট করার সুপারিশ করা হয় না। যেকোনো রক্ষণাবেক্ষণ কাজের আগে স্পষ্ট করতে হবে পজিশন কে পরিচালনা করছে।
তদন্ত শেষ হয়েছে কীভাবে বুঝবেন
যদি নিশ্চিত হয় বর্তমান সিম্বলে নতুন কোট নেই, লজিক শুধু কোট এন্ট্রিতে আছে, এবং অন্য কোনো ত্রুটির প্রমাণ নেই, তাহলে বাজারের অপেক্ষা হিসেবে লিখে রাখুন, প্রোগ্রাম ঠিক হয়েছে বলে ঘোষণা করবেন না। যদি টাইমার এন্ট্রি চলার কথা ছিল কিন্তু ধারাবাহিকভাবে আউটপুট না থাকে, তাহলে সাবস্ক্রিপশন, ইনিশিয়ালাইজেশনের ফলাফল ও প্রোগ্রামের ত্রুটি পরীক্ষা চালিয়ে যান, বাজার বন্ধ দিয়ে সবকিছু ব্যাখ্যা করবেন না।
কোট ফিরে আসার পরেও প্রথমে টাইমস্ট্যাম্প ও অবস্থা যাচাই করুন, তারপর নিশ্চিত করুন প্রোগ্রাম প্রত্যাশিতভাবে নতুন ইভেন্ট প্রক্রিয়া করছে। ইভেন্ট ফিরে আসা ট্রেডিং কৌশলের লাভের সুবিধা প্রমাণ করে না, অর্ডার এখনও স্প্রেড, স্লিপেজ ও সম্পাদন ঝুঁকির সম্মুখীন। তদন্তের লক্ষ্য হলো প্রোগ্রাম আসলে কোন স্তরে থেমেছে তা খুঁজে বের করা, লাইভ ট্রেডে ঝুঁকি নিয়ে উত্তর পাওয়া নয়।