وقتی چند اکسپرت روی یک حساب فعال هستند، هر ربات باید بتواند معاملات خودش را از سفارشهای دستی و معاملات سایر رباتها تشخیص دهد؛ در غیر این صورت، احتمال ویرایش یا بستن معامله اشتباه وجود دارد. اگر میخواهید بدانید مجیک نامبر در متاتریدر چیست، باید آن را یک شناسه عددی برای دستهبندی و مدیریت معاملات بدانید که هنگام ثبت سفارش توسط اکسپرت تعیین میشود. این عدد نشاندهنده کیفیت یا سوددهی ربات نیست و تغییر آن نیز عملکرد استراتژی را بهتر نمیکند. در ادامه، روش تنظیم مجیک نامبر در متاتریدر ۴ و ۵، تفاوت آن با تیکت و کامنت و خطاهای رایج هنگام انتخاب شناسه را بررسی میکنیم. برای اطلاعات کاملتر همراه ما در اسمارت اف ایکس باشید.
Magic Number چیست و چگونه کار میکند؟

به نقل از متخصص الگوتریدینگ، الگوهاپر:
به عددی مشخص و چند رقمی که مانند یک کد منحصربهفرد فقط به یک ربات تعلق دارد، مجیک نامبر برای اکسپرت گفته میشود. مجیک نامبر برای اکسپرت کمک میکند تا متوجه شوید کدام ترید را خودتان انجام دادهاید و کدام ترید توسط ربات شما انجام شده است.
برای مثال بیشتر آشنایی با مجیک نامبر در متاتریدر چیست، اگر اکسپرت اول با مجیک نامبر ۱۰۱ و اکسپرت دوم با مجیک نامبر ۲۰۲ معامله کنند، اکسپرت اول فقط معاملات دارای شناسه ۱۰۱ را بررسی، ویرایش یا میبندد. اکسپرت دوم نیز معاملات ثبتشده با شناسه ۲۰۲ را مدیریت میکند؛ بنابراین، فعالیت این دو ربات با یکدیگر تداخل پیدا نمیکند.
کاربرد مجیک نامبر در اکسپرت چیست؟

داده زندهشبیهساز ترید و چالش پراپ، رایگان
با دادهی زندهی بروکر واقعی تمرین کن و چالش پراپ را قبل از خرید پاس کن.مجیک نامبر به هر ربات فارکس کمک میکند معاملات متعلق به خود را از معاملات دستی یا سایر رباتها تشخیص دهد. کاربرد مجیک نامبر در اکسپرت بهویژه زمانی اهمیت دارد که چند اکسپرت یا چند نسخه از یک استراتژی همزمان روی حساب فعال باشند.
تفکیک معاملات چند اکسپرت
هر اکسپرت میتواند سفارشهای خود را با یک شناسه مشخص ثبت کند. بهاینترتیب، حتی اگر چند اکسپرت روی یک حساب یا نمادهای مختلف کار کنند، هرکدام فقط معاملات مرتبط با مجیک نامبر خود را شناسایی و مدیریت میکنند.
جلوگیری از مدیریت اشتباه معاملات
اکسپرت باید پیش از ویرایش یا بستن معامله، علاوه بر مجیک نامبر، نماد و سایر مشخصات سفارش را نیز بررسی کند. اعتماد بر این عدد بهتنهایی کافی نیست؛ زیرا ممکن است دو اکسپرت بهاشتباه با شناسه یکسان تنظیم شده باشند و معاملات یکدیگر را تغییر دهند.
تنظیم مجیک نامبر در متاتریدر 4 چگونه انجام میشود؟

