یک استراتژی روی کاغذ عالی به نظر میرسد، ولی وقتی پای اجرا وسط میآید نتیجه فرق میکند: یک روز حد ضرر را جابهجا میکنید، روز دیگر معاملهای را از دست میدهید چون خواب بودهاید، و آخر ماه معلوم نیست چه چیزی را دارید ارزیابی میکنید. معاملات الگوریتمی پاسخی به همین مشکل است: قوانین معامله را به کد تبدیل میکنید و اجرای آنها را به کامپیوتر میسپارید تا هر بار دقیقاً همان کاری انجام شود که نوشتهاید. این درس سطح پیشرفته نشان میدهد یک سیستم خودکار از چه اجزایی ساخته میشود، چرا اغلب رباتها در بکتست درخشان و در حساب واقعی زیانده هستند، و کدام آزمونها پیش از اجرای زنده حتماً باید انجام شوند. با اسمارت اف ایکس همراه باشید.
معاملات الگوریتمی چیست؟
معاملات الگوریتمی یعنی سپردن تصمیمهای از پیش تعریفشدهی معاملاتی به یک برنامهی کامپیوتری که بازار را میخواند، شرطها را میسنجد و در صورت برقرار بودنشان سفارش را ارسال میکند.
در فارکس، این برنامه معمولاً به شکل یک اکسپرت ادوایزر (Expert Advisor) روی متاتریدر اجرا میشود؛ اکسپرت ادوایزر یعنی همان اسکریپتی که به پلتفرم وصل است و اجازهی باز و بسته کردن معامله دارد. در بازارهای دیگر همین نقش را یک برنامهی پایتون یا یک موتور اجرای اختصاصی بازی میکند.
مهم است که انتظار درستی از این کار داشته باشید. معاملات الگوریتمی اجرای بیعیب و انضباط کامل را تضمین میکند و کیفیت خود استراتژی همچنان کار شماست. یک ایدهی زیانده وقتی خودکار شود، فقط سریعتر و منظمتر زیان میدهد.
اجزای یک سیستم معاملاتی خودکار

هر سیستم خودکار، فارغ از پیچیدگیاش، از شش قطعه ساخته میشود و ضعف هر قطعه کل زنجیره را خراب میکند.
- فرضیه. یک رفتار تکرارشوندهی بازار که میتوانید علتش را توضیح دهید، مثل ادامهی حرکت پس از شکست دامنهی نوسان جلسهی آسیا.
- قوانین بدون ابهام. شرط ورود، شرط خروج، محل حد ضرر، اندازهی حجم و فیلترهای زمانی، همه به زبان عدد.
- کد. ترجمهی همان قوانین به زبان پلتفرم، معمولاً MQL5 برای متاتریدر یا Python برای موتورهای دیگر.
- داده. تاریخچهی قیمت با کیفیت قابل اتکا، ترجیحاً دادهی تیک واقعی همان بروکری که قرار است معامله در آن انجام شود.
- آزمون. بکتست واقعگرا، آزمون روی دادهی دیدهنشده و اجرای آزمایشی روی حساب دمو.
- زیرساخت و پایش. جایی که کد بدون قطعی اجرا شود و کسی مدام رفتارش را با انتظار مقایسه کند.
بیشتر شکستها در معاملات الگوریتمی از قطعهی پنجم و ششم میآیند، چون همه انرژیشان را روی قطعهی سوم میگذارند.
تفاوت معاملات الگوریتمی با معاملهی دستی

هر دو روش نقاط قوت خودشان را دارند و انتخاب میانشان به شخصیت و نوع استراتژی بستگی دارد.
قوت اصلی حالت خودکار در سه چیز است: پایبندی صد درصدی به قوانین، سرعت واکنش در حد کسری از ثانیه، و توانایی پایش همزمان دهها نماد. انسان در هر سه ضعیف است، بهخصوص وقتی چند معاملهی زیانده پشت سر هم خورده باشد.
قوت معاملهگر انسانی جای دیگری است: تشخیص شرایطی که در قوانین پیشبینی نشده. وقتی بازار وارد وضعیتی میشود که هیچوقت در تاریخچه نبوده، ربات همان قوانین قدیمی را اجرا میکند و انسان میتواند دست نگه دارد. سنجش این تغییر وضعیت در درس رژیم بازار بررسی شده است.
انواع استراتژی در معاملات الگوریتمی
هر استراتژیای که به معاملات الگوریتمی سپرده میشود، در یکی از این خانوادهها جا میگیرد و شناختن خانواده کمک میکند بدانید چه انتظاری از منحنی سرمایهاش داشته باشید.
روندی. در جهت حرکت غالب وارد میشود و ضررهای کوچک و پرتعداد را با چند سود بزرگ جبران میکند. نرخ برد پایین و دورههای درجازدن طولانی، بخشی از طبیعت این خانواده است.
بازگشت به میانگین. فرض میکند قیمت پس از دور شدن بیش از حد از میانگین، به آن برمیگردد. نرخ برد بالا دارد و ریسکش در معاملههای اندکی است که برنمیگردند.
شکست دامنه. روی خروج قیمت از محدودهای مشخص مثل بازهی جلسهی آسیا کار میکند و بیشترین حساسیت را به شکست جعلی و اسپرد لحظهی شکست دارد.
آماری و آربیتراژ. از رابطهی میان دو ابزار همبسته سود میگیرد. نیازمند دادهی تمیز و هزینهی معاملهی بسیار پایین است و درس همبستگی جفت ارزها پایهی آن را توضیح میدهد.
یک خانواده هم هست که بهتر است از آن دور بمانید: سیستمهای مبتنی بر افزایش حجم پس از ضرر، مثل مارتینگل و گرید. منحنی سرمایهشان ماهها بینقص بالا میرود و در یک روز کل حساب را از بین میبرد.
از ایده تا کد: قانون بدون ابهام
سختترین بخش معاملات الگوریتمی، رسیدن به قوانینی است که هیچ نقطهی تفسیر باقی نگذارند. کدنویسی در مقایسه با آن کار سادهای است.
جملهی «وقتی روند صعودی است و قیمت به حمایت مهمی واکنش نشان داد وارد میشوم» برای انسان کافی است و برای کامپیوتر بیمعنا. باید به این شکل درآید: «اگر بسته شدن کندل چهار ساعته بالای میانگین متحرک ۲۰۰ باشد و قیمت به سطحی برسد که در ۲۰ روز گذشته دستکم دو بار به آن واکنش نشان داده، با فاصلهی حد ضرر معادل ۱٫۵ برابر ATR وارد شو.»
در همین مرحله سه چیز را از قبل تعیین کنید: اندازهی حجم بر اساس درصد ثابتی از سرمایه و فاصلهی حد ضرر، سقف تعداد معاملهی همزمان، و شرط توقف کامل مثل رسیدن افت سرمایه به حد معین. روش محاسبهی حجم در درس مدیریت ریسک و حد ضرر آمده است.
بکتست واقعگرا چه شکلی است؟
بکتست یعنی اجرای قوانین روی تاریخچهی قیمت برای دیدن نتیجهی فرضی. ارزش این کار کاملاً به واقعگرایی تنظیماتش بستگی دارد.
یک بکتست قابل اتکا در معاملات الگوریتمی این ویژگیها را دارد: دادهی تیک واقعی بهجای دادهی تقریبی، اسپرد شناور بهجای اسپرد ثابت، کمیسیون و سوآپ اعمالشده روی هر معامله، و مقداری لغزش قیمت روی ورود و خروج. دورهی آزمون هم باید شرایط متنوع بازار را در بر بگیرد، از سالهای پرنوسان تا سالهای آرام.
یک معیار عملی هم اضافه کنید: تعداد معامله. سیستمی که در کل تاریخچه ۴۰ معامله گرفته، هر عددی که تولید کند در محدودهی شانس است. زیر صد معامله، نتیجه را جدی نگیرید. مبانی سنجش برتری معاملاتی و امید ریاضی در درس بکتست و اج معاملاتی توضیح داده شده است.
بهینهسازی بیش از حد، خطر شمارهی یک

