
ساخت ربات معاملهگر یعنی تبدیل یک استراتژی معاملاتی مشخص به برنامهای (اکسپرت یا Expert Advisor) که در متاتریدر ۴ یا ۵ بدون دخالت دستی وارد معامله میشود، حد ضرر و حد سود را مدیریت میکند و از معامله بیرون میآید. ربات فقط همان قواعدی را اجرا میکند که به آن دادهاید؛ اگر استراتژی سودآور نباشد، ربات هم سودآور نخواهد بود. این راهنما مراحل ساخت، عواملی که هزینه را تعیین میکنند و ریسکهایی را که پیش از اجرای واقعی باید بشناسید، قدمبهقدم مرور میکند.
نکته مهم: این مطلب آموزشی است و توصیه مالی یا سرمایهگذاری نیست. معامله در بازارهای مالی، بهویژه با اهرم، میتواند به از دست رفتن تمام سرمایه منجر شود.
فهرست مطالب
- ربات معاملهگر چیست و چه کاری انجام میدهد؟
- پیش از ساخت: استراتژی باید قابل نوشتن باشد
- مراحل ساخت ربات معاملهگر، قدمبهقدم
- چه عواملی هزینه ساخت ربات را تعیین میکند؟
- ریسکها و محدودیتهایی که باید بدانید
- پیش از اجرای واقعی، ربات را با این معیارها بسنجید
- خطاهای رایج در ساخت و اجرای ربات
- ساخت ربات معاملهگر با تیم طراحان آیا
- پرسشهای متداول
- منابع
ربات معاملهگر چیست و چه کاری انجام میدهد؟
در متاتریدر، ربات معاملهگر برنامهای است که با زبان MQL4 (برای متاتریدر ۴) یا MQL5 (برای متاتریدر ۵) نوشته میشود و روی نمودار یک نماد اجرا میشود. این برنامه به رویدادهای پلتفرم واکنش نشان میدهد: هنگام بارگذاری، تنظیمات اولیه را انجام میدهد (OnInit)، با رسیدن هر قیمت تازه شرایط را بررسی میکند (OnTick) و هنگام حذف از نمودار، منابع را آزاد میکند (OnDeinit).
سه نوع برنامه را نباید با هم اشتباه گرفت:
- اکسپرت (ربات کامل): خودش معامله باز و بسته میکند.
- اندیکاتور: فقط محاسبه میکند و روی نمودار نشان میدهد؛ معاملهای انجام نمیدهد.
- اسکریپت: یک کار مشخص را یک بار اجرا میکند؛ مثلاً بستن همه معاملات باز.
ربات نیمهخودکار هم رایج است: تصمیم ورود با خود معاملهگر است و ربات حجم معامله، حد ضرر، حد سود و خروج پلهای را دقیق اجرا میکند.
پیش از ساخت: استراتژی باید قابل نوشتن باشد
رایانه «حس بازار» ندارد. هر قاعده باید آنقدر دقیق باشد که دو نفر از روی آن به یک تصمیم برسند. پیش از شروع برنامهنویسی، این موارد را مکتوب کنید:
| پرسش | نمونه پاسخ دقیق |
|---|---|
| شرط ورود | وقتی میانگین متحرک ۲۰ دورهای میانگین ۵۰ دورهای را در تایمفریم یکساعته رو به بالا قطع کرد و کندل بسته شد، خرید. |
| شرط خروج | خروج در حد سود، حد ضرر یا قطع معکوس میانگینها؛ هر کدام زودتر رخ داد. |
| حجم معامله | ریسک هر معامله حداکثر ۱ درصد موجودی حساب. |
| حد ضرر و حد سود | حد ضرر ۱٫۵ برابر ATR و حد سود ۲ برابر فاصله حد ضرر. |
| محدودیتها | حداکثر یک معامله باز در هر نماد؛ معامله نکردن در ساعتهای تعیینشده. |
| شرط توقف | اگر افت سرمایه از ۱۰ درصد گذشت، ربات معامله تازه باز نکند. |
این جدول فقط نمونه است و پیشنهاد معاملاتی نیست؛ هدفش نشان دادن سطح دقتی است که ربات به آن نیاز دارد. هر جا پاسخ شما «بستگی دارد» است، همانجا باید قاعده را دقیقتر کنید. اگر با مفاهیمی مثل اسپرد، لات و اهرم آشنا نیستید، پیش از ادامه مفاهیم پایه بازار فارکس را بخوانید.
مراحل ساخت ربات معاملهگر، قدمبهقدم
۱. نوشتن سند مشخصات
خروجی این مرحله سندی است که همه قواعد بالا، نمادها، تایمفریمها، تنظیمات قابلتغییر ربات (ورودیها) و رفتار ربات در شرایط خاص را شرح میدهد: قطع اینترنت، معامله باز در پایان هفته یا اسپرد غیرعادی. همین سند معیار تحویل هم هست؛ ربات تحویلی را با آن میسنجید.
۲. انتخاب متاتریدر ۴ یا ۵
انتخاب معمولاً به کارگزار شما بستگی دارد، چون ربات باید روی همان پلتفرمی اجرا شود که حسابتان در آن است. MQL4 و MQL5 شبیهاند، ولی کد یکی مستقیماً در دیگری اجرا نمیشود. تستر استراتژی متاتریدر ۵ امکاناتی دارد که در ارزیابی ربات مهم است، از جمله تست با تیکهای واقعی و تست چندنمادی؛ اگر از ابتدا حق انتخاب دارید، این امکانات را در نظر بگیرید. جزئیات این تفاوت، از مدل معامله تا تستر و تایمفریمها، در راهنمای تفاوت MQL4 و MQL5 آمده است.
در متاتریدر ۵ روش ثبت پوزیشن هم مهم است و کارگزار آن را برای هر حساب تعیین میکند. در روش netting برای هر نماد فقط یک پوزیشن باز وجود دارد و معامله مخالف آن را کم، بسته یا معکوس میکند؛ در روش hedging هر معامله پوزیشن جداگانه خودش را دارد. رباتی که برای یکی نوشته شده، روی دیگری ممکن است رفتار اشتباه داشته باشد؛ پس ربات را برای همان نوع حسابی بسازید و تست کنید که با آن معامله میکنید.
۳. برنامهنویسی در MetaEditor
کد ربات در MetaEditor، ویرایشگری که همراه متاتریدر نصب میشود، نوشته و کامپایل میشود. بخش بزرگی از کار یک ربات حرفهای به خود استراتژی مربوط نیست، بلکه به جزئیات اجراست:
- رعایت شرایط حساب و نماد: حداقل حجم، گام حجم، حداقل فاصله حد ضرر از قیمت و تعداد رقم اعشار؛
- مدیریت خطای ارسال سفارش و تلاش دوباره کنترلشده؛
- جلوگیری از باز شدن معامله تکراری بعد از راهاندازی دوباره پلتفرم؛
- ثبت گزارش (لاگ)، تا بعداً بدانید ربات چرا معاملهای را باز یا بسته کرده است.
برای استراتژیهای ساده، ابزار MQL5 Wizard در MetaEditor میتواند اسکلت اکسپرت را بدون برنامهنویسی دستی بسازد؛ اما هر قاعده خاص یا مدیریت سرمایه دقیق، دوباره به برنامهنویسی برمیگردد.
۴. بکتست در Strategy Tester
بکتست یعنی اجرای ربات روی دادههای گذشته. تستر متاتریدر ۵ چند حالت شبیهسازی قیمت دارد: حالت «Every tick» (بهویژه بر پایه تیکهای واقعی) دقیقترین نتیجه را میدهد، «1 minute OHLC» سریعتر است و «Open prices only» فقط برآوردی سریع و تقریبی ارائه میکند. نتیجه بکتست فقط به اندازه داده و تنظیماتش معتبر است؛ اسپرد، کمیسیون و کیفیت داده تاریخی را مطابق شرایط واقعی حساب خود تنظیم کنید. تنظیم قدمبهقدم تستر، معنی عددهای گزارش و خطاهای رایج را در راهنمای بکتست اکسپرت در متاتریدر ۵ آوردهایم.
۵. بهینهسازی با احتیاط و تست forward
بهینهسازی، ترکیبهای مختلف ورودیهای ربات را امتحان میکند تا بهترین را پیدا کند. خطر بزرگ همینجاست: هرچه پارامترها را بیشتر با گذشته جفتوجور کنید، ربات روی همان گذشته عالی و روی آینده ضعیف میشود؛ این را بیشبرازش (over-optimization) میگویند. متاتریدر ۵ برای همین «تست forward» دارد: داده به دو بخش تقسیم میشود، بهینهسازی روی بخش اول انجام میشود و بخش دوم، که ربات آن را ندیده است، نتیجه را میسنجد. اگر عملکرد در بخش دوم فرو ریخت، پارامترها فقط با گذشته جفت شدهاند.
۶. اجرای آزمایشی روی حساب دمو
بعد از بکتست، ربات را مدتی روی حساب دمو و در شرایط زنده بازار اجرا کنید. اینجا چیزهایی دیده میشود که در بکتست نبود: لغزش قیمت (slippage)، باز شدن ناگهانی اسپرد هنگام انتشار اخبار، تأخیر در اجرای سفارش و رفتار ربات هنگام قطع و وصل شدن اتصال.
۷. اجرای واقعی با حجم کم و پایش مداوم
اجرای واقعی را با کمترین حجم ممکن شروع کنید و نتیجه را با دمو و بکتست مقایسه کنید. ربات باید بیوقفه به سرور کارگزار وصل باشد؛ به همین دلیل معمولاً روی سرور مجازی (VPS) اجرا میشود، نه رایانه شخصیای که ممکن است خاموش شود یا اینترنتش قطع شود. خود متاتریدر هم سرویس میزبانی مجازی داخلی دارد که برای اجرای شبانهروزی ربات طراحی شده است. فرق این دو راه و چیزهایی که پیش از اجاره سرور باید سنجید را در راهنمای سرور مجازی ترید نوشتهایم. برای روزهای بحرانی هم راه توقف سریع پیشبینی کنید؛ مثلاً یک ورودی که باز کردن معامله تازه را متوقف کند.
چه عواملی هزینه ساخت ربات را تعیین میکند؟
قیمت ثابت برای «یک ربات» معنا ندارد، چون حجم کار دو ربات میتواند بسیار متفاوت باشد. این عوامل بیشترین اثر را دارند:
| عامل | چرا هزینه را تغییر میدهد |
|---|---|
| پیچیدگی قواعد | هر شرط، فیلتر و استثنای بیشتر یعنی کد، حالتهای خاص و تست بیشتر. |
| تعداد نمادها و تایمفریمها | ربات چندنمادی باید معاملات همزمان و ارتباط میان نمادها را مدیریت کند. |
| اندیکاتور اختصاصی | محاسبهای که در متاتریدر آماده نیست باید جداگانه نوشته و آزموده شود. |
| مدیریت سرمایه | محاسبه حجم بر پایه ریسک، خروج پلهای و حد ضرر متحرک کار اضافه دارد. |
| پنل و تنظیمات | پنل گرافیکی روی نمودار یا تنظیمات زیاد، زمان طراحی و تست را بالا میبرد. |
| اعلان و گزارش | ارسال هشدار (ایمیل یا اعلان موبایل متاتریدر) و ثبت عملکرد، بخش جداگانهای از کار است. |
| عمق تست | بهینهسازی، تست forward و دوره دمو زمانبرترین بخش کارند. |
| نگهداری | بهروزرسانی پلتفرم، تغییر شرایط کارگزار یا اصلاح استراتژی بعد از تحویل. |
علاوه بر هزینه ساخت، هزینه ماهانه سرور مجازی را هم در نظر بگیرید. پیش از سفارش، یک سند مشخصات و یک برنامه تست مکتوب بخواهید؛ پیشنهادی که بدون دیدن استراتژی قیمت قطعی میدهد، معمولاً یا بخشی از کار را در نظر نگرفته یا بعداً تغییر میکند.
ریسکها و محدودیتهایی که باید بدانید
ربات معاملهگر ابزار اجراست، نه منبع سود. پیش از سپردن پول واقعی به هر ربات، این ریسکها را جدی بگیرید:
- گذشته تکرار نمیشود: بکتست خوب تضمینی برای آینده نیست؛ شرایط بازار، نوسان و نقدشوندگی تغییر میکنند.
- بیشبرازش: رباتی که با پارامترهای بسیار دقیق روی گذشته عالی است، اغلب روی داده تازه شکست میخورد.
- تفاوت اجرا: لغزش قیمت، اسپرد متغیر و تأخیر در حساب واقعی با بکتست فرق دارد.
- ریسک فنی: قطع اینترنت، خاموشی سرور، بهروزرسانی پلتفرم یا خطای کد میتواند معامله را بیمدیریت رها کند.
- اهرم: اهرم بالا سود و زیان را با هم بزرگ میکند و یک اشتباه کوچک را به زیانی بزرگ تبدیل میکند.
- روشهای پرخطر: روشهایی مثل مارتینگل یا شبکه بیسقف (افزایش حجم بعد از هر ضرر) ممکن است مدتی منحنی صافی نشان دهند و ناگهان بخش بزرگی از حساب را از بین ببرند.
برای درک اندازه ریسک: سازمان اوراق بهادار و بازارهای اروپا (ESMA) در سال ۲۰۱۸ و بر پایه بررسی ناظران ملی اعلام کرد که ۷۴ تا ۸۹ درصد حسابهای معاملهگران خرد در معاملات CFD، یعنی قراردادهای مابهالتفاوت که بسیاری از کارگزاریهای فارکس ارائه میکنند، معمولاً زیان میدهند (اطلاعیه ESMA). پیش از انتخاب کارگزار، نکتههای انتخاب بروکر فارکس را هم ببینید.
قوانین معامله در بازارهای خارجی و فعالیت کارگزارها در هر کشور متفاوت است؛ پیش از هر اقدام، وضعیت قانونی فعالیت خود و مجوز کارگزار را بررسی کنید.
پیش از اجرای واقعی، ربات را با این معیارها بسنجید
سود خالص بکتست بهتنهایی چیزی نمیگوید. گزارش کامل تستر را ببینید و این موارد را بررسی کنید:
- بیشترین افت سرمایه (Maximum Drawdown): بدترین فاصله از اوج تا کف موجودی؛ آیا تحمل آن را دارید؟
- ضریب سود (Profit Factor): نسبت مجموع سودها به مجموع زیانها.
- تعداد معاملات: نتیجه چند ده معامله، هرچقدر هم خوب باشد، از نظر آماری قابلاتکا نیست.
- بیشترین زیانهای پشتسرهم: برای تنظیم حجم و آمادگی روانی هنگام اجرای واقعی.
- عملکرد در دورههای مختلف بازار: بازار روندی، بازار کمنوسان و دورههای پرخبر.
- فاصله بکتست، تست forward و دمو: اگر نتیجهها خیلی با هم فرق دارند، دلیلش را پیدا کنید.
اگر فروشندهای فقط عدد سود یا یک نمودار صاف نشان میدهد و گزارش کامل تستر یا امکان تست روی حساب دمو را نمیدهد، همین خودش نشانه هشدار است.
خطاهای رایج در ساخت و اجرای ربات
- نداشتن حد ضرر، یا تکیه بر «میانگین کم کردن» بیسقف؛
- بهینهسازی تعداد زیادی پارامتر روی یک دوره کوتاه؛
- نادیده گرفتن اسپرد، کمیسیون و سواپ در بکتست؛
- اجرای ربات روی رایانه شخصی با برق و اینترنت ناپایدار؛
- تغییر دادن تنظیمات ربات بعد از چند ضرر، بدون تست دوباره؛
- اجرای همزمان چند ربات روی یک حساب، بدون کنترل ریسک کل حساب.
ساخت ربات معاملهگر با تیم طراحان آیا
تیم طراحان آیا اکسپرت و ربات معاملهگر برای متاتریدر ۴ و ۵ (MQL4 و MQL5) میسازد؛ اندیکاتور و اسکریپت اختصاصی بر پایه استراتژی شما هم بخشی از همین خدمت است. روند کار همان مراحل این راهنماست: مشخصات استراتژی را با هم مکتوب میکنیم، ربات را میسازیم، پیش از اجرای واقعی روی دادههای تاریخی بکتست و بهینهسازی میکنیم و مدیریت سرمایه، حد ضرر و حد سود خودکار را در خود ربات پیاده میکنیم. گزارش، اعلان و پایش عملکرد ربات روی سرور مجازی هم در صورت نیاز اضافه میشود.
هیچ رباتی سود تضمینشده ندارد؛ کار ما این است که استراتژی شما دقیق، قابلاندازهگیری و آزموده به ربات تبدیل شود. برای آشنایی بیشتر، خدمت ساخت ربات معاملهگر را ببینید یا برای بررسی استراتژی و برآورد کار از صفحه تماس درخواست مشاوره رایگان بدهید.
پرسشهای متداول
آیا ربات معاملهگر سود تضمینی دارد؟
خیر. ربات فقط قواعد استراتژی را دقیق و بدون احساسات اجرا میکند. اگر استراتژی در شرایط فعلی بازار سودآور نباشد، اجرای دقیق آن هم زیان را دقیقتر تکرار میکند. هر وعده سود ثابت یا تضمینی نشانه هشدار است.
بدون برنامهنویسی میشود ربات ساخت؟
برای استراتژیهای ساده بله: MQL5 Wizard در MetaEditor از روی تنظیمات انتخابی، اسکلت اکسپرت را میسازد. اما قواعد خاص، مدیریت سرمایه دقیق و مدیریت خطاهای اجرا معمولاً برنامهنویسی لازم دارد.
متاتریدر ۴ بهتر است یا متاتریدر ۵؟
اول ببینید حساب و کارگزار شما روی کدام پلتفرم است. اگر حق انتخاب دارید، تستر متاتریدر ۵ بهخاطر تست با تیکهای واقعی، تست چندنمادی و بهینهسازی با الگوریتم ژنتیک، برای ارزیابی ربات امکانات بیشتری دارد.
ربات باید همیشه روشن باشد؟
بله؛ ربات فقط وقتی کار میکند که متاتریدر باز و به سرور کارگزار وصل باشد. به همین دلیل اجرای ربات روی سرور مجازی (VPS) رایج است و خود متاتریدر هم سرویس میزبانی مجازی داخلی دارد.
ساخت ربات چقدر طول میکشد؟
به پیچیدگی قواعد و عمق تست بستگی دارد. معمولاً برنامهنویسی بخش کوتاهتر کار است و بکتست، بهینهسازی، تست forward و اجرای دمو بیشترین زمان را میگیرد؛ این بخش را برای صرفهجویی در زمان حذف نکنید.
اگر تازه با این بازار آشنا میشوید، از فارکس چیست؟ شروع کنید.
منابع
- MetaQuotes: Trading Strategy Tester در متاتریدر ۵ (حالتهای شبیهسازی تیک، تست forward و بهینهسازی ژنتیک)
- MetaQuotes: متاتریدر ۵ نسخه ۱۳۲۵، روش hedging و تست با تیکهای واقعی
- MetaQuotes: میزبانی مجازی متاتریدر
- مرجع زبان MQL5
- ESMA: محدودیت CFD برای معاملهگران خرد (مارس ۲۰۱۸)