تنظیم مجیک نامبر در متاتریدر 4 از طریق بخش Inputs اکسپرت یا کد MQL4 انجام میشود. اگر فقط فایل اجرایی ربات را دارید، اول باید بررسی کنید که توسعهدهنده امکان تغییر این شناسه را در تنظیمات قرار داده است یا خیر.
تغییر Magic Number از تنظیمات اکسپرت
از پنجره Navigator وارد بخش Expert Advisors شوید و اکسپرت را روی نمودار بکشید. در پنجره بازشده، تب Inputs را انتخاب کنید و بهدنبال گزینهای مانند MagicNumber، Magic، Expert ID یا EA ID بگردید. سپس مقدار آن را تغییر دهید و روی OK بزنید. مسیر نصب، اجرا و دسترسی به تنظیمات اکسپرت را میتوانید در آموزش متاتریدر 4 نیز دنبال کنید.
نام این گزینه به طراحی اکسپرت بستگی دارد و در همه رباتها یکسان نیست. اگر توسعهدهنده مجیک نامبر را بهعنوان ورودی تعریف نکرده باشد، چنین گزینهای در Inputs نمایش داده نمیشود و برای تغییر آن باید به کد منبع دسترسی داشته باشید.
تعریف مجیک نامبر در کد MQL4
در MQL4، برنامهنویس مجیک نامبر را در پارامتر magic تابع OrderSend قرار میدهد. در نمونه زیر، عدد ۱۰۱۰۱ شناسه سفارش است:
int ticket = OrderSend(
Symbol(), OP_BUY, 0.10, Ask, 3,
0, 0, “EA Order”, 10101, 0, clrBlue
);
برای خواندن این عدد، ابتدا سفارش باید با OrderSelect انتخاب شود؛ سپس تابع OrderMagicNumber() شناسه همان سفارش را برمیگرداند:
if(OrderSelect(ticket, SELECT_BY_TICKET))
{
int magic = OrderMagicNumber();
}
این کد فقط روش ثبت و خواندن شناسه را نشان میدهد. پیش از استفاده در حساب واقعی، ساختار کامل سفارش، مدیریت خطا و شرایط معاملاتی باید توسط فرد مسلط به MQL4 بررسی شود.
مجیک نامبر در متاتریدر 5 چگونه تنظیم میشود؟

مجیک نامبر در متاتریدر 5 را میتوان از بخش Inputs اکسپرت یا در کد MQL5 تعیین کرد. اگر چند نسخه از یک ربات همزمان اجرا میشوند، برای هر نسخه شناسه متفاوتی انتخاب کنید تا معاملات آنها با یکدیگر تداخل نداشته باشند.
تنظیم مجیک نامبر از بخش Inputs
اکسپرت را از پنجره Navigator روی نمودار بکشید و وارد تب Inputs شوید. اگر گزینهای مانند Magic Number، Magic یا Expert ID وجود دارد، مقدار آن را پیش از اجرا تغییر دهید و روی OK بزنید. مسیر نصب و اجرای اکسپرتها نیز در آموزش متاتریدر 5 توضیح داده شده است.
نمایش این گزینه به طراحی ربات بستگی دارد. اگر برنامهنویس مجیک نامبر را بهصورت ورودی تعریف نکرده باشد، امکان تغییر آن از بخش Inputs وجود ندارد. برای اجرای چند نسخه از یک اکسپرت نیز بهتر است شناسههای جداگانهای مانند ۱۰۱، ۱۰۲ و ۱۰۳ در نظر بگیرید.
تعریف Magic Number در MQL5
یکی از روشهای متداول، استفاده از متد SetExpertMagicNumber در کلاس CTrade است. این متد یک مقدار از نوع ulong دریافت میکند و آن را بهعنوان شناسه اکسپرت در درخواستهای معاملاتی بعدی قرار میدهد:
#include <Trade\Trade.mqh>
CTrade trade;
int OnInit()
{
trade.SetExpertMagicNumber(10101);
return(INIT_SUCCEEDED);
}
روش دوم، تعیین مستقیم فیلد magic در ساختار MqlTradeRequest است:
MqlTradeRequest request = {};
MqlTradeResult result = {};
request.action = TRADE_ACTION_DEAL;
request.symbol = _Symbol;
request.volume = 0.10;
request.type = ORDER_TYPE_BUY;
request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
request.magic = 10101;
OrderSend(request, result);
در متاتریدر ۵، Order درخواست ثبتشده، Deal اجرای معامله و Position وضعیت معاملاتی حاصل از آن است. این سه مفهوم یکسان نیستند؛ بنابراین، هنگام بررسی مجیک نامبر باید مشخص باشد که کد در حال خواندن شناسه سفارش، معامله انجامشده یا پوزیشن است.
تفاوت مجیک نامبر در متاتریدر 4 و 5 چیست؟

