انتقل إلى المحتوى

كيفية الإشارة إلى مكتبات الطرف الثالث في cTrader Algo

تمكّن مكتبات الطرف الثالث المستخدمين من توسيع وتحسين وظائف cBots والمؤشرات والإضافات الخاصة بهم. نظرًا لأن cTrader Algo تم تطويره باستخدام .NET 6.0، يمكن للمستخدمين إضافة واستخدام مكتبات الطرف الثالث المبنية باستخدام .NET 6.0 في مشاريع الخوارزميات الخاصة بهم.

في هذه المقالة والفيديو المصاحب لها، ستتعلم كيفية الإشارة إلى مكتبات الطرف الثالث في واجهة برمجة تطبيقات cTrader Algo. باستخدام مكتبة Discord.Net، سنوضح كيفية إرسال رسائل إلى قناة Discord.

إضافة مرجع عن طريق تثبيت حزمة NuGet

في مثالنا الأول، نخطط لإضافة مرجع في مشروع cBot الخاص بنا عن طريق تثبيت حزمة من مكتبة NuGet. NuGet هو مدير الحزم الرسمي لمنصة .NET المستخدم لإنشاء واستهلاك وتوزيع الحزم أو المكتبات.

ملاحظة

إذا كنت تطور خوارزميات في Visual Studio، استخدم طريقة إضافة المرجع الموضحة أدناه. وإلا، انتقل إلى القسم التالي من هذه المقالة.

في cTrader Algo، قم بإنشاء cBot. انقر على زر جديد، أدخل اسمًا مثل "مثال رسالة Discord"، ثم انقر على زر إنشاء.

بعد ذلك، انتقل إلى موقع NuGet، اكتب Discord في حقل النص وحدد مكتبة Discord.Net من النتائج.

انقر على علامة التبويب مدير الحزم ثم انسخ الأمر الموجود هناك.

عد إلى cTrader وانقر على تحرير في Visual Studio.

يجب أن يفتح مشروع cBot الخاص بك في تطبيق Visual Studio على جهاز الكمبيوتر الخاص بك.

في Visual Studio، افتح قائمة الأدوات، حدد مدير حزم NuGet، ثم وحدة تحكم مدير الحزم.

الصق الأمر الذي نسخته سابقًا من موقع NuGet وقم بتشغيله.

1
NuGet\Install-Package Discord.Net -Version 3.16.0

بعد تثبيت الحزمة المطلوبة، يمكننا المتابعة لتطوير مثال cBot الخاص بنا.

ابدأ بإعلان المعلمات المهمة، مثل رمز بوت Discord ومعرف القناة.

1
2
3
4
5
[Parameter("Discord Bot Token")]
public string BotToken { get; set; }

[Parameter("Discord Channel ID")]
public string ChannelID { get; set; }

ثم أعلن عن كائن عميل Discord وكائن قناة الرسائل.

1
2
DiscordSocketClient _discordSocketClient;
IMessageChannel _channel;

في طريقة OnStart() الخاصة بنا، اكتب كودًا بسيطًا لإرسال رسالة إلى قناتنا عند بدء تشغيل cBot.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
protected override void OnStart()
{
    _discordSocketClient = new DiscordSocketClient();
    _discordSocketClient.LoginAsync(TokenType.Bot, BotToken);
    _discordSocketClient.StartAsync();

    var channelID = Convert.ToUInt64(ChannelID);
    _channel = _discordSocketClient.GetChannelAsync(channelID).Result as IMessageChannel;
    _channel.SendMessageAsync("Example cBot Started");
}

يمكنك نسخ الكود الكامل أدناه:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using Discord.WebSocket;
using Discord;

namespace cAlgo.Robots
{
    [Robot(AccessRights = AccessRights.None, AddIndicators = true)]
    public class DiscordMessageExample : Robot
    {
        [Parameter("Discord Bot Token")]
        public string BotToken { get; set; }

        [Parameter("Discord Channel ID")]
        public string ChannelID { get; set; }

        DiscordSocketClient _discordSocketClient;
        IMessageChannel _channel;

        protected override void OnStart()
        {
            _discordSocketClient = new DiscordSocketClient();
            _discordSocketClient.LoginAsync(TokenType.Bot, BotToken);
            _discordSocketClient.StartAsync();

            var channelID = Convert.ToUInt64(ChannelID);
            _channel = _discordSocketClient.GetChannelAsync(channelID).Result as IMessageChannel;
            _channel.SendMessageAsync("Example cBot Started");
        }

        protected override void OnTick()
        {
            // Handle price updates here
        }

        protected override void OnStop()
        {
            // Handle cBot stop here
        }
    }
}

الآن، قم ببناء cBot.

عد إلى cTrader. انقر على إضافة مثيل، حدد المعلمات المفضلة لديك في النافذة ثم انقر على زر إضافة مثيل.

أدخل رمز بوت Discord ومعرف القناة الخاصين بك.

ابدأ تشغيل مثيل cBot. عندما تظهر نافذة طلب الوصول، انقر على السماح للمتابعة.

يجب أن يبدأ تشغيل cBot، ويجب أن ترى وصول رسالة في قناة Discord.

إضافة مرجع من خلال واجهة مستخدم cTrader

بعض المكتبات غير متوفرة كحزم NuGet. إذا كنت تخطط لاستخدام مثل هذه المكتبات في مشروع cBot الخاص بك، فعليك إضافة ملفات DLL الخاصة بها مباشرة كمراجع.

هنا، سنوضح كيف يمكنك الإشارة إلى نفس مكتبة Discord.Net عن طريق إضافة ملفات DLL الخاصة بها.

عد إلى Visual Studio وقم بإلغاء تثبيت مكتبة Discord.Net التي قمنا بتثبيتها في القسم الفرعي السابق. افتح وحدة تحكم مدير حزم NuGet كما فعلت من قبل وقم بتشغيل الأمر التالي:

1
NuGet\Uninstall-Package Discord.Net -Version 3.16.0

ستتم إزالة حزم Discord كمراجع في cBot مثال رسالة Discord الخاص بنا. إذا تمت إعادة بناء cBot الآن، فسينتهي البناء برسائل خطأ متعددة بسبب المكتبات المفقودة.

ارجع إلى cTrader وأضف المكتبات المطلوبة باستخدام وظيفة إدارة المراجع في الأعلى.

عندما تظهر نافذة مدير المراجع، انتقل إلى تصفح ثم انقر على زر تصفح. حدد ملف DLL ثم قم بنفس الإجراء لجميع ملفات DLL التي تريد الإشارة إليها.

انقر على تطبيق وقم ببناء cBot مرة أخرى.

الآن، عندما تقوم بتشغيل مثيل cBot، سيكتمل البناء بدون أخطاء، ويجب أن ترى وصول الرسالة في قناة Discord.

أوضحت هذه المقالة كيفية الإشارة إلى مكتبات الطرف الثالث في cTrader Algo باستخدام طريقتين مختلفتين.