ایده کارفرما
تیم توسعه بازارخوان با EURUSD / XAUUSD روی H1 کار میکند و دستور کار اولیه این بود: اکسپرت به یک DLL قدیمی وصل است و روی سرور جدید کار نمیکند؛ همان کار را داخل خود کد انجام بده.
پروژه و وضعیت اولیه
کتابخانه DLL روی سرور جدید قابل استفاده نبود و هیچ مستندی از منطق داخلی آن وجود نداشت.
معماری راهحل
بازسازی منطق کتابخانه از رفتار مشاهدهشده، پیادهسازی توابع جایگزین در MQL5 و مقایسه خروجی هر تابع پیش و پس از حذف وابستگی.
هر تابع جایگزین یک تست تطابق دارد تا حذف وابستگی به تغییر نتیجه منجر نشود. سازگار با روش کاری که روی EURUSD / XAUUSD استفاده میشود و قابل تست با داده تاریخی موجود.
دلیل این انتخاب
هر تابع جایگزین یک تست تطابق دارد تا حذف وابستگی به تغییر نتیجه منجر نشود. سازگار با روش کاری که روی EURUSD / XAUUSD استفاده میشود و قابل تست با داده تاریخی موجود.
قابلیتهای پیادهسازیشده
ماژولها و بخشهای پیادهشده: توابع جایگزین + تست تطابق.
خروجی تحویلشده:
حذف وابستگی DLL از اکسپرت — EURUSD / XAUUSD (H1)
سند مشخصات و جدول تطبیق قوانین (Removing a DLL dependency from an expert)
سورس کامل MQL5 با کامنت
گزارش تست: مقایسه خروجی پیش و پس از حذف
مستند پارامترها و راهنمای نصب (۹ هفته)
پیشگیریها و کنترل ریسک
تا زمانی که نتیجه نسخه MT5 با MT4 تطبیق داده نشود، نسخه قدیمی از حساب واقعی حذف نمیشود.
روش بکتست و تست رو به جلو
روش تست: مقایسه خروجی پیش و پس از حذف.
تست در سه مرحله اجرا میشود: بکتست روی داده تاریخی، بهینهسازی محدود در محدودهٔ قرارداد، و اجرای رو به جلو با پارامترهای قفلشده.
ابزارها و پشته فنی: MQL5، کد قدیمی، لاگ فراخوانی توابع.
هر عدد این پروژه همراه با شرایط اندازهگیریاش منتشر میشود: بازه داده، مدل تیک، اسپرد، کارمزد و نسخه فایل اجرایی. بدون این شرایط، عدد نهایی با هیچ چیز قابل مقایسه نیست.
نتایج قابل انتشار
اکسپرت روی سرور جدید بدون هیچ فایل بیرونی اجرا شد و تطابق خروجی توابع در گزارش ثبت شد.
محدودیتها و نکات احتیاطی
تا زمانی که نتیجه نسخه MT5 با MT4 تطبیق داده نشود، نسخه قدیمی از حساب واقعی حذف نمیشود.
نتایج هر تست به کیفیت داده تاریخی، اسپرد بروکر و شرایط بازار وابسته است و تضمینی برای آینده نیست. در گپ قیمتی شدید یا قطع ارتباط بروکر، حد ضرر قابل تضمین نیست و رفتار سیستم در آن شرایط باید جداگانه بررسی شود.
پیشنهاد ما برای مرحله بعد
پیشنهاد بعدی، بازبینی رفتار در شرایط داده ناقص و اتصال مجدد سرور است.
نمونهکارها
نتیجه اندازهگیریشده
اعداد همان چیزی است که در تست اندازهگیری شده؛ نه وعده عملکرد آینده.
- 99 % تطابق نتیجه با نسخه قبلی
- 2 رگرسیونهای شناساییشده
- 70 ms زمان پاسخ سفارش
- 10 scenarios پوشش سناریوهای تست