این اکسپرت ادوایزر (EA) یک سیستم معاملاتی خودکار است که بر اساس تقاطع دو میانگین متحرک ساده (SMA) کار میکند. وقتی میانگین متحرک سریع (دوره ۷۲) میانگین متحرک کند (دوره ۱۵۰) را به سمت بالا قطع کند، موقعیت خرید باز میشود و وقتی آن را به سمت پایین قطع کند، موقعیت فروش باز میشود. سیگنالها فقط یک بار در هر کندل و در زمان باز شدن کندل جدید صادر میشوند تا از تغییر سیگنال در حین شکلگیری کندل جلوگیری شود. این ربات دارای پارامترهای قابل تنظیم برای حجم اولیه، حداکثر حجم، حد سود و حد ضرر به صورت نقطهای است و همچنین مدیریت سرمایه داخلی دارد که قبل از انجام هر معامله، موجودی حساب و محدودیتهای حجم را بررسی میکند.
دریافت سیگنال معاملاتی
ربات در ابتدای هر کندل جدید، مقادیر دو میانگین متحرک ساده را برای کندل فعلی و کندل قبلی محاسبه میکند. میانگین متحرک سریع با دوره ۷۲ و میانگین متحرک کند با دوره ۱۵۰ بر اساس قیمت بسته شدن (Close) رسم میشوند. سیگنال خرید زمانی صادر میشود که در کندل قبلی، میانگین سریع بالای میانگین کند قرار داشته باشد، اما در کندل فعلی به زیر آن نفوذ کند (تقاطع صعودی). برعکس، سیگنال فروش زمانی ایجاد میشود که میانگین سریع از بالای میانگین کند به زیر آن سقوط کند (تقاطع نزولی). این منطق ساده و کلاسیک، اساس تصمیمگیری معاملاتی ربات را تشکیل میدهد.
مدیریت حجم و سرمایه
پس از دریافت سیگنال، ربات ابتدا حجم معامله را با توجه به پارامترهای ورودی مانند “حجم شروع” و “حداکثر حجم” تنظیم میکند. سپس با استفاده از تابع OrderCalcMargin، مارجین مورد نیاز برای باز کردن معامله با آن حجم را محاسبه کرده و با موجودی آزاد حساب (ACCOUNT_FREEMARGIN) مقایسه میکند. اگر سرمایه کافی نباشد، معامله انجام نمیشود و پیام خطا در لاگ ثبت میگردد. همچنین حجم نهایی با توجه به گام حجمی (LOTSTEP) و حداقل و حداکثر مجاز کارگزار نرمالایز میشود تا از رد شدن سفارش جلوگیری شود.
ویدیو آموزش ربات معامله گر YY Cross 2
اجرای سفارش و مدیریت ریسک
ربات قیمتهای لحظهای Ask و Bid را از بازار دریافت کرده و متناسب با نوع سفارش (خرید یا فروش) قیمت مناسب را انتخاب میکند. حد سود (Take Profit) و حد ضرر (Stop Loss) بر اساس فاصله نقطهای تعریفشده در پارامترهای ورودی و نسبت به قیمت ورود محاسبه میشوند. برای مثال، در معامله خرید، حد سود به اندازه 300 پیپ بالاتر از قیمت Ask و حد ضرر روی صفر (در صورت تنظیم) قرار میگیرد. تمامی سفارشها با یک شماره جادویی ثابت (MAGIC=1234) علامتگذاری میشوند تا ربات فقط معاملات خود را مدیریت کند.
ثبت گزارش و عیبیابی
در هر مرحله از فرآیند تصمیمگیری و اجرا، ربات با استفاده از دستور Print پیامهای وضعیت و خطا را در لاگ ترمینال متاتریدر ثبت میکند. این پیامها شامل خطاهای دریافت داده از اندیکاتور (مانند CopyBuffer failed)، خطاهای حاشیه سرمایه ناکافی، و نتیجه نهایی باز شدن پوزیشن (کد بازگشتی و شرح نتیجه) هستند. این رویکرد به معاملهگر امکان میدهد تا عملکرد ربات را زیر نظر گرفته و در صورت بروز مشکل، به سرعت منبع آن را شناسایی کند.

بررسی نتایج بک تست ربات YY Cross 2 Ma
عملکرد کلی و سودآوری
ربات در بازه تست از ۱ ژانویه ۲۰۲۶ تا ۱۰ می ۲۰۲۶ (حدود ۴ ماه و ۱۰ روز) روی جفتارز EURUSD در تایمفریم یک دقیقه (M1) با سرمایه اولیه ۱۰۰,۰۰۰ دلار و اهرم ۱:۱۰۰ اجرا شده است. سود خالص نهایی ۱,۰۸۹ دلار بوده که با توجه به سرمایه اولیه، بازدهی حدود ۱.۰۹ درصد را نشان میدهد. سود ناخالص معاملات ۳,۶۷۲.۳۰ دلار و زیان ناخالص ۲,۵۸۳.۳۰ دلار ثبت شده است. ضریب سود (Profit Factor) برابر با ۱.۴۲ میباشد که نشان میدهد به ازای هر دلار ضرر، ۱.۴۲ دلار سود کسب شده و استراتژی در کل سودآور بوده، هرچند نه با اختلاف چشمگیر.


