این ربات یک اکسپرت مستقل (EA) برای متاتریدر 5 است که با استفاده از سیگنالهای اندیکاتورهای CCI و RSI در تایمفریمهای قابل تنظیم، معاملات اولیه خرید و فروش را باز کرده و در صورت حرکت قیمت در خلاف جهت، با یک سیستم شبکهای (Grid) با ضریب لات متغیر و گام ثابت، پوزیشنهای جدیدی اضافه میکند تا در نهایت با رسیدن سود کل به حد مشخص (بهصورت پولی) یا با تأیید روند میانگین متحرک (MA)، کل شبکه معاملاتی را ببندد.
شرایط ورود اولیه
فعالیت ربات تنها در زمان تشکیل یک کندل جدید (New Bar) در تایمفریم جاری چارت آغاز میشود. برای ورود به معامله، ربات از دو اندیکاتور CCI و RSI در تایمفریمهای مجزا و قابل تنظیم استفاده میکند. یک سیگنال خرید زمانی صادر میشود که مقدار CCI از سطح منفی تنظیمشده (پیشفرض ۱۰۰-) پایینتر رفته و همزمان RSI نیز از سطح اشباع فروش (پیشفرض ۳۰) کمتر باشد. به همین ترتیب، سیگنال فروش نیز با عبور CCI از سطح مثبت (۱۰۰+) و قرارگیری RSI در ناحیه اشباع خرید (۷۰) فعال میشود. در صورت وجود این سیگنالها و نبود هیچ پوزیشن بازی از همان نوع، یک معامله اولیه با لات اولیه (start_lot) باز میشود.
مکانیزم شبکهسازی (Grid)
پس از ورود به اولین معامله، ربات یک سیستم شبکهای (Martingale) را فعال میکند. اگر قیمت به اندازه “گام” (range) تعیینشده بر حسب پوینت خلاف جهت پوزیشن اولیه حرکت کند، یک پوزیشن جدید با حجمی برابر با حداکثر لات موجود در آن گروه ضربدر یک ضریب (multiplier) باز میشود. همچنین، یک شرط متقارنسازی شبکه وجود دارد: اگر تعداد پوزیشنهای خرید و فروش برابر شود، فارغ از فاصله قیمتی، یک پوزیشن جدید در آن جهت باز میشود. قابل ذکر است که اگر متغیر “سیگنال” (signal) روی true تنظیم شده باشد، شرط شبکهسازی صرفاً بر اساس فاصله قیمتی عمل میکند و نیاز به سیگنال مجدد از اندیکاتورها را نادیده میگیرد.
ویدیو جامع آموزش ربات معامله گر KSU martin بر پایه Grid Trading
شرایط بستن معاملات
ربات سه استراتژی مجزا برای خروج دارد که با پارامترهای close_buy، close_sell و close_all کنترل میشوند. در هر سه حالت، شرط لازم برای اقدام به بستن، رسیدن سود خالص آن گروه از معاملات (یا کل معاملات) به مقدار تعیینشده در tp_in_money (بر حسب واحد پولی حساب) است. در صورت برقراری این شرط، ربات برای تأیید نهایی به اندیکاتور میانگین متحرک (MA) مراجعه میکند. برای بستن پوزیشنهای خرید، باید سه کندل متوالی نزولی در MA دیده شود و برای بستن فروشها، سه کندل صعودی. اگر فیلتر MA غیرفعال شود (use_ma=false)، ربات بلافاصله پس از رسیدن به سود هدف، معاملات را میبندد.
مدیریت ریسک و پنل اطلاعاتی
مدیریت ریسک در این ربات بر عهده کاربر است و از طریق تنظیم فاصله شبکه، لات اولیه و ضریب افزایش حجم انجام میشود. ربات کلیه پوزیشنهای خود را با کامنتهای مشخص (“Buy”, “Sell”, “Buy set”, “Sell set”) باز کرده و تنها همانها را مدیریت میکند. همچنین، اگر پارامتر info فعال باشد، یک پنل اطلاعاتی ساده در گوشه پایین سمت راست چارت نمایش داده میشود که به صورت لحظهای مجموع سود یا زیان شناور (با احتساب سوآپ)، تعداد پوزیشنهای خرید و فروش باز و تعداد کل پوزیشنها را با کد رنگی (سبز برای سود و قرمز برای زیان) نشان میدهد.