هدف مجیک نامبر در هر دو نسخه، شناسایی معاملات هر اکسپرت است؛ اما روش ثبت و خواندن آن با توجه به ساختار معاملاتی پلتفرم تفاوت دارد. شناخت این تفاوت هنگام برنامهنویسی و بررسی نتایج بک تست در متاتریدر اهمیت بیشتری پیدا میکند. در جدول زیر مقایسه میکنیم:
| معیار مقایسه | متاتریدر ۴ | متاتریدر ۵ |
| زبان برنامهنویسی | MQL4 | MQL5 |
| روش تعیین مجیک نامبر | ثبت پارامتر magic در تابع OrderSend | استفاده از SetExpertMagicNumber در کلاس CTrade یا فیلد magic در MqlTradeRequest |
| روش خواندن شناسه | انتخاب سفارش با OrderSelect و خواندن آن با OrderMagicNumber() | استفاده از ویژگیهایی مانند ORDER_MAGIC، DEAL_MAGIC و POSITION_MAGIC |
| ساختار معاملات | بیشتر بر مدیریت سفارشها متمرکز است | Order، Deal و Position را بهصورت جداگانه مدیریت میکند |
| نوع داده هنگام تعیین شناسه | پارامتر magic از نوع int است | شناسه در SetExpertMagicNumber و MqlTradeRequest از نوع ulong است |
| دامنه بررسی | مجیک نامبر سفارش انتخابشده خوانده میشود | باید مشخص شود شناسه سفارش، معامله انجامشده یا پوزیشن بررسی میشود |
| پیچیدگی کدنویسی | ساختار سادهتری برای فیلترکردن سفارشها دارد | بهدلیل تفکیک اجزای معاملاتی، کنترل دقیقتری در کد لازم است |
مجیک نامبر چه تفاوتی با تیکت و کامنت معامله دارد؟

مجیک نامبر، تیکت و کامنت هر سه اطلاعات مرتبط با معامله هستند، اما کاربرد یکسانی ندارند. مجیک نامبر برای دستهبندی معاملات اکسپرت استفاده میشود، تیکت شناسه سیستمی است و کامنت فقط توضیح متنی معامله را نشان میدهد.
تفاوت Magic Number و Ticket
تیکت را سیستم معاملاتی ایجاد میکند و برای شناسایی یک سفارش، معامله انجامشده یا پوزیشن مشخص به کار میبرد. هر مورد تیکت مخصوص خود را دارد و اکسپرت آن را انتخاب نمیکند.
در مقابل، مجیک نامبر معمولاً توسط برنامهنویس یا اکسپرت تعیین میشود و میتواند میان چند معامله مشترک باشد. برای مثال، ده سفارش متعلق به یک استراتژی ممکن است تیکتهای متفاوت، اما مجیک نامبر یکسان داشته باشند.
تفاوت Magic Number و Comment
کامنت یک متن توضیحی مانند نام استراتژی یا نوع سفارش است؛ درحالیکه مجیک نامبر یک شناسه عددی برای منطق برنامه شناخته میشود. ضمن اینکه ممکن است بخشی از کامنت پس از ارسال سفارش توسط سرور معاملاتی تغییر کند.
به همین دلیل، اکسپرت نباید معاملات خود را فقط بر اساس کامنت شناسایی کند. برای تفکیک مطمئنتر، بهتر است مجیک نامبر همراه با نماد و سایر مشخصات معامله بررسی شود.
چگونه مجیک نامبر مناسب انتخاب کنیم؟

برای انتخاب مجیک نامبر، لازم نیست سراغ اعداد طولانی یا پیچیده بروید. مهم این است که شناسهها ثابت، متمایز و بهاندازه کافی منظم باشند تا هر اکسپرت معاملات خودش را درست تشخیص دهد.
انتخاب شناسه متفاوت برای هر اکسپرت
برای هر اکسپرت یا استراتژی یک عدد مشخص در نظر بگیرید؛ برای مثال، شناسه ۱۰۰۱ برای ربات روندی و ۲۰۰۱ برای ربات اسکالپ. اگر یک اکسپرت را با تنظیمات متفاوت روی چند نمودار اجرا میکنید، بهتر است هر نسخه نیز شناسه جداگانهای داشته باشد.
ساخت یک الگوی منظم برای Magic Number
میتوانید برای هر اکسپرت یک بازه تعیین کنید؛ مثلاً اعداد ۱۰۰۰ تا ۱۹۹۹ برای استراتژی اول و ۲۰۰۰ تا ۲۹۹۹ برای استراتژی دوم. این روش پیگیری معاملات را سادهتر میکند، اما مجیک نامبر رمز امنیتی نیست و انتخاب عدد پیچیده هیچ مزیت معاملاتی یا تأثیری بر سوددهی ربات ندارد.
پیش از اجرای اکسپرت در حساب واقعی، علاوه بر بررسی مجیک نامبر، مطمئن شوید بهترین بروکر برای ایرانیان از معاملات الگوریتمی پشتیبانی میکند و محدودیتی برای اجرای ربات ندارد.
خطاهای رایج در استفاده از Magic Number

بیشتر خطاهای مجیک نامبر از انتخاب شناسه تکراری یا فیلتر ناقص معاملات ایجاد میشوند. چنین اشتباهاتی ممکن است باعث شود اکسپرت معاملهای را تغییر دهد که متعلق به استراتژی دیگری است.
استفاده از یک مجیک نامبر برای چند اکسپرت
اگر دو اکسپرت مستقل شناسه یکسان داشته باشند، ممکن است معاملات یکدیگر را متعلق به خود تشخیص دهند. برای هر ربات یا استراتژی، مجیک نامبر جداگانهای تعیین کنید.
مرتبطدانستن مجیک نامبر با سوددهی
مجیک نامبر فقط برای شناسایی و دستهبندی معاملات است. تغییر این عدد هیچ اثری بر منطق ورود و خروج، نرخ برد یا سوددهی اکسپرت ندارد.
یکساندانستن مجیک نامبر با تیکت
تیکت یک شناسه اختصاصی است که سیستم معاملاتی به هر سفارش، معامله یا پوزیشن میدهد. در مقابل، چند معامله متعلق به یک اکسپرت میتوانند مجیک نامبر یکسان داشته باشند.
تغییر شناسه بدون بررسی معاملات باز
تغییر مجیک نامبر، شناسه معاملات قبلی را عوض نمیکند. در نتیجه، ممکن است اکسپرت پس از تغییر عدد دیگر معاملات باز خود را نشناسد و نتواند آنها را طبق برنامه مدیریت کند.
بررسی معامله فقط بر اساس مجیک نامبر
یکسانبودن مجیک نامبر بهتنهایی برای انتخاب معامله کافی نیست. اکسپرت باید نماد، نوع سفارش و در صورت نیاز تیکت یا سایر شرایط را نیز بررسی کند.
فرض اینکه مجیک نامبر صفر همیشه نشانه معامله دستی است
مقدار صفر الزاماً به معنای ثبت دستی معامله نیست؛ زیرا ممکن است یک اکسپرت بدون تعیین شناسه اختصاصی، سفارش را با مقدار پیشفرض صفر ارسال کند. در متاتریدر ۵ میتوان ویژگی Reason را نیز برای تشخیص منبع ایجاد سفارش بررسی کرد.
اشتباهگرفتن Order، Deal و Position
در متاتریدر ۵، Order درخواست معاملاتی، Deal نتیجه اجرای آن و Position وضعیت باز حاصل از معاملات است. هنگام خواندن شناسه باید ویژگی متناسب با همان بخش، مانند ORDER_MAGIC، DEAL_MAGIC یا POSITION_MAGIC بررسی شود.
جستوجوی گزینهای که در Inputs وجود ندارد
نمایش Magic Number در بخش Inputs به طراحی اکسپرت بستگی دارد. اگر این پارامتر تعریف نشده باشد، برای تغییر آن باید به کد منبع دسترسی داشت یا از توسعهدهنده کمک گرفت. هنگام عیبیابی نیز بررسی فایل لاگ متاتریدر میتواند خطاهای اجرا، سفارشهای ناموفق و پیامهای ثبتشده توسط اکسپرت را مشخص کند.
طبق تجربه یکی از کاربران اسمارت اف ایکس: «دو اکسپرت با استراتژیهای متفاوت را روی یک حساب اجرا کرده بودم، اما هر دو مجیک نامبر یکسان داشتند. یکی از رباتها معامله اکسپرت دیگر را متعلق به خودش تشخیص داد و آن را زودتر از زمان تعیینشده بست. پس از اختصاص شناسه جداگانه به هر ربات و بررسی همزمان نماد معاملات، دیگر چنین تداخلی ایجاد نشد.»
جمعبندی؛ آیا تغییر مجیک نامبر ضروری است؟
اگر فقط یک اکسپرت با تنظیمات مشخص روی حساب شما فعال است، معمولاً تغییر شناسه پیشفرض ضرورتی ندارد. زمانی که چند ربات یا چند نسخه از یک استراتژی را اجرا میکنید، انتخاب مجیک نامبرهای جداگانه از تداخل در مدیریت معاملات جلوگیری میکند. این عدد بر سوددهی اکسپرت اثری ندارد و تغییر آن نیز شناسه معاملات باز قبلی را عوض نمیکند؛ بنابراین، پیش از هر تغییری راهنمای ربات را بخوانید یا موضوع را با توسعهدهنده آن بررسی کنید.
ما در اسمارت اف ایکس مفاهیم فارکس را دقیق، ساده و کاربردی توضیح میدهیم تا با شناخت بیشتری معامله کنید. برای مطالعه آموزشهای مرتبط همراه ما باشید. اگر درباره مجیک نامبر در متاتریدر چیست، اکسپرتها یا سایر موضوعات بازارهای مالی سؤالی دارید مقالات ما را بخوانید، فرم موجود در سایت را تکمیل کنید یا از راههای زیر با ما در ارتباط باشید:
- تلگرام: smartfxsupport
- ایمیل پشتیبانی: support@smartfxac.com

