コンテンツにスキップ

プラグインのカスタマイズ可能なパラメーター

カスタマイズ可能なパラメーターは、アルゴリズムの操作で使用される値や設定を持つユーザー編集可能なフィールドです。 これらのパラメーターにより、プラグインのユーザーはそのソースコードにアクセスまたは変更することなく、プラグインの動作を設定または制御できます。

プラグインのカスタマイズ可能なパラメーターを1分で理解

  • カスタマイズ可能なパラメーターは、プラグインが達成できることを大幅に拡張し、静的なプラグインコードを動的で設定可能なロジックに変換します。
  • プラグイン開発者は、エンドユーザーがアルゴの動作を自分の好みに合わせて調整できるように、コードにカスタマイズ可能なパラメーターを使用します。
  • プラグインのカスタマイズ可能なパラメーターは、アクセシビリティを向上させ、プラグインの操作をcBotやインジケーターの確立された機能に合わせます。

利用可能な場合、プラグインのカスタマイズ可能なパラメーターには、設定のプラグインセクションからアクセスして編集できます。

パラメーター宣言

パラメーターは、パブリックC#プロパティの上に配置された[Parameter]属性を使用して宣言されます。 プラグインエンジンは、初期化時にこれらの属性を読み取り、それに応じてパラメーターパネルを作成します。

注意

Pythonプラグインは、.csファイルで宣言されたカスタマイズ可能なパラメーターを使用します。

以下のコードは、cTraderにAPIキーテキストフィールドをAPI & システム設定グループの下に表示するように指示し、ユーザーが入力した内容がプラグインの開始前に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