بررسی نتایج بک تست ربات معامله گر KSU martin
بکتست این ربات در مجموع مثبت و سودده است. طبق گزارش، Total Net Profit = 17,770.73 بوده و Profit Factor = 1.66 ثبت شده است؛ یعنی بهطور کلی سودها از زیانها بیشتر بودهاند و استراتژی یک مزیت معاملاتی اولیه دارد. همچنین تعداد کل معاملات 1,761 بوده که برای ارزیابی آماری، نمونهای نسبتاً قابلقبول محسوب میشود.


منبع: ReportTester-140463.html، بخش خلاصه نتایج بکتست.
از نظر نرخ موفقیت نیز عملکرد ربات بد نیست. در گزارش آمده 1,091 معامله سودده در برابر 670 معامله زیانده داشته که معادل 61.95% برد و 38.05% باخت است. همچنین معاملات فروش (Short) با 60.47% و معاملات خرید (Long) با 63.10% برد ثبت شدهاند. این موضوع نشان میدهد ربات در هر دو سمت بازار توانسته سودآور باشد، و فقط به یک جهت خاص وابسته نیست.
منبع: ReportTester-140463.html، بخش تعداد معاملات و آمار برد/باخت.


با این حال، ریسک افت سرمایه همچنان قابل توجه است. Balance Drawdown Maximal = 3,408.33 (3.23%) و Equity Drawdown Maximal = 7,466.55 (7.35%) گزارش شده است. تفاوت محسوس بین دراودان بالانس و اکوئیتی نشان میدهد که در برخی مقاطع، معاملات باز باعث فشار روی سرمایه شناور شدهاند و ریسک واقعی حساب از چیزی که در بالانس دیده میشود بیشتر بوده است. البته این سطح دراودان، نسبت به سود خالص، هنوز قابلقبول و کنترلشده به نظر میرسد.

در جمعبندی، این بکتست نسبتاً امیدوارکننده است: ربات سودده، با وینریت بالای 60% و Profit Factor بالاتر از 1 است و در عین حال افت سرمایه آن هنوز در محدودهای نسبتاً مدیریتپذیر قرار دارد. با این وجود، چون اکوئیتی دراودان از بالانس دراودان بیشتر است، بهتر است روی مدیریت معاملات باز، حدضرر، و کنترل ریسک کار شود تا پایداری استراتژی در بازار واقعی بهتر شود. اگر بخواهی، میتوانم در مرحله بعد کیفیت ماهانه، نمودار equity curve، یا توزیع معاملات بر اساس ساعات و روزها را هم از همین فایل بررسی کنم.
تنظیمات ربات KSU martin
در اینجا توضیح کامل تمام پارامترهای ورودی (تنظیمات) این ربات ارائه شده است:
تنظیمات اصلی معاملات
start_order (شروع معامله / بستن شبکه):این پارامتر مانند یک کلید روشن/خاموش اصلی برای ربات عمل میکند. وقتی true باشد، ربات اجازه باز کردن معاملات جدید و بستن آنها را دارد. اگر در حین فعالیت آن را روی false قرار دهید، ربات دیگر پوزیشن جدیدی باز نمیکند، اما همچنان به مدیریت و بستن معاملات موجود ادامه میدهد.
start_lot (لات اولیه):حجم اولین معاملهای که پس از دریافت سیگنال باز میشود. مقدار پیشفرض 0.1 است و متناسب با اندازه حساب و میزان ریسک باید تنظیم شود.
tp_in_money (حد سود به پول):هدف سوددهی بر حسب واحد پولی حساب (مثلاً دلار یا یورو) تعیین میشود، نه بر حسب پیپ. برای مثال، مقدار 5.0 یعنی وقتی سود خالص معاملات به ۵ واحد پولی رسید، شرایط بستن فراهم میشود.

