نظارت بر تبادل چندین رمزنگاری به صورت آنلاین از طریق کتابخانه MQL5 برای Node.js/ccxt – دیگر – 5 ژوئیه 2025

ccxtappserverlib برای کار با تمام صرافی های رمزنگاری برتر 100 از MQL5 از طریق Node.js و سرور برنامه CCXT در نظر گرفته شده است ، و گام به گام در حال تحول است. آخرین نسخه بتا شامل ذخیره سازی بهینه شده “بازارها” مبادله (مشخصات ابزار و سایر شرایط معاملاتی) ، خواندن غیر مسدود کننده پیام

کد خبر : 575099
تاریخ انتشار : شنبه ۱۴ تیر ۱۴۰۴ - ۲۱:۲۹
نظارت بر تبادل چندین رمزنگاری به صورت آنلاین از طریق کتابخانه MQL5 برای Node.js/ccxt – دیگر – 5 ژوئیه 2025


ccxtappserverlib برای کار با تمام صرافی های رمزنگاری برتر 100 از MQL5 از طریق Node.js و سرور برنامه CCXT در نظر گرفته شده است ، و گام به گام در حال تحول است. آخرین نسخه بتا شامل ذخیره سازی بهینه شده “بازارها” مبادله (مشخصات ابزار و سایر شرایط معاملاتی) ، خواندن غیر مسدود کننده پیام های WebSocket و موارد دیگر است.
یک نمونه مقدماتی استفاده از کتابخانه – فیلمنامه ccxtappsrvshowcase.mq5 – زودتر در وبلاگ ارسال شد.
به عنوان نمونه دیگری از توسعه برنامه های سفارشی با استفاده از کتابخانه ، ما یک اسکریپت برای نظارت موازی مبادلات چندگانه برای نوع انتخاب شده داده ها ارائه می دهیم. این ویژگی با عضویت از طریق CCXT در Node.js به “ساعتهای” WebSocket خاص ، مانند دفترچه ساعتبا نگهبانبا ساعت مچی، و غیره. از آنجا که قرار است این اسکریپت فقط از API های عمومی استفاده کند ، اعتبار کاربر در اینجا دخیل نیست ، اما این کتابخانه از آنها در حد کامل پشتیبانی می کند.

در اینجا مهمترین قسمت های نسخه نسخه ی نمایشی جدید وجود دارد multixchangewatch.mq5 (آن را همراه با بتا نسخه کتابخانه ارائه می دهد).

NB: اگر این اسکریپت برای اولین بار در حال اجرا است ، می خواهد سرور برنامه CCXT (به صورت دستی) را باز کنید (به عنوان ccxtappsrvbundle.jsc از منابع داخلی استخراج می شود) و node.js را با آن اجرا کنید.

ابتدا عنوان ها را درج کنید.

#include "ccxtjsmtlib.mqh" 
#include "ccxtutil.mqh"
#include 

در ورودی ها ، راه اندازی سرور گره باید انجام شود.

input group "Connection settings"
input string NodeServer = "http://127.0.0.1:8124";
input string NodeAuth = ""; 

در مرحله بعد ، تعدادی از مبادلات مورد نظر برای نظارت ، یک تیک و یک نوع ساعت را مشخص کنید. به طور پیش فرض ، اسکریپت ساعت های سفارش برای BCH/USDT را تماشا می کند.

برای پر کردن این ورودی ها به درستی با مقادیر مورد نظر ، احتمالاً لازم است لیست مبادلات پشتیبانی شده و بازارهای آنها را از قبل وارد کنید. می توان آن را به عنوان مثال دیگر مشاهده کرد ccxtappsrvshowcase.mq5، با Lib تهیه شده است.

input string Exchanges = "ascendex,bitmart,binance"; 
input string Ticker = "BCH/USDT";
input string Watch = "watchOrderBook";
input uint WatchingDuration = 10; 

پس بر امدگی Handler Event کار خود را انجام می دهد. نظرات درون خطی روند را توضیح می دهد. توابع ، کلاس ها و روش های وارداتی از کتابخانه به رنگ زرد برجسته می شوند.

string Exchange[];

void OnStart()
{
   
   
   
   PrintFormat("CCXT AppSrvLibrary version: %.2f", AppSrvLibraryVersion());
   const static string status[] = {"Can't deploy",
      "App server ZIP is deployed, but not extracted",
      "App server files are deployed"};
   const int d = DeployCcxtAppServer();
   Print(status[d + 1]);
   if(d <= 0)
   {
      return; 
   }
   
   
   
   
   SetNodeServer(NodeServer, NodeAuth);

   CcxtLink *link = GetLink();
   
   
   

   
   
   AutoPtr<CcxtJsExchangeProIntf> ccxt[];
   const int n = StringSplit(Exchanges, ',', Exchange);
   ArrayResize(ccxt, n);
   
   for(int i = 0; i < n; i++)
   {
      ccxt[i] = CreateExchangePro(Exchange[i]); 

      if(link.getLastHttpCode() != 200 || !ccxt[i][] || ccxt[i][][].t >= JS_NULL)
      {
         Print("Construction failed for exchange: ", Exchange[i]);
         return;
      }
      
      const bool isPro = !!*ccxt[i][]["pro"]; 
      
      if(!isPro)
      {
         PrintFormat("WARNING! %s isn't PRO, there is no websocket support", Exchange[i]);
      }
      
      if(!ccxt[i][]["has"][Watch].get<bool>())
      {
         PrintFormat("WARNING! %s does not support '%s' subscriptions", Exchange[i], Watch);
      }
   }
   
   
   
   int active = 0;
   
   for(int i = 0; i < n; i++)
   {
      
      if(ccxt[i][].upgrade())
      {
         if(!ccxt[i][].watchAnything(StringFormat("%s(\"%s\")", Watch, Ticker)))
         {
            PrintFormat("Can't start %s for %s", Watch, Exchange[i]);
            ccxt[i][].close(); 
            ccxt[i] = NULL;
         }
         else
         {
            active++;
         }
      }
      else
      {
         if(ccxt[i][].isConnected())
         {
            Print("Can't upgrade to websockets");
            string headers[][2];
            if(ccxt[i][].ws().getHeaders(headers))
            {
               
            }
            ccxt[i][].ws().close(); 
            ccxt[i][].close();
            ccxt[i] = NULL;
         }
      }
   }
   
   if(!active) return;

   
   PrintFormat("* Monitoring %d subscriptions", active);

   const uint start = GetTickCount();
   while(!IsStopped() && (!WatchingDuration || GetTickCount() - start < WatchingDuration * 1000))
   {
      for(int i = 0; i < n; i++)
      {
         if(ccxt[i][] && ccxt[i][].isConnected())
         {
            AutoPtr j = ccxt[i][].readMessage(false); 
            if(j[])
            {
               ChronoComment(j[].stringify(0, 0)); 
            }
         }
      }
   }
  
   Print("* Unsubscribing...");
   for(int i = 0; i < n; i++)
   {
      if(ccxt[i][] && ccxt[i][].isConnected())
      {
         ccxt[i][].un().watchAnything(StringFormat("%s(\"%s\")", Watch, Ticker));
      }
   }
   
   
   GracefullClose(ccxt); // not presented here in the blog

   
   
   GracefullClose(ccxt, 5, true);
   
   Comment("");
}

هنگامی که اسکریپت در حال اجرا است ، لیست کتابهای سفارش ورودی (JSON-MESSAGES) در نمودار خروجی و به طور فعال به روز می شود.

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



لینک منبع : هوشمند نیوز

آموزش مجازی مدیریت عالی حرفه ای کسب و کار Post DBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
آموزش مجازی مدیریت عالی و حرفه ای کسب و کار DBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
آموزش مجازی مدیریت کسب و کار MBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
ای کافی شاپ
مدیریت حرفه ای کافی شاپ
خبره
حقوقدان خبره
و حرفه ای
سرآشپز حرفه ای
آموزش مجازی تعمیرات موبایل
آموزش مجازی ICDL مهارت های رایانه کار درجه یک و دو
آموزش مجازی کارشناس معاملات املاک_ مشاور املاک
ارسال نظر شما
مجموع نظرات : 0 در انتظار بررسی : 0 انتشار یافته : ۰
  • نظرات ارسال شده توسط شما، پس از تایید توسط مدیران سایت منتشر خواهد شد.
  • نظراتی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • نظراتی که به غیر از زبان فارسی یا غیر مرتبط با خبر باشد منتشر نخواهد شد.