콘텐츠로 이동

플러그인의 맞춤형 매개 변수

맞춤형 매개 변수는 알고리즘의 작업에 사용되는 값과 설정을 사용자가 편집할 수 있는 필드입니다. 이러한 매개 변수를 통해 플러그인 사용자는 소스 코드에 접근하거나 수정하지 않고도 플러그인의 동작을 구성하거나 제어할 수 있습니다.

1분 만에 플러그인 맞춤형 매개 변수

  • 맞춤형 매개 변수는 플러그인이 달성할 수 있는 범위를 크게 확장하여 정적 플러그인 코드를 동적이고 구성 가능한 논리로 변환합니다.
  • 플러그인 개발자는 코드에서 맞춤형 매개 변수를 사용하여 최종 사용자가 알고리즘의 동작을 자신의 선호에 맞게 조정할 수 있도록 합니다.
  • 플러그인의 맞춤형 매개 변수는 접근성을 향상시키고 플러그인 작업을 cBot 및 지표의 확립된 기능과 일치시킵니다.

사용 가능한 경우 설정의 플러그인 섹션에서 플러그인의 맞춤형 매개 변수에 접근하고 편집할 수 있습니다.

매개변수 선언

매개변수는 C# 공용 속성 위에 [Parameter] 속성을 사용하여 선언됩니다. 플러그인 엔진은 초기화 시 이러한 속성을 읽고 그에 따라 매개변수 패널을 생성합니다.

참고

Python 플러그인은 .cs 파일에 선언된 사용자 정의 매개변수를 사용합니다.

아래 코드는 cTrader에게 API & SYSTEM SETTINGS 그룹 아래에 API Key 텍스트 필드를 표시하도록 지시하며, 사용자가 입력한 내용은 플러그인이 시작되기 전에 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() 내부에서 읽히거나 작업 중에 사용됩니다.

이 코드 예제에서는 이전에 선언된 여러 사용자 정의 매개변수가 플러그인이 시작될 때 실행되는 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}");
}

Image title