การเชื่อมต่อฟังก์ชันสำหรับการบันทึกยอดคงเหลือ ส่วนของผู้ถือหุ้น และกราฟสถิติการปรับให้เหมาะสม รายงานการเพิ่มประสิทธิภาพขั้นสูง
หากคุณมีสิทธิ์เข้าถึงโค้ด Knowledgeable Advisor คุณสามารถขยายรายงานได้โดยการเพิ่มโค้ดเพิ่มเติม
ดาวน์โหลด รายงานการเพิ่มประสิทธิภาพขั้นสูง Saver.mqh จากลิงค์ที่แนบมาด้านล่างและบันทึกลงในโฟลเดอร์เทอร์มินัล MQL5รวม
เพิ่มรหัสที่เชื่อมต่อกับไฟล์ที่ดาวน์โหลด: (คุณสามารถเพิ่มไว้ใต้บรรทัดสุดท้ายของรหัส Knowledgeable Advisor ของคุณหรือที่อื่นก็ได้)
#embrace <Superior Optimization Report Saver.mqh>
จากนั้นคุณจะต้องเพิ่ม โทร ไปยังฟังก์ชันที่ส่งออกไปยังฟังก์ชันที่มีอยู่ใน Knowledgeable Advisor ของคุณ: (หากไม่มีฟังก์ชัน ให้เพิ่มเข้าไป)
void OnTick(){ save_OnTick(TimeCurrent(), AccountInfoDouble(ACCOUNT_BALANCE), AccountInfoDouble(ACCOUNT_EQUITY)); } void OnTesterInit() { save_OnTesterInit(); } void OnTesterDeinit(){ save_OnTesterDeinit(); } double OnTester(){ double AvgPips=0; save_Add( AvgPips, 2, "Customized 1", true); save_Add( TesterStatistics( STAT_PROFIT ), 2, "Customized 2"); double Customized = 0; saveCharts(Customized); return Customized; }
ใน พื้นที่ไฮไลต์คุณสามารถเพิ่มเกณฑ์ของคุณเองที่คุณต้องการรวมไว้ได้ รายงานการเพิ่มประสิทธิภาพขั้นสูง.
ตัวอย่างเช่น ลองเพิ่มโค้ดนี้ลงใน Shifting Common Knowledgeable Advisor จากโฟลเดอร์ Examples (…MQL5ExpertsExamplesMoving AverageMoving Common.mq5) ขั้นแรก คัดลอก Knowledgeable Advisor เดิมและตั้งชื่อเป็น Shifting Common Charts.mq5 ตอนนี้ให้เพิ่มโค้ดจากคำแนะนำด้านบนลงไป
ที่ การเปลี่ยนแปลง อยู่ที่ส่วนท้ายสุดของโค้ดเท่านั้น โดยเริ่มจากฟังก์ชัน OnTick():
void OnTick(void) { if(SelectPosition()) CheckForClose(); else CheckForOpen(); save_OnTick (TimeCurrent(), AccountInfoDouble( ACCOUNT_BALANCE), AccountInfoDouble( ACCOUNT_EQUITY)); } void OnTesterInit() { save_OnTesterInit(); } void OnTesterDeinit(){ save_OnTesterDeinit(); } double OnTester(){ double AvgPips=0; save_Add( AvgPips, 2, "Customized 1", true); save_Add( TesterStatistics( STAT_PROFIT ), 2, "Customized 2"); double Customized = 0; saveCharts(Customized); return Customized; } #embrace <Superior Optimization Report Saver.mqh>
อย่างที่คุณเห็น มันค่อนข้างง่ายและใช้เวลาเพียงไม่กี่นาที
หลังจากนั้น คุณสามารถดำเนินการปรับให้เหมาะสมได้:


ภาพหน้าจอสุดท้ายแสดงให้เห็นว่าโค้ดที่เชื่อมต่อได้เพิ่มพารามิเตอร์ 2 ตัว:
- บันทึกสถิติ – เปิดหรือปิดการรวบรวมสถิติ
- พิกเซลในแผนภูมิสมดุลและส่วนทุน – ระบุจำนวนพิกเซลในความกว้างของมินิชาร์ต
เมื่อการเพิ่มประสิทธิภาพเสร็จสมบูรณ์ คุณสามารถสร้างรายงานและดูสิ่งต่อไปนี้:
|
100 เส้นด้วย ระยะเวลาการเคลื่อนย้าย |
10 เส้นด้วย การเคลื่อนย้ายกะ |
หากมีมากกว่า 20 เส้น ระบบจะแสดงค่าเฉลี่ยแนวนอนเพียง 3 เส้นเท่านั้น: 3 เส้นด้านบนและ 3 เส้นด้านล่าง
การรับรู้ 100 บรรทัดเป็นเรื่องยาก ดังนั้นคุณต้องใช้ตัวกรอง หรือคุณสามารถปรับขนาดแผนภูมิเป็น 100% ของความกว้างหน้าจอ หรือคลิกที่แผนภูมิเพื่อเปิดใน Google Charts ซึ่งช่วยให้คุณสามารถซูมโดยใช้ล้อเลื่อนของเมาส์ได้
จะดีกว่าถ้าใช้ตัวแปรอินพุตที่ไม่ได้ใช้ขั้นตอนเดียวกัน แต่ใช้มาตราส่วนผ่านตัวแจงนับ (แจงนับ) เช่น: 1,2,3,5,7,10,15,20,30,50,70,100 – จะมีเพียง 12 บรรทัด แทนที่จะเป็น 100
enum nums1 {__0=0, __1=1, __2=2, __3=3, __5=5, __7=7, __10=10, __15=15, __20=20, __30=30, __50=50, __70=70, __100=100, __150=150, __200=200, __300=300, __500=500}; enter nums1 MovingPeriod = 10;
คุณสามารถดาวน์โหลด เวอร์ชันแจงนับ ของที่ปรึกษาผู้เชี่ยวชาญด้านล่าง
แทนที่จะผ่านการปรับให้เหมาะสม 1,000 ครั้ง จะมี 120 ครั้ง และเวลาในการคำนวณจะเร็วขึ้น ~8 เท่า และขนาดไฟล์จะเล็กลง ~8 เท่า
ผลลัพธ์จะมองเห็นได้ชัดเจนยิ่งขึ้น:

ผลลัพธ์ที่มี MovingPeriod = 15 โดดเด่นทันที โดยมีเส้นเฉลี่ยสูงสุดและสูงสุดสูงสุด
อย่างไรก็ตาม ดังเช่นที่เป็นอยู่บ่อยครั้ง ผลลัพธ์ที่ดีที่สุดของ Backtest ไม่ใช่สิ่งที่ดีที่สุดสำหรับการทดสอบล่วงหน้า:

คุณสามารถ เปิดและตรวจสอบรายงานผลลัพธ์.