بهینهسازی بیش از حد یا اورفیتینگ یعنی تنظیم پارامترها تا جایی که سیستم نوسانهای تصادفی گذشته را حفظ کند. آن نوسانها دیگر تکرار نمیشوند، پس چیزی برای معامله کردن باقی نمیماند.
ریشهی مشکل ساده است: وقتی هزاران ترکیب پارامتر را روی یک دورهی مشخص امتحان کنید، حتماً ترکیبی پیدا میشود که فوقالعاده به نظر برسد، حتی اگر داده کاملاً تصادفی باشد. پژوهشهای حوزهی مالی نشان دادهاند با آزمودن چند ده ترکیب مستقل روی چند سال داده، رسیدن به نسبت شارپ حدود ۱ عملاً حتمی است، بدون اینکه هیچ برتری واقعی وجود داشته باشد.
نشانههای هشدار را حفظ کنید: نرخ برد بالای ۹۰ درصد، ضریب سود بالای ۴، منحنی سرمایهای که تقریباً افت ندارد، و حساسیت شدید به تغییر کوچک پارامترها. اگر تغییر دورهی یک اندیکاتور از ۲۰ به ۲۲ نتیجه را نابود میکند، آن عدد ۲۰ چیزی جز حفظ کردن گذشته نیست.
راه پیشگیری هم شناختهشده است: تعداد پارامترهای قابل تنظیم را کم نگه دارید و بهجای بهترین نقطه، ناحیهای را انتخاب کنید که همسایههایش هم نتیجهی قابل قبول میدهند. یک قلهی تیز روی نمودار بهینهسازی، تقریباً همیشه تصادفی است.
آزمون رو به جلو و اعتبارسنجی

آزمون رو به جلو (Walk Forward) روشی است که در آن تاریخچه به چند بخش پشت سر هم تقسیم میشود: روی هر بخش بهینهسازی انجام میشود و نتیجه روی بخش بعدی که سیستم هرگز ندیده سنجیده میشود، بعد پنجره یک قدم جلو میرود و همین کار تکرار میشود.
ارزش این روش در تکرار است. یک تقسیم سادهی داده به دو نیمه ممکن است شانسی خوب از آب دربیاید، ولی سیستمی که در پنج پنجرهی متوالی روی دادهی دیدهنشده مثبت میماند، احتمال بیشتری دارد که برتری واقعی داشته باشد.
دو آزمون مکمل هم ارزش وقت گذاشتن دارند. آزمون مونت کارلو ترتیب معاملهها را هزاران بار به هم میریزد تا ببینید بدترین توالی ضررها چه افت سرمایهای میسازد. آزمون حساسیت هزینهها را دو برابر میکند؛ اگر سیستم با اسپرد و کمیسیون دو برابر هنوز مثبت است، حاشیهی امن دارد.
هزینههای اجرا و لغزش قیمت