آمار معاملات و نرخ موفقیت
در طول دوره تست، مجموعاً ۹۶۳ معامله (معادل ۱,۹۲۶ معامله ورود و خروج) انجام شده است. از این تعداد، ۴۸۱ معامله فروش و ۴۸۲ معامله خرید بوده که توزیع تقریباً متقارنی را نشان میدهد. نکته قابل توجه، نرخ بالای موفقیت (Win Rate) معاملات است: ۸۲.۴۵ درصد از کل معاملات سودآور بودهاند (۷۹۴ معامله سودآور در مقابل ۱۶۹ معامله زیانده). نرخ موفقیت در معاملات خرید ۸۴.۶۵ درصد و در معاملات فروش ۸۰.۲۵ درصد بوده است. میانگین سود هر معامله موفق ۴.۶۳ دلار و میانگین زیان هر معامله ناموفق ۱۵.۱۱ دلار است که نسبت متوسط سود به زیان حدود ۰.۳۱ میباشد.


مدیریت ریسک و افت سرمایه
حداکثر افت موجودی (Balance Drawdown Maximal) معادل ۲,۵۱۷.۴۷ دلار (۲.۴۳ درصد) و حداکثر افت سرمایه شناور (Equity Drawdown Maximal) برابر با ۲,۶۷۷.۴۶ دلار (۲.۶۷ درصد) بوده است. این اعداد نشان میدهند که ریسک کلی استراتژی بسیار پایین و قابل قبول است. با این حال، بزرگترین زیان منفرد ۳۳.۸۷- دلار ثبت شده که حدود ۷.۳ برابر بزرگترین سود منفرد (۶.۷۴ دلار) است. همچنین توالیهای طولانی از معاملات برنده (حداکثر ۶۴۱ معامله متوالی با ۳,۰۱۸.۸۸ دلار سود) و بازنده (حداکثر ۱۱۶ معامله متوالی با ۲,۲۲۳.۴۳- دلار زیان) مشاهده میشود که نشاندهنده نوسانات دورهای در عملکرد استراتژی است.

تحلیل نسبتها و کیفیت استراتژی
نسبت شارپ (Sharpe Ratio) برابر با ۰.۵۳ است که بازدهی تعدیلشده با ریسک متوسط را نشان میدهد. ضریب بازیابی (Recovery Factor) ۰.۴۱ و بازدهی مورد انتظار هر معامله (Expected Payoff) ۱.۱۳ دلار است. مقدار Z-Score برابر با ۲۷.۳۴- با سطح اطمینان ۹۹.۷۴ درصد، وابستگی قوی و معنیدار آماری بین نتایج معاملات متوالی را تأیید میکند. میانگین زمان نگهداری هر معامله حدود ۲۴۲ ساعت (حدود ۱۰ روز) بوده که نشاندهنده استراتژی نسبتاً بلندمدت در تایمفریم یک دقیقه است. بهطور کلی، ربات عملکرد محتاطانه و قابل قبولی با ریسک کنترلشده داشته اما نسبت ریسک به ریوارد (میانگین زیان ۱۵.۱۱ در برابر میانگین سود ۴.۶۳) نیازمند بهبود است.
تنظیمات ربات YY Cross 2 Ma
پارامترهای اصلی معاملات
تنظیمات پایه معاملاتی شامل سه پارامتر کلیدی است. lotStart حجم اولیه هر معامله را مشخص میکند که به طور پیشفرض ۰.۰۱ لات است و میتواند برای مدیریت سرمایه و تطبیق با استراتژیهای مختلف افزایش یا کاهش یابد. lotMax سقف مجاز حجم معاملات را تعیین میکند (پیشفرض ۰.۱ لات) و از باز شدن معاملات با حجمهای بسیار بزرگ که ممکن است ریسک حساب را بالا ببرد، جلوگیری میکند. پارامتر commnt نیز یک برچسب متنی است که روی هر سفارش ثبت میشود و به شناسایی معاملات ربات در تاریخچه حساب کمک میکند.

تنظیمات حد سود و ضرر
مدیریت ریسک از طریق دو پارامتر ext_profit_ptk و ext_sl_ptk انجام میشود. حد سود (ext_profit_ptk) فاصله قیمتی از نقطه ورود تا سطح بسته شدن سودآور معامله را بر حسب پیپ (Point) مشخص میکند که مقدار پیشفرض آن ۳۰۰ پیپ است. حد ضرر (ext_sl_ptk) نیز فاصله مجاز ضرر را تعریف میکند اما به طور پیشفرض روی صفر تنظیم شده، یعنی غیرفعال است. اگر معاملهگر مقداری برای آن تعیین کند، ربات به صورت خودکار حد ضرر را در فاصله مشخصشده از قیمت ورود (در جهت مخالف) قرار میدهد.
پارامترهای میانگینهای متحرک
هسته تصمیمگیری ربات بر پایه دو میانگین متحرک ساده (SMA) بنا شده که تنظیمات آنها کاملاً قابل شخصیسازی است. fast_ma_period دوره میانگین سریع را با پیشفرض ۷۲ کندل مشخص میکند که واکنش سریعتری به تغییرات قیمت دارد. slow_ma_period با دوره ۱۵۰ کندل، روند کلی و بلندمدت بازار را نشان میدهد. پارامتر ma_applied_price نوع قیمت ورودی برای محاسبه میانگینها را تعیین میکند که به طور پیشفرض روی قیمت بسته شدن (PRICE_CLOSE) تنظیم شده است، اما میتوان آن را به مقادیری مانند قیمت باز شدن، حداکثر، حداقل یا قیمت معمولی تغییر داد. ma_shift نیز امکان جابجایی افقی میانگینها را به جلو یا عقب در محور زمان فراهم میکند که پیشفرض آن صفر است.





