تفاوت متاتریدر 4 و 5
بررسی تمامی تفاوتهای MT4 و MT5
معاملهگری که بهصورت دستی و بدون استفاده از رباتهای هوشمند معامله میکند، تفاوت چندانی را بین متاتریدر 4 و 5 احساس نمیکند. دانستن تفاوت متاتریدر 4 و 5 برای برنامه نویسان بسیار حیاتی است. تنها تفاوت متاتریدر 4 و 5 مهم این دو پلت فرم برای معاملهگر دستی، وجود تعدادی از اندیکاتورهای جدید در متاتریدر 5 است. ولی برای معاملهگر الگوریتمی تفاوتها بسیار معنیدار است. آنقدر متفاوت که بههیچعنوان توصیه نمیکنم برای کد نویسی از متاتریدر 4 استفاده کنید. (همچنین با مراجعه به این لینک(+) می توانید متاتریدرهای 4 و 5 را در تمامی پلتفرم ها دریافت نمایید.)
معامله گران حرفه ای در سه حالت از متاتریدر 4 استفاده می کنند:
1- ابزار موردنظر من در متاتریدر 5 وجود نداشته باشد و یا زمانی که به کد آن دسترسی نداشته باشند.
گاهی بعضی از ابزارها و اندیکاتورها فقط برای نسخه 4 نوشتهشدهاند و مشابه آن در نسخه 5 نیست. در این حالت اگر به فرمول آن ابزار دسترسی داشته باشم، آن را در نسخه 5 پیادهسازی میکنم. اگرنه، بهناچار از نسخه 4 استفاده میکنم.
2- کارگزار محصول موردنظر من را در نسخه متاتریدر 5 ارائه نکند.
کارگزاران بعضی از محصولات را فقط روی نسخههای خاصی از متاتریدر ارائه میکنند. مثلاً کارگزار من محصولات ارز دیجیتال را روی متاتریدر 4 ارائه میکند. در این حالت من چارهای ندرام جز اینکه کد معاملاتی خود را روی متاتریدر 4 بنویسم.
3- هزینه معاملات (spread یا Commission) روی نسخه 4 تفاوت معنیداری با نسخه 5 داشته باشد.
گاهی پیش میآید که هم محصول روی هر ۲ نسخه وجود دارد و هم ابزارها برای هر دو نسخه هست. ولی (مثلاً) به دلیل تعداد معاملات بالای استراتژی، کومیسیونی که باید به کارگزاری برای نسخه 5 بپردازیم، بسیار بالاتر از نسخه 4 باشد. در این حالت من ابتدا استراتژی را بر روی نسخه 5 مینویسم، آن را بهینهسازی میکنم و نسخه بهینهسازی شده را عیناً روی نسخه 4 (بدون هیچ تغییری) اجرا میکنم.
قبل از اینکه به بیان تفاوت متاتریدر 4 یا 5 در معاملات الگوریتمی بکنم، ابتدا مفهوم بک تست و فوروارد تست (Back Test & Forward Test) را برای شما بیان میکنم.
بررسی امکان بک تست Back Test
بک تست به معنی تست کردن استراتژی معاملاتی درگذشته بازار و استخراج نتیجه از آن است. نتایجی که بیشتر از این کار مورد انتظار است، میزان سود، میزان زیان، درصد معاملات برنده به بازنده، میزان سود و زیان در هر معامله و حداکثر میزان زیان در طول زمان تست است. البته پارامترهای بسیار بیشتری باید مدنظر قرار گیرند ولی فعلاً در حد این کتاب موارد ذکرشده را موردتوجه قرار خواهیم داد.
برای اینکه بدانید استراتژی معاملاتی شما مناسب است یا نه حتماً باید آن را درگذشته بازار موردبررسی قرار دهید. انجام این کار بهصورت دستی میتواند خطای زیادی داشته باشد و ضمناً حوصله فراوان میخواهد.
تست استراتژی در متاتریدر 4 و 5
در متاتریدر (4 و 5) ابزاری به نام Strategy Tester وجود دارد که با آن میتوانید استراتژی کد شده خود را درگذشته بازار به سرعت و دقیق، بررسی کنید و این ابزار تمام گزارشهای آماری موردنیاز شمارا در اختیارتان قرار میدهد.
همچنین در این ابزار میتوانید پارامترهای ورودی استراتژی خود را بهینه کنید. مفهوم بهینهسازی پارامترهای ورودی را مقالات آینده بهتفصیل بیان خواهیم کرد. با مثال سادهای مفهوم کلی را با مثال برای شما میگویم:
فرض کنید استراتژی معاملاتی شما فقط از یک میانگین متحرک تشکیلشده است و در سادهترین حالت شما میخواهید با گذر رو به بالای قیمت از میانگین متحرک، خرید کنید و هنگامیکه قیمت میانگین متحرک را رو به پایین قطع کرد از معامله خود خارج شوید.
در شکل بالا فرض میکنیم در فلش رو به بالا (قیمت میانگین متحرک را رو به بالا قطع کرده) میخریم و در فلش رو به پایین (قیمت میانگین متحرک را رو به پایین قطع کرده) میفروشیم.
شکل زیر پارامترهای ورودی میانگین متحرک را نشان میدهد که دارای 4 پارامتر است:
- Period
- Shift
- Method
- Apply to
این پارامترها مقادیر مختلفی به خود میگیرند ولی سؤال اینجاست: کدام پارامترها برای محصول موردنظر ما بهترین است؟
پاسخ به این سؤال تنها وقتی معلوم میشود که شما با تمام حالات ورودی استراتژی خود را درگذشته تست کنید و بهترین جواب را برگزینید. به این کار بهینهسازی میگویند.
بررسی امکان فوروارد تست Forward Test
در بک تست، فرض بر این بود که ما اطلاعات گذشته بازار را در اختیار داریم ولی موضوع در فوروارد تست متفاوت است.
در فوروارد تست Forward Test ما ابتدا بازه زمانی تست خود را به دو قسمت (لزوماً مساوی نیستند) تقسیم میکنیم، سپس استراتژی خود را در قسمت اول، تست میکنیم و پارامترهای بهینه را به دست میآوریم.
حال با همان پارامترهای بهدستآمده، در قسمت دوم معامله میکنیم و نتیجه را با خروجی قسمت اول مقایسه میکنیم. در حقیقت هنگامیکه استراتژی را در قسمت دوم بررسی میکنیم، فرض بر این است که ما از آینده خبر نداریم و داریم با اطلاعات بهدستآمده درگذشته در آینده معامله میکنیم.
اگر نتایج بهدستآمده تا حد زیادی شبیه هم بود به این معنی است که احتمال اینکه استراتژی در آینده مانند گذشته عمل کند، زیاد است. دقت کنید گفتم زیاد است و درصد نگفتم. چون واقعیت این است که هیچکس از آینده خبر ندارد قیمت و بازار قابل پیشبینی نیست!
مفاهیم بک تست و فوروارد تست را در مقالات آینده بهتفصیل خواهم گفت. در اینجا برای اینکه فرق متاتریدر 4 و 5 را بگویم توضیح مختصری دادم.
دلایل استفاده از نسخه 5 متاتریدر در معاملات الگوریتمی
دلیل اول: دقت مدل کردن دیتا در متاتریدر 5 بسیار بالاتر از متاتریدر 4 است. در متاتریدر، دیتا مدل میشود یعنی برای اینکه دیتای یک کندل را ذخیره کند در زمانهای مختلف از آن نمونهبرداری میکند.
یکی از مهمترین عوامل صحت بک تست، صحت اطلاعات ورودی است. چون ما میخواهیم با توجه به اطلاعات گذشته برای آینده تصمیم بگیریم. پس اگر اطلاعات ورودی ما (همان قیمت) خطا داشته باشد، حتماً خروجی نتایج ما هم خطا خواهد داشت.
من در بهترین حالت (با کارگزاریهای مختلف بررسی کردم) از متاتریدر 4 صحت ورودی 90 درصد گرفتم اما در متاتریدر 5 صحت اطلاعات 99 درصد امری طبیعی است.
شاید فکر کنید صحت اطلاعات 90 درصد، مناسب است ولی باید بگویم بههیچوجه اینطور نیست.
بگذارید مثالی بزنم:
فرض کنید بگویم فلان فوتبالیست، 90 درصد ضربههای کاشته پشت 18 قدم را وارد دروازه میکند. به نظر شما این آمار خوب است؟
خوب نیست، عالی است!
حال میگویم 90 درصد هواپیماهایی که از باند بلند میشوند، سالم به زمین مینشینند! در این موردنظر شما چیست؟ هر دو صحت 90 درصدی دارند ولی اگر این آمار صحت داشته باشند آیا شما جرئت سوارشدن به هواپیما را دارید؟ در هفته صدها پرواز در کشور ما انجام میشود و در صورت صحت این آمار، باید هر هفته منتظر دهها سقوط باشیم!
پس هر سیستمی به درجه دقت خاص خود را نیاز دارد.
اصولاً این موضوع که ما میخواهیم با بررسی گذشته بازار برای آینده آن تصمیم بگیریم، خود دارای خطا است. در جهان هستی، رفتار هیچ پدیدهای را با بررسی گذشته آن نمیتوان پیشگویی کرد بلکه تنها میتوانیم احتمال وقوع را پیشبینی کنیم.(در ادامه مقاله سواپ (SWAP) در فارکس را هم بخوانید)
الگوریتمیگ تریدینگ چیست؟
خوب، پس اصل مطلب دارای خطا است پس باید ما با کاهش حداکثری خطا، تست را انجام دهیم.
10 درصد خطا در اطلاعات ورودی خطای بسیار زیادی است و این یعنی (ازنظر من) تمام نتایج بهدستآمده زیر سؤال است. نه خوب بودن نتایج میتواند ما را خوشحال کند و نه بد بودن نتایج ما را ناراحت!
تنها برداشت من این است که بک تست گرفتن در متاتریدر 4، کاری کاملاً بیهوده است.
نکته دیگری که در مورد بازارهای مالی حتماً باید مدنظر قرار دهید، مسئله لوریج (Leverage) یا همان اهرم است. در بسیاری از بازارهای دوطرفه دنیا امکان استفاده از اهرم به معاملهگر داده میشود. همانطور که میدانید بازارهایی که امکان لوریج دارند، به معاملهگر اجازه میدهند که بیش از مقدار پول خود امکان معامله داشته باشد.
مثلاً در بازار فارکس اهرمهای مالی 50 یا 100 یا بالاتر وجود دارد؛ و این یعنی در صورت استفاده از اهرم 100، شما میتوانید با 1 واحد پول، 100 واحد معامله کنید. این موضوع، مسئله خطا در ورودی را بهشدت افزایش میدهد. پس بههیچعنوان به بک تستهای متاتریدر 4، اعتماد نکنید.
دلیل دوم: نکته دیگر اینکه در متاتریدر 4 دیتا در تایم m1 ذخیره میشود و به تایم فریمهای دیگر تبدیل میشود و هر خطایی در تایم فریم m1، در تایم فریمهای بالاتر نیز وجود دارد؛ اما در متاتریدر 5 دیتای هر تایم فریم بهصورت جداگانه ذخیره میشود.
دلیل سوم: در متاتریدر 4، spread(اختلاف قیمت بیت ask و bid) ذخیره نمیشود اما در متاتریدر 5 این عدد برای هر کندل ذخیره میشود و این مسئله باعث کاهش خطا در بک تستها میشود.
دلیل چهارم: متاتریدر 5 یک سیستم multi thread و 64 بیتی است و متاتریدر 4 سیستم single thread و 32 بیتی است. (کسانی که تفاوت single thread و multi thread را نمیدانند با یک جستجوی ساده در گوگل میتوانند تفاوت آنها را درک کنند و توضیح آن در موضوع این کتاب نیست ولی تنها به این نکته اشاره میکنم که این موضوع باعث بالا بردن سرعت متاتریدر 5 است)
دلیل پنجم: متاتریدر 5 در تستهای گذشته (back test) سرعت بسیار بالاتری از متاتریدر 4 دارد. نرمافزار متاتریدر 5 برای سیستمعاملهای 64 بیتی طراحیشده و روی آنها بسیار سریعتر کار میکند درحالیکه متاتریدر 4 برای سیستمعاملهای 32بیتی طراحی شده. البته این نکته را نیز بدانید که متاتریدر 5 روی سیستمعاملهای 32 بیتی هم کار میکند.
دلیل ششم: گزارشها در متاتریدر 4 تنها بهصورت اچ تی ام ال (HTML) ذخیره میشوند اما گزارشها در متاتریدر 5 میتواند به فرمت xml هم ذخیره شود که در بهینهسازی بسیار به برنامهنویس کمک میکند.
دلیل هفتم: در متاتریدر 4 امکان قرار دادن 5 نوع دستور معاملاتی است. 1 دستور ورود سریع یا Market Execution و 4 نوع دستور شرطی.
در متاتریدر 5، میتوانید 7 نوع دستور معاملاتی داشته باشید، 1 دستور ورود سریع و 6 دستور شرطی.
دلیل هشتم: در متاتریدر 5 شما میتوانید مشخص کنید که با قیمتی که مشخص کردهاید، معامله را باز کند و از باقیمانده باقیمت دیگر صرفنظر کند اما در متاتریدر 4 این امکان وجود ندارد.
بهعنوانمثال فرض کنید قیمت محصولی که میخواهید بخرید 100 تومان است. شما میتوانید برای کارگزار خود مشخص کنید که تعداد 50 عدد از محصول را به قیمت 100 تومان برای شما بخرد و در این صورت کارگزار اگر توانست تمام 50 عدد را به قیمت 100 تومان بخرد که سفارش را کامل انجام میدهد و اگر نتوانست تمام 50 عدد را باقیمتی که مشخص کردهاید بخرد، از باقیمانده آن صرفنظر میکند. مثلاً 30 عدد را برای شما با قیمت 100 میخرد و از بقیه سفارش صرفنظر میکند.
دلیل نهم: در متاتریدر 5 شما این امکان را دارید که در تستهای خود درگذشته بازار، از پردازشگر دستگاههای دیگری که در شبکه داخلی شما هستند استفاده کنید. در مقالات آتی خواهم گفت که برای اینکه بتوانید یک استراتژی معاملاتی را سود ده کنید باید حتماً آن را بهینهسازی کنید. برای بهینهسازی نیاز به سختافزار قدرتمندی دارید. با این امکان شما میتوانید با استفاده از پردازشگرهای کامپیوترهای دیگر در شبکه داخلی (LAN) هزینه خرید سختافزارهای پیشرفته را کاهش دهید. درحالیکه این موضوع در متاتریدر 4 امکانپذیر نیست.
دلیل دهم: پارامترهای آماری تصمیمگیری در متاتریدر 5، بیشتر و قابلاطمینانتر هستند. در متاتریدر 4 بعدازاینکه استراتژی را درگذشته چک کردیم ۲4 پارامتر آماری بهعنوان نتیجه در اختیار ما قرار میدهد ولی در متاتریدر 5، 4۸ پارامتر آماری برای تصمیمگیری در اختیارداریم که قطعاً تصمیم ما دقیقتر خواهد بود.
دلیل یازدهم: امکان فوروارد تست
متاتریدر 5 امکان فوروارد تست دارد ولی متاتریدر 4، این امکان را ندارد.
تفاوت mql4 و mql5 از منظر برنامه نویسی بسیار زیاد است. حتما توصیه می کنم برای اکسپرت نویسی های خود از متاتریدر 5 استفاده کنید.
نتیجه گیری از تفاوت متاتریدر 4 و 5
باوجود تفاوت متاتریدر 4 و 5 که در بالا به آنها اشاره کردم، توصیه میکنیم حتماً برای تست استراتژی خود درگذشته و بهینهسازی، از متاتریدر 5 استفاده کنید.
- دانلود متاتریدر MetaTrader برای تمام پلتفورمها
- دانلود نرم افزار ادونس گت Advanced GET
- به حد ضررهای بازار در کانال تلگرام بپیوندید
عالی
ممنون از شما
متشکرم عالی بود
خیلی عالی بود ممنون
تشکر از شما برای مطلب خوبتون
سلام بنظر من خیلی زیبا وقابل فهم تفاوت متا تریدر ۴ با متاتریدر ۵ را توضیح دادید ممنون از اطلاعاتی را که در اختیار کار بران قرار دادید
با سلام
واقعا خیلی ممنونم.