C ++ - หลัง การทดสอบ -trading- กลยุทธ์

C ++ - หลัง การทดสอบ -trading- กลยุทธ์

200   วัน เฉลี่ยเคลื่อนที่ ซื้อขาย กฎ
ที่ดีที่สุด ฟรี -forex- สัญญาณ ซอฟต์แวร์ ดาวน์โหลด
Binary   ตัวเลือก การกำหนดราคา


Binary ตัวเลือก - งาน Forex- การเจริญเติบโต บอ พลังงาน ดาวน์โหลด Binary ตัวเลือก เดลต้า แกมมา เปรียบเทียบ -forex- ซื้อขาย แพลตฟอร์ม ออสเตรเลีย 60 วินาที ไบนารี ตัวเลือก กลยุทธ์ ปี 2013 Forex- ทดสอบ ซอฟแวร์ การตรวจทาน

บทความที่กล่าวถึงต่อไปนี้คือชุดการซื้อขายเชิงปริมาณซึ่งเริ่มต้นด้วยคู่มือผู้เริ่มต้นใช้งานและการระบุกลยุทธ์ บทความต่อไปนี้มีเนื้อหาเกี่ยวข้องมากขึ้นอีกทั้งยังเป็นที่นิยมอย่างมากดังนั้นฉันจึงดำเนินการต่อในหลอดเลือดดำนี้และให้รายละเอียดเกี่ยวกับหัวข้อการทำ backtesting ของกลยุทธ์ การทำ backtesting อัลกอริธึมต้องอาศัยความรู้ในหลายด้านรวมถึงจิตวิทยาคณิตศาสตร์สถิติการพัฒนาซอฟต์แวร์และโครงสร้างการตลาดแบบแลกเปลี่ยน ฉัน couldnt หวังว่าจะครอบคลุมทุกหัวข้อเหล่านั้นในบทความหนึ่งดังนั้น Im จะแยกพวกเขาออกเป็นสองหรือสามชิ้นเล็ก สิ่งที่เราจะพูดถึงในส่วนนี้คือเริ่มต้นด้วยการกำหนด backtesting แล้วฉันจะอธิบายพื้นฐานของวิธีการดำเนินการ จากนั้นฉันจะอธิบายถึงอคติที่เราได้กล่าวถึงในคู่มือเริ่มต้นเพื่อการซื้อขายเชิงปริมาณ ถัดไปฉันจะนำเสนอการเปรียบเทียบของตัวเลือกซอฟต์แวร์ backtesting ต่างๆ ในบทความต่อไปเราจะดูรายละเอียดเกี่ยวกับการใช้งานกลยุทธ์ที่แทบจะกล่าวถึงหรือละเลย นอกจากนี้เรายังจะพิจารณาวิธีการทำ backtesting ให้เป็นจริงมากขึ้นโดยการรวม idiosyncrasies ของการซื้อขายแลกเปลี่ยน จากนั้นเราจะหารือเกี่ยวกับค่าใช้จ่ายในการทำธุรกรรมและวิธีการสร้างโมเดลเหล่านี้อย่างถูกต้องในการตั้งค่า backtest เราจะจบลงด้วยการอภิปรายเกี่ยวกับประสิทธิภาพการทำงานของ backtests ของเราและในที่สุดก็เป็นตัวอย่างของกลยุทธ์เชิงปริมาณทั่วไปที่รู้จักกันในชื่อการค้าคู่ที่ถอยหลัง ให้เริ่มต้นด้วยการพูดถึงสิ่งที่ backtesting และทำไมเราควรนำมาออกในการซื้อขาย algorithmic ของเรา การทำ Backtesting Algorithmic การซื้อขายคืออะไรนอกเหนือจากประเภทการลงทุนประเภทอื่น ๆ เพราะเราสามารถคาดการณ์ความคาดหวังเกี่ยวกับประสิทธิภาพในอนาคตได้ดีขึ้นจากผลการดำเนินงานที่ผ่านมาอันเป็นผลมาจากการมีข้อมูลมากมาย ขั้นตอนการดำเนินการนี้เรียกว่า backtesting ในแง่ที่เรียบง่ายการทำย้อนหลังจะดำเนินการโดยการเปิดเผยอัลกอริธึมกลยุทธ์เฉพาะของคุณเป็นข้อมูลทางการเงินที่ผ่านมาซึ่งจะนำไปสู่ชุดของสัญญาณการซื้อขาย การค้าแต่ละครั้ง (ซึ่งเราจะหมายถึงการส่งสัญญาณรอบสองครั้ง) จะมีผลกำไรหรือขาดทุนที่เกี่ยวข้อง การสะสมกำไรนี้ในช่วงระยะเวลาของการทำ backtest ของกลยุทธ์จะนำไปสู่ผลกำไรและขาดทุนทั้งหมด (หรือที่เรียกว่า PL หรือ PnL) นั่นคือสาระสำคัญของความคิดแม้ว่าแน่นอนว่าปีศาจอยู่ในรายละเอียดเสมอสิ่งที่เป็นเหตุผลสำคัญสำหรับการทำ backtesting กลยุทธ์ algorithmic การกรอง - ถ้าคุณจำได้จากบทความเกี่ยวกับ Strategy Identification เป้าหมายของเราในขั้นตอนการวิจัยครั้งแรกคือการสร้างท่อกลยุทธ์และกรองกลยุทธ์ที่ไม่ตรงกับเกณฑ์บางอย่าง Backtesting ให้กลไกการกรองอื่น ๆ เนื่องจากเราสามารถกำจัดกลยุทธ์ที่ไม่ตรงกับความต้องการของเราได้ การสร้างแบบจำลอง - Backtesting ช่วยให้เราสามารถทดสอบโมเดลใหม่ ๆ ของปรากฏการณ์ตลาดบางอย่างได้อย่างปลอดภัยเช่นค่าใช้จ่ายในการทำธุรกรรมการกำหนดลำดับการสั่งซื้อความล่าช้าสภาพคล่องหรือปัญหาด้านจุลภาคในตลาดอื่น ๆ การเพิ่มประสิทธิภาพแม้ว่าการเพิ่มประสิทธิภาพกลยุทธ์จะเต็มไปด้วยความลำเอียงการทำ backtesting ช่วยให้เราสามารถเพิ่มประสิทธิภาพของกลยุทธ์ได้โดยการปรับเปลี่ยนปริมาณหรือค่าของพารามิเตอร์ที่เกี่ยวข้องกับกลยุทธ์นั้นและคำนวณสมรรถนะใหม่ การตรวจสอบ - กลยุทธ์ของเรามักมาจากภายนอกโดยใช้กลยุทธ์ทางกลยุทธ์ของเรา การทำย้อนกลับกลยุทธ์ช่วยให้แน่ใจว่าไม่ได้ใช้งานอย่างไม่ถูกต้อง แม้ว่าเราจะไม่ค่อยมีโอกาสเข้าถึงสัญญาณที่สร้างโดยกลยุทธ์ภายนอก แต่เรามักจะเข้าถึงเมตริกประสิทธิภาพเช่นอัตราส่วน Sharpe และ Drawdown ดังนั้นเราสามารถเปรียบเทียบกับการใช้งานของเราเองได้ Backtesting มีข้อดีสำหรับการซื้อขายแบบอัลกอลิกึม อย่างไรก็ตามไม่น่าจะเป็นไปได้ที่จะใช้กลยุทธ์อย่างตรงไปตรงมา โดยทั่วไปเมื่อความถี่ของกลยุทธ์เพิ่มขึ้นจะกลายเป็นเรื่องยากขึ้นอย่างถูกต้องเพื่อจำลองผลกระทบโครงสร้างจุลภาคของตลาดและการแลกเปลี่ยน สิ่งนี้นำไปสู่ ​​backtests ที่ไม่น่าเชื่อถือและมีการประเมินผลกลยุทธ์ที่เลือกไว้อย่างเฉียบพลัน นี่คือปัญหาเฉพาะที่ระบบการดำเนินงานเป็นกุญแจสำคัญในการปฏิบัติงานด้านกลยุทธ์เช่นเดียวกับอัลกอริทึมความถี่สูงพิเศษ แต่น่าเสียดายที่ backtesting เต็มไปด้วยอคติทุกประเภท เราได้กล่าวถึงปัญหาบางอย่างในบทความก่อน ๆ แต่ตอนนี้เราจะพูดถึงประเด็นเหล่านี้ในเชิงลึก ความลำเอียงที่มีผลต่อกลยุทธ์ Backtests มีอคติหลายอย่างที่อาจส่งผลต่อประสิทธิภาพของกลยุทธ์ที่ได้รับการสนับสนุน แต่น่าเสียดายที่ความลำเอียงเหล่านี้มีแนวโน้มที่จะขยายผลการดำเนินงานมากกว่าที่จะหักจากมัน ดังนั้นคุณควรพิจารณา backtest เพื่อให้เป็นข้อ จำกัด ด้านบนที่คาดการณ์ไว้เกี่ยวกับประสิทธิภาพที่แท้จริงของยุทธศาสตร์ เกือบจะเป็นไปไม่ได้ที่จะกำจัดอคติจากการค้าอัลกอริธึมจึงเป็นหน้าที่ของเราในการลดผลกระทบเหล่านี้ให้ดีที่สุดเท่าที่จะเป็นไปได้เพื่อที่จะสามารถตัดสินใจเกี่ยวกับกลยุทธ์เชิงอัลกอริธึมของเราได้ มีอคติสำคัญสี่ประการที่ฉันต้องการจะพูดถึง มองไปข้างหน้าอคติ Survivorship อคติและความอดทนทางจิตวิทยาอคติ Optimisation Bias นี่อาจเป็นข้ออ้างที่สุดในทุกอคติในการทำ backtest การปรับหรือแนะนำพารามิเตอร์การซื้อขายเพิ่มเติมจนกว่าประสิทธิภาพของกลยุทธ์ในชุดข้อมูล backtest จะน่าสนใจมาก อย่างไรก็ตามเมื่ออยู่ประสิทธิภาพของกลยุทธ์สามารถแตกต่างกันอย่างเด่นชัด อีกชื่อหนึ่งสำหรับอคตินี้คือการปรับเส้นโค้งหรือการอายัดข้อมูล ความลำเอียงด้านการเพิ่มประสิทธิภาพเป็นเรื่องยากที่จะกำจัดได้เนื่องจากกลยุทธ์ของอัลกอริธึมมักเกี่ยวข้องกับพารามิเตอร์จำนวนมาก พารามิเตอร์ในกรณีนี้อาจเป็นเกณฑ์เกณฑ์การเข้าออกช่วงเวลามองย้อนกลับช่วงเวลาเฉลี่ย (เช่นพารามิเตอร์การปรับให้เรียบโดยเฉลี่ยเคลื่อนที่) หรือความถี่การวัดความผันผวน ความสามารถในการเพิ่มประสิทธิภาพสามารถลดลงได้ด้วยการรักษาจำนวนพารามิเตอร์ให้น้อยที่สุดและเพิ่มปริมาณจุดข้อมูลในชุดการฝึกอบรม ในความเป็นจริงอย่างใดอย่างหนึ่งต้องระวังเรื่องหลัง ๆ ด้วยเนื่องจากจุดฝึกอบรมที่เก่ากว่านั้นอาจต้องขึ้นอยู่กับระบอบการปกครองก่อน (เช่นสภาพแวดล้อมด้านกฎระเบียบ) และอาจไม่เกี่ยวข้องกับยุทธศาสตร์ปัจจุบันของคุณ วิธีหนึ่งในการช่วยบรรเทาความลำเอียงนี้คือการทำการวิเคราะห์ความไว ซึ่งหมายถึงการเปลี่ยนแปลงพารามิเตอร์ต่างๆและการวางแผนพื้นผิวของสมรรถนะ เสียงเหตุผลพื้นฐานสำหรับการเลือกพารามิเตอร์ควรคำนึงถึงปัจจัยอื่น ๆ ทั้งหมดนำไปสู่ผิวพารามิเตอร์ที่ราบรื่น หากคุณมีพื้นผิวการทำงานที่ไม่ดีนักมักมีความหมายว่าพารามิเตอร์ไม่ได้สะท้อนถึงปรากฏการณ์และเป็นสิ่งประดิษฐ์ของข้อมูลทดสอบ มีเอกสารมากมายเกี่ยวกับอัลกอริทึมการเพิ่มประสิทธิภาพแบบหลายมิติและเป็นงานวิจัยที่มีการใช้งานสูง ฉันจะไม่ได้อาศัยอยู่ที่นี่ แต่เก็บไว้ในด้านหลังของจิตใจของคุณเมื่อคุณพบกลยุทธ์ที่มี backtest Look-Ahead อคติ Bias มองไปข้างหน้าจะนำเข้าสู่ระบบ backtesting เมื่อข้อมูลในอนาคตจะถูกรวมไว้โดยบังเอิญที่จุดใน จำลองข้อมูลที่จะไม่ได้มีอยู่จริง ถ้าเรากำลังรัน backtest ตามลำดับและเราไปถึงจุดเวลา N จากนั้นมองไปข้างหน้าอคติเกิดขึ้นถ้ารวมข้อมูลสำหรับจุด Nk ใด ๆ ที่ k0 ข้อผิดพลาดเรื่องอคติแบบมองไปข้างหน้าสามารถเบ่งลึกได้อย่างไม่น่าเชื่อ ต่อไปนี้เป็นตัวอย่างสามวิธีที่สามารถนำเอาอคติแบบมองไปข้างหน้าได้: ข้อบกพร่องทางเทคนิค - อาร์เรย์เวิร์สในโค้ดมักมีตัวทำซ้ำหรือตัวแปรดัชนี การชดเชยที่ไม่ถูกต้องของดัชนีเหล่านี้สามารถนำไปสู่การมองไปข้างหน้าอคติโดยการรวมข้อมูลที่ Nk สำหรับ k ที่ไม่ใช่ศูนย์ การคำนวณพารามิเตอร์ - อีกตัวอย่างหนึ่งของอคติแบบมองไปข้างหน้าเกิดขึ้นเมื่อคำนวณพารามิเตอร์กลยุทธ์ที่เหมาะสมเช่นการถดถอยเชิงเส้นระหว่างชุดเวลาสองชุด ถ้าทั้งชุดข้อมูล (รวมถึงข้อมูลในอนาคต) ถูกนำมาใช้เพื่อคำนวณค่าสัมประสิทธิ์การถดถอยและนำไปใช้กับกลยุทธ์การซื้อขายเพื่อใช้ในการเพิ่มประสิทธิภาพย้อนหลังข้อมูลในอนาคตจะได้รับการรวบรวมและมีอคติต่อเนื่องอยู่ MaximaMinima - กลยุทธ์การซื้อขายบางอย่างใช้ประโยชน์จากค่าที่มากในช่วงเวลาใด ๆ เช่นการรวมราคาข้อมูล OHLC หรือราคาต่ำไว้ อย่างไรก็ตามเนื่องจากค่าสูงสุดสูงสุดเหล่านี้สามารถคำนวณได้เมื่อสิ้นสุดระยะเวลาแล้วจะมีการใช้อคติแบบมองไปข้างหน้าหากใช้ค่าเหล่านี้ในช่วงปัจจุบัน มันเป็นสิ่งที่จำเป็นเสมอไปล่าช้าค่า highlow อย่างน้อยหนึ่งช่วงเวลาในกลยุทธ์การค้าใด ๆ ทำให้การใช้งานของพวกเขา เช่นเดียวกับการเพิ่มประสิทธิภาพอคติหนึ่งต้องระมัดระวังอย่างมากเพื่อหลีกเลี่ยงการแนะนำของ มักเป็นเหตุผลหลักที่ทำให้กลยุทธ์การซื้อขายมีประสิทธิภาพต่ำกว่าการทำธุรกรรมย้อนหลังอย่างมีนัยสำคัญในการซื้อขายหลักทรัพย์สด Survivorship Bias Survivorship อคติเป็นปรากฏการณ์ที่เป็นอันตรายโดยเฉพาะและสามารถนำไปสู่การเพิ่มประสิทธิภาพอย่างมากสำหรับประเภทกลยุทธ์บางอย่าง เกิดขึ้นเมื่อมีการทดสอบกลยุทธ์กับชุดข้อมูลที่ไม่รวมเอกภพเต็มรูปแบบของสินทรัพย์ก่อนหน้าซึ่งอาจได้รับเลือกในช่วงเวลาใดเวลาหนึ่ง แต่พิจารณาเฉพาะผู้ที่รอดชีวิตมาจนถึงปัจจุบันเท่านั้น ตัวอย่างเช่นพิจารณาการทดสอบกลยุทธ์ในการสุ่มเลือกหุ้นก่อนและหลังปีพ. ศ. 2544 หุ้นเทคโนโลยีบางแห่งล้มละลายในขณะที่บาง บริษัท มีส่วนแบ่งการตลาดและประสบความสำเร็จ หากเรา จำกัด กลยุทธ์นี้ไว้เฉพาะกับหุ้นที่ทำผ่านช่วงเบิกถอนเงินตลาดแล้วเราจะแนะนำให้มีอคติในการครองชีพเพราะพวกเขาได้แสดงให้เห็นถึงความสำเร็จของพวกเขาต่อเราแล้ว อันที่จริงแล้วนี่เป็นอีกกรณีหนึ่งที่เฉพาะเจาะจงในการมองไปข้างหน้าเนื่องจากข้อมูลในอนาคตจะถูกรวบรวมไว้ในการวิเคราะห์ในอดีต มีสองวิธีหลัก ๆ ในการลดความอคติในการรอดชีวิตใน backtests ของกลยุทธ์ของคุณ: Survivorship Bias Free Datasets - ในกรณีของข้อมูล equity คุณสามารถซื้อชุดข้อมูลที่มีหน่วยงานที่ได้รับการเพิกถอนแม้ว่าจะไม่ได้ราคาถูกและมีแนวโน้มที่จะถูกใช้โดย บริษัท สถาบันเท่านั้น . โดยเฉพาะอย่างยิ่งข้อมูลการเงินของ Yahoo ไม่ใช่เรื่องอื้อฉาวในการครองชีพและเป็นที่นิยมใช้กันโดยผู้ค้าปลีกหลายราย นอกจากนี้ยังสามารถค้าขายในชั้นสินทรัพย์ที่ไม่ได้มีแนวโน้มที่จะมีความลำเอียงรอดชีวิตเช่นสินค้าบางประเภท (และอนุพันธ์ในอนาคต) ใช้ข้อมูลล่าสุด - ในกรณีของหุ้นการใช้ชุดข้อมูลล่าสุดช่วยลดความเป็นไปได้ที่การเลือกหุ้นจะมีการถ่วงน้ำหนักให้กับผู้รอดชีวิตเนื่องจากความเป็นไปได้ในการเพิกถอนหุ้นโดยรวมลดลงในช่วงเวลาที่สั้นลง นอกจากนี้ยังสามารถเริ่มสร้างข้อมูลส่วนบุคคลที่ไม่เกี่ยวข้องกับการมีชีวิตอยู่รอดด้วยการรวบรวมข้อมูลจากจุดปัจจุบันเป็นต้นไป หลังจากผ่านไป 3-4 ปีคุณจะมีข้อมูลการถือครองหุ้นที่มั่นคงและไม่ต้องเสียค่าใช้จ่ายใด ๆ ที่จะช่วยสนับสนุนกลยุทธ์ต่อไป ตอนนี้เราจะพิจารณาถึงอาการทางจิตวิทยาบางอย่างที่อาจส่งผลต่อประสิทธิภาพการซื้อขายของคุณ ความลำเอียงความอดทนทางจิตวิทยาปรากฏการณ์พิเศษนี้มักไม่ค่อยพูดถึงในบริบทของการซื้อขายเชิงปริมาณ อย่างไรก็ตามจะมีการพูดคุยกันอย่างกว้างขวางในเรื่องเกี่ยวกับวิธีการซื้อขายสินค้าที่มีการตัดสินใจมากขึ้น มีชื่อต่างๆ แต่ Ive ตัดสินใจที่จะเรียกว่าอคติความอดทนทางจิตวิทยาเพราะจับสาระสำคัญของปัญหา เมื่อสร้าง backtests เป็นระยะเวลา 5 ปีขึ้นไปคุณสามารถดูเส้นโค้งของส่วนแบ่งการตลาดที่มีแนวโน้มสูงขึ้นโดยคำนวณอัตราผลตอบแทนประจำปี Sharpe ratio และแม้แต่ drawdown และจะพอใจกับผลลัพธ์ ตัวอย่างเช่นกลยุทธ์อาจมีการเบิกถอนสัมพัทธ์สูงสุด 25 และระยะเวลาเบิกเงินกู้สูงสุด 4 เดือน นี้จะไม่ผิดปรกติสำหรับกลยุทธ์โมเมนตัม มันเป็นเรื่องง่ายที่จะโน้มน้าวใจตัวเองว่ามันเป็นเรื่องง่ายที่จะทนต่อช่วงเวลาของการสูญเสียดังกล่าวเพราะภาพโดยรวมเป็นสีดอกกุหลาบ อย่างไรก็ตามในทางปฏิบัติจะยากกว่ามากถ้าการเบิกจ่ายทางประวัติศาสตร์ของ 25 ครั้งขึ้นไปเกิดขึ้นในการทดสอบย้อนหลังแล้วในทุกโอกาสที่คุณจะเห็นช่วงเวลาที่มีการเบิกถอนเงินแบบเดียวกัน ช่วงเวลาแห่งการถอนเงินเหล่านี้ยากที่จะทนต่อสภาพจิตใจได้ ฉันได้สังเกตเห็นว่าการเบิกเงินกู้แบบยาวจะเป็นอย่างไรในการตั้งสถาบันและไม่เป็นที่น่าพอใจแม้ว่าจะมีการย้อนหลังไปแล้วก็ตาม เหตุผลที่ฉันเรียกมันว่าอคติคือกลยุทธ์ที่จะประสบความสำเร็จได้ก็คือการหยุดค้าขายในช่วงที่มีการเบิกใช้เป็นเวลานานและจะนำไปสู่ประสิทธิภาพที่ต่ำกว่าเมื่อเทียบกับผลการทดสอบหลังการขาย ดังนั้นแม้กลยุทธ์จะมีลักษณะตามธรรมชาติ แต่ปัจจัยทางจิตวิทยาก็ยังคงมีอิทธิพลอย่างมากต่อความสามารถในการทำกำไร การ takeaway คือเพื่อให้แน่ใจว่าถ้าคุณเห็นการเบิกบางเปอร์เซ็นต์และระยะเวลาใน backtests คุณควรคาดหวังให้พวกเขาเกิดขึ้นในสภาพแวดล้อมการซื้อขายสดและจะต้องอดทนเพื่อให้สามารถทำกำไรได้อีกครั้ง ชุดซอฟต์แวร์สำหรับการทำ backtesting ภูมิทัศน์ของซอฟต์แวร์สำหรับ backtesting กลยุทธ์มีมากมาย โซลูชันมีตั้งแต่ซอฟท์แวร์ที่มีความซับซ้อนระดับสถาบันไปจนถึงการเขียนโปรแกรมภาษาต่างๆเช่น C, Python และ R ซึ่งเกือบทุกอย่างต้องเขียนตั้งแต่เริ่มต้น (หรือปลั๊กอินที่เหมาะสม) ในฐานะที่เป็นผู้ค้าเชิงปริมาณเรามีความสนใจในความสมดุลของความสามารถในการเป็นเจ้าของสแต็คเทคโนโลยีการค้าของเราเทียบกับความเร็วและความน่าเชื่อถือของวิธีการในการพัฒนาของเรา ต่อไปนี้คือข้อควรพิจารณาที่สำคัญสำหรับการเลือกใช้ซอฟต์แวร์: ทักษะการเขียนโปรแกรม - ทางเลือกของสภาพแวดล้อมส่วนใหญ่จะมาจากความสามารถของคุณในการเขียนโปรแกรมซอฟต์แวร์ ฉันจะยืนยันว่าการควบคุมสแต็คทั้งหมดจะมีผลมากขึ้นในระยะยาว PL ของคุณมากกว่าการเอาท์ซอร์สให้มากที่สุดเท่าที่จะเป็นไปได้กับซอฟต์แวร์ของผู้จัดจำหน่าย เนื่องจากความเสี่ยงด้านการมีข้อผิดพลาดหรือข้อมูลประจำตัวภายนอกที่คุณไม่สามารถแก้ไขได้ในซอฟต์แวร์ของผู้ขายซึ่งอาจแก้ไขได้ง่ายหากคุณสามารถควบคุมสแต็คเทคโนโลยีของคุณได้มากขึ้น นอกจากนี้คุณยังต้องการสภาพแวดล้อมที่สร้างความสมดุลระหว่างประสิทธิภาพการทำงานความพร้อมของไลบรารีและความเร็วในการดำเนินการ ฉันให้คำแนะนำส่วนตัวของฉันเองด้านล่าง ความสามารถในการดำเนินการปฏิสัมพันธ์ของ Broker - ซอฟต์แวร์ backtesting บางอย่างเช่น Tradestation เกี่ยวข้องกับการเป็นนายหน้าซื้อขายหลักทรัพย์โดยตรง ฉันไม่ได้เป็นแฟนของวิธีการนี้เป็นลดต้นทุนการทำธุรกรรมมักจะเป็นส่วนใหญ่ของการได้รับอัตราส่วนที่สูงขึ้นชาร์ป หาก youre ผูกเข้ากับโบรกเกอร์เฉพาะ (และ Tradestation บังคับให้คุณทำเช่นนี้) แล้วคุณจะมีเวลาที่ยากกว่าการเปลี่ยนไปใช้ซอฟต์แวร์ใหม่ (หรือโบรกเกอร์ใหม่) ถ้าจำเป็นต้องเกิดขึ้น โบรกเกอร์แบบอินเทอร์แอคทีฟมี API ที่มีประสิทธิภาพแม้ว่าจะมีอินเทอร์เฟซเล็กน้อย การปรับแต่ง - สภาพแวดล้อมเช่น MATLAB หรือ Python ช่วยให้คุณมีความคล่องตัวในการสร้างกลยุทธ์อัลกอโกเนื่องจากมีไลบรารีอันยอดเยี่ยมสำหรับการใช้งานทางคณิตศาสตร์เกือบทุกรูปแบบ แต่ยังสามารถปรับแต่งได้ตามความจำเป็น ความซับซ้อนของยุทธวิธี - ซอฟต์แวร์บางตัวไม่ได้ถูกตัดขาดจากปัญหาที่ซับซ้อนหรือซับซ้อน Excel เป็นส่วนหนึ่งของซอฟต์แวร์ดังกล่าว แม้ว่าจะเป็นกลยุทธ์ที่ง่ายกว่า แต่ก็ไม่สามารถรับมือกับทรัพย์สินจำนวนมากหรืออัลกอริทึมที่ซับซ้อนมากขึ้นได้อย่างรวดเร็ว Bias Minimization - ซอฟต์แวร์หรือข้อมูลบางส่วนยืมตัวเพื่อค้าอคติคุณจำเป็นต้องตรวจสอบให้แน่ใจว่าถ้าคุณต้องการสร้างฟังก์ชันการทำงานทั้งหมดด้วยตัวคุณเองคุณจะไม่แนะนำข้อบกพร่องซึ่งอาจนำไปสู่ความลำเอียง ความเร็วในการพัฒนา - หนึ่งไม่ควรต้องใช้เวลาเดือนและเดือนในการใช้เครื่องมือ backtest การสร้างต้นแบบควรใช้เวลาเพียงไม่กี่สัปดาห์เท่านั้น ตรวจสอบให้แน่ใจว่าซอฟต์แวร์ของคุณไม่ขัดขวางความคืบหน้าของคุณในระดับที่ดีเพียงเพื่อคว้าคะแนนเพิ่มขึ้นเล็กน้อยของความเร็วในการทำงาน C คือช้างในห้องที่นี่ความเร็วในการดำเนินการ - หากกลยุทธ์ของคุณขึ้นอยู่กับความทันเวลาในการดำเนินการ (เช่นเดียวกับใน HFTUHFT) ภาษา C หรือ C จะจำเป็นต้องใช้ อย่างไรก็ตามคุณจะใช้ประโยชน์จากการเพิ่มประสิทธิภาพเคอร์เนลและการใช้ FPGA สำหรับโดเมนเหล่านี้ซึ่งอยู่นอกขอบเขตของบทความนี้ค่าใช้จ่าย - หลายสภาพแวดล้อมซอฟต์แวร์ที่คุณสามารถเขียนโปรแกรมด้วยกลยุทธ์การซื้อขายแบบอัลกอรึทึมเป็นแบบฟรีและโอเพ่นซอร์ส ในความเป็นจริงหลายกองทุนป้องกันความเสี่ยงใช้ซอฟต์แวร์โอเพนซอร์สสำหรับกองการซื้อขายทั้งหมดของ algo นอกจากนี้ Excel และ MATLAB มีทั้งราคาถูกและยังมีทางเลือกฟรีสำหรับแต่ละ ตอนนี้เราได้ระบุเกณฑ์ที่จำเป็นในการเลือกโครงสร้างพื้นฐานซอฟต์แวร์ของเราแล้วฉันต้องการเรียกใช้แพคเกจที่เป็นที่นิยมกว่าและเปรียบเทียบว่าอย่างไร: หมายเหตุ: ฉันจะรวมซอฟต์แวร์ที่มีให้สำหรับผู้ค้าปลีกรายใหญ่เท่านั้นและ นักพัฒนาซอฟต์แวร์เนื่องจากเป็นผู้อ่านไซต์ ในขณะที่ซอฟต์แวร์อื่น ๆ สามารถใช้ได้เช่นเครื่องมือระดับสถาบันมากขึ้นฉันรู้สึกเหล่านี้มีราคาแพงเกินไปที่จะใช้อย่างมีประสิทธิภาพในการตั้งค่าค้าปลีกและฉันเองไม่มีประสบการณ์กับพวกเขา Backtesting Comparison Software คำอธิบาย: ภาษาระดับสูงที่ออกแบบมาสำหรับความเร็วในการพัฒนา มีไลบรารีมากมายสำหรับงานเกือบทุกแบบที่สามารถจินตนาการได้ ได้รับการยอมรับอย่างกว้างขวางในกองทุนเฮดจ์ฟันด์และชุมชนธนาคารเพื่อการลงทุน ไม่เร็วเท่า CC สำหรับความเร็วในการทำงาน การดำเนินการ: มีปลั๊กอิน Python สำหรับโบรกเกอร์ที่มีขนาดใหญ่เช่นโบรกเกอร์เชิงโต้ตอบ ดังนั้น backtest และระบบการดำเนินการสามารถทั้งหมดเป็นส่วนหนึ่งของสแต็คเทคโนโลยีเดียวกัน การปรับแต่ง: Python มีชุมชนการพัฒนาที่มีสุขภาพดีและเป็นภาษาที่โตเต็มที่ NumPySciPy ให้เครื่องมือคำนวณทางวิทยาศาสตร์ที่รวดเร็วและเครื่องมือวิเคราะห์ทางสถิติที่เกี่ยวข้องกับการซื้อขายแบบค่อยเป็นค่อยไป ความซับซ้อนของยุทธวิธี: ปลั๊กอินจำนวนมากมีอยู่สำหรับอัลกอริทึมหลัก แต่ไม่ค่อยเป็นชุมชนควอนตัมที่มีอยู่สำหรับ MATLAB การย่อเล็กสุดอคติ: มีปัญหาการลดทอนอคติเหมือนกันกับภาษาระดับสูง ๆ ต้องระมัดระวังอย่างยิ่งเกี่ยวกับการทดสอบ ความเร็วในการพัฒนา: Pythons ประโยชน์หลักคือความเร็วในการพัฒนาที่มีประสิทธิภาพในการสร้างขึ้นในความสามารถในการทดสอบ ความเร็วในการดำเนินการ: ไม่เร็วเท่ากับ C แต่ส่วนประกอบทางวิทยาศาสตร์ถูกปรับให้เหมาะสมและ Python สามารถพูดคุยกับรหัส C พื้นเมืองด้วยปลั๊กอินบางตัวได้ ค่าใช้จ่าย: FreeOpen Source คำอธิบาย: ภาษาระดับสูงที่ออกแบบมาสำหรับความเร็วในการทำงาน หลากหลายของการเงินเชิงปริมาณและห้องสมุดเชิงตัวเลข ยากที่จะแก้ปัญหาและมักใช้เวลานานกว่าที่จะใช้มากกว่า Python หรือ MATLAB เป็นที่แพร่หลายมากทั้งในฝ่ายซื้อและขาย การดำเนินการ: API การเป็นนายหน้าซื้อขายหลักทรัพย์ส่วนใหญ่จะมีการเขียนด้วยภาษา C และ Java ปลั๊กอินหลายตัวจึงมีอยู่ การปรับแต่ง: CC ช่วยให้สามารถเข้าถึงหน่วยความจำพื้นฐานได้โดยตรงดังนั้นจึงสามารถใช้กลยุทธ์ความถี่สูงพิเศษได้ ความซับซ้อนของกลยุทธ์: C STL มีอัลกอริทึมที่หลากหลาย เกือบทุกขั้นตอนวิธีทางคณิตศาสตร์เฉพาะมีอิสระดำเนินการ CC เปิดแหล่งบนเว็บ Bias Minimization: ความลำเอียงแบบมองไปข้างหน้าอาจเป็นเรื่องยากที่จะกำจัด แต่ไม่ยากกว่าภาษาระดับสูงอื่น ๆ ดีบั๊กเครื่องมือ แต่ต้องระวังเมื่อจัดการกับหน่วยความจำพื้นฐาน ความเร็วในการพัฒนา: C ค่อนข้างเทียบกับ Python หรือ MATLAB สำหรับอัลกอริธึมเดียวกัน สายรหัสเพิ่มเติม (LOC) มักนำไปสู่โอกาสในการเกิดข้อบกพร่องมากขึ้น ความเร็วในการดำเนินการ: CC มีความเร็วในการประมวลผลเร็วมากและสามารถปรับให้เหมาะสมกับสถาปัตยกรรมคอมพิวเตอร์ที่เฉพาะเจาะจงได้ดี นี่เป็นเหตุผลหลักในการใช้ประโยชน์ ค่าใช้จ่าย: คอมไพเลอร์ต่างๆ: LinuxGCC เป็นบริการฟรี MS Visual Studio มีใบอนุญาตต่างกัน กลยุทธ์ต่างๆจะต้องใช้ชุดซอฟต์แวร์ที่แตกต่างกัน กลยุทธ์ HFT และ UHFT จะถูกเขียนลงใน CC (วันนี้พวกเขามักจะดำเนินการเกี่ยวกับ GPU และ FPGA) ในขณะที่ TradeStation มีแนวโน้มที่จะใช้งานได้ง่ายในขณะที่ TradeStation เป็นซอฟต์แวร์ที่ง่ายต่อการใช้งาน ความชอบส่วนตัวของฉันสำหรับ Python เนื่องจากมีระดับการปรับแต่งที่เหมาะสมความเร็วในการพัฒนาความสามารถในการทดสอบและความเร็วในการดำเนินการสำหรับความต้องการและกลยุทธ์ของฉัน ถ้าฉันต้องการอะไรเร็วกว่าฉันสามารถวางลงใน C โดยตรงจากโปรแกรม Python ของฉัน วิธีการหนึ่งที่ได้รับการสนับสนุนจากผู้ค้าจำนวนมากคือการเริ่มต้นใช้กลยุทธ์ของตนใน Python แล้วแปลงส่วนการดำเนินการที่ช้ากว่าเป็น C ในลักษณะซ้ำ ในท้ายที่สุดทั้ง algo ถูกเขียนขึ้นใน C และสามารถทิ้งไว้ตามลำพังทางการค้าได้ในอีกสองสามบทความข้างหลังใน backtesting เราจะดูประเด็นเฉพาะบางประการเกี่ยวกับการใช้ระบบ backtesting การค้าอัลกอริธึมรวมทั้งวิธีการรวมผลกระทบของ แลกเปลี่ยนการค้า เราจะหารือเกี่ยวกับการวัดประสิทธิภาพของกลยุทธ์และท้ายสุดด้วยกลยุทธ์ตัวอย่าง การทดสอบย้อนกลับคือกระบวนการของการทดสอบกลยุทธ์การซื้อขายตามข้อมูลตลาดที่ผ่านมาเพื่อพยายามจำลองว่าระบบการซื้อขายจะมีประสิทธิภาพในอนาคตอย่างไร การทดสอบย้อนกลับคือการพัฒนากลยุทธ์ทางการค้าว่าการวิจัยและการปรับปรุงคุณภาพมีผลกับอุตสาหกรรมการดูแลสุขภาพและการขนส่ง ใครอยากลองตรวจสอบหัวใจที่ไม่ได้ทดสอบหรือรถยนต์ Nikody เช่นเดียวกับกลยุทธ์การซื้อขายทางการเงิน กลยุทธ์การซื้อขายทั้งหมดต้องได้รับการทดสอบปรับปรุงและตรวจสอบก่อนที่จะใช้เงินจริง เกือบจะสามารถวิเคราะห์กลยุทธ์การซื้อขายทางเทคนิคได้ แม้ว่าจะเป็นความจริงที่ว่าแอพพลิเคชันการค้าระดับกลางจำนวนมากให้ภาษาสคริปต์ที่ช่วยให้นักค้าสามารถพัฒนาและย้อนกลับกลยุทธ์การซื้อขายทดสอบได้เราพบว่าไม่มีห้องสมุดการทดสอบด้านหลังสำหรับนักพัฒนาระบบการซื้อขายขั้นสูงที่ต้องการตั้งกลยุทธ์การซื้อขายในการเขียนโปรแกรมในระดับต่ำ ภาษาต่างๆเช่น C, C และ Java ดังนั้นเราจึงได้พัฒนาเครื่องมือทดสอบย้อนหลังสำหรับนักพัฒนาระบบขั้นสูง ขณะนี้นักพัฒนาซอฟต์แวร์สามารถสร้างกลยุทธ์ในภาษาการเขียนโปรแกรมใด ๆ แล้วกลับมาทดสอบและเพิ่มประสิทธิภาพกลยุทธ์เหล่านั้นเพื่อปรับปรุงประสิทธิภาพ BackTestLib ช่วยให้นักพัฒนาสามารถทดสอบระบบการซื้อขายของตนใน C, C, VB, F, R, IronPython หรือภาษาอื่น ๆ โดยใช้ข้อมูลติ๊กหรือบาร์ มันไม่สำคัญว่าระบบการซื้อขายของคุณจะถูกเขียนขึ้นอย่างไร สิ่งที่คุณต้องทำก็คือการจัดหารายการเทรดและห้องสมุดทดสอบด้านหลังจะทำสิ่งที่เหลือให้กับคุณ BackTestLib สามารถคำนวณประสิทธิภาพของระบบการซื้อขายของคุณโดยใช้การวัดความเสี่ยงสองโหล ได้แก่ อัตราส่วน Sharpe อัตราส่วน Calmar อัตราส่วน Sortino ค่าสูงสุดวาดลง Monte Carlo Draw Down รวม PL ความเสี่ยงในการให้รางวัลอัตราส่วนกำไรที่ใหญ่ที่สุดขาดทุนมากที่สุดจำนวนการซื้อขายโดยเฉลี่ย เดือน, บันทึกการค้าและอื่น ๆ เหมาะสำหรับการเพิ่มประสิทธิภาพกลยุทธ์ผู้ค้ามืออาชีพรู้ว่าทุกสิ่งที่ดีจะสิ้นสุดลง แม้แต่ระบบการซื้อขายที่ดีที่สุดก็ตกอยู่ในช่วงการสูญเสียซึ่งต้องใช้การเพิ่มประสิทธิภาพหรือการเกษียณอายุของระบบการค้า สาเหตุแตกต่างกันไปรวมถึงการเปลี่ยนแปลงของสภาพคล่องความผันผวนและการเปลี่ยนแปลงของตลาดต้นแบบตลอดจนปัจจัยอื่น ๆ ผลลัพธ์ BackTestLib แสดงผลลัพธ์ซึ่งแสดงถึงช่วงของการวัดตามความสามารถในการทำกำไรและความเสี่ยงของระบบการซื้อขายของคุณเมื่อทดสอบด้วยข้อมูลที่มีการจัดส่ง ตัวอย่างรหัสสร้างการค้าแบบจำลองบางรายการ lt Trade gt trades รายการใหม่ lt Trade gt () trades.Add (new Trade (DateTime .Parse (quot112014 9: 30: 45.422 AMquot), SignalType. ซื้อ, 24)) trades.Add (new การค้า (DateTime .Parse (quot112014 9: 32: 33.891 AMquot), SignalType .ExitLong, 24.09)) trades.Add (New Trade (DateTime .Parse (quot112014 9: 37: 12.839 AMquot), SignalType .Sell, 24.07)) ธุรกิจการค้า เพิ่มใหม่ (DateTime .Parse (quot112014 9: 48: 27.488 AMquot), SignalType .Exit, 24.19)) trades.Add (new Trade (DateTime .Parse (quot112014 9: 49: 16.415 AMquot), SignalType. ซื้อ, 24)) trades.Add (การค้าใหม่ (DateTime .Parse (quot112014 9: 50: 45.512 AMquot), SignalType .Exit, 24.09)) trades.Add (new Trade (DateTime .Parse (quot112014 9: 51: 14.212 AMquot), SignalType .Buy, 24.01) เรียกใช้ backTest doublePrice สุดท้าย 24.03 ผล BacktestResults BacktesterBacktest (การค้า, lastPrice) ผลลัพธ์ผลลัพธ์ Console.WriteLine (quotTotal จำนวนการซื้อขาย: quot. results.TotalNumberOfTrades) Cons ole.WriteLine (quotely จำนวนของธุรกิจการค้าต่อเดือน: quot คอนโซล .WriteLine (quotTotal จำนวนการค้าที่มีกำไร: quot ผล .NumberOfProfitableTrades) คอนโซล .WriteLine (quotTotal จำนวนการสูญเสียการค้า: quot ผล results.NumberOfLosingTrades) คอนโซล .WriteLine (กำไร quotTotal: quot. ผล TotalProfit) คอนโซล Console.WriteLine (ธุรกิจการค้าที่มีกำไรของ quotPercent: quot. results.PercentProfit) คอนโซล .WriteLine (quotLuest profit: quot. ผลประกอบการ) .WriteLine (quotTotal loss: quot. results.TotalLoss) Console .WriteLine (ธุรกิจการค้าที่มีกำไรของ quotPercent: quot. results.PercentProfit) คอนโซล .WriteLine (ขาดทุน quotLargest: quot ผล .LagestLoss) คอนโซล .WriteLine (drawMaximum ที่สุด: ผลลัพธ์. maximumDrawDown) คอนโซล .WriteLine (คำสั่ง drawMaximum สูงสุด Monte Carlo: quot. results.MaximumDrawDownMonteCarlo) คอนโซล .WriteLine (devartline) : quot. results.StandardDeviation) คอนโซล .WriteLine (ส่วนเบี่ยงเบนมาตรฐานของ quotardand annualized: quot. results.StandardDeviationAnnualized) Console.WriteLi ne (ส่วนเบี่ยงเบนความคลาดเคลื่อน (MARD 10): quot คอนโซล .WriteLine (quotValue เพิ่มดัชนีรายเดือน (VAMI): quot. results.ValueAddedMonthlyIndex) คอนโซล .WriteLine (quotSharpe ratio: quot. results.SharpeRatio) คอนโซล .WriteLine (quotSortino ratio: quot. results.SortinoRatioMAR5) คอนโซล WriteLine (quotainnizedized Sortino ratio: quot. results.AnnualizedSortinoRatioMAR5) คอนโซล .WriteLine (quotSterling ratio: quot results.SterlingRatioMAR5) คอนโซล .WriteLine (quotCalmar ratio: quot. results.CalmarRatio) คอนโซล .WriteLine (quotRisk to reward ratio: quot. ผลการค้นหา .RiskRewardRatio) แสดง foreach การค้า (Trade trade ใน results.Trades) Console .WriteLine (trade.Date quot: quot trade.Signal.ToString () ที่ quot trade.Price.ToString () MultiCharts 10 MultiCharts เป็นรางวัล แพลตฟอร์มการเทรดดิ้งไม่ว่าคุณจะต้องการซอฟต์แวร์ซื้อขายวันหรือลงทุนเป็นระยะเวลานาน MultiCharts มีคุณสมบัติที่สามารถช่วยให้คุณบรรลุเป้าหมายทางการค้าได้ การจัดทำดัชนีความละเอียดสูงตัวบ่งชี้และกลยุทธ์ในตัวการซื้อขายหนึ่งคลิกจากแผนภูมิและ DOM การทำ backtesting ความแม่นยำสูงกำลังเดรัจฉานและการเพิ่มประสิทธิภาพทางพันธุกรรมการดำเนินการโดยอัตโนมัติและการสนับสนุนสคริปต์ EasyLanguage เป็นเครื่องมือสำคัญทั้งหมดที่คุณต้องการ hoice of brokers และ data feeds เสรีภาพในการเลือกคือแนวคิดการขับเคลื่อนที่อยู่เบื้องหลัง MultiCharts ของเราและคุณสามารถดูได้จากฟีดข้อมูลและโบรกเกอร์ที่หลากหลาย เลือกวิธีการซื้อขายของคุณทดสอบและเริ่มต้นการซื้อขายกับโบรกเกอร์ที่ได้รับการสนับสนุนที่คุณชอบนั่นคือข้อได้เปรียบของ MultiCharts.How เพื่อทดสอบกลยุทธ์การซื้อขายของคุณอย่างถูกต้องอย่างไรผู้ค้าที่ประสบความสำเร็จจำนวนมากแบ่งปันนิสัยเดียวกับ 8211 ที่ใช้กลยุทธ์การซื้อขายของพวกเขา Backtesting กลยุทธ์การค้าของคุณจะไม่เพียงอย่างเดียวรับประกันได้ว่าคุณจะกลายเป็นผลกำไร แต่มันเป็นขั้นตอนยักษ์ในทิศทางที่ถูกต้อง ในบทความนี้เราจะตรวจสอบอคติบางประการที่อาจเกิดขึ้นในการทำ backtesting ของคุณและเราจะดูวิธีลดผลกระทบของอคติเหล่านี้ มีปัญหามากมายที่อาจเกิดขึ้นเมื่อคุณทำข้อมูลย้อนหลังระบบการซื้อขายของคุณ แต่ปัญหาส่วนใหญ่ตกอยู่ในหนึ่งในสามประเภทคือข้อผิดพลาด postdictive ตัวแปรมากเกินไปหรือไม่สามารถคาดการณ์การเปลี่ยนแปลงที่รุนแรงในตลาดได้ แต่ละข้อผิดพลาดเหล่านี้จะอธิบายพร้อมกับวิธีการหลีกเลี่ยงข้อผิดพลาด คลิกที่นี่เพื่อเรียนรู้วิธีการใช้วง Bollinger Bands ด้วยวิธีการเชิงปริมาณและมีโครงสร้างเพื่อเพิ่มขอบการซื้อขายของคุณและสร้างความได้เปรียบที่มากขึ้นด้วย Trading with Bollinger Bands 8211 A Quantified Guide 1. Postdictive Error ข้อผิดพลาด postdictive เป็นเพียงวิธีแฟนซีบอกว่าคุณได้ใช้ข้อมูลเฉพาะหลังจากที่ 8220a fact8221 เพื่อทดสอบระบบของคุณ เชื่อหรือไม่นี่เป็นข้อผิดพลาดที่พบบ่อยมากเมื่อทดสอบระบบการซื้อขาย ข้อผิดพลาดนี้ทำได้ง่าย ซอฟต์แวร์บางตัวจะช่วยให้คุณสามารถใช้ข้อมูล today8217 ในการทดสอบระบบการซื้อขายซึ่งเป็นข้อผิดพลาดที่เกิดขึ้นในภายหลังเสมอ (เราไม่ทราบว่าข้อมูล today8217s มีประโยชน์สำหรับการทำนายอนาคตหรือไม่ แต่แน่นอนว่าเราทราบดีว่าเป็นประโยชน์ในการคาดการณ์ในอดีตหรือไม่ ) Wouldn8217t คุณรักที่จะสามารถใช้ราคาปิดของ GBPUSD เพื่อคาดการณ์สิ่งที่ตลาดจะทำวันนี้แน่นอนว่าคุณจะฉันมั่นเหมาะจะ แต่โชคร้ายข้อมูลนี้ไม่สามารถใช้ได้กับเราจนถึงวันที่ผ่านไป ตัวอย่างเช่นคุณอาจมีระบบที่รวมราคาปิดไว้นี้จะเห็นได้ชัดว่าการค้าไม่สามารถเริ่มต้นได้จนกว่าจะถึงวันสิ้นสุด มิฉะนั้นนี่เป็นข้อผิดพลาดที่เกิดขึ้นภายหลัง postdictive อีกตัวอย่างหนึ่งอาจช่วยอธิบายข้อผิดพลาด postdictive ถ้าคุณมีกฎในระบบการค้าของคุณเกี่ยวกับราคาสูงสุดแล้วคุณจะมีข้อผิดพลาด postdictive เนื่องจากราคาสูงสุดมักถูกกำหนดโดยข้อมูลที่มาภายหลังในอนาคต วิธีหลีกเลี่ยงข้อผิดพลาดที่เกิดขึ้นภายหลัง postdictive คือเพื่อให้แน่ใจว่าเมื่อคุณทำข้อมูลย้อนหลังระบบที่มีการใช้ข้อมูลเฉพาะที่มีอยู่ในอดีต ณ จุดนั้นเท่านั้นในการทำ backtesting ด้วยการทำ backtesting ด้วยตนเองหรือ backtesting กับ forex tester คุณสามารถทำได้ง่ายมาก แต่ด้วยการ backtesting อัตโนมัติข้อผิดพลาด postdictive สามารถแอบเข้าไปในระบบการค้าของคุณ 2. ตัวแปรมากเกินไปนี่เรียกว่า 8220Degrees of Freedom8221 bias นี่หมายความว่าคุณมีตัวแปรมากเกินไปหรือตัวชี้วัดการซื้อขายในระบบการซื้อขายของคุณ เป็นไปได้มากที่จะมีระบบการซื้อขายที่สามารถอธิบายถึงพฤติกรรมด้านราคาในอดีตของสกุลเงินคู่ได้ ในความเป็นจริงตัวบ่งชี้เพิ่มเติมที่คุณเพิ่มได้ง่ายขึ้นก็มักจะกลายเป็น ปัญหามาถึงเมื่อคุณต้องการใช้ระบบนี้กับอนาคต บ่อยครั้งที่ระบบการซื้อขายมีตัวบ่งชี้มากเกินไปสามารถคาดการณ์พฤติกรรมของตลาดได้ในช่วงเวลาที่ดีมาก แต่ทุกระบบที่ thats8217s เป็นสิ่งที่ดีเพราะในอนาคตระบบจะตกแยก คำแถลงข้างต้นมักเป็นเรื่องยากสำหรับผู้ค้าที่จะมาจับตามอง แต่ก็เป็นความจริง พิจารณาสิ่งที่ William Eckhardt ของ New Market Wizards ได้กล่าวเกี่ยวกับระบบการซื้อขายโดยทั่วไปการทดสอบที่ละเอียดอ่อนที่นักสถิติใช้เพื่อบีบความสำคัญออกจากข้อมูลร่อแร่มีสถานที่ในการซื้อขายไม่ เราจำเป็นต้องใช้เครื่องมือทางสถิติและเทคนิคที่มีประสิทธิภาพ เห็นได้ชัดว่าเขากำลังเตือนเกี่ยวกับองศาของข้อผิดพลาดในเสรีภาพและแนะนำว่าระบบการซื้อขายที่ง่ายมีแนวโน้มที่จะยืนการทดสอบของเวลา นี่เป็นความจริงอย่างแท้จริง ระบบการซื้อขายที่มีประสิทธิภาพที่สุดบางส่วนสามารถทำได้ง่ายมาก เก็บไว้ในใจขณะที่คุณค้าและในขณะที่คุณพยายามที่จะหาระบบการซื้อขายผลกำไร ผู้ค้าส่วนใหญ่จะพบว่าด้วยประสบการณ์ที่พวกเขามีแนวโน้มที่จะยอมรับมุมมองที่ว่าการซื้อขายที่เรียบง่ายเป็นที่ต้องการมากกว่าวิธีการที่ซับซ้อน 3. การเปลี่ยนแปลงที่รุนแรงในตลาดผู้ค้าหลายรายลืมคาดการณ์เหตุการณ์ที่คาดไม่ถึงซึ่งจะเกิดขึ้นในอนาคต ไม่ได้หมายความว่าคุณ don8217t รู้ว่าสิ่งที่กำลังจะเกิดขึ้นในอนาคต 8211 เพราะคุณรู้เรื่องนี้: จะเกิดขึ้นในอนาคตเมื่อตลาดมีพฤติกรรมผิดพลาด เมื่อเกิดเหตุการณ์เช่นนี้คุณควรจะได้ออกแบบระบบการซื้อขายให้คงอยู่ในช่วงเวลาดังกล่าว บางทีบางตัวอย่างอาจช่วยแก้ปัญหานี้ได้: เมื่อ Saddam Hussein ถูกค้นพบ (ในช่วงวันหยุดสุดสัปดาห์) ตลาดสกุลเงินเริ่มตอบสนองอย่างมากเมื่อเปิดทำการในวันจันทร์ เมื่อวิกฤติการเงินโลกเริ่มคลี่คลายลงในเดือนกันยายน 2551 คู่สกุลเงินส่วนใหญ่มีการซื้อขายที่มีความผันผวนมากขึ้นกว่าปีที่ผ่านมา ความจริงก็คือจะมีเหตุการณ์ที่ไม่คาดฝันในอนาคตและเหตุการณ์เหล่านี้จะส่งผลกระทบต่อตลาดดังนั้นสิ่งที่ดีที่สุดที่คุณควรทำคือการเตรียมพร้อม คุณจะเตรียมพร้อมสำหรับสิ่งที่ไม่คาดคิดได้อย่างไรพิจารณาคำตอบง่ายๆเหล่านี้: 1) ทำให้เกินความคาดหมายของคุณ หากผลการทดสอบย้อนหลังของคุณแสดงผลขาดทุนสูงสุด 5000 ให้ถือว่าการสูญเสียสูงสุด 10,000 ครั้ง ระบบการค้าของคุณจะยังคงทำกำไรได้ภายใต้เงื่อนไขเหล่านี้หรือไม่ 2) กำหนดระดับความเสี่ยงที่เหมาะสมสำหรับการค้าแต่ละประเภท โปรดจำไว้ว่าแม้ระดับความเสี่ยงนี้จะเกิน หากคุณตัดสินใจที่จะเสี่ยงต่อการค้า 1 ครั้งคุณควรสมมติว่าในอนาคตคุณอาจอยู่ในภาวะการค้าและเหตุการณ์ที่ไม่คาดคิดจะเกิดขึ้นและการค้าของคุณจะไม่สูญเสียไป 1 แต่แทนที่จะสูญหายไป 5 3) คุณควรจะมีแผนฉุกเฉินขึ้นมา That is, how will you exit a trade if something bad happens and you cannot access your account For instance, what happens if your trading platform is inaccessible and you desperately want out of a trade Most brokers offer a telephone line to traders for these instances. Do you have the phone number 4) Do you have a maximum risk level set This would be applicable if you have several trades open simultaneously. If you decide to risk 1 per trade and you have 7 trades open simultaneously, does this mean that you will be risking 7 of your account Or have you decided on a maximum risk level of say, 3 Keeping in mind that the unexpected will occur, you should probably have a maximum risk level for those times when you have several open trades. 5) What is the maximum drawdown (amount of money your trading system loses over an extended period of time) you are willing to tolerate Keeping in mind that you (and you are not alone) are more likely to overestimate the severity of drawdowns that you can withstand, it is important to be realistic. If you lose 30 of your account will you stop trading What about if you lose 50 Or if you see 70 of your account disappear Again, the best way to plan for drawdowns is to do extensive backtesting to find out what sort of historical drawdowns your trading system experiences and then plan for even worse drawdowns in the future. Anticipating drastic changes in the markets is the single best way to preserve the equity in your account. So, you know that successful traders share this habit 8211 they backtest their trading strategies. You know that backtesting separates the wealthy traders from those who lose money. You also know several ways of incorporating backtesting into your trading regimen. And you know of the pitfalls 8211 what to look out for 8211 when you are backtesting, so that you can get the most out of the process. But, what exactly, will you get out of backtesting your trading system In the next article I will explore the side effects of backtesting. Walter Peters, PhD is a professional forex trader and money manager for a private forex fund. นอกจากนี้วอลเตอร์ยังเป็นผู้ร่วมก่อตั้ง Fxjake ด้วย a resource for forex traders. Walter loves to hear from other traders, he can be reached by email at walterfxjake .
โกลด์แมน แซคส์ ตัวเลือก -trading- ข้อผิดพลาด
Forex- สัมพันธ์ - ผู้เชี่ยวชาญ ที่ปรึกษา หุ่นยนต์