Monday 21 August 2017

การทดสอบ กลยุทธ์การซื้อขาย


การทดสอบกลยุทธ์การซื้อขาย ความคิดของการซื้อขายอัตโนมัติเป็นที่น่าสนใจจากข้อเท็จจริงที่ว่าหุ่นยนต์ซื้อขายสามารถทำงานไม่หยุดเป็นเวลา 24 ชั่วโมงต่อวันเจ็ดวันต่อสัปดาห์ หุ่นยนต์ที่ไม่ได้รับเหนื่อยสงสัยหรือกลัวก็เป็นบริการฟรีจากปัญหาทางจิตใจใด ๆ มันเป็นเพียงพอที่จะเห็นได้ชัดว่าเป็นระเบียบแบบแผนกฎการค้าและการใช้พวกเขาในขั้นตอนวิธีและหุ่นยนต์ที่มีความพร้อมที่จะทำงานอย่างไม่รู้จักเหน็ดเหนื่อย แต่ก่อนอื่นคุณต้องให้แน่ใจว่าต่อไปนี้สองเงื่อนไขสำคัญที่จะได้พบกับ: ที่ปรึกษาผู้เชี่ยวชาญด้านประสิทธิภาพการดำเนินงานการค้าตามหลักเกณฑ์ของระบบซื้อขายในนั้น กลยุทธ์การค้าดำเนินการในอีเอแสดงให้เห็นถึงผลกำไรในประวัติศาสตร์ ข้อ จำกัด ฟังก์ชั่นในเครื่องทดสอบกลยุทธ์ มีข้อ จำกัด การดำเนินงานฟังก์ชั่นบางอย่างในการทดสอบกลยุทธ์ขั้วของลูกค้าที่มี พิมพ์ () และ PrintFormat () ฟังก์ชั่น แจ้งเตือน () MessageBox () PlaySound () SendFTP, SendMail () SendNotification () WebRequest () ฟังก์ชั่น Tick​​ โหมดรุ่น ที่ปรึกษาผู้เชี่ยวชาญเป็นโปรแกรมที่เขียนใน MQL5 ที่จะดำเนินการในแต่ละครั้งในการตอบสนองต่อบางเหตุการณ์ภายนอก อีเอมีฟังก์ชั่นที่สอดคล้องกัน (จัดการเหตุการณ์) สำหรับแต่ละเหตุการณ์ที่กำหนดไว้ล่วงหน้า เหตุการณ์ NewTick (การเปลี่ยนแปลงของราคา) เป็นกิจกรรมหลักสำหรับอีเอและดังนั้นเราต้องสร้างลำดับขีดในการทดสอบ EA มี 3 โหมดของการสร้างขีดดำเนินการใน Tester กลยุทธ์ของ MetaTrader ขั้วลูกค้า 5: เห็บทุก 1 นาที OHLC (ราคา OHLC ด้วยบาร์นาที) เปิดราคาเพียง พื้นฐานและรายละเอียดมากที่สุดเป็นโหมดที่เห็บทุกอีกสองโหมด simplifications ของหนึ่งขั้นพื้นฐานและจะมีการอธิบายไว้ในการเปรียบเทียบกับเห็บทุกโหมด พิจารณาทั้งสามรูปแบบเพื่อที่จะเข้าใจความแตกต่างระหว่างพวกเขา ทุก Tick ข้อมูลคำพูดประวัติศาสตร์สำหรับเครื่องมือทางการเงินที่ถูกโอนจากเซิร์ฟเวอร์ที่จะซื้อขาย MetaTrader 5 ขั้วของลูกค้าในรูปแบบของแถบนาทีบรรจุ รายละเอียดเกี่ยวกับการเกิดขึ้นของการร้องขอและการก่อสร้างของกรอบเวลาที่จำเป็นที่สามารถหาได้จากบทที่ข้อมูลการจัดระเบียบของการเข้าถึง MQL5 อ้างอิง องค์ประกอบที่น้อยที่สุดของประวัติศาสตร์เป็นราคาที่บาร์นาทีจากการที่คุณสามารถได้รับข้อมูลเกี่ยวกับสี่ค่าของราคา: เปิด - ราคาที่บาร์นาทีเปิด; สูง - สูงสุดที่ประสบความสำเร็จในช่วงที่ถูกบาร์นาทีนี้ ต่ำ - ขั้นต่ำที่ประสบความสำเร็จในช่วงที่ถูกบาร์นาทีนี้ ปิด - ราคาปิดของบาร์ บาร์นาทีใหม่จะไม่เปิดช่วงเวลานาทีที่ใหม่เริ่มต้น (จำนวนวินาทีกลายเป็นเท่ากับ 0) แต่เมื่อเห็บเกิดขึ้น - การเปลี่ยนแปลงราคาอย่างน้อยหนึ่งจุด ตัวเลขที่แสดงให้เห็นแถบนาทีแรกของการซื้อขายในสัปดาห์ใหม่ที่มีเวลาเปิด 2011/01/10 00:00 ช่องว่างระหว่างราคาวันศุกร์และวันจันทร์ที่เราเห็นในแผนภูมิเป็นเรื่องธรรมดาเนื่องจากอัตราแลกเปลี่ยนสกุลเงินมีความผันผวนแม้ในวันหยุดสุดสัปดาห์ในการตอบสนองต่อข่าวที่เข้ามา สำหรับแถบนี้เราเพียง แต่รู้ว่าแถบนาทีก็เปิด 10 มกราคม 2011 ที่ 00 ชั่วโมง 00 นาที แต่เรารู้อะไรเกี่ยวกับวินาที มันจะได้รับการเปิด 00:00:12 หรือ 00:00:36 (12 หรือ 36 วินาทีหลังจากที่เริ่มต้นของวันใหม่) หรือเวลาอื่น ๆ ที่อยู่ในนาทีที่ แต่เรารู้ว่าราคาเปิด EURUSD อยู่ที่ 1.28940 ในเวลาเปิดแถบนาทีใหม่ นอกจากนี้เรายังไม่ทราบ (ที่ถูกต้องภายในสอง) เมื่อเราได้รับเครื่องหมายที่สอดคล้องกับราคาปิดของบาร์นาทีถือว่าเป็นที่ เรารู้จักกันเพียงสิ่งเดียว - ราคาปิดล่า​​สุดของบาร์นาที นาทีนี้ราคาถูก 1.28958 ช่วงเวลาของการปรากฏตัวของสูงและราคาที่ต่ำยังไม่เป็นที่รู้จัก แต่เรารู้ว่าราคาสูงสุดและต่ำสุดอยู่ในระดับของ 1.28958 1.28940 และตามลำดับ เพื่อทดสอบกลยุทธ์การซื้อขายที่เราต้องลำดับของเห็บบนที่ทำงานของที่ปรึกษาผู้เชี่ยวชาญจะได้รับการจำลอง ดังนั้นสำหรับบาร์ทุกนาทีเรารู้ 4 จุดควบคุม ซึ่งราคาที่ได้รับแน่นอน ถ้าแถบมีเพียง 4 เห็บแล้วนี้เป็นข้อมูลเพียงพอที่จะดำเนินการทดสอบ แต่มักจะมีปริมาณเห็บมากกว่า 4 จึงมีความจำเป็นที่จะต้องสร้างจุดควบคุมเพิ่มเติมสำหรับเห็บซึ่งเกิดขึ้นในระหว่างเปิดสูงต่ำและราคาปิด หลักการของทุกเห็บเห็บโหมดรุ่นที่อธิบายไว้ในอัลกอริทึมของเห็บ ?? รุ่นภายใน Tester กลยุทธ์ของ MetaTrader 5 สถานีร่างที่จะนำเสนอดังต่อไปนี้ เมื่อการทดสอบในโหมดเห็บทุกที่ OnTick () ฟังก์ชันของอีเอจะถูกเรียกว่าที่จุดควบคุมทุก จุดควบคุมแต่ละเห็บจากลำดับที่สร้าง อีเอจะได้รับเวลาและราคาของเห็บจำลองเช่นเดียวกับที่มันจะเมื่อทำงานออนไลน์ สำคัญ: โหมดการทดสอบเห็บทุกคนเป็นที่ถูกต้องที่สุด แต่ในเวลาเดียวกันที่ใช้เวลานานที่สุด สำหรับการทดสอบครั้งแรกของคนส่วนใหญ่ของกลยุทธ์การซื้อขายก็มักจะเพียงพอที่จะใช้หนึ่งในสองโหมดอื่น ๆ การทดสอบ 1 นาที OHLC โหมดเห็บทุกคนเป็นที่ถูกต้องที่สุดในสามรูปแบบ แต่ในเวลาเดียวกันเป็นที่ช้าที่สุด การทำงานของ OnTick () ดำเนินการที่เกิดขึ้นในทุกเห็บขณะที่ปริมาณเห็บจะค่อนข้างใหญ่ สำหรับกลยุทธ์ซึ่งในลำดับขีดของการเคลื่อนไหวของราคาตลอดทั้งแถบที่ไม่สำคัญมีโหมดการจำลองได้เร็วขึ้นและขรุขระ - 1 นาที OHLC ในโหมด OHLC 1 นาทีลำดับเห็บมีการก่อสร้างโดยเฉพาะราคา OHLC ของบาร์นาที จำนวนจุดควบคุมที่สร้างจะลดลงอย่างมีนัยสำคัญ - ด้วยเหตุนี้จึงเป็นเวลาที่ทดสอบ การเปิดตัวของ OnTick () ฟังก์ชันที่จะดำเนินการในทุกจุดควบคุมซึ่งถูกสร้างขึ้นโดยราคา OHLC บาร์นาที ปฏิเสธที่จะสร้างเพิ่มเติมเห็บกลางระหว่างเปิดสูงต่ำและราคาปิดจะนำไปสู่​​การปรากฏตัวของชะตาแข็งในการพัฒนาของราคาที่จากช่วงเวลาที่ว่าราคาจะถูกกำหนดเปิด นี้จะทำให้มันเป็นไปได้ที่จะสร้างจอกทดสอบซึ่งแสดงให้เห็นกราฟขึ้นที่ดีของความสมดุลของการทดสอบ ตัวอย่างของจอกดังกล่าวจะถูกนำเสนอในฐานรหัส - Grr อัล ภาพแสดงกราฟที่น่าสนใจมากของการทดสอบนี้ EA มันเป็นวิธีที่ได้รับ? เรารู้ว่า 4 ราคาสำหรับบาร์นาทีและเรายังไม่ทราบว่าเป็นครั้งแรกที่มีราคาเปิดและสุดท้ายคือราคาปิด เรามีราคาสูงและต่ำระหว่างพวกเขาและลำดับของการเกิดขึ้นของพวกเขาไม่เป็นที่รู้จัก แต่ก็เป็นที่รู้จักกันว่าราคาสูงมากกว่าหรือเท่ากับราคาเปิด (และราคาต่ำน้อยกว่าหรือเท่ากับเปิด ราคา). มันเป็นเพียงพอที่จะกำหนดช่วงเวลาที่จะได้รับราคาที่เปิดแล้ววิเคราะห์ติ๊กต่อไปเพื่อที่จะตรวจสอบสิ่งที่ราคาที่เรามีในขณะนี้ - ทั้งสูงหรือต่ำ ถ้าเป็นราคาที่ต่ำกว่าราคาเปิดแล้วเรามีราคาต่ำและซื้อในติ๊กนี้ติ๊กต่อไปจะตรงกับราคาที่สูงในการที่เราจะปิดการซื้อและเปิดให้บริการสำหรับการขาย เห็บต่อไปคือคนสุดท้ายนี้เป็นราคาปิดและเราปิดการขายกับมัน ถ้าหลังจากที่ราคาที่เราได้รับเห็บที่มีมากขึ้นราคากว่าราคาเปิดแล้วลำดับของข้อเสนอที่จะกลับ กระบวนการบาร์นาทีในโหมดโกงนี้และรอต่อไปอีกหนึ่ง เมื่อการทดสอบอีเอดังกล่าวในประวัติศาสตร์ทุกอย่างเป็นไปอย่างราบรื่น แต่เมื่อเราเปิดตัวออนไลน์ได้ความจริงก็เริ่มที่จะได้รับการเปิดเผย - สายยังคงความสมดุลมั่นคง แต่หัวลง ที่จะเปิดเผยเคล็ดลับนี้เราก็ต้องเรียกใช้ EA ในโหมดเห็บทุก หมายเหตุ: หากผลการทดสอบของ EA ในโหมดการทดสอบหยาบ (1 นาที OHLC และราคาเปิดเท่านั้น) ดูดีเกินให้แน่ใจว่าการทดสอบในโหมดเห็บทุก เปิดราคาเพียง เห็บในโหมดนี้จะถูกสร้างขึ้นบนพื้นฐานของราคา OHLC ของระยะเวลาที่เลือกสำหรับการทดสอบ OnTick () ฟังก์ชั่นของที่ปรึกษาผู้เชี่ยวชาญด้านการทำงานเฉพาะที่จุดเริ่มต้นของบาร์ในราคาที่เปิด เนื่องจากคุณสมบัตินี้หยุดระดับและอยู่ระหว่างดำเนินการอาจทำให้ในราคาที่แตกต่างจากที่ระบุ (โดยเฉพาะอย่างยิ่งเมื่อการทดสอบในกรอบเวลาที่สูงกว่า) แต่เรามีโอกาสที่จะทำงานได้อย่างรวดเร็วการทดสอบการประเมินของที่ปรึกษาผู้เชี่ยวชาญ W1 และ MN1 ระยะเวลาเป็นข้อยกเว้นในราคาเพียงเห็บเปิดโหมดรุ่น: สำหรับกรอบเวลาเหล่านี้เห็บจะถูกสร้างขึ้นสำหรับราคาที่ OHLC ของแต่ละวันไม่ OHLC ราคาของสัปดาห์หรือเดือน สมมติว่าเราทดสอบที่ปรึกษาผู้เชี่ยวชาญใน EURUSD H1 ในราคาเพียงเปิดโหมด ในกรณีนี้จำนวนรวมของเห็บ (จุดควบคุม) จะไม่เกิน 4 * จำนวนแถบหนึ่งชั่วโมงในช่วงเวลาการทดสอบ แต่ OnTick () จัดการที่เรียกว่าเพียงที่เปิดแถบหนึ่งชั่วโมง การตรวจสอบที่จำเป็นสำหรับการทดสอบที่ถูกต้องเกิดขึ้นในส่วนที่เหลือของเห็บ (ที่ถูกซ่อนอยู่จาก EA) การคำนวณความต้องการอัตรานั้น วิกฤติของการสูญเสียหยุดและทำกำไรระดับ; วิกฤติของการสั่งซื้อที่ค้างอยู่; การกำจัดของการสั่งซื้อที่รอดำเนินการหมดอายุ หากไม่มีตำแหน่งที่เปิดหรือคำสั่งซื้อที่ค้างอยู่เราไม่จำเป็นที่จะต้องดำเนินการตรวจสอบเหล่านี้บนเห็บซ่อนและการเพิ่มขึ้นของความเร็วอาจจะสำคัญมาก ราคานี้เปิดโหมดเดียวคือเหมาะสำหรับกลยุทธ์การทดสอบซึ่งข้อเสนอกระบวนการเฉพาะในการเปิดบาร์และไม่ได้ใช้คำสั่งซื้อที่รอดำเนินการเช่นเดียวกับการสั่งซื้อและ StopLoss TakeProfit สำหรับการเรียนของกลยุทธ์ดังกล่าวที่ถูกต้องจำเ​​ป็นของการทดสอบจะถูกรักษาไว้ ลองใช้ค่าเฉลี่ยเคลื่อนที่ที่ปรึกษาผู้เชี่ยวชาญจากแพคเกจมาตรฐานเป็นตัวอย่างของ EA ซึ่งสามารถทดสอบในโหมดใด ๆ ตรรกะของ EA นี้ถูกสร้างขึ้นในลักษณะที่ว่าทุกการตัดสินใจจะทำที่เปิดบาร์และข้อเสนอที่จะดำเนินการได้ทันทีโดยไม่ต้องใช้คำสั่งซื้อที่ค้างอยู่ เรียกใช้การทดสอบของ EA ตาม EURUSD H1 ในช่วงเวลาจาก 2010/09/01 เพื่อ 2010/12/31 และกราฟเปรียบเทียบ ตัวเลขที่แสดงให้เห็นถึงความสมดุลกราฟจากรายงานผลการทดสอบสำหรับทั้งสามโหมด ที่คุณสามารถดูกราฟในโหมดการทดสอบที่แตกต่างกันเหมือนกันสำหรับการย้าย EA เฉลี่ยจากแพคเกจมาตรฐาน มีข้อ จำกัด บางประการเกี่ยวกับราคาเปิดโหมดเฉพาะคือ: คุณไม่สามารถใช้การดำเนินการที่ล่าช้าในโหมดสุ่ม ในการทดสอบที่ปรึกษาผู้เชี่ยวชาญคุณไม่สามารถเข้าถึงข้อมูลของระยะเวลาที่ต่ำกว่าที่ใช้สำหรับการทดสอบ / การเพิ่มประสิทธิภาพ ตัวอย่างเช่นถ้าคุณเรียกใช้การทดสอบ / การเพิ่มประสิทธิภาพในระยะเวลา H1 คุณสามารถเข้าถึงข้อมูลของ H2, H3, H4 ฯลฯ แต่ไม่ M30, M20, M10 และอื่น ๆ นอกจากนี้ยังมีกรอบเวลาที่สูงขึ้นที่มีการเข้าถึงจะต้องเป็นหลายของการทดสอบ กรอบเวลา. ตัวอย่างเช่นถ้าคุณเรียกใช้การทดสอบใน M20 คุณไม่สามารถเข้าถึงข้อมูลของ M30 แต่มันก็เป็นไปได้ที่จะเข้าถึง H1 ข้อ จำกัด เหล่านี้จะเชื่อมต่อกับเป็นไปไม่ได้ที่จะได้รับข้อมูลที่ต่ำกว่ากรอบเวลาหรือไม่หลายออกจากบาร์ที่สร้างขึ้นในระหว่างการทดสอบ / การเพิ่มประสิทธิภาพ ข้อ จำกัด ในการเข้าถึงข้อมูลของกรอบเวลาอื่น ๆ นอกจากนี้ยังนำไปใช้กับสัญลักษณ์อื่น ๆ ที่มีข้อมูลที่จะถูกใช้โดยที่ปรึกษาผู้เชี่ยวชาญ ในกรณีนี้มีข้อ จำกัด สำหรับแต่ละสัญลักษณ์ขึ้นอยู่กับระยะเวลาแรกเข้าถึงได้ในระหว่างการทดสอบ / การเพิ่มประสิทธิภาพ สมมติว่าในระหว่างการทดสอบใน EURUSD H1, ที่ปรึกษาผู้เชี่ยวชาญด้านการเข้าถึงข้อมูลของ GBPUSD M20 ในกรณีนี้ที่ปรึกษาผู้เชี่ยวชาญจะสามารถที่จะต่อข้อมูลการใช้งานของ EURUSD H1, H2, ฯลฯ รวมทั้ง GBPUSD M20, H1, H2 ฯลฯ หมายเหตุ: ราคาเปิดโหมดเพียง แต่มีเวลาที่เร็วที่สุดในการทดสอบ แต่มันไม่เหมาะสำหรับทั้งหมดของกลยุทธ์การซื้อขาย เลือกโหมดการทดสอบที่ต้องการขึ้นอยู่กับลักษณะของระบบซื้อขายใน เพื่อสรุปส่วนที่เกี่ยวกับโหมดรุ่นเห็บให้พิจารณาเปรียบเทียบภาพของเห็บที่แตกต่างกันโหมดรุ่นสำหรับ EURUSD สำหรับสองแท่ง M15 ในช่วงเวลาจาก 2011/01/11 21:00:00 - 2011/01/11 21:30:00 เห็บได้รับการบันทึกลงในไฟล์ที่แตกต่างกันโดยใช้ EA WriteTicksFromTester. mq5 และสิ้นสุดของไฟล์เหล่านี้ชื่อที่ระบุไว้ใน filenameEveryTick, filenameOHLC filenameOpenPrice และการป้อนข้อมูลพารามิเตอร์ที่ ที่จะได้รับสามไฟล์ที่มีสามลำดับเห็บ (สำหรับแต่ละโหมดต่อไปนี้ติ๊กทุก 1 นาที OHLC และราคาเปิดเท่านั้น), อีเอได้เปิดตัวสามครั้งในรูปแบบที่สอดคล้องกันในการทำงานคนเดียว จากนั้นข้อมูลจากทั้งสามไฟล์ที่มีการแสดงผลบนแผนที่โดยใช้ตัวบ่งชี้ TicksFromTester. mq5 รหัสตัวบ่งชี้ที่แนบมากับบทความนี้ โดยค่าเริ่มต้นทั้งหมดของการดำเนินงานไฟล์ในภาษา MQL5 จะทำภายในทรายแฟ้มและในระหว่างการทดสอบอีเอมีการเข้าถึงเฉพาะทรายไฟล์ของตัวเอง ในการสั่งซื้อสำหรับตัวบ่งชี้และ EA ในการทำงานกับไฟล์จากโฟลเดอร์หนึ่งในระหว่างการทดสอบเราใช้ FILE_COMMON ธง ตัวอย่างของรหัสจาก EA: file = FileOpen (ชื่อไฟล์ FILE_WRITE | FILE_CSV | FILE_COMMON;); // --- จัดการไฟล์การตรวจสอบ ถ้า (ไฟล์ == INVALID_HANDLE)

No comments:

Post a Comment