Langkau tajuk talian

Parameter yang boleh disesuaikan dalam plugin

Parameter yang boleh disesuaikan ialah medan yang boleh diedit oleh pengguna yang nilai dan tetapannya digunakan dalam operasi algoritma. Parameter ini membolehkan pengguna plugin mengkonfigurasi atau mengawal tingkah laku plugin tersebut tanpa perlu mengakses atau mengubah kod sumbernya.

Parameter plugin yang boleh disesuaikan dalam satu minit

  • Parameter yang boleh disesuaikan secara signifikan memperluaskan apa yang boleh dicapai oleh plugin, mengubah kod plugin statik menjadi logik yang dinamik dan boleh dikonfigurasi.
  • Pembangun plugin menggunakan parameter yang boleh disesuaikan dalam kod mereka supaya pengguna akhir boleh menyesuaikan tingkah laku algo mengikut kehendak mereka.
  • Parameter yang boleh disesuaikan dalam plugin meningkatkan kebolehaksesan dan membawa operasi plugin selaras dengan keupayaan yang telah ditetapkan oleh cBot dan indikator.

Anda boleh mengakses dan mengedit parameter yang boleh disesuaikan bagi plugin, jika ada, dalam bahagian plugin dalam tetapan.

Pengisytiharan parameter

Parameter diisytiharkan menggunakan atribut [Parameter] yang diletakkan di atas sifat C# awam. Enjin plugin membaca atribut ini pada permulaan dan mencipta panel parameter sewajarnya.

Nota

Python plugin menggunakan parameter yang boleh disesuaikan yang diisytiharkan dalam fail .cs mereka.

Kod di bawah memberitahu cTrader untuk memaparkan medan teks API Key di bawah kumpulan API & SYSTEM SETTINGS, dan apa sahaja yang dimasukkan oleh pengguna akan diberikan kepada sifat ApiKey sebelum plugin bermula.

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

Berikut ialah contoh kod yang mengisytiharkan beberapa parameter yang boleh disesuaikan:

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

Penggunaan parameter

Setelah parameter ditakrifkan, ia boleh digunakan di dalam mana-mana kaedah dalam kod plugin. Dalam kebanyakan kes, nilai ini akan dibaca di dalam OnStart() atau digunakan semasa operasi.

Dalam contoh kod ini, beberapa parameter tersuai yang telah diisytiharkan sebelumnya digunakan dalam pernyataan cetak, yang dilaksanakan apabila plugin bermula:

 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