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

المعلمات القابلة للتخصيص في الإضافات

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

المعلمات القابلة للتخصيص للإضافات في دقيقة واحدة

  • تعمل المعلمات القابلة للتخصيص على توسيع ما يمكن للإضافات تحقيقه بشكل كبير، مما يحول كود الإضافة الثابت إلى منطق ديناميكي وقابل للتكوين.
  • يستخدم مطورو الإضافات المعلمات القابلة للتخصيص في الكود الخاص بهم حتى يتمكن المستخدم النهائي من تخصيص سلوك الخوارزمية وفقًا لتفضيلاته.
  • تحسن المعلمات القابلة للتخصيص في الإضافات إمكانية الوصول وتجعل عمليات الإضافة متوافقة مع القدرات المعروفة لخوارزميات cBot والمؤشرات.

يمكنك الوصول إلى المعلمات القابلة للتخصيص للإضافة وتحريرها، إذا كانت متاحة، في قسم الإضافات في الإعدادات.

إعلان المعلمة

يتم إعلان المعلمات باستخدام السمة [Parameter] الموضوعة فوق خاصية C# العامة. يقرأ محرك الإضافة هذه السمات عند التهيئة وينشئ لوحة المعلمات وفقًا لذلك.

ملاحظة

تستخدم إضافات Python المعلمات القابلة للتخصيص المعلنة في ملفات .cs الخاصة بها.

يخبر الكود أدناه cTrader بعرض حقل نص API Key تحت مجموعة API & SYSTEM SETTINGS، وسيتم تعيين ما يدخله المستخدم إلى خاصية ApiKey قبل بدء تشغيل الإضافة.

1
2
[Parameter("API Key", Group = "API & SYSTEM SETTINGS", DefaultValue = " ")]
public string ApiKey { get; set; }

فيما يلي مثال على الكود الذي يعلن عن عدة معلمات قابلة للتخصيص:

 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
// API & SYSTEM SETTINGS
[Parameter("API Key", Group = "API & SYSTEM SETTINGS", DefaultValue = " ")]
public string ApiKey { get; set; }

[Parameter("Max Retries", Group = "API & SYSTEM SETTINGS", DefaultValue = 3)]
public int MaxRetries { get; set; }

[Parameter("Enable Logging", Group = "API & SYSTEM SETTINGS", DefaultValue = false)]
public bool EnableLogging { get; set; }

// RISK MANAGEMENT

[Parameter("Stop Loss (pips)", Group = "RISK MANAGEMENT", DefaultValue = 40.0, MinValue = 1.0, Step = 1.0)]
public double StopLossPips { get; set; }

[Parameter("Enable Trailing Stop", Group = "RISK MANAGEMENT", DefaultValue = true)]
public bool EnableTrailingStop { get; set; }

[Parameter("Stop Loss Trigger Method", Group = "RISK MANAGEMENT", DefaultValue = StopTriggerMethod.Trade)]
public StopTriggerMethod StopLossTrigger { get; set; }

// TRADE SETTINGS
[Parameter("Trade Direction", Group = "TRADE SETTINGS", DefaultValue = TradeType.Buy)]
public TradeType TradeDirection { get; set; }

// ORDER SETTINGS
[Parameter("Pending Order Type", Group = "ORDER SETTINGS", DefaultValue = PendingOrderType.Limit)]
public PendingOrderType OrderType { get; set; }

[Parameter("Expiry Time (HH:mm:ss)", Group = "ORDER SETTINGS", DefaultValue = "00:30:00")]
public string ExpiryTime { get; set; }

استخدام المعلمة

بمجرد تحديد المعلمات، يمكن استخدامها داخل أي طريقة في كود الإضافة. في معظم الحالات، سيتم قراءة هذه القيم داخل OnStart() أو استخدامها أثناء العمليات.

في مثال الكود هذا، يتم استخدام العديد من المعلمات القابلة للتخصيص المعلنة مسبقًا في عبارات الطباعة، والتي يتم تنفيذها عند بدء تشغيل الإضافة:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
protected override void OnStart()
{
    Print($"API Key: {ApiKey}");
    Print($"Max Retries: {MaxRetries}");
    Print($"Enable Logging: {EnableLogging}");

    Print($"Stop Loss (pips): {StopLossPips}");
    Print($"Enable Trailing Stop: {EnableTrailingStop}");
    Print($"Stop Loss Trigger Method: {StopLossTrigger}");

    Print($"Trade Direction: {TradeDirection}");

    Print($"Pending Order Type: {OrderType}");
    Print($"Expiry Time: {ExpiryTime}");
}

Image title