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

ทดสอบย้อนหลัง cBot ใน cTrader

บทความนี้อธิบายวิธีทดสอบย้อนหลังหุ่นยนต์เทรดใน cTrader Windows และ Mac

การทดสอบย้อนหลังเป็นเครื่องมือสำหรับประเมิน cBot โดยอนุญาตให้พวกมันเทรดบนข้อมูลตลาดในอดีตภายใต้เงื่อนไขที่กำหนดไว้ล่วงหน้า

เมื่อทำการทดสอบย้อนหลัง คุณสามารถรันอินสแตนซ์ของ cBot บนการเคลื่อนไหวของตลาดในอดีต หลังจากนั้น cTrader จะสร้างรายงานโดยละเอียดเกี่ยวกับการดำเนินการเทรดที่ดำเนินการโดย cBot ของคุณและสถิติอิควิตี้/ยอดคงเหลือสุดท้าย

หมายเหตุ

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

หากต้องการทดสอบย้อนหลัง cBot ให้เลือกหนึ่งในอินสแตนซ์และสลับไปที่แท็บการทดสอบย้อนหลัง

Image title

การตั้งค่า Backtesting

ในการตั้งค่าวิธีการทำงานของ backtesting ให้คลิกไอคอน เฟือง ที่อยู่มุมบนซ้าย cTrader ควรเปิดเมนูต่อไปนี้

Image title

ตัวเลือกในเมนูนี้มีความหมายดังนี้ พารามิเตอร์ที่เกี่ยวข้องกับเงินทั้งหมด (เช่น เงินทุนเริ่มต้น) จะระบุเป็น USD

ชื่อตัวเลือก การดำเนินการและคำอธิบาย
เงินทุนเริ่มต้น กำหนดเงินทุนเริ่มต้นที่ cBot ของคุณจะใช้ในการเทรด
ค่าคอมมิชชัน กำหนดอัตราค่าคอมมิชชันต่อหนึ่งล้านหน่วยที่เทรด
ข้อมูล เลือกข้อมูล timeseries ที่ cBot ของคุณจะถูกทดสอบ ตัวเลือกที่มีให้มีดังนี้
  • ข้อมูล tick จากเซิร์ฟเวอร์ ข้อมูลจะถูกนำมาโดยตรงจากเซิร์ฟเวอร์แบบ tick ต่อ tick นี่เป็นแหล่งข้อมูลในอดีตที่แม่นยำที่สุด
  • แท่ง M1 จากเซิร์ฟเวอร์ ข้อมูลจะถูกนำมาจากแท่งเวลาหนึ่งนาทีที่สร้างโดยเซิร์ฟเวอร์
  • แท่ง M1 ในไฟล์ CSV ข้อมูลจะถูกนำมาจากแท่งเวลาหนึ่งนาทีที่กำหนดในไฟล์ CSV ที่เก็บไว้ในเครื่อง
  • แท่ง H1 จากเซิร์ฟเวอร์ ข้อมูลจะถูกนำมาจากแท่งเวลาหนึ่งชั่วโมงที่สร้างโดยเซิร์ฟเวอร์
สเปรด เลือกค่า spread ที่จะใช้ระหว่างการทำ backtesting มีตัวเลือกดังต่อไปนี้
  • ค่าคงที่ จะใช้เพียงค่าเดียวตลอดการทำ backtesting คุณสามารถเลือกจากเมนูแบบเลื่อนลง ป้อนค่าที่กำหนดเอง หรือจับคู่ค่ากับ spread ของสัญลักษณ์ปัจจุบัน (ซึ่งอัปเดตทุก tick)
  • สุ่ม กำหนดอัตรา spread ต่ำสุดและสูงสุด เมื่อ cBot ของคุณวางคำสั่ง ค่า spread แบบสุ่มที่อยู่ระหว่างอัตราที่เลือกจะถูกนำมาใช้กับคำสั่งนี้

ตัวอย่างข้อมูล M1 แบบ CSV

ในการนำข้อมูลการเทรดจากเครื่องของคุณ ตรวจสอบให้แน่ใจว่าได้สร้างไฟล์ CSV ที่คั่นด้วยเครื่องหมายจุลภาคซึ่งมีข้อมูลต่อไปนี้:

  • วันที่
  • รายชั่วโมง
  • ราคาเปิด
  • ราคาสูงสุด
  • ราคาต่ำสุด
  • ราคาปิด
  • ปริมาณ

ตัวอย่าง

1
2
3
4
2003.06.18,16:01,1.11423,1.11428,1.11332,1.11374,19
2003.06.18,16:02,1.11364,1.11436,1.11361,1.11405,7
2003.06.18,16:03,1.11402,1.11455,1.11400,1.11440,5
2003.06.18,16:04,1.11446,1.11461,1.11401,1.11447,14

ขั้นตอนและโหมดการทำ Backtesting

ระบุช่วงเวลาสำหรับการทดสอบโดยใช้การควบคุมที่สรุปไว้ด้านล่าง:

  • ใช้แถบเลื่อนแบบโต้ตอบที่ด้านบนของแท็บ Backtesting
  • เลือกค่าที่จำเป็นจากเมนูปฏิทินทางด้านซ้ายและขวาของแถบเลื่อน
  • ป้อนค่าที่กำหนดเอง (โดยใช้รูปแบบ DD:MM:YYYY) ลงในช่องทั้งสองด้านของแถบเลื่อน

Image title

คุณสามารถรัน backtesting โดยใช้โหมดต่อไปนี้:

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

การทดสอบแบบไม่เรียลไทม์

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

การทำ Backtesting แบบเรียลไทม์ (โหมดภาพ)

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

Image title

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

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

ขึ้นอยู่กับโค้ดของมัน cBot ของคุณจะดำเนินการเทรดแบบเรียลไทม์โดยตอบสนองต่อสัญญาณการวิเคราะห์ทางเทคนิคที่ปรากฏในแผนภูมิ สถิติ backtesting จะถูกอัปเดตโดยอัตโนมัติตามการดำเนินการของ cBot ของคุณ

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

การ backtest โดยใช้แผนภูมิ Renko และแท่งช่วง

cTrader รองรับการ Backtesting cBots บนกราฟ Renko และกราฟแท่งช่วง ในการทำ Backtest แบบนี้ ให้สร้าง cBot ใหม่และเลือกกราฟ Renko/แท่งช่วงเป็นกราฟการเทรดที่จะเชื่อมต่อ

Image title

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

Image title

หลังจาก cTrader สร้างกราฟ Renko/แท่งช่วงสำหรับสัญลักษณ์ที่เลือกแล้ว ให้สลับไปที่แท็บ Backtesting ในนั้น ให้กำหนดค่าโหมด/การตั้งค่า Backtesting ตามปกติ คลิกที่ไอคอน เล่น เพื่อทำ Backtest บนกราฟที่เลือก

ผลการ Backtesting

cTrader สร้างสถิติการเทรดหลายอย่างเพื่อแสดงผลลัพธ์ของ Backtesting ในการดูข้อมูลนี้ ให้ไปที่แท็บที่อยู่ด้านล่างกราฟการเทรด

Image title

กราฟอิควิตี้

เมื่อทำ Backtesting (ไม่ว่าคุณจะใช้โหมดภาพหรือไม่ก็ตาม) cTrader จะสร้างกราฟอิควิตี้โดยมีจำนวนการเทรดบนแกน X และยอดคงเหลือในบัญชีบนแกน Y มันประกอบด้วยสถิติต่อไปนี้:

  • เส้นสีเหลืองแสดงยอดคงเหลือในบัญชีที่เปลี่ยนแปลงไปในแต่ละการเทรด
  • โซนสีเทาแสดงว่าอิควิตี้รวมเพิ่มขึ้นหรือลดลงขึ้นอยู่กับการเทรดที่ทำโดยบอทของคุณ

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

สถิติการเทรด

แท็บ สถิติการเทรด มีข้อมูลว่า cBot ของคุณทำงานได้ดีแค่ไหนตลอดการ Backtesting มันรวมถึงฟิลด์ต่อไปนี้

ชื่อฟิลด์ คำจำกัดความ
กำไรสุทธิ กำไรสุทธิรวมของการเทรดทั้งหมด
อัตราส่วนกำไรต่อขาดทุน อัตราส่วนที่คำนวณโดยการหารกำไรสุทธิรวมด้วยขาดทุนสุทธิรวม
ค่าคอมมิชชัน จำนวนค่าคอมมิชชันทั้งหมดที่จ่ายสำหรับการเทรดที่ทำโดย cBot ของคุณ
Drawdown ยอดคงเหลือสูงสุด จำนวนสูงสุดของการลดลงของยอดคงเหลือ
Drawdown อิควิตี้สูงสุด จำนวนสูงสุดของการลดลงของอิควิตี้
การเทรดทั้งหมด จำนวนการเทรดทั้งหมดที่ทำโดย cBot ของคุณ
การเทรดที่ชนะ จำนวนการเทรดทั้งหมดที่ส่งผลเป็นกำไรที่เกิดขึ้นจริง
การเทรดที่ชนะติดต่อกันสูงสุด จำนวนสูงสุดของการเทรดติดต่อกันที่สร้างกำไรที่เกิดขึ้นจริง
การเทรดที่กำไรมากที่สุด กำไรที่เกิดขึ้นจริงสูงสุดที่สร้างโดยการเทรดหนึ่งครั้ง
การเทรดที่แพ้ จำนวนการเทรดทั้งหมดที่สร้างผลขาดทุนที่เกิดขึ้นจริง
การเทรดที่แพ้ติดต่อกันสูงสุด จำนวนสูงสุดของการเทรดติดต่อกันที่สร้างผลขาดทุนที่เกิดขึ้นจริง
การเทรดที่ขาดทุนมากที่สุด จำนวนผลขาดทุนที่เกิดขึ้นจริงสูงสุดที่สร้างโดยการเทรดหนึ่งครั้ง
การเทรดเฉลี่ย ค่าเฉลี่ยของ P&L ที่เกิดขึ้นจริงที่สร้างโดยการเทรดทั้งหมด

ตำแหน่ง

แท็บ โพสิชัน แสดงโพสิชันทั้งหมดที่เปิดอยู่โดย cBot ของคุณ มันมีโครงสร้างคล้ายกับแท็บ โพสิชัน ในการแสดงผล Trade Watch ปกติและมีข้อมูลเดียวกัน

Image title

คลิกที่ไอคอน เฟือง ที่มุมขวาล่างเพื่อปรับแต่งข้อมูลที่แสดงในตารางกลาง

คำสั่ง

แท็บ คำสั่ง มีข้อมูลเกี่ยวกับคำสั่งที่วางโดย cBot ของคุณ โครงสร้างและลักษณะของมันคัดลอกมาจากแท็บ คำสั่ง ในการแสดงผล Trade Watch หลัก

Image title

ประวัติ

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

Image title

เหตุการณ์

แท็บ เหตุการณ์ แสดงรายการการสื่อสารที่เกี่ยวข้องกับเซิร์ฟเวอร์ทั้งหมดและแสดงพารามิเตอร์ต่าง ๆ ของเหตุการณ์เหล่านี้

Image title

บันทึก

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

Image title