Lewati ke isi

Parameter yang dapat disesuaikan dalam plugin

Parameter yang dapat disesuaikan adalah bidang yang dapat diedit oleh pengguna yang nilai dan pengaturannya digunakan dalam operasi algoritma. Parameter ini memungkinkan pengguna plugin untuk mengonfigurasi atau mengontrol perilaku plugin tersebut tanpa perlu mengakses atau memodifikasi kode sumbernya.

Parameter yang dapat disesuaikan dalam plugin dalam satu menit

  • Parameter yang dapat disesuaikan secara signifikan memperluas apa yang dapat dicapai oleh plugin, mengubah kode plugin statis menjadi logika yang dinamis dan dapat dikonfigurasi.
  • Pengembang plugin menggunakan parameter yang dapat disesuaikan dalam kode mereka sehingga pengguna akhir dapat menyesuaikan perilaku algo sesuai preferensi mereka.
  • Parameter yang dapat disesuaikan dalam plugin meningkatkan aksesibilitas dan menyelaraskan operasi plugin dengan kemampuan yang telah mapan dari cBot dan indikator.

Anda dapat mengakses dan mengedit parameter yang dapat disesuaikan dari sebuah plugin, jika tersedia, di bagian plugin dalam pengaturan.

Deklarasi parameter

Parameter dideklarasikan menggunakan atribut [Parameter] yang ditempatkan di atas properti C# publik. Mesin plugin membaca atribut ini saat inisialisasi dan membuat panel parameter sesuai dengan itu.

Catatan

Plugin Python menggunakan parameter yang dapat disesuaikan yang dideklarasikan dalam file .cs mereka.

Kode di bawah ini memberi tahu cTrader untuk menampilkan bidang teks API Key di bawah grup API & SYSTEM SETTINGS, dan apa pun yang dimasukkan pengguna akan ditetapkan ke properti ApiKey sebelum plugin dimulai.

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

Berikut adalah contoh kode yang mendeklarasikan beberapa parameter yang dapat 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 didefinisikan, mereka dapat digunakan di dalam metode apa pun dalam kode plugin. Dalam kebanyakan kasus, nilai-nilai ini akan dibaca di dalam OnStart() atau digunakan selama operasi.

Dalam contoh kode ini, beberapa parameter yang dapat disesuaikan yang telah dideklarasikan sebelumnya digunakan dalam pernyataan cetak, yang dieksekusi saat plugin dimulai:

 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