插件中的可自定义参数
可自定义参数是用户可编辑的字段,其值和设置用于算法的操作。 这些参数允许插件的用户配置或控制该插件的行为,而无需访问或修改其源代码。
一分钟了解插件可自定义参数
- 可自定义参数显著扩展了插件的功能,将静态插件代码转变为动态且可配置的逻辑。
- 插件开发者在代码中使用可自定义参数,以便最终用户可以根据自己的偏好定制算法的行为。
- 插件中的可自定义参数提高了可访问性,并使插件操作与 cBot 和指标的既定功能保持一致。
您可以在设置的 插件部分 中访问和编辑插件的可自定义参数(如果可用)。

参数声明
参数通过放置在公共 C# 属性上方的 [Parameter] 属性进行声明。 插件引擎在初始化时读取这些属性,并相应地创建参数面板。
注意
Python 插件使用在其 .cs 文件 中声明的可自定义参数。
以下代码告诉 cTrader 在 API & SYSTEM SETTINGS 组下显示一个 API Key 文本字段,用户在插件启动前输入的任何内容都将分配给 ApiKey 属性。
| [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}");
}
|
