تلفیق متاتریدر ۴ با مایکروسافت SQL سِرور

تلفیق متاتریدر ۴ با مایکروسافت SQL سِرور

تلفیق متاتریدر ۴ با مایکروسافت SQL سِرور

مقدمه

تعامل و یکی شدن با دیگر محصولات، چالش‌ جدید‌ی را در ترید بوجود می‌آورد. و از آن می‌توان استفاده‌های مفید بسیاری کرد، که برخی از آن‌ها را اینجا می‌گویم.‌

می‌توانید تیک‌ها را جمع‌آوری کرده و آن‌ها را برای تحلیل‌های بیشتر به مایکروسافت SQL سرور منتقل کنید. با داشتن یک هیستوری بزرگ از تیک‌ها، می‌توانید هر دوره‌ای، که از کوچک‌ترین واحد زمانی شروع می‌شود، تا هر دوره‌ی غیراستانداردی [که می‌خواهید] را، جمع‌آوری کنید. با داشتن خوانش‌های تیک واقعی، می‌توانید استراتژی‌های وابسته به داده‌های تیک (tick-data)، که به‌عنوان “scalpers” شناخته می‌شوند را، اِشکال‌زدایی کنید.

می‌توانید از یک محل ذخیره‌سازی برای تحلیل سریع داده‌های گرفته‌شده از دیگر اپلیکیشن‌ها، برای مثال، اِکسل یا دیگر نرم‌افزارها یا حتی از محصولات خودتان، استفاده کنید.

به‌عنوان نمونه می‌توانید‌ تمام هیستوری را از History Center نرم‌افزار، درون مایکروسافت SQL سرور تخلیه کنید. آنگاه دیگر نیاز نیست هیستوری را در متاتریدر ۴ ذخیره کنید. این کار به شما کمک می‌کند حافظه‌ی نرم‌افزار را خالی کنید.

با استفاده از خوانش‌هایی که در مایکروسافت SQL سرور ذخیره شده‌اند، می‌توانید شبکه‌های نئورال را محاسبه کنید: برای مثال، STATISTICA – 7.8 برای اینکه به شما اجازه داده شود خوانش‌ها را از SQL دانلود کنید، با انتقال سیگنال‌های شبکه به متاتریدر ۴، می‌توان در حالت واقعی (real-time mode)، این موضوع را حل کرد.

می‌توانید برنامه‌ی خودتان را به زبان دیگر و برای نمادی دیگر توسعه دهید، و سیگنال‌ها را با استفاده از مایکروسافت SQL سرور، منتقل کنید، و فقط می‌ماند توابع اجرایی برای نرم‌افزار و خلاص کردن آن از شر محاسبات جدی.

از این محصولات نرم‌افزاری برای این پروژه استفاده شده‌است

  • MS SQL SERVER 2000 Developer – BASE
  • VISUAL C++ 6.0 SP5 برای ساختن DLL “YZMSSQLExpertSample.dll”
  • MDAC 7

حداقل مجموعه‌ای که باید نصب شود:

  1. MS SQL SERVER 2000 Developer
  2. MDAC 7

با استفاده از MDAC 7 برنامه را اِشکال‌زدایی کردم. هرچند، ممکن است همه‌چیز به‌خوبی روی بعضی از نسخه‌های قدیمی‌تر کار کند. اگر نمی‌خواهید DLL را کامپایل کنید، نیازی نیست Visual C++ 6.0 را نصب کنید یا نصب داشته باشید. می‌توانید از یک DLL آماده استفاده کنید. با این حال، درون آن نام کاربر، نام DSN، و کانکشن‌ها را حک کردم (طوریکه اصلاً پاک نشوند) (= Hardwire کردن). بنابراین، باید تمام موارد لیست‌شده در بالا را در ورژن برنامه‌ی خودتان تکرار کنید. در اینجا به نصب مایکروسافت SQL سرور یا Visual C++ 6.0 اشاره نمی‌کنم زیرا خارج از این مقاله به‌حساب می‌آیند.

بعد از اینکه محصولات نرم‌افزاری مورد نیاز نصب شدند، باید یک DSN بسازیم:

مثالی از دریافت تیک در مایکروسافت SQL سرور

تمام آزمایش‌ها با MS SQL SERVER 2000 Developer انجام شدند. در Visual C++ 6.0، YZMSSQLExpertSample.DLL با استفاده از روش دسترسی به مایکروسافت SQL از طریق ADO، ایجاد شد. MDAC 7 یا MDAC 8 باید نصب شود. فقط مثال‌هایی از چگونگی ساختن رویه‌ها و جداول را بیان می‌کنم.

حداقل مجموعه‌ای که باید در مایکروسافت SQL سرور ایجاد کنیم، پایگاه، جداول و رویه‌ها هستند. بیایید جدول و رویه‌های کار کردن با خوانش‌های تیک (tick quotes) را درنظر بگیریم. اگر بخواهید می‌توانید دیگر توابع را نیز اضافه کنید.

نیاز است که یک پایگاه و جداول را در مایکروسافت SQL بسازید. یک پایگاه جدید با نام MT4TRADE ایجاد کردم. سپس باید جداول را درون آن ایجاد کنیم:

MT4TICK  – جدول تیک‌ها

در پایین چگونگی دریافت تیک و ظاهر شدن رویه‌ی جدول‌بندی را داریم:

از توضیحات بالا می‌توانیم دریابیم که چه رویه‌هایی، برای چه اهدافی، استفاده شده‌اند.

@RetCode – هنگام عبور از DLL هیچ عملکردی ندارد، و فقط برای دریافت کد پایان‌دهی[۱] است.

برپایی مایکروسافت SQL سرور تمام شد. اسکریپتی برای ایجاد یک پیکربندی استاندارد به این مقاله پیوست شده‌است.

بیایید خیال‌پردازی کنیم: راه‌حل‌ها و امتیازات ممکن

می‌توانیم یک فضای داده ایجاد کرده و اطلاعات را از آن گرفته و یا در آن ثبت کنیم. با این روش، نرم‌افزار متاتریدر ۴ را از لزوم ذخیره‌ی هیستوری خوانش‌ها، رها کرده‌ایم. اکنون هیستوری خوانش‌ها در مایکروسافت SQL سرور ذخیره می‌شود و می‌توانیم با این اطلاعات کار کنیم، زودتر استخراج‌شان کنیم و آن‌ها به اپلیکیشن‌های دیگر بفرستیم. می‌توانیم از این داده‌ها استفاده کنیم تا در پکیج‌های نئورال آنالیز شوند، که بیشتر آن‌ها قابلیت کار با فضاهای SQL را دارند.

در زمان واقعی (real time)، نرم‌افزار ممکن است شکل‌دهی سیگنال‌ها را از اندیکاتور ها ادامه داده و آن‌ها را به فضای [ایجادشده] بفرستد و با همین روش [آن‌ها را] تثبیت کند. یک اپلیکیشن خارجی (اکسترنال) می‌تواند در زمان واقعی سیگنال و هیستوری را استخراج کرده، آن‌ها را تحلیل کند و روی مایکروسافت SQL سرور، اجرا و فضای گزارش را تثبیت کرده، و آن‌ها را برای اجرا به نرم‌افزار بفرستد.

بنابراین، ادغام و توزیع عملکردی بین اپلیکیشن‌های موجود در یک مجموعه‌ی ترید خودکار را بدست می‌آوریم.

بسیار خب، اگر دیگر نیازی به ذخیره‌‌سازی خوانش‌های هیستوری نیست، می‌توانیم تنظیمات مربوطه را به این روش انجام دهیم. حداقل تعداد کندل‌ها را در Tools>Options>Charts، تعیین کنید، برای مثال، ۵۰۰۰. نرم‌افزار بسیار سریع‌تر کار خود را آغاز می‌کند زیرا نیازی به اختصاص دادن حافظه برای هیستوری‌ با حجم زیاد ندارد.

تلفیق متاتریدر 4 با مایکروسافت SQL سِرور

سورس تکست‌ها (Source Texts)

کد DLL:

فراخوانی از MQL4 (مثال)

اسکریپت [برای] لود کردن (loading) هیستوری روی مایکروسافت SQL سرور:

توجه: متاسفانه، کل هیستوری با استفاده از این اسکریپت، نسبتاً آهسته لود شد، اما bar number را کاملاً واضح و با کیفیت بالا، تثبیت نمود.

بهترین راه‌حل این است که خوانش‌ها را درون یک فایل متنی تخلیه کرده و از طریق IMPRT EXPORT DTS، در مایکروسافت SQL لود (load) کنیم. لود شدن هیستوری M1، از سال ۱۹۹۹ تا ۲۰۰۸، برای هر نمادی، چند دقیقه طول خواهد کشید.

هنگام تخلیه خوانش‌ها درون یک فایل متنی، شاخص کندل تخلیه نمی‌شود. اگر تصمیم گرفته‌اید که شاخص کندل فقط شماره خط (line number) باشد، آنگاه مشکل کندل‌های گُم‌شده را خواهید داشت، و در صورت اصلاح یا لود کردن مجدد، اعداد کندل‌های تخلیه‌شده، ممکن است در مایکروسافت SQL و متاتریدر ۴، متفاوت باشند. هنوز این مشکل را حل نکرده‌ام، اما فکر می‌کنم که بتوان این مشکل را از طریق لود کردن مجدد هیستوری بعد از یک به‌روز‌رسانی باکیفیت هیستوری در خود متاتریدر ۴، حل کرد.

توضیحات فایل‌های پیوست‌شده

CreateSQLallDate.txt (9.0 Kb)

– اسکریپت با فرمت SQL، به‌عنوان مثالی برای چگونگی ایجاد پایگاه‌ها، جداول، و رویه‌ها در مایکروسافت SQL سرور

SQLGETHISTORY.mq4 (1.4 Kb)

– اسکریپت برای لود کردن هیستوری در مایکروسافت SQL سرور

YZMSSQLExpertSample.rar (89.9 Kb)

– پروژه‌ی DLL

YZMSSQLSample.mq4 (13.1 Kb)

– می‌توانید این را به‌عنوان اکسپرت به نمودار نمادی متصل کنید که تیک‌های آن بایستی جمع‌آوری شوند؛ محدودیتی در انتخاب تایم‌فریم نیست.

نتیجهگیری

یکی شدن با دیگر محصولات نرم‌افزاری عملکرد متاتریدر ۴ را گسترش می‌دهد و اجازه می‌دهد وظایف و توابع یک سیستم معاملاتی خودکار، به‌شکل موثرتری توزیع شوند.

این مقاله دارای فایل پیوست است.

M23admin

→ خواندن مطلب قبلی

استراتژی ترید برمبنای تحلیل نقاط پیووت

خواندن مطلب بعدی ←

قانون طلایی معاملات

۴۲ مورد نظر

نوشتن نظر شما

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *