Bỏ qua

Các tham số có thể tùy chỉnh trong plugin

Các tham số có thể tùy chỉnh là các trường có thể chỉnh sửa bởi người dùng mà giá trị và cài đặt của chúng được sử dụng trong các hoạt động của thuật toán. Các tham số này cho phép người dùng của một plugin cấu hình hoặc kiểm soát hành vi của plugin đó mà không cần truy cập hoặc chỉnh sửa mã nguồn của nó.

Các tham số có thể tùy chỉnh của plugin trong một phút

  • Các tham số có thể tùy chỉnh mở rộng đáng kể những gì plugin có thể đạt được, biến mã plugin tĩnh thành logic động và có thể cấu hình.
  • Các nhà phát triển plugin sử dụng các tham số có thể tùy chỉnh trong mã của họ để người dùng cuối có thể điều chỉnh hành vi của thuật toán theo sở thích của họ.
  • Các tham số có thể tùy chỉnh trong plugin cải thiện khả năng tiếp cận và đưa các hoạt động của plugin phù hợp với các khả năng đã được thiết lập của cBot và chỉ báo.

Bạn có thể truy cập và chỉnh sửa các tham số có thể tùy chỉnh của một plugin, nếu có, trong phần plugin trong cài đặt.

Khai báo tham số

Các tham số được khai báo bằng cách sử dụng thuộc tính [Parameter] đặt trên một thuộc tính công khai của C#. Công cụ plugin sẽ đọc các thuộc tính này khi khởi tạo và tạo bảng tham số tương ứng.

Ghi chú

Các plugin Python sử dụng các tham số có thể tùy chỉnh được khai báo trong các tệp .cs của chúng.

Đoạn mã dưới đây yêu cầu cTrader hiển thị một trường văn bản API Key dưới nhóm API & SYSTEM SETTINGS, và bất cứ giá trị nào người dùng nhập vào sẽ được gán cho thuộc tính ApiKey trước khi plugin bắt đầu.

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

Đây là một ví dụ mã khai báo một số tham số có thể tùy chỉnh:

 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; }

Sử dụng tham số

Khi các tham số đã được định nghĩa, chúng có thể được sử dụng bên trong bất kỳ phương thức nào trong mã plugin. Trong hầu hết các trường hợp, các giá trị này sẽ được đọc bên trong OnStart() hoặc được sử dụng trong các hoạt động.

Trong ví dụ mã này, một số tham số có thể tùy chỉnh đã được khai báo trước đó được sử dụng trong các câu lệnh in, chúng sẽ được thực thi khi plugin bắt đầu:

 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