این اکسپرت یک سیستم معاملاتی خودکار بر پایه اندیکاتور Fractal MFI است که بر اساس تقاطع سطوح اشباع خرید (۷۰) و اشباع فروش (۳۰) سیگنالهای ورود و خروج را صادر میکند. ربات در دو حالت قابل تنظیم است: حالت مستقیم (DIRECT) که در آن با شکست سطح اشباع فروش به سمت بالا، پوزیشن خرید باز میشود و با شکست سطح اشباع خرید به سمت پایین، پوزیشن فروش، و حالت معکوس (AGAINST) که عکس این سیگنالها عمل میکند. مدیریت سرمایه به دو روش لات ثابت یا بر اساس درصدی از موجودی حساب انجام میشود و برای هر معامله حد سود و حد ضرر قابل تنظیم به صورت نقطهای تعریف شده است. یکی از ویژگیهای کلیدی این ربات، بسته شدن خودکار پوزیشنهای مخالف در زمان دریافت سیگنال جدید است؛ یعنی با ظهور سیگنال خرید، تمام پوزیشنهای فروش بسته میشوند و بالعکس. سیگنالها در تایمفریم یک ساعته (قابل تنظیم) و در لحظه بسته شدن کندل بررسی میشوند تا از سیگنالهای کاذب جلوگیری شود.
ساختار کلی و اندیکاتور
این اکسپرت از اندیکاتور سفارشی Fractal MFI استفاده میکند که ترکیبی از تحلیل فرکتال و شاخص جریان نقدینگی (Money Flow Index) است. ربات روی تایمفریم یک ساعته (قابل تنظیم) اجرا میشود و در هر کندل جدید، مقادیر اندیکاتور را برای دو کندل آخر (کندل قبلی و کندل فعلی) دریافت میکند. پارامترهای اصلی اندیکاتور شامل عمق میانگینگیری (e_period=30)، سرعت نرمالسازی (normal_speed=30)، نوع قیمت (PRICE_TYPICAL) و نوع حجم (VOLUME_TICK) است که همگی قابل تنظیم توسط کاربر هستند. همچنین سطوح اشباع خرید (HighLevel=70) و اشباع فروش (LowLevel=30) به عنوان نقاط کلیدی برای تصمیمگیری معاملاتی تعریف شدهاند.
مکانیزم تولید سیگنال
سیگنالهای معاملاتی بر اساس تقاطع خط MFI با سطوح از پیش تعریف شده تولید میشوند. در حالت DIRECT (مستقیم)، زمانی که MFI از پایین به بالا سطح اشباع فروش (۳۰) را قطع کند، یک سیگنال خرید صادر میشود و همزمان تمام پوزیشنهای فروش موجود بسته میشوند. برعکس، وقتی MFI از بالا به پایین سطح اشباع خرید (۷۰) را قطع کند، سیگنال فروش فعال شده و پوزیشنهای خرید بسته میشوند. این مکانیزم دوطرفه باعث میشود ربات همواره در جهت روند حرکت کند و از باز بودن همزمان پوزیشنهای متضاد جلوگیری شود. در حالت AGAINST (معکوس)، منطق کاملاً برعکس عمل میکند؛ یعنی در سیگنال خرید، پوزیشن فروش باز میشود و بالعکس.
مدیریت سرمایه و ریسک
مدیریت سرمایه در این اکسپرت از طریق پارامتر MM (سهم منابع مالی از سپرده) و MMMode (روش محاسبه لات) کنترل میشود. کاربر میتواند بین روشهای مختلف مانند لات ثابت، درصدی از مارجین آزاد، درصدی از بالانس، یا مدیریت بر اساس زیانهای قبلی یکی را انتخاب کند. برای هر معامله، حد ضرر (StopLoss_) و حد سود (TakeProfit_) به صورت نقطهای تعریف میشوند که به صورت خودکار بر اساس قیمتهای لحظهای Ask و Bid محاسبه و نرمالایز میگردند. به عنوان مثال، با تنظیم StopLoss_=1000 و TakeProfit_=2000، نسبت ریسک به ریوارد ۱:۲ خواهد بود. همچنین پارامتر Deviation_ حداکثر انحراف مجاز قیمت از زمان صدور سیگنال تا اجرای سفارش را کنترل میکند.
کنترل پوزیشنها و اجرای معاملات
بخش اجرایی ربات از کلاس CTrade برای انجام معاملات استفاده میکند و قبل از باز کردن هر پوزیشن جدید، کل پورتفولیو را برای یافتن پوزیشنهای موجود از همان نوع بررسی میکند تا از باز شدن پوزیشنهای تکراری جلوگیری شود. این بررسی با حلقه زدن روی تمام پوزیشنهای باز و مقایسه نوع (Buy/Sell) و نماد معاملاتی انجام میشود. برای بستن پوزیشنها نیز از روش مشابهی استفاده میشود؛ یعنی هنگام دریافت سیگنال بستن، تمام پوزیشنهای نوع مخالف بسته میشوند، نه فقط یکی از آنها. همچنین ربات دارای قابلیت غیرفعال کردن جداگانه سیگنالهای باز کردن خرید (BuyPosOpen)، باز کردن فروش (SellPosOpen)، بستن خرید (BuyPosClose) و بستن فروش (SellPosClose) است که انعطافپذیری بالایی به کاربر میدهد.

بررسی نتایج تست ربات Exp Fractal MFI
عملکرد کلی و سودآوری
ربات در بازه تست از ۱ ژانویه تا ۱۰ می ۲۰۲۶ (حدود ۴ ماه و ۱۰ روز) روی نماد XAUUSD (طلا) در تایمفریم یک دقیقه با سرمایه اولیه ۱۰۰,۰۰۰ دلار و اهرم ۱:۱۰۰ اجرا شده است. نتیجه نهایی تست، زیان خالص ۱,۷۰۳.۶۶- دلار را نشان میدهد که معادل ۱.۷- درصد از سرمایه اولیه است. در این مدت ۱۴۲ معامله انجام شده که مجموع سود ناخالص ۸,۳۹۸.۹۲ دلار و مجموع زیان ناخالص ۱۰,۱۰۲.۵۸- دلار بوده است. ضریب سود (Profit Factor) برابر با ۰.۸۳ است که نشان میدهد به ازای هر دلار سود، ۱.۲۰ دلار زیان متحمل شده و استراتژی در مجموع زیانده بوده است. بازده مورد انتظار هر معامله (Expected Payoff) نیز ۱۲.۰۰- دلار است.


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


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

تحلیل نسبتها و کیفیت استراتژی
نسبت شارپ (Sharpe Ratio) برابر با ۵.۰۰- است که نشاندهنده بازدهی منفی تعدیلشده با ریسک و عملکرد بسیار ضعیف استراتژی است. ضریب بازیابی (Recovery Factor) نیز ۰.۶۶- میباشد که توانایی استراتژی در جبران زیانها را زیر سوال میبرد. همبستگی بین سود و MFE (حداکثر سود شناور) ۰.۸۱ و همبستگی بین سود و MAE (حداکثر زیان شناور) ۰.۸۴ است که هر دو مقادیر بالایی هستند. مقدار Z-Score برابر با ۰.۷۴- با سطح اطمینان ۵۴.۰۷٪ است که نشان میدهد وابستگی آماری معنیداری بین نتایج معاملات متوالی وجود ندارد و معاملات تقریباً مستقل از یکدیگر هستند. نسبت ریسک به ریوارد ۲:۱ (با تنظیمات ۱۰۰۰ حد ضرر و ۲۰۰۰ حد سود) در تئوری مناسب است اما نرخ پایین موفقیت (۲۹.۵۸٪) باعث شده این مزیت خنثی شود. بهطور کلی، ربات در بازار طلا با این تنظیمات عملکرد قابل قبولی ندارد و نیازمند بهینهسازی پارامترهای اندیکاتور یا تغییر تنظیمات حد سود و ضرر است.
تنظیمات ربات Exp Fractal MFI
تنظیمات مدیریت سرمایه و ریسک (Money Management & Risk Settings)
MM (۰.۱): این پارامتر سهم منابع مالی از سپرده در هر معامله را مشخص میکند. مقدار ۰.۱ به معنای ۱۰٪ از موجودی (بسته به حالت انتخابشده در MMMode) است. اگر حالت لات ثابت انتخاب شود، این عدد مستقیماً به عنوان حجم معامله در نظر گرفته میشود.
MMMode (LOT): روش محاسبه حجم معامله را تعیین میکند. پنج گزینه دارد: FREEMARGIN (درصدی از مارجین آزاد)، BALANCE (درصدی از بالانس حساب)، LOSSFREEMARGIN (مدیریت بر اساس زیان از مارجین آزاد)، LOSSBALANCE (مدیریت بر اساس زیان از بالانس) و LOT (لات ثابت بدون تغییر). حالت پیشفرض LOT است.
StopLoss_ (۱۰۰۰): حد ضرر به صورت نقطهای (Points). مقدار ۱۰۰۰ یعنی ۱۰۰ پیپ در جفتارزهای چهار رقمی یا ۱۰۰۰ پیپ در پنج رقمی. برای غیرفعال کردن حد ضرر میتوان آن را روی صفر تنظیم کرد.

TakeProfit_ (۲۰۰۰): حد سود به صورت نقطهای. با مقدار ۲۰۰۰، فاصله حد سود دو برابر حد ضرر است که نسبت ریسک به ریوارد ۱:۲ را ایجاد میکند.
Deviation_ (۱۰): حداکثر انحراف مجاز قیمت (Slippage) به نقطه. اگر قیمت در لحظه اجرای سفارش بیش از این مقدار تغییر کند، سفارش انجام نمیشود.
تنظیمات مجوزهای معاملاتی (Trading Permissions)
BuyPosOpen (true): اجازه باز کردن پوزیشنهای خرید (Long). با false کردن این پارامتر، ربات فقط پوزیشنهای فروش باز میکند یا فقط پوزیشنهای موجود را مدیریت میکند.
SellPosOpen (true): اجازه باز کردن پوزیشنهای فروش (Short). امکان غیرفعال کردن جداگانه معاملات فروش را فراهم میکند.
BuyPosClose (true): اجازه بستن پوزیشنهای خرید. وقتی سیگنال فروش صادر میشود، اگر این گزینه فعال باشد، پوزیشنهای خرید بسته میشوند.
SellPosClose (true): اجازه بستن پوزیشنهای فروش. با دریافت سیگنال خرید، پوزیشنهای فروش موجود را میبندد. این چهار گزینه انعطاف بالایی برای استراتژیهای مختلف مانند فقط خرید، فقط فروش، یا مدیریت دستی خروج فراهم میکنند.
تنظیمات اندیکاتور Fractal MFI (Indicator Settings)
InpInd_Timeframe (PERIOD_H1): تایمفریم اجرای اندیکاتور. پیشفرض یک ساعته است اما میتواند روی هر تایمفریمی از M1 تا MN1 تنظیم شود. نکته مهم اینکه سیگنالها بر اساس کندلهای این تایمفریم صادر میشوند، حتی اگر نمودار فعلی در تایمفریم دیگری باشد.
Trend (DIRECT): جهت معاملات نسبت به سیگنالها. در حالت DIRECT، ربات همجهت با سیگنال معامله میکند (سیگنال خرید = پوزیشن خرید). در حالت AGAINST، خلاف جهت سیگنال معامله میکند (سیگنال خرید = پوزیشن فروش) که برای استراتژیهای معکوس کاربرد دارد.
e_period (۳۰): عمق میانگینگیری در محاسبات MFI. هرچه بزرگتر باشد، اندیکاتور هموارتر و سیگنالها دیرتر اما مطمئنتر خواهند بود.
normal_speed (۳۰): سرعت نرمالسازی فرکتال. روی حساسیت اندیکاتور به تغییرات قیمت تأثیر میگذارد.
IPC (PRICE_TYPICAL_): نوع قیمت مصرفی در محاسبات. گزینههای متنوعی از Close و Open گرفته تا قیمتهای ترکیبی مانند Typical (میانگین High+Low+Close تقسیم بر ۳) و Weighted (میانگین وزنی) در دسترس است.
VolumeType (VOLUME_TICK): نوع حجم مورد استفاده. VOLUME_TICK از حجم تیک، VOLUME_REAL از حجم واقعی معاملات استفاده میکند. در فارکس معمولاً VOLUME_TICK مناسبتر است.
HighLevel (۷۰) / LowLevel (۳۰): سطوح اشباع خرید و اشباع فروش. مقادیر استاندارد ۷۰ و ۳۰ مانند RSI هستند. کاهش HighLevel یا افزایش LowLevel سیگنالهای بیشتری تولید میکند اما احتمال سیگنال کاذب را بالا میبرد.
SignalBar (۱): شماره کندل برای دریافت سیگنال. مقدار ۱ یعنی سیگنال از کندل قبلی (کندل بستهشده) گرفته میشود. صفر یعنی از کندل فعلی (در حال تشکیل) که ریسک تغییر سیگنال را دارد.