در معاملات الگوریتمی، فاصلهی میان نتیجهی بکتست و نتیجهی حساب واقعی تقریباً همیشه از هزینههای اجرا میآید.
اسپرد شناور. در ساعتهای آرام اسپرد کم است و در لحظهی انتشار دادههای اقتصادی چند برابر میشود. سیستمی که در همان لحظهها معامله میگیرد، در بکتست با اسپرد ثابت نتیجهی گمراهکننده میدهد.
لغزش قیمت. فاصلهی میان قیمت درخواستی و قیمتی که سفارش واقعاً در آن پر میشود. برای یک سیستم روزانه ناچیز است و برای یک سیستم پرتکرار میتواند کل سود را ببلعد.
کمیسیون و سوآپ. هزینهای که با تعداد معامله رشد میکند و در معاملههای چندروزه به بهرهی شبانه هم اضافه میشود.
نوع بروکر هم مستقیماً روی این اعداد اثر میگذارد. مدل اجرا، عمق نقدینگی و سیاست بروکر دربارهی سفارشهای خودکار در درس مدل اجرای بروکر مقایسه شده است.
زیرساخت اجرا: سرور، تاخیر و قطعی
در معاملات الگوریتمی، ربات فقط وقتی معامله میکند که روشن باشد، و همین جملهی ساده منشا بخشی از زیانهای واقعی است.
اجرای دائمی روی کامپیوتر شخصی بهروزرسانی ویندوز، قطع اینترنت و خاموشی برق را وارد استراتژی میکند. راهحل رایج، سرور مجازی (VPS) نزدیک به سرور بروکر است تا هم اجرا قطع نشود و هم زمان رفتوبرگشت سفارش کوتاه بماند.
چند نکتهی عملی که معمولاً دیر فهمیده میشوند: تفاوت ساعت سرور بروکر با ساعت محلی، رفتار سیستم در پایان هفته و شکاف قیمتی روز دوشنبه، تغییر نام نمادها میان بروکرها، و رفتار کد هنگام قطع و وصل شدن اتصال در میانهی یک معامله. هر کدام از اینها باید در همان کد پیشبینی شده باشد.
مدیریت ریسک در معاملات الگوریتمی
در معاملات الگوریتمی، ریسک باید داخل خود سیستم نوشته شود، چون کسی نیست که در لحظه جلوی آن را بگیرد.
سه لایهی محافظ را همیشه اضافه کنید. لایهی معامله: حد ضرر روی هر پوزیشن و حجم محاسبهشده از درصد ریسک. لایهی روزانه: سقف زیان روزانه که با رسیدن به آن، سیستم تا روز بعد معامله نمیگیرد. لایهی حساب: سقف افت سرمایهی کل که با عبور از آن، ربات بهطور کامل متوقف میشود.
یک کلید توقف دستی هم لازم است، بهعلاوهی یک هشدار ساده که هر باز و بسته شدن معامله را به تلگرام یا ایمیل شما بفرستد. مدیریت اهرم و سطح مارجین در معاملههای خودکار هم همان قواعد درس مارجین کال و استاپ اوت را دارد، با این تفاوت که سرعت رسیدن به آن سطح بیشتر است.
قوانین بروکرها و پراپ فرمها دربارهی معاملات الگوریتمی
پیش از اجرای هر سیستم خودکار روی حساب واقعی یا حساب پراپ، قوانین آن مجموعه را بخوانید. اختلاف میانشان زیاد است.
بیشتر شرکتهای پراپ اجرای اکسپرت ادوایزر را مجاز میدانند و در همان حال دستهای از روشها را ممنوع کردهاند: آربیتراژ تاخیری، سوءاستفاده از خطای فید قیمت، اسکالپ فوقسریع روی تیک، و کپی کردن معامله میان چند حساب. مارتینگل و افزایش حجم پس از ضرر هم در بسیاری از این شرکتها ممنوع است.
جریمهی این موارد معمولاً ابطال حساب و لغو سود است، حتی وقتی سود واقعی ساخته شده باشد. شرایط چالش و قواعد سقف ضرر در درس پراپ تریدینگ بررسی شده است.
چکلیست پیش از اجرای زنده
هفت پرسش که هر سیستم مبتنی بر معاملات الگوریتمی باید از آنها عبور کند، و پاسخ منفی به هرکدام یعنی هنوز وقت اجرای واقعی نرسیده است:
- آیا فرضیهی پشت سیستم را میتوانید در یک جمله توضیح دهید؟
- تعداد پارامترهای قابل تنظیم کمتر از پنج مانده است؟
- بکتست با اسپرد شناور، کمیسیون، سوآپ و لغزش قیمت گرفته شده؟
- سیستم در آزمون رو به جلو، در بیشتر پنجرهها مثبت مانده؟
- با دو برابر شدن هزینهها هنوز سودده است؟
- سقف زیان روزانه و سقف افت سرمایهی کل داخل کد نوشته شدهاند؟
- دستکم یک ماه روی حساب آزمایشی و با همان زیرساخت نهایی اجرا شده؟
پس از شروع اجرای واقعی هم با کوچکترین حجم ممکن آغاز کنید و رفتار زنده را با بکتست مقایسه کنید. مقایسه فقط روی سود و زیان انجام نمیشود؛ تعداد معامله در هفته، میانگین مدت نگهداری و اندازهی بزرگترین ضرر باید شبیه دورهی آزمون بمانند. تفاوت آشکار در این اعداد یعنی جایی میان کد، داده و اجرا مشکلی هست.
نکات کلیدی این درس
- معاملات الگوریتمی یعنی تبدیل قوانین معامله به کد و سپردن اجرا به کامپیوتر.
- این کار انضباط را تضمین میکند و ساختن برتری معاملاتی همچنان کار معاملهگر است.
- سختترین بخش، نوشتن قوانین بدون ابهام است.
- بکتست بدون اسپرد شناور، کمیسیون و لغزش قیمت، عدد گمراهکننده میدهد.
- بهینهسازی بیش از حد بزرگترین خطر است و نشانهاش نتیجهی بینقص روی گذشته است.
- معتبرترین آزمون، آزمون رو به جلو روی چند پنجرهی متوالی است.
- ریسک باید در سه لایه داخل خود کد نوشته شود: معامله، روز و کل حساب.
اسمارت اف ایکس؛ مرجع مقایسه و انتخاب بهترین خدمات مالی
اسمارت اف ایکس همراه هوشمند شما در مسیر معاملهگری است؛ ما ابزار، دانش و تحلیلهای پیشرفته را در اختیار شما میگذاریم تا با اطمینان و هوشمندی، تصمیمات سرمایهگذاری بهتر و بهروزتری بگیرید.
برخی از مزایای همکاری با اسمارت اف ایکس شامل موارد زیر است:
- بررسی بیطرفانه: بروکرها و بسترهای معاملاتی را بر اساس واقعیتها و بدون جانبداری بررسی میکنیم تا انتخاب آگاهانهای داشته باشید.
- رشد سواد مالی: محتوای آموزشی و تحلیلی جامع تهیه میکنیم تا مهارتهای لازم برای فعالیت موفق در بازارهای مالی را کسب کنید.
- تهیه مقالات جدید: با تمرکز بر دانش روز، مقالات آموزشی و تحلیلی بهروز منتشر میکنیم.
- پایبندی به اصل شفافیت: نظرات و بازخوردهای کاربران را بدون حذف یا ویرایش منتشر میکنیم.
💬 اگر سوالی دارید یا نیاز به راهنمایی دارید، میتوانید از راههای ارتباطی زیر با ما در تماس باشید:
- تلگرام پشتیبانی: smartfxsupport
- ایمیل پشتیبانی: support@smartfxac.com
جمعبندی
معاملات الگوریتمی مسیر کوتاهی به سود نیست؛ روشی برای اجرای دقیق چیزی است که از قبل ارزش اجرا کردن داشته باشد. کل تفاوت میان رباتی که چند سال کار میکند و رباتی که چند هفته دوام میآورد، در سه چیز خلاصه میشود: قوانین ساده با پارامتر کم، آزمونی که هزینههای واقعی را در خودش دارد، و لایههای ریسکی که داخل کد نوشته شدهاند. برای شروع، سادهترین استراتژی دستی خودتان را بردارید و آن را روی کاغذ به شرط و عدد تبدیل کنید. اگر همین کار سخت شد، هنوز به مرحلهی کدنویسی نرسیدهاید و همینجا یکی از مفیدترین بازخوردهای معاملاتی را گرفتهاید.
سوالات متداول درباره معاملات الگوریتمی
۵ سوالبرای معاملات الگوریتمی حتماً باید برنامهنویسی بلد باشم؟
برای ساخت سیستم اختصاصی بله، دانستن MQL5 یا Python لازم است. سازندههای گرافیکی استراتژی هم وجود دارند که بدون کدنویسی کار میکنند، ولی در آنها هم باید بتوانید قوانین را کاملاً دقیق تعریف کنید.
حداقل سرمایه برای شروع معاملات الگوریتمی چقدر است؟
به اندازهی حد ضرر استراتژی و حداقل حجم قابل معامله بستگی دارد. قاعدهی عملی این است که سرمایه باید اجازه دهد ریسک هر معامله زیر یک درصد بماند و همزمان حجم محاسبهشده از حداقل حجم مجاز بروکر کمتر نشود.
رباتهای آمادهای که در اینترنت فروخته میشوند ارزش خرید دارند؟
اغلبشان روی دادهی گذشته بهینه شدهاند و نتیجهی نمایشدادهشدهشان قابل تکرار نیست. اگر سراغشان میروید، سابقهی حساب واقعی چندساله، تعداد معاملهی بالا و امکان بکتست مستقل با تنظیمات خودتان را شرط بگذارید.
آیا هوش مصنوعی جای معاملات الگوریتمی کلاسیک را میگیرد؟
مدلهای یادگیری ماشین بخشی از این حوزه شدهاند، ولی مشکل اصلی همان بهینهسازی بیش از حد است و در مدلهای پیچیده شدیدتر هم میشود. هرچه مدل انعطافپذیرتر باشد، آسانتر نویز گذشته را حفظ میکند و اعتبارسنجی سختگیرانهتری لازم دارد.
چند وقت یک بار باید پارامترها را دوباره بهینه کنم؟
هر چه کمتر بهتر. بهینهسازی مکرر خودش شکلی از تطبیق با نویز است. اگر سیستم به بهینهسازی ماهانه نیاز دارد، مشکل در طراحی آن است و بهتر است دورهی بازبینی را طولانی و قواعد آن را از پیش مشخص کنید.

