플러그인의 맞춤형 매개 변수
맞춤형 매개 변수는 알고리즘의 작업에 사용되는 값과 설정을 사용자가 편집할 수 있는 필드입니다. 이러한 매개 변수를 통해 플러그인 사용자는 소스 코드에 접근하거나 수정하지 않고도 플러그인의 동작을 구성하거나 제어할 수 있습니다.
1분 만에 플러그인 맞춤형 매개 변수
- 맞춤형 매개 변수는 플러그인이 달성할 수 있는 범위를 크게 확장하여 정적 플러그인 코드를 동적이고 구성 가능한 논리로 변환합니다.
- 플러그인 개발자는 코드에서 맞춤형 매개 변수를 사용하여 최종 사용자가 알고리즘의 동작을 자신의 선호에 맞게 조정할 수 있도록 합니다.
- 플러그인의 맞춤형 매개 변수는 접근성을 향상시키고 플러그인 작업을 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() 내부에서 읽히거나 작업 중에 사용됩니다.
이 코드 예제에서는 이전에 선언된 여러 사용자 정의 매개변수가 플러그인이 시작될 때 실행되는 print 문에서 사용됩니다:
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}");
}
|