multiplier (ضریب لات): مشخص میکند حجم هر پوزیشن جدید در شبکه چند برابر بزرگترین پوزیشن قبلی باشد. مقدار 1.5 یعنی هر پوزیشن جدید ۱.۵ برابر بزرگترین لات موجود باز خواهد شد. این پارامتر اصلی کنترل ریسک در سیستم مارتینگل است.
تنظیمات سیگنال و شبکه
signal (نوع شبکه: با سیگنال / بدون سیگنال): نحوه فعال شدن شبکه را تعیین میکند. اگر true باشد، شبکه همیشه فعال است و با رسیدن قیمت به فاصله تعیینشده، بدون نیاز به تأیید مجدد اندیکاتورها، پوزیشن جدید باز میشود. اگر false باشد، برای باز شدن هر پوزیشن جدید در شبکه، باید مجدداً شرایط سیگنالهای CCI و RSI برقرار باشد.
range (گام شبکه به پوینت): فاصله قیمتی بین سطوح شبکه را بر حسب پوینت مشخص میکند. با مقدار 10، اگر قیمت به اندازه ۱۰ پوینت (در بروکرهای ۴ رقمی معادل ۱۰ پیپ و در بروکرهای ۵ رقمی معادل ۱ پیپ) علیه پوزیشن حرکت کند، یک معامله جدید در شبکه باز میشود.
تنظیمات بستن معاملات
close_all (بستن همه معاملات): اگر true باشد، ربات کل شبکه معاملاتی (اعم از خرید و فروش) را زمانی که مجموع سود آنها به tp_in_money برسد و جهت بسته شدن توسط MA تأیید شود، یکجا میبندد.
close_buy (بستن معاملات خرید): اگر true باشد، فقط پوزیشنهای خرید زمانی که سودشان به tp_in_money برسد و میانگین متحرک شرایط نزولی را تأیید کند، بسته میشوند.
close_sell (بستن معاملات فروش): اگر true باشد، فقط پوزیشنهای فروش زمانی که سودشان به tp_in_money برسد و میانگین متحرک شرایط صعودی را تأیید کند، بسته میشوند.
تنظیمات نمایشی
info (نمایش پنل اطلاعاتی): با فعال کردن این گزینه (true)، یک پنل کوچک در گوشه پایین سمت راست چارت ظاهر میشود که به صورت زنده سود/زیان کل، تعداد پوزیشنهای خرید و فروش، و مجموع کل پوزیشنها را با رنگ سبز (سود) یا قرمز (زیان) نمایش میدهد.
تنظیمات اندیکاتور CCI
cci_timeframe (تایمفریم CCI): تایمفریم محاسبه اندیکاتور CCI را مشخص میکند (پیشفرض: M1). میتواند مستقل از تایمفریم چارت باشد.
cci_period (دوره CCI): تعداد کندلهای استفاده شده در محاسبه CCI (پیشفرض: 14).
cci_price (نوع قیمت CCI): قیمت مورد استفاده در محاسبه CCI مانند قیمت بسته شدن (PRICE_CLOSE) یا سایر موارد.
cci_level (سطح آستانه CCI): سطحی که شکست آن سیگنال ورود را صادر میکند. مقدار 100 یعنی سطوح +100 و -100 به عنوان مرزهای اشباع خرید و فروش استفاده میشوند.
تنظیمات اندیکاتور RSI
rsi_timeframe (تایمفریم RSI): تایمفریم محاسبه RSI (پیشفرض: M1).
rsi_period (دوره RSI): تعداد کندلهای محاسباتی RSI (پیشفرض: 14).
rsi_price (نوع قیمت RSI): قیمت مبنا برای محاسبه RSI.
rsi_level (سطح RSI): مرزهای اشباع خرید و فروش را مشخص میکند. مقدار 30 یعنی RSI زیر ۳۰ به عنوان اشباع فروش (سیگنال خرید) و RSI بالای 100-30 = 70 به عنوان اشباع خرید (سیگنال فروش) در نظر گرفته میشود.
تنظیمات فیلتر میانگین متحرک (MA)
use_ma (فعالسازی فیلتر MA): اگر true باشد، ربات برای بستن معاملات حتماً تأیید جهت روند توسط MA را بررسی میکند. اگر false باشد، به محض رسیدن سود به حد تعیینشده، بلافاصله معاملات را بدون شرط اضافی میبندد.
ma_timeframe (تایمفریم MA): تایمفریم محاسبه میانگین متحرک (پیشفرض: M1).
ma_period (دوره MA): تعداد کندلهای محاسباتی میانگین متحرک (پیشفرض: 5).
ma_metod (روش هموارسازی MA): نوع میانگین متحرک را مشخص میکند: ساده (MODE_SMA)، نمایی (MODE_EMA)، هموار شده (MODE_SMMA) یا وزنی خطی (MODE_LWMA). پیشفرض روی حالت ساده تنظیم شده است.
ma_price (نوع قیمت MA): قیمتی که میانگین متحرک بر اساس آن محاسبه میشود (پیشفرض: قیمت بسته شدن).





