ข้ามไปที่เนื้อหา

cTrader ปรับปรุงประสิทธิภาพ cBot ใน

บทความนี้อธิบายวิธีเพิ่มประสิทธิภาพบอทการเทรดใน cTrader Windows และ Mac

การระบุชุดพารามิเตอร์เริ่มต้นที่เหมาะสมที่สุดสำหรับ cBot อาจเป็นเรื่องยาก โชคดีที่ cTrader มีฟีเจอร์การเพิ่มประสิทธิภาพ cBot ในตัว การเพิ่มประสิทธิภาพจะนำโค้ดของคุณไปรันหลายครั้ง โดยแต่ละรันจะอิงตามค่าพารามิเตอร์ที่แตกต่างกัน จากนั้นจะแสดงชุดผลลัพธ์ที่ปรับแต่งได้ซึ่งคุณสามารถใช้เพื่อกำหนดการกำหนดค่าพารามิเตอร์ที่เหมาะสมที่สุด

ในการใช้ฟีเจอร์นี้ ให้เลือกอินสแตนซ์ cBot และสลับไปที่แท็บ การเพิ่มประสิทธิภาพ

Image title

หลังจากนั้น กำหนดช่วงเวลา Backtesting สำหรับการเพิ่มประสิทธิภาพโดยใช้ปฏิทินแบบเลื่อนลงหรือลากแถบเลื่อน

Image title

การตั้งค่าการเพิ่มประสิทธิภาพ

เนื่องจากการเพิ่มประสิทธิภาพเป็นเพียงชุดของการ Backtest คุณสามารถระบุการตั้งค่า Backtesting ได้คล้ายกับวิธีที่ทำในแท็บ Backtesting

พารามิเตอร์การเพิ่มประสิทธิภาพ

คลิกปุ่ม พารามิเตอร์ ทางด้านซ้ายของแถบเลื่อนปฏิทิน คุณควรเห็นหน้าต่างต่อไปนี้

Image title

ในนั้น ให้ทำเครื่องหมายที่ช่องถัดจากพารามิเตอร์ cBot ที่คุณต้องการเพิ่มประสิทธิภาพ พารามิเตอร์ กรอบเวลา มีให้ใช้สำหรับ cBot ทั้งหมด

เกณฑ์การเพิ่มประสิทธิภาพ

กดปุ่ม เกณฑ์ ที่อยู่ทางขวาของปุ่ม พารามิเตอร์การเพิ่มประสิทธิภาพ cTrader จะเปิดแท็บต่อไปนี้

Image title

เกณฑ์การเพิ่มประสิทธิภาพกำหนดวิธีที่อัลกอริทึมการเพิ่มประสิทธิภาพจัดอันดับผลลัพธ์ของคุณหลังจาก Backtesting คุณสามารถเลือกระหว่างตัวเลือกต่อไปนี้:

  • มาตรฐาน - ชุดเกณฑ์ที่กำหนดไว้ล่วงหน้าซึ่งคุณสามารถตั้งเป้าหมายเพื่อลดให้น้อยที่สุดหรือเพิ่มให้มากที่สุด ในการทำเช่นนี้ ให้เลือกเกณฑ์จากเมนูแบบเลื่อนลงทางขวาและเลือกทิศทางการเพิ่มประสิทธิภาพในเมนูที่เกี่ยวข้องทางซ้าย หากต้องการเพิ่มเกณฑ์ใหม่ ให้คลิก เพิ่มเกณฑ์
  • กำหนดเอง - เกณฑ์ที่กำหนดเองภายในโค้ด cBot ของคุณโดยใช้เมธอด GetFitness() ดังที่แสดงในตัวอย่างด้านล่าง
1
2
3
4
5
protected override double GetFitness(GetFitnessArgs args)
{
    // Maximise the winning trades/losing trades ratio.
    return args.WinningTrades / args.LosingTrades;
}
1
2
3
4
5
6
protected override double GetFitness(GetFitnessArgs args)
{
    /* Maximise the winning trades/losing trades ratio
    while giving winning trades more weight. */
    return Math.Pow(args.WinningTrades, 2) / args.LosingTrades;
}

การคำนวณหลายเกณฑ์

หากใช้หลายเกณฑ์ในการคำนวณประสิทธิภาพของพารามิเตอร์ cTrader จะใช้ทั้งหมดอย่างเท่าเทียมกันเพื่อคำนวณค่าความเหมาะสมสำหรับการรันการเพิ่มประสิทธิภาพ

โดยเฉพาะอย่างยิ่ง แพลตฟอร์มจะคูณค่าของเกณฑ์การเพิ่มให้มากที่สุดทั้งหมดและแยกคูณค่าของเกณฑ์การลดให้น้อยที่สุดทั้งหมด หลังจากนั้น จะหารค่าการคูณสัมบูรณ์สำหรับเกณฑ์การเพิ่มให้มากที่สุดด้วยค่าเดียวกันสำหรับเกณฑ์การลดให้น้อยที่สุด

รหัสเทียมต่อไปนี้แสดงวิธีการคำนวณค่าความเหมาะสมของหลายเกณฑ์อย่างแม่นยำ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
numerator = 1.0
if (valuesToMaximize.Length > 0)
    numerator = Abs(Multiply(criteriaValuesToMaximize))

denominator = 1.0
if (valuesToMinimize.Length > 0)
    denominator += Abs(Multiply(criteriaValuesToMinimize))

/* The 'sign' variable can be either +` or -1 depending on whether
there are criteria for which their values are less than 0. */
sign = criteriaValuesToMinimize.Concat(criteriaValuesToMaximize).Any(v => v < 0) ? -1 : 1

fitness =  sign * numerator / denominator

วิธีการ

คลิกปุ่ม วิธีการ (แสดงเป็น GA หรือ # ขึ้นอยู่กับตัวเลือกที่เลือก) ในเมนูด้านล่าง ให้เลือกวิธีการเพิ่มประสิทธิภาพที่แพลตฟอร์มใช้

Image title

มีตัวเลือกต่อไปนี้:

  • ขั้นตอนวิธีเชิงพันธุกรรม - อัลกอริทึมจำลองกระบวนการวิวัฒนาการทางชีวภาพ โปรดดูส่วนแยกต่างหากสำหรับคำอธิบายโดยละเอียด
  • กริด (#) - อัลกอริทึมทำการ Backtest ชุดพารามิเตอร์ที่เป็นไปได้แต่ละชุดตามลำดับ

หมายเหตุ

ตามการประเมินของเรา ขั้นตอนวิธีเชิงพันธุกรรมเร็วกว่าอย่างมีนัยสำคัญในการค้นหาค่าพารามิเตอร์ที่เหมาะสมที่สุด

ทรัพยากร

คลิกปุ่ม ทรัพยากร เพื่อเลือกเปอร์เซ็นต์การใช้งาน CPU ที่จัดสรรสำหรับ Backtesting เลื่อนแถบเลื่อนเพื่อตั้งค่าเปอร์เซ็นต์การใช้งาน CPU

ยิ่งคุณจัดสรรทรัพยากรมากเท่าไร กระบวนการเพิ่มประสิทธิภาพก็จะเสร็จสมบูรณ์เร็วขึ้นเท่านั้น อย่างไรก็ตาม คุณอาจเห็นประสิทธิภาพลดลงเมื่อใช้แอปพลิเคชันอื่น

Image title

โปรดทราบว่าทรัพยากร CPU สามารถปรับได้ในระหว่างการเพิ่มประสิทธิภาพเอง

เริ่มต้นและจัดการขั้นตอนการเพิ่มประสิทธิภาพ

ในการดำเนินการเพิ่มประสิทธิภาพ ให้คลิกปุ่ม เล่น ทางด้านขวาของแถบเลื่อนปฏิทิน ขึ้นอยู่กับทรัพยากรของเครื่อง การตั้งค่าการเพิ่มประสิทธิภาพ และความซับซ้อนของ cBot การเพิ่มประสิทธิภาพอาจใช้เวลาสักครู่

แถบ UI ที่อยู่ด้านล่างแถบเลื่อนปฏิทินจะให้ข้อมูลเกี่ยวกับจำนวนรัน Backtesting ที่เสร็จสมบูรณ์ เวลาที่ผ่านไป และการประมาณเวลาที่เหลือ

Image title

ในขณะเดียวกัน หน้าจอกลางในแท็บ การเพิ่มประสิทธิภาพ จะแสดงตารางแบบเรียลไทม์ที่มีข้อมูลเกี่ยวกับรัน Backtesting ทั้งหมดที่อัลกอริทึมได้ดำเนินการเสร็จสิ้น

Image title

ในการใช้ชุดพารามิเตอร์ที่ทดสอบในระหว่างรันบางรัน ให้คลิกปุ่ม ใช้ ปุ่มนี้จะใช้งานได้เฉพาะเมื่อไม่มีขั้นตอนการเพิ่มประสิทธิภาพกำลังทำงานอยู่เท่านั้น

หรือทำเครื่องหมายที่ช่อง เลือกรันที่ดีที่สุดโดยอัตโนมัติ ในมุมบนซ้ายเพื่อให้ cTrader เลือกรัน (และพารามิเตอร์) ที่ได้ผลลัพธ์ที่ดีที่สุดตามเกณฑ์การเพิ่มประสิทธิภาพที่คุณระบุโดยอัตโนมัติ

ผลลัพธ์การปรับให้เหมาะสม

หลังจากการปรับให้เหมาะสมเสร็จสิ้น ตารางกลางจะแสดงรายการสุดท้ายของการรัน Backtesting ทั้งหมดและผลลัพธ์

ตารางนี้มีคอลัมน์ดังต่อไปนี้ เนื่องจากตารางสามารถปรับแต่งได้อย่างเต็มที่ คอลัมน์เหล่านี้สามารถลากและวางหรือปิดใช้งานทั้งหมดได้หลังจากคลิกขวาที่ตารางและยกเลิกการเลือกจากเมนูตามบริบท

ฟิลด์ คำจำกัดความ
รัน หมายเลขการรัน
ฟิตเนส ค่าที่แสดงว่าการรันเหมาะสมกับเกณฑ์การปรับให้เหมาะสมเพียงใด
อิควิตี้ อิควิตี้รวมเมื่อสิ้นสุดการรัน
คงเหลือ ยอดคงเหลือรวมเมื่อสิ้นสุดการรัน
กำไรสุทธิ ความแตกต่างระหว่างยอดคงเหลือสุดท้ายและยอดคงเหลือเริ่มต้น
เทรด จำนวนโพสิชันที่ปิดรวม
การเทรดที่ชนะ จำนวนการเทรดที่ชนะรวมที่ทำได้ในระหว่างการรัน
การเทรดที่แพ้ จำนวนการเทรดที่แพ้รวมที่ทำได้ในระหว่างการรัน
อัตราส่วนกำไรต่อขาดทุน อัตราส่วนของกำไรรวมต่อขาดทุนรวม
*Drawdown อิควิตี้สูงสุด (%) เปอร์เซ็นต์สูงสุดของ Drawdown อิควิตี้
Drawdown ยอดคงเหลือสูงสุด (%) เปอร์เซ็นต์สูงสุดของ Drawdown ยอดคงเหลือ
Drawdown อิควิตี้สูงสุด Drawdown อิควิตี้สูงสุดที่ระบุในสกุลเงินฝากของบัญชี
Drawdown ยอดคงเหลือสูงสุด Drawdown ยอดคงเหลือสูงสุดที่ระบุในสกุลเงินฝากของบัญชี
การเทรดเฉลี่ย กำไรเฉลี่ยสำหรับการเทรดทั้งหมดที่ทำในระหว่างการรัน
พารามิเตอร์การรัน คลิกปุ่ม ใช้ ในคอลัมน์นี้เพื่อใช้พารามิเตอร์จากการรันนี้กับ cBot ของคุณ

เลือกการรันเพื่อดูสถิติโดยละเอียดเกี่ยวกับการรันนั้นในส่วนแสดงผลด้านล่างตารางกลาง

เจ็ดแท็บแรกในส่วนแสดงผลนี้ให้ข้อมูลเดียวกันกับ แท็บเดียวกัน ในหน้าต่าง Backtesting แท็บ พารามิเตอร์การรัน เป็นแท็บเฉพาะสำหรับการปรับให้เหมาะสม

พารามิเตอร์การรัน

แท็บ พารามิเตอร์การรัน ให้ข้อมูลต่อไปนี้

Image title

cTrader จะไฮไลท์พารามิเตอร์ที่ปรับให้เหมาะสมทั้งหมดเป็นสีเขียว ในขณะที่พารามิเตอร์คงที่ใดๆ (ไม่ได้เปิดใช้งานใน เมนูพารามิเตอร์) จะไม่ถูกไฮไลท์

การบันทึกและโหลดผลลัพธ์การปรับให้เหมาะสม

cTrader ยังอนุญาตให้บันทึกและโหลดผลลัพธ์การปรับให้เหมาะสมไปยังและจากไฟล์ .optres ที่จัดเก็บในเครื่อง

หมายเหตุ

ไฟล์ .optres เป็นเพียงคอลเลกชันของคู่คีย์-ค่า โดยคีย์แทนการตั้งค่าและเมตริกการปรับให้เหมาะสมต่างๆ

เคล็ดลับ

คุณสามารถใช้ไฟล์ .optres เพื่อปรับปรุง cBot ของคุณต่อไปบนเครื่องในเครือข่ายท้องถิ่นหลายเครื่องโดยไม่สูญเสียความคืบหน้าใดๆ คุณยังสามารถป้อนข้อมูลจากไฟล์นี้ไปยังเครื่องมือ AI แบบสร้างสรรค์เพื่อพยายามตรวจจับรูปแบบใดๆ ในการรันที่ cBot ของคุณได้ทำเสร็จสิ้น

หากต้องการบันทึกผลลัพธ์การปรับให้เหมาะสม ให้รอจนกว่ากระบวนการจะเสร็จสิ้นและคลิกไอคอน บันทึก ในกล่องโต้ตอบตัวสำรวจไฟล์ ให้พิมพ์ชื่อไฟล์และบันทึกไฟล์

หากต้องการโหลดผลลัพธ์การปรับให้เหมาะสม ให้คลิกไอคอน โหลด และเลือกไฟล์ที่ต้องการในหน้าต่างตัวสำรวจไฟล์

Image title