พารามิเตอร์ที่ปรับแต่งได้ในปลั๊กอิน พารามิเตอร์ที่ปรับแต่งได้คือฟิลด์ที่ผู้ใช้สามารถแก้ไขได้ ซึ่งค่าหรือการตั้งค่าจะถูกใช้ในการทำงานของอัลกอริทึม พารามิเตอร์เหล่านี้ช่วยให้ผู้ใช้ปลั๊กอินสามารถกำหนดค่าหรือควบคุมพฤติกรรมของปลั๊กอินได้โดยไม่จำเป็นต้องเข้าถึงหรือแก้ไขซอร์สโค้ด
พารามิเตอร์ที่ปรับแต่งได้ในปลั๊กอินภายในหนึ่งนาที
พารามิเตอร์ที่ปรับแต่งได้ช่วยขยายขีดความสามารถของปลั๊กอินได้อย่างมาก โดยเปลี่ยนโค้ดปลั๊กอินที่คงที่ให้กลายเป็นตรรกะที่เปลี่ยนแปลงได้และกำหนดค่าได้ นักพัฒนาปลั๊กอินใช้พารามิเตอร์ที่ปรับแต่งได้ในโค้ดของพวกเขา เพื่อให้ผู้ใช้ปลายทางสามารถปรับพฤติกรรมของอัลกอริทึมให้ตรงกับความต้องการของพวกเขาได้ พารามิเตอร์ที่ปรับแต่งได้ในปลั๊กอินช่วยเพิ่มการเข้าถึงและทำให้การทำงานของปลั๊กอินสอดคล้องกับความสามารถที่กำหนดไว้ของ cBot และอินดิเคเตอร์ คุณสามารถเข้าถึงและแก้ไขพารามิเตอร์ที่ปรับแต่งได้ของปลั๊กอิน หากมี ใน ส่วนปลั๊กอิน ในการตั้งค่า
การประกาศพารามิเตอร์ พารามิเตอร์จะถูกประกาศโดยใช้แอตทริบิวต์ [Parameter] ที่วางไว้เหนือคุณสมบัติ C# สาธารณะ เครื่องมือปลั๊กอินจะอ่านแอตทริบิวต์เหล่านี้ในขั้นตอนการเริ่มต้นและสร้างแผงพารามิเตอร์ตามนั้น
หมายเหตุ
ปลั๊กอิน Python ใช้พารามิเตอร์ที่ปรับแต่งได้ซึ่งประกาศใน ไฟล์ .cs
โค้ดด้านล่างนี้บอกให้ cTrader แสดงฟิลด์ข้อความ API Key ภายใต้กลุ่ม API & SYSTEM SETTINGS และสิ่งที่ผู้ใช้ป้อนเข้ามาจะถูกกำหนดให้กับคุณสมบัติ 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() หรือใช้ระหว่างการทำงาน
ในตัวอย่างโค้ดนี้ พารามิเตอร์ที่ปรับแต่งได้ที่ประกาศไว้ก่อนหน้านี้หลายรายการถูกใช้ในคำสั่งพิมพ์ ซึ่งจะถูกดำเนินการเมื่อปลั๊กอินเริ่มทำงาน:
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}" );
}