محدودیت آلارمهای پرتعداد در تریدینگویو
توسعه یک سیستم مدیریت و توزیع هوشمند آلرت برای تریدینگویو
در یکی از پروژههای اختصاصی الگویار، نیاز مشتری اجرای یک استراتژی معاملاتی در تایمفریمهای ثانیهای تریدینگویو و ارسال لحظهای سیگنالهای معاملاتی آن به متاتریدر بود.
چالش اصلی پروژه، تعداد زیاد سیگنالها و محدودیت تریدرنگویو در تعداد آلارتهای قابل ارسال در یک بازه زمانی مشخص بود (حداکثر 15 آلرت در 3 دقیقه). با توجه به ماهیت استراتژی، علاوه بر سیگنالهای ورود و خروج، رویدادهایی مانند Partial Close نیز باید بهصورت مستقل و در لحظه به متاتریدر ارسال میشدند.
در نتیجه، استفاده از یک Alert معمولی نمیتوانست نیازهای این پروژه را پوشش دهد و در صورت عبور تعداد پیامها از سقف مجاز، ادامه ارسال سیگنالها متوقف میشد.
چالش پروژه
در شرایطی که تعداد رویدادهای معاملاتی زیاد باشد، محدودیت تعداد آلرتهای تریدینگویو میتواند به یک مشکل جدی در سیستمهای اتوماسیون تبدیل شود.
این موضوع در تایمفریمهای ثانیهای اهمیت بیشتری پیدا میکند؛ زیرا در این محیط، فاصله زمانی بین رویدادهای معاملاتی بسیار کوتاه است و ممکن است در مدت چند دقیقه، تعداد زیادی سیگنال تولید شود.
از طرف دیگر، این پروژه تنها به سیگنالهای ورود و خروج محدود نبود. سیستم باید میتوانست انواع مختلفی از رویدادهای معاملاتی را بهصورت دقیق و بدون از دست رفتن اطلاعات ارسال کند.
بنابراین مسئله اصلی این بود:
چگونه میتوان با وجود محدودیت تعداد آراتهای تریدینگویو، تعداد زیادی رویداد معاملاتی را بهصورت پیوسته و قابل اعتماد به یک سیستم خارجی ارسال کرد؟
راهکار توسعهیافته
برای حل این چالش، بهجای تکیه بر یک آلرت واحد، یک سیستم مدیریت چندگانه آلرت در ساختار استراتژی طراحی شد.
در این معماری، چند آلرت بهصورت همزمان روی استراتژی تنظیم شدند و وظیفه ارسال پیامها بین آنها بهصورت پویا مدیریت شد.
اما نکته مهم این بود که صرفاً ایجاد چند آلرت مشکل را حل نمیکرد؛ زیرا تریدینگویو محدودیت ارسال را در یک بازه زمانی مشخص اعمال میکند. بنابراین سیستم باید در هر لحظه میدانست که چه تعداد پیام در بازه اخیر ارسال شده و آلرت مناسب را انتخاب میکرد.
برای این منظور، اطلاعات مربوط به شرایط ارسال آلرت در یک ساختار دادهای اختصاصی ذخیره و مدیریت شد.
سیستم با بررسی تاریخچه پیامهای اخیر، تعداد آلرتهای ارسالشده در بازه زمانی موردنظر را محاسبه میکرد و بر اساس ظرفیت باقیمانده، آلرت مناسب را برای ارسال پیام بعدی انتخاب میکرد.
بهصورت ساده، منطق سیستم به این شکل بود:
رویداد معاملاتی >> بررسی آلرتهای اخیر >> انتخاب کانال مناسب >> ارسال پیام >> ثبت آلرت جدید
به این ترتیب، بهجای اینکه تمام پیامها از یک آلرت عبور کنند، بار ارسال بین چند آلرت توزیع میشد.
مدیریت هوشمند ظرفیت آلرتها
یکی از بخشهای مهم این پروژه، طراحی منطق کنترل تعداد آلرتهای ارسالشده بود.
سیستم برای هر پیام جدید ابتدا وضعیت آلرتهای اخیر را بررسی میکرد.
برای مثال، در صورتی که تعداد پیامهای ارسالشده در بازه موردنظر کمتر از ظرفیت آلرت اول بود، پیام از طریق آلرت اول ارسال میشد.
با افزایش تعداد پیامها، سیستم بهصورت خودکار از آلرت بعدی استفاده میکرد.
بنابراین بهجای اینکه پس از رسیدن یک آلرت به سقف مجاز، ارسال سیگنالها متوقف شود، سیستم میتوانست از ظرفیت آلرتهای دیگر استفاده کند.
این فرآیند بهصورت خودکار انجام میشد و نیازی به دخالت کاربر نداشت.
ارسال انواع رویدادهای معاملاتی
از آنجا که هدف پروژه صرفاً ارسال سیگنالهای ورود نبود، معماری سیستم به شکلی طراحی شد که بتواند انواع مختلف رویدادهای معاملاتی را مدیریت کند.
برای مثال:
- Entry
- Exit
- Partial Close
- سایر رویدادهای موردنیاز سیستم
هر رویداد پس از ایجاد، وارد فرآیند مدیریت آلرت میشد و سیستم بر اساس وضعیت لحظهای آلرتها، مسیر مناسب برای ارسال آن را انتخاب میکرد.
این موضوع اهمیت زیادی داشت؛ زیرا در یک سیستم معاملاتی خودکار، از دست رفتن حتی یک پیام میتواند باعث ایجاد اختلاف بین وضعیت استراتژی در تریدینگویو و وضعیت معاملات در متاتریدر شود.
ارتباط تریدینگویو و متاتریدر
یکی دیگر از بخشهای مهم پروژه، ایجاد ارتباط میان محیط اجرای استراتژی و سیستم معاملاتی متاتریدر بود.
سیگنالهای تولیدشده در تریدینگویو پس از عبور از سیستم مدیریت آلرت، در قالب پیامهای ساختاریافته ارسال میشدند تا توسط بخش دریافتکننده در متاتریدر پردازش شوند.
به این ترتیب، تریدینگویو نقش موتور تولید سیگنال و متاتریدر نقش محیط اجرای معاملات را بر عهده داشت.
این معماری امکان میداد استراتژی در محیط تریدینگویو اجرا شود، در حالی که اجرای واقعی معاملات در متاتریدر انجام گیرد.
نتیجه پروژه
با طراحی این سیستم، محدودیت ناشی از استفاده از یک آلرت واحد برطرف شد و امکان مدیریت حجم بسیار بیشتری از رویدادهای معاملاتی فراهم شد.
مهمترین دستاوردهای این پروژه عبارت بودند از:
مدیریت چند آلرت بهصورت همزمان
استفاده هوشمندانه از چند آلرت برای افزایش ظرفیت ارسال پیام.
کنترل لحظهای تعداد پیامها
بررسی تعداد آلرتهای ارسالشده در بازه زمانی اخیر و انتخاب مسیر مناسب برای پیام بعدی.
پشتیبانی از رویدادهای مختلف معاملاتی
امکان مدیریت Entry، Exit، Partial Close و سایر رویدادهای موردنیاز.
ارتباط تریدینگویو با متاتریدر
ایجاد یک مسیر ارتباطی برای انتقال سیگنالهای استراتژی به محیط اجرای معاملات.
مناسب برای استراتژیهای High-Frequency
طراحی سیستم با در نظر گرفتن شرایطی که تعداد رویدادهای معاملاتی در بازههای زمانی کوتاه بسیار زیاد است.
حفظ محرمانگی منطق معاملاتی مشتری
در این پروژه، تمرکز توسعه بر زیرساخت ارسال و مدیریت سیگنالها بود و منطق اختصاصی استراتژی و شرایط معاملاتی مشتری در این نمونهکار ارائه نشده است.
جمعبندی
این پروژه نمونهای از چالشهایی است که در توسعه سیستمهای معاملاتی خودکار، صرفاً با نوشتن منطق استراتژی قابل حل نیستند.
گاهی محدودیتهای پلتفرم، نحوه انتقال داده، مدیریت پیامها و ارتباط میان چند محیط معاملاتی، خود به یک مسئله فنی مستقل تبدیل میشوند.
در این پروژه، با طراحی یک سیستم مدیریت و توزیع هوشمند آلرت، امکان استفاده از ظرفیت چند آلرت بهصورت هماهنگ فراهم شد تا سیگنالهای پرتعداد یک استراتژی در تایمفریمهای ثانیهای، بدون وابستگی به یک آلرت واحد، به متاتریدر منتقل شوند.
این پروژه برای ما نمونهای از ترکیب پایناسکریپت، طراحی الگوریتم، مدیریت داده و ارتباط بین پلتفرمهای معاملاتی برای حل یک محدودیت عملی در یک سیستم واقعی بود.
توجه: به دلیل تعهد ما به حفظ محرمانگی پروژههای مشتریان، جزئیات مربوط به منطق استراتژی، شرایط ورود و خروج و ساختار اختصاصی معاملات در این نمونهکار ارائه نشده است.