البرمجة

تفاعل بين MT4 وNode.js: إرسال بيانات التداول عبر طلب POST

في هذا السياق، يهدف المستخدم إلى إرسال طلب POST من منصة التداول الآلي MetaTrader 4 (MT4) إلى خادم Node.js. يرغب المستخدم أيضًا في كتابة كود JavaScript على الجانب الخادم (Node.js) لاستقبال هذا الطلب وحفظ المعلومات في ملف نصي.

للقيام بذلك، يمكننا البداية بفهم الكود الموجود في ملف “webrequest.mq4” الخاص بـ MT4. يبدو أن الكود يقوم بإرسال طلب POST إلى عنوان URL محلي (“localhost”) باستخدام بيانات الحساب مثل رقم الحساب والرصيد والحساب الإجمالي.

بمجرد أن يتم إرسال الطلب من MT4، يتعين علينا فهم كيفية استقبال هذا الطلب في الجانب الخادم باستخدام Node.js. في ملف “file.js”، يبدو أن المستخدم يريد حفظ البيانات المرسلة من MT4 في ملف نصي باسم “file.txt”.

لتحقيق هذا الهدف، يمكننا استخدام مكتبة “express” في Node.js لإنشاء خادم بسيط. سنقوم أيضًا بفهم كيفية استخدام جسون لتحليل بيانات الطلب POST المرسلة من MT4.

فيما يلي مثال على كيفية كتابة الكود في ملف “file.js”:

javascript
const express = require('express'); const bodyParser = require('body-parser'); const fs = require('fs'); const app = express(); const port = 3000; app.use(bodyParser.urlencoded({ extended: true })); app.post('/', (req, res) => { // استخراج بيانات POST من جسم الطلب const account = req.body.account; const balance = req.body.balance; const equity = req.body.equity; // كتابة البيانات في ملف نصي const dataToWrite = `Account: ${account}, Balance: ${balance}, Equity: ${equity}`; fs.writeFile("file.txt", dataToWrite, (err) => { if (err) throw err; console.log('The file was saved!'); }); res.send('OK'); }); app.listen(port, () => { console.log(`Server running at http://localhost:${port}/`); });

يرجى مراجعة الكود أعلاه وضبطه حسب احتياجاتك. يستخدم الكود مكتبة “express” لإنشاء خادم ومكتبة “body-parser” لتحليل بيانات الطلب POST. بعد ذلك، يتم استخراج بيانات الحساب من جسم الطلب وحفظها في ملف “file.txt”.

تأكد من تثبيت المكتبات المطلوبة باستخدام npm:

bash
npm install express body-parser

بهذا يكون المستخدم قد أكمل العملية بنجاح، حيث يستطيع الآن إرسال البيانات من MT4 إلى Node.js وحفظها في ملف نصي على الخادم.

المزيد من المعلومات

بالطبع، دعونا نوسع المزيد على الأكواد المذكورة ونوضح بعض المفاهيم المهمة.

في ملف “webrequest.mq4” الخاص بـ MetaTrader 4 (MT4):

  1. #property: تستخدم لتعيين خصائص للمؤشر أو الخبر الآلي.

  2. int start(): هو دالة في MT4 تبدأ تنفيذ الكود من هنا. يتم فيها إجراء طلب POST باستخدام دالة WebRequest().

  3. WebRequest(): تقوم بإرسال طلب HTTP إلى الخادم. في هذا السياق، يتم إرسال طلب POST إلى العنوان المحلي “localhost:8080” مع بعض البيانات من حساب التداول.

في ملف “file.js” الخاص بـ Node.js:

  1. const express = require('express');: يستخدم لاستيراد مكتبة Express التي تسهل إنشاء خوادم الويب في Node.js.

  2. const bodyParser = require('body-parser');: يستخدم لتحليل بيانات الطلب (مثل POST) من جسم الطلب.

  3. app.use(bodyParser.urlencoded({ extended: true }));: يقوم بتكوين Express لاستخدام Body Parser لتحليل بيانات الطلب.

  4. app.post('/', (req, res) => { ... });: يعني أن الخادم سيتعامل مع الطلبات النوع POST على العنوان الجذري “/”.

  5. req.body: يحتوي على بيانات الجسم في الطلب POST، ويتم استخراج قيم account وbalance وequity منه.

  6. fs.writeFile(): يقوم بكتابة البيانات في ملف “file.txt”.

  7. res.send('OK');: يرسل استجابة بسيطة إلى العميل للإشارة إلى نجاح العملية.

  8. app.listen(port, () => { ... });: يقوم بتشغيل الخادم على منفذ محدد، ويعرض رسالة في وحدة التحكم عند بدء التشغيل.

تأكد من فهم التدفق الكامل للعملية: MT4 ترسل طلب POST إلى Node.js، الذي يقوم بتحليله وحفظ البيانات في ملف “file.txt”. يمكنك تخصيص الكود وفقًا لاحتياجاتك الخاصة وتطويره بمزيد من الخصائص والأمان إذا كنت تعمل في بيئة إنتاجية.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!