تجميع وبناء الخوارزميات في cTrader
يمكنك استخدام نوعين من المترجمات عند تجميع/بناء خوارزميات cTrader:
- المترجم المدمج
- مترجم .NET SDK
بشكل افتراضي، يستخدم cTrader المترجم المدمج ولكننا نوصي بتغييره إلى مترجم .NET SDK إذا كان مثبتًا على جهازك المحلي.
تجميع ملفات CSPROJ واسترداد cBots
يتيح لك cTrader Algo إنشاء الخوارزميات وحفظها عن طريق تجميع ملفات .csproj. استخدم الكود التالي لتنفيذ العملية:
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 | |
إذا قمت بتعيين AccessRights إلى None، فيجب عليك تحديد المسارات إلى الدلائل داخل مجلد بيانات الخوارزمية. يعني هذا التكوين أنه لا يُسمح للخوارزميات بتجميع الملفات خارج مجلدات البيانات الخاصة بها.
إذا قمت بتعيين AccessRights إلى FullAccess، فيمكنك تحديد المسار إلى أي دليل أو موقع لكل من ملف .csproj والخوارزمية المُنشأة.
إذا كنت تنوي استخدام مسار ملف نسبي، فيجب أن يكون الدليل الأساسي موجودًا على طول هذا المسار: ..Documents\Algo\Data\{Algo type}\{Algo name}.
بعد بدء تشغيل cBot محليًا، سيتم حفظ الخوارزمية في الدليل المحدد.
تبديل المترجمات
لتغيير إلى مترجم مختلف، انقر فوق الإعدادات في الزاوية السفلية اليسرى من واجهة المستخدم لفتح نافذة الإعدادات، ثم انتقل إلى علامة التبويب Algo.

افتح القائمة المنسدلة تحديد المترجم واختر مترجمًا مناسبًا من الخيارات المتاحة.
المترجم المدمج
المترجم المدمج مضمن في منصة cTrader Windows. بالمقارنة مع مترجم .NET SDK، فإنه يحتوي على ميزات محدودة. على سبيل المثال، لا يدعم المترجم المدمج أي حزم وأطر عمل .NET من جهات خارجية مثل WinForms وWPF.
مترجم .NET SDK
يوصى بشدة باستخدام مترجم .NET SDK للمشاريع الكبيرة أو الإضافات التي تستخدم مكتبات .NET من جهات خارجية. يدعم مترجم .NET SDK أيضًا ميزات إضافية مثل معلمات البناء.
تتيح قائمة تحديد المترجم اختيار أي مترجم .NET SDK قمت بتثبيته على جهازك المحلي. إذا لم يتم تثبيت أي إصدارات من .NET SDK، فيمكنك دائمًا النقر فوق الزر تثبيت .NET SDK للانتقال إلى صفحة تنزيل أحدث إصدار مستقر.
المعلمات
يوفر cTrader معلمات قابلة للتخصيص يمكنك تحديدها عند استخدام .NET CLI عند بناء cBots/المؤشرات الخاصة بك في بيئات التطوير المتكاملة الخارجية. يتم تعريفها أدناه:
| الاسم | القيمة الافتراضية | الوصف |
|---|---|---|
| AlgoName | $(MSBuildProjectName) | يحدد اسم ملف .algo.لا تؤثر هذه الخاصية على AssemblyName. |
| AlgoBuild | True | يمكّن بناء ملفات .algo. |
| AlgoPublish | True | يمكّن نسخ ملفات .algo إلى دليل MyDocuments للمستخدم الحالي بعد البناء الناجح. |
| IncludeSource | False | يتضمن دليل المصدر في ملف .algo الهدف. |
| IncludeSymbols | False (الإصدار)True (التصحيح) | يتضمن رموز التصحيح في ملف .algo الهدف. |
التعامل مع خطأ إضافي
إذا قمت بالإشارة إلى حزمة NuGet cTrader.Automate في مشروع مكتبة الفئات الخاص بك الذي لا يحتوي على أي فئات خوارزمية cTrader فيه (مثل Robot لـ cBot)، فستواجه خطأ "يجب أن تحتوي المجموعة على نوع خوارزمية" عندما تحاول بناء المشروع. يحدث هذا الخطأ نظرًا لأن معلمة AlgoBuild تساوي True بشكل افتراضي.
لإصلاح المشكلة، ما عليك سوى تعيين AlgoBuild إلى False في ملف مشروع .NET الخاص بك كما هو موضح في المثال أدناه:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AlgoBuild>false</AlgoBuild>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="cTrader.Automate" Version="1.*-*" />
</ItemGroup>
</Project>