نحوه عیبیابی اجرای غیرعادی EA: ابتدا لاگهای MT4 را نگه دارید، سپس تنظیمات را تغییر دهید
بین Experts و Journal تمایز قائل شوید، وضعیت لحظه بروز خطا را حفظ کنید، فعالشدن، مجوزها و نتیجه معامله را بررسی کنید، و از راهاندازی مجدد و تغییر پارامترها برای پنهان کردن علت واقعی بپرهیزید.
نویسنده: توماس | EA و امور پلتفرم | 5 اکتبر 2026
وقتی EA بهطور ناگهانی معامله نمیکند، سفارشهای تکراری ایجاد میشود، یا رفتارش پس از راهاندازی مجدد با انتظار متفاوت است، شایعترین خطا این است که فوراً پارامترها را تغییر دهید، برنامه را دوباره نصب کنید و بعد حدس بزنید مشکل کجاست. این کار ممکن است ارزشمندترین اطلاعات وضعیت را از بین ببرد. در عیبیابی ابتدا باید شواهد را ذخیره کنید و سپس دلایل را در سطوح برنامه، ترمینال و حساب از هم تفکیک کنید.
ابتدا سوابق قبل و بعد از بروز خطا را ذخیره کنید
زمان بروز خطا، نماد کامل معاملاتی، تایمفریم چارت، نسخه EA، فایل پارامترها و موقعیتهای حساب در آن زمان را ثبت کنید. برای زمان اینجا باید مشخص کنید که از زمان کامپیوتر، زمان سرور معاملاتی یا زمان پکن که خودتان تبدیل کردهاید استفاده شده است؛ سوابق مربوط به ساعتهای مختلف را مستقیماً به هم نچسبانید.
لاگ لزوماً تمام فرایند تصمیمگیری برنامه را در بر نمیگیرد. اطلاعاتی که توسعهدهنده 출력 نکرده است را نمیتوان تنها با تکیه بر «خطایی گزارش نشده» بهعنوان اجرای نرمال استنباط کرد. نگه داشتن سوابق پیوسته قبل و بعد، بیشتر از یک اسکرینشات خطا به تشخیص ترتیب رویدادها کمک میکند؛ پیش از انتشار عمومی یا ارسال به پشتیبان، بررسی کنید که شامل شماره حساب، اطلاعات شخصی یا سایر محتوای حساس نباشد.
Experts و Journal، هر کدام چه چیزی را نشان میدهند
برچسب Experts در MT4 عمدتاً اطلاعات اجرای EAهای متصلشده را نشان میدهد، از جمله پیامهای خود برنامه و سوابق عملیات مرتبط. برچسب Journal بیشتر بر فعالیت ترمینال کلاینت در نشست جاری تمرکز دارد. هنگام عیبیابی یک خطای مشترک، میتوانید اطلاعات این دو محل را با هم مقایسه کنید، اما هیچکدام را بهتنهایی سند کامل معامله در نظر نگیرید.
در منوی راستکلیک برچسب مربوطه، با استفاده از Open میتوانید پوشه لاگ مربوطه را باز کنید و سوابق نمایشدادهشده فعلی را در فایل لاگ بنویسید. راهنمای رسمی میگوید لاگهای EA در پوشه MQL4/LOGS زیر پوشه داده ترمینال قرار دارند و لاگهای ترمینال در LOGS قرار میگیرند؛ فایلها معمولاً بر اساس تاریخ نامگذاری میشوند. پوشه داده در نصبهای مختلف ممکن است متفاوت باشد؛ باید از ترمینالی که در حال استفاده از آن هستید وارد شوید تا بهاشتباه فایلهای ترمینال دیگری را برندارید.
ابتدا تشخیص دهید: فعال نشده، یا بعد از فعال شدن معامله انجام نشده است
«سفارش جدیدی وجود ندارد» دستکم میتواند با چند وضعیت متفاوت مطابقت داشته باشد: شرایط استراتژی برآورده نشده است؛ برنامه بهدرستی بارگذاری نشده است؛ مجوز معامله خودکار محدود شده است؛ درخواست معامله رد شده است؛ نتیجه درخواست با انتظار متفاوت است. فقط با دیدن نشان برنامه روی چارت نمیتوان مستقیماً تشخیص داد کدامیک است.
ابتدا بر اساس قواعد اصلی استراتژی تأیید کنید که آیا واقعاً باید روی نماد و تایمفریم مشخص فعال میشد. سپس بررسی کنید در بازه زمانی مربوطه اطلاعاتی درباره بارگذاری، مقداردهی اولیه یا عملیات معاملاتی وجود دارد یا نه. اگر درخواست معاملهای وجود دارد، نتیجه را با پیام برگشتی و سوابق سفارشهای حساب تطبیق دهید و صرفاً بر اساس متن چاپشده توسط برنامه، موفقیت معامله را تأیید نکنید. اگر لاگ مراحل کلیدی را ندارد، باید از توسعهدهنده درخواست کنید ثبتهای تکمیلی را اضافه کند.
بررسی مجوزها باید موردبهمورد باشد، همه را باز نکنید
تنظیمات ترمینال MT4 و ویژگیهای خود EA بر مجوز معامله خودکار اثر میگذارند؛ عملیاتی مانند تغییر حساب، نماد چارت یا تایمفریم نیز ممکن است با تنظیمات معامله خودکار ترمینال مرتبط باشد. تنظیمات واقعی فعلی را بررسی کنید و با توجه به توضیحات برنامه درباره رفتار مورد انتظار قضاوت کنید؛ نمیتوان بهجای عیبیابی، مکرراً روی دکمهها کلیک کرد.
برای اینکه برنامه شروع به معامله کند، فراخوانی DLL یا سایر دسترسیهای خارجی را بیقیدوشرط باز نکنید. ابتدا تأیید کنید آیا برنامه واقعاً به قابلیت مربوطه نیاز دارد، منبع آن قابل اعتماد است و کاربردش بهروشنی توضیح داده شده است. کمبود مجوز ممکن است علت یک حلقه باشد، اما باز کردن همه مجوزها راهحل قابل اعتمادی نیست.
پیش از راهاندازی مجدد، ابتدا مشخص کنید با پوزیشنهای موجود چگونه رفتار میشود
پس از حفظ سفارشهای فعلی، سفارشهای معلق و وضعیت برنامه، سپس درباره راهاندازی مجدد تصمیم بگیرید. اینکه با راهاندازی مجدد برنامه، سفارشهای موجود شناسایی میشوند یا نه به پیادهسازی خاص بستگی دارد؛ نمیتوان فرض کرد هر EA میتواند وضعیت داخلی قبلی را بهطور خودکار بازیابی کند. بهویژه در برنامههایی با منطق افزودن به پوزیشن یا مدیریت چند سفارش، راهاندازی مکرر ممکن است با پوزیشنهای موجود تعارض پیدا کند و باید بر اساس قواعد برنامه بررسی شود.
خاموش کردن معامله خودکار به معنای بسته شدن پوزیشنهای موجود نیست، و «توقف برنامه» را نیز نباید به معنای از بین رفتن ریسک دانست. نحوه رسیدگی به سفارشهای موجود باید از قبل تعیین شده باشد و نمیتوان پس از بروز خطا بهصورت موقت حدس زد. اگر گمان میکنید برنامه در حال ساختن سفارشهای غیرعادی است، طبق فرایند از پیش تعیینشده توقف و بررسی دستی عمل کنید و همزمان مواجهه واقعی حساب را بررسی کنید.
با یک تغییر واحد نتیجه تعمیر را بسنجید
محیط دمو میتواند برای بازتولید عملیات و بررسی رفتار برنامه استفاده شود، اما نمیتواند ثابت کند شرایط اجرای معامله در حساب واقعی کاملاً یکسان است. هر بار فقط یک عامل مشخص را تغییر دهید و پارامترها و لاگهای قبل و بعد از تغییر را نگه دارید، سپس ببینید آیا خطای مربوطه از بین میرود. اگر همزمان نسخه را عوض کنید، پارامترها را تغییر دهید و حساب را عوض کنید، غالباً تشخیص اینکه کدام مرحله مؤثر بوده دشوار است.
یک سابقه عیبیابی مؤثر باید پدیده، زمان، شواهد، محتوای تغییر و نتیجه بازبینی را بنویسد. خطاهای غیرقابلتوضیح را باید همچنان با توسعهدهنده یا پشتیبانی پلتفرم بررسی کرد؛ از «معامله از سر گرفته شده است» بهجای تحلیل علت استفاده نکنید و تعمیر فنی را بهصورت تضمین سود ننویسید.
معامله با اهرم میتواند زیانهای سنگین ایجاد کند. این مقاله برای اشتراک دانش نگهداری و عملیات است و دستور خرید یا فروش محسوب نمیشود. عیبیابی لاگ میتواند به مکانیابی مشکل کمک کند، اما نمیتواند امنیت برنامه، اثربخشی استراتژی یا بازده آتی را تضمین کند.