ที่ประสบความสำเร็จ Backtesting ของขั้นตอนกลยุทธ์การซื้อขายส่วน 1 30 มิถุนายน 2014 05:00 3 ความคิดเห็นเข้าชม: 1498 บทความนี้ยังคงชุดเกี่ยวกับการซื้อขายเชิงปริมาณซึ่งเริ่มต้นด้วยการเริ่มต้นคู่มือและบัตรประจำตัวกลยุทธ์ ทั้งสองคนนี้อีกต่อไปบทความที่เกี่ยวข้องมากขึ้นได้รับความนิยมมากดังนั้นป่วยยังคงอยู่ในหลอดเลือดดำนี้และให้รายละเอียดในเรื่องของกลยุทธ์ backtesting backtesting ขั้นตอนต้องมีความรู้ในหลายพื้นที่รวมทั้งจิตวิทยาคณิตศาสตร์สถิติการพัฒนาซอฟต์แวร์และตลาด / จุลภาคแลกเปลี่ยน ผมแบ่งหวังว่าจะครอบคลุมทุกหัวข้อที่ผู้ที่อยู่ในบทความหนึ่งดังนั้น Im จะแบ่งออกเป็นสองหรือสามชิ้นเล็ก สิ่งที่เราจะหารือในส่วนนี้หรือไม่? ป่วยเริ่มต้นด้วยการกำหนด backtesting แล้วฉันจะอธิบายพื้นฐานของวิธีการที่จะดำเนินการออก แล้วฉันจะอธิบายเมื่ออคติที่เราสัมผัสในคู่มือเริ่มต้นการค้าเชิงปริมาณ ถัดไปผมจะนำเสนอการเปรียบเทียบของ backtesting ต่างๆที่มีอยู่ตัวเลือกซอฟแวร์ ในบทความที่ตามมาเราจะมาดูรายละเอียดของการใช้กลยุทธ์ที่ที่มักจะกล่าวถึงหรือแทบจะไม่ละเว้น นอกจากนี้เรายังจะพิจารณาวิธีการที่จะทำให้กระบวนการ backtesting สมจริงมากขึ้นโดยรวมถึงนิสัยของการแลกเปลี่ยนซื้อขายที่ จากนั้นเราจะหารือเกี่ยวกับต้นทุนการทำธุรกรรมและวิธีการอย่างถูกต้องแบบพวกเขาในการตั้งค่า backtest เราจะจบลงด้วยการอภิปรายเกี่ยวกับการปฏิบัติงานของ backtests ของเราและในที่สุดก็ให้ตัวอย่างของกลยุทธ์ quant ทั่วไปที่รู้จักกันเป็นคู่ค้าหมายถึงคืน ให้เริ่มต้นด้วยการพูดถึงสิ่งที่ backtesting และทำไมเราควรจะดำเนินการออกอัลกอริทึมในการซื้อขายของเรา เป็น Backtesting อะไร? ขั้นตอนการซื้อขายยืนห่างจากชนิดอื่น ๆ ของการเรียนการลงทุนเพราะเราน่าเชื่อถือมากขึ้นสามารถให้ความคาดหวังเกี่ยวกับผลการดำเนินงานในอนาคตจากผลการดำเนินงานที่ผ่านมาเป็นผลมาจากความพร้อมของข้อมูลที่อุดมสมบูรณ์ กระบวนการที่นี้จะดำเนินการเป็นที่รู้จักกัน backtesting ในแง่ง่าย backtesting จะดำเนินการโดยการเปิดเผยขั้นตอนวิธีการกลยุทธ์ของคุณโดยเฉพาะกระแสของข้อมูลทางการเงินในอดีตซึ่งนำไปสู่การตั้งค่าของสัญญาณซื้อขายได้ การค้าแต่ละคน (ซึ่งเราจะหมายถึงที่นี่เพื่อจะเดินทางรอบสองสัญญาณ) จะมีกำไรหรือขาดทุนที่เกี่ยวข้อง การสะสมของกำไร / ขาดทุนตลอดระยะเวลาของการ backtest กลยุทธ์ของคุณนี้จะนำไปสู่การรวมกำไรและการสูญเสีย (ที่เรียกกันว่า PL หรือสถานะ) ที่เป็นสาระสำคัญของความคิดแม้ว่าแน่นอนมารอยู่เสมอในรายละเอียด! อะไรคือเหตุผลที่สำคัญสำหรับ backtesting กลยุทธ์ขั้นตอน? กรองถ้าคุณจำได้จากบทความเกี่ยวกับการระบุกลยุทธ์ เป้าหมายของเราในขั้นตอนการวิจัยเริ่มต้นคือการตั้งค่าท่อกลยุทธ์และจากนั้นกรองกลยุทธ์ที่ไม่เป็นไปตามเกณฑ์ที่แน่นอนใด ๆ backtesting ให้เรามีกลไกการกรองอีกอย่างที่เราสามารถขจัดกลยุทธ์ที่ไม่ตรงกับความต้องการของการปฏิบัติของเรา การสร้างแบบจำลอง Backtesting ช่วยให้เราสามารถ (ปลอดภัย) การทดสอบรูปแบบใหม่ของปรากฏการณ์ตลาดบางอย่างเช่นต้นทุนการทำธุรกรรมการกำหนดเส้นทางการสั่งซื้อแฝงสภาพคล่องหรือปัญหาจุลภาคในตลาดอื่น ๆ แม้ว่าการเพิ่มประสิทธิภาพการเพิ่มประสิทธิภาพของกลยุทธ์จะเต็มไปด้วยอคติ backtesting ช่วยให้เราสามารถเพิ่มประสิทธิภาพการทำงานของกลยุทธ์โดยการปรับเปลี่ยนปริมาณหรือค่าพารามิเตอร์ที่เกี่ยวข้องกับกลยุทธ์และการคำนวณผลการดำเนินงาน ตรวจสอบกลยุทธ์ของเรามักจะมีที่มาจากภายนอกผ่านทางท่อกลยุทธ์ของเรา backtesting กลยุทธ์เพื่อให้แน่ใจว่าจะไม่ได้รับการดำเนินการไม่ถูกต้อง ถึงแม้ว่าเราจะไม่ค่อยมีการเข้าถึงสัญญาณที่สร้างขึ้นโดยกลยุทธ์ภายนอกเรามักจะสามารถเข้าถึงตัวชี้วัดประสิทธิภาพการทำงานเช่นอัตราส่วนชาร์ปและลักษณะเบิก ดังนั้นเราสามารถเปรียบเทียบพวกเขากับการดำเนินการของเราเอง backtesting ให้โฮสต์ของข้อได้เปรียบสำหรับการซื้อขายอัลกอริทึม แต่ก็ไม่เสมอไปได้ที่จะตรงไปตรงมา backtest กลยุทธ์ โดยทั่วไปเป็นความถี่ของการเพิ่มขึ้นของกลยุทธ์ที่มันจะกลายเป็นเรื่องยากที่จะได้อย่างถูกต้องแบบจำลองผลกระทบจุลภาคของตลาดและการแลกเปลี่ยน นี้นำไปสู่ backtests เชื่อถือได้น้อยและทำให้การประเมินผลการพลิกแพลงของกลยุทธ์ที่ได้รับการแต่งตั้ง ปัญหานี้เป็นปัญหาโดยเฉพาะอย่างยิ่งที่ระบบการดำเนินการเป็นกุญแจสำคัญในการปฏิบัติงานกลยุทธ์เช่นเดียวกับขั้นตอนวิธีการความถี่สูงพิเศษ แต่น่าเสียดายที่ backtesting จะเต็มไปด้วยอคติทุกประเภท เราได้สัมผัสกับบางส่วนของปัญหาเหล่านี้ในบทความก่อนหน้านี้ แต่ตอนนี้เราจะหารือเกี่ยวกับพวกเขาในเชิงลึก อคติที่มีผลต่อ backtests กลยุทธ์ มีอคติมากมายที่สามารถส่งผลกระทบต่อประสิทธิภาพการทำงานของกลยุทธ์ backtested มี แต่น่าเสียดายที่อคติเหล่านี้มีแนวโน้มที่จะขยายผลการดำเนินงานมากกว่าการเอาออกจากมัน ดังนั้นคุณควรพิจารณา backtest จะเป็นที่เงียบสงบบนผูกพันในการปฏิบัติงานที่เกิดขึ้นจริงของกลยุทธ์ มันเกือบจะเป็นไปไม่ได้ที่จะขจัดอคติจากอัลกอริทึมการซื้อขายดังนั้นจึงเป็นหน้าที่ของเราที่จะลดพวกเขาเป็นที่ดีที่สุดที่เราสามารถเพื่อที่จะทำให้การตัดสินใจเกี่ยวกับกลยุทธ์ของเราอัลกอริทึม มีสี่อคติที่สำคัญที่ฉันต้องการที่จะหารือคือการเพิ่มประสิทธิภาพอคติมองข้างหน้าอคติตกทอดอคติอคติและความอดทนทางจิตวิทยา อคติการเพิ่มประสิทธิภาพ นี้น่าจะเป็นที่ร้ายกาจที่สุดของอคติ backtest ทั้งหมด มันเกี่ยวข้องกับการปรับหรือการแนะนำพารามิเตอร์การซื้อขายที่เพิ่มขึ้นจนผลการดำเนินงานกลยุทธ์ที่ใช้ในชุดข้อมูล backtest เป็นที่น่าสนใจมาก แต่เมื่อมีชีวิตอยู่ประสิทธิภาพของกลยุทธ์ที่สามารถแตกต่างกันอย่างเห็นได้ชัด ชื่ออคตินี้ก็คือเส้นโค้งที่เหมาะสมอคติหรือข้อมูลการสอดแนม อคติ Optimisation ยากที่จะขจัดความเป็นอัลกอริทึมกลยุทธ์มักจะเกี่ยวข้องกับปัจจัยหลายประการ พารามิเตอร์ในกรณีนี้อาจจะมีเกณฑ์ในการเข้า / ออกจากระยะเวลาที่มองย้อนกลับไปช่วงเวลาเฉลี่ย (เช่นย้ายพารามิเตอร์เรียบเฉลี่ย) หรือความผันผวนของการวัดความถี่ อคติการเพิ่มประสิทธิภาพสามารถลดลงโดยการรักษาจำนวนพารามิเตอร์ให้น้อยที่สุดและเพิ่มปริมาณของจุดข้อมูลในชุดการฝึกอบรม ในความเป็นจริงแล้วยังจะต้องระมัดระวังของหลังเป็นจุดที่สามารถฝึกอบรมที่มีอายุมากกว่าจะเป็นเรื่องที่ระบอบการปกครองก่อน (เช่นสภาพแวดล้อมด้านกฎระเบียบ) และอาจจะไม่เกี่ยวข้องกับกลยุทธ์ปัจจุบันของคุณ วิธีการหนึ่งที่จะช่วยลดอคตินี้คือการดำเนินการวิเคราะห์ความไว ซึ่งหมายถึงการที่แตกต่างกันพารามิเตอร์ที่เพิ่มขึ้นและพื้นผิวของการวางแผนการปฏิบัติงาน เสียงเหตุผลพื้นฐานในการเลือกพารามิเตอร์ควรมีปัจจัยอื่น ๆ พิจารณานำไปสู่การมีผิวเรียบเนียนพารามิเตอร์ หากคุณมีผิวประสิทธิภาพน่ากลัวมากก็มักจะหมายความว่าพารามิเตอร์ที่ไม่ได้สะท้อนให้เห็นถึงปรากฏการณ์และสิ่งประดิษฐ์ของข้อมูลการทดสอบที่ มีวรรณกรรมมากมายในขั้นตอนวิธีการเพิ่มประสิทธิภาพหลายมิติและเป็นพื้นที่ที่ใช้งานสูงของการวิจัย ผมเคยอาศัยอยู่ที่นี่ แต่เก็บไว้ในด้านหลังของใจของคุณเมื่อคุณพบว่ากลยุทธ์ที่มี backtest ที่ยอดเยี่ยม! มองข้างหน้าอคติ อคติมองไปข้างหน้าจะนำเข้าสู่ระบบ backtesting เมื่อข้อมูลในอนาคตตั้งใจจะรวมอยู่ที่จุดในการจำลองที่ว่าข้อมูลจะไม่ได้รับสามารถใช้ได้จริง ถ้าเรากำลังทำงานอยู่ backtest ตามลำดับและถึงจุดที่เรายังไม่มีเวลา แล้วมีอคติมองไปข้างหน้าจะเกิดขึ้นหากข้อมูลที่ถูกรวมไว้สำหรับจุด N + k ใด ๆ ที่ k & gt; 0 มองไปข้างหน้าข้อผิดพลาดอคติสามารถจะมีความซับซ้อนอย่างไม่น่าเชื่อ ที่นี่สามตัวอย่างของวิธีการมีอคติมองไปข้างหน้าสามารถนำคือ: บักเทคนิคอาร์เรย์ / พาหะในรหัสมักจะมี iterators หรือตัวแปรดัชนี ชดเชยที่ไม่ถูกต้องของดัชนีเหล่านี้สามารถนำไปสู่การมีอคติมองไปข้างหน้าโดยผสมผสานข้อมูลที่ N + k สำหรับไม่ใช่ศูนย์ k การคำนวณพารามิเตอร์อีกตัวอย่างหนึ่งที่พบบ่อยของการมีอคติมองไปข้างหน้าจะเกิดขึ้นเมื่อมีการคำนวณค่าพารามิเตอร์กลยุทธ์ที่ดีที่สุดเช่นกับการถดถอยเชิงเส้นตรงระหว่างสองชุดเวลา ถ้าข้อมูลชุดทั้งหมด (รวมถึงข้อมูลในอนาคต) จะใช้ในการคำนวณค่าสัมประสิทธิ์การถดถอยและทำให้นำมาใช้มีผลย้อนหลังกับกลยุทธ์การซื้อขายเพื่อวัตถุประสงค์ในการเพิ่มประสิทธิภาพแล้วข้อมูลในอนาคตจะถูกจัดตั้งและมีอคติมองไปข้างหน้าอยู่ แม็กซิม่า / Minima กลยุทธ์การซื้อขายบางอย่างทำให้การใช้ค่าที่มากที่สุดในช่วงเวลาใด ๆ เช่นการใช้มาตรการในราคาที่สูงหรือต่ำในข้อมูล OHLC อย่างไรก็ตามเนื่องจากเหล่าสูงสุด / ค่าน้อยที่สุดเท่านั้นที่สามารถคำนวณในตอนท้ายของช่วงเวลาที่มีอคติมองไปข้างหน้าเป็นที่รู้จักถ้าค่าเหล่านี้จะใช้ - during - งวดปัจจุบัน มันก็มักจะจำเป็นที่จะต้องล่าช้าสูง / ต่ำค่าอย่างน้อยหนึ่งรอบระยะเวลาบัญชีกลยุทธ์การซื้อขายใด ๆ ที่ใช้การทำของพวกเขา อคติตกทอด อคติตกทอดเป็นปรากฏการณ์ที่อันตรายอย่างยิ่งและสามารถนำไปสู่ผลการดำเนินงานที่สูงขึ้นอย่างมีนัยสำคัญชนิดกลยุทธ์บางอย่าง มันเกิดขึ้นเมื่อมีการทดสอบกลยุทธ์ในชุดข้อมูลที่ไม่รวมจักรวาลเต็มของสินทรัพย์ก่อนที่อาจจะได้รับการคัดเลือกที่จุดโดยเฉพาะอย่างยิ่งในเวลา แต่จะพิจารณาผู้ที่มีชีวิตรอดเวลาปัจจุบัน เป็นตัวอย่างให้พิจารณาการทดสอบกลยุทธ์ในการสุ่มเลือกของหุ้นก่อนและหลังการแข่งขันในตลาด 2001 บางหุ้นเทคโนโลยีล้มละลายขณะที่คนอื่นที่มีการจัดการที่จะอยู่ลอยและเจริญแม้กระทั่ง ถ้าเรามี จำกัด กลยุทธ์นี้เฉพาะกับหุ้นซึ่งทำให้มันผ่านช่วงเวลาเบิกตลาดที่เราจะแนะนำอคติรอดเพราะพวกเขาได้แสดงให้เห็นแล้วประสบความสำเร็จของพวกเขาให้กับเรา ในความเป็นจริงนี้เป็นเพียงอีกหนึ่งกรณีที่เฉพาะเจาะจงของการมีอคติมองไปข้างหน้าเป็นข้อมูลในอนาคตจะถูกรวมอยู่ในการวิเคราะห์ที่ผ่านมา มีสองวิธีหลักในการลดอคติรอดใน backtests กลยุทธ์ของคุณ: ตกทอดอคติฟรีชุดข้อมูลในกรณีที่ข้อมูลส่วนก็เป็นไปได้ที่จะซื้อชุดข้อมูลที่มีการเพิกถอนหน่วยงานแม้ว่าพวกเขาจะไม่ได้ราคาถูกและมีเพียงมีแนวโน้มที่จะนำไปใช้โดย บริษัท สถาบัน โดยเฉพาะอย่างยิ่งข้อมูลการเงิน yahoo ไม่อคติรอดฟรีที่นี้และเป็นที่นิยมใช้โดยผู้ค้าปลีกหลายอัลโก หนึ่งยังสามารถซื้อขายในสินทรัพย์ที่มีความเสี่ยงที่จะไม่ได้มีอคติรอดเช่นสินค้าบางอย่าง (และอนุพันธ์อนาคตของพวกเขา) ใช้ข้อมูลล่าสุดอื่น ๆ ในกรณีที่ตราสารทุนที่ใช้ข้อมูลชุดล่าสุดช่วยลดผลกระทบความเป็นไปได้ว่าการเลือกหุ้นที่เลือกจะมีน้ำหนักในการรอดชีวิตเพียงว่ามีโอกาสน้อยกว่าการเพิกถอนหุ้นโดยรวมในช่วงเวลาที่สั้นลง หนึ่งยังสามารถเริ่มต้นสร้างส่วนบุคคลรอดอคติชุดฟรีโดยการเก็บรวบรวมข้อมูลจากจุดปัจจุบันเป็นต้นไป หลังจากที่ 3-4 ปีคุณจะมีความแข็งรอดอคติชุดฟรีข้อมูลหุ้นที่จะ backtest กลยุทธ์ต่อไป ตอนนี้เราจะพิจารณาปรากฏการณ์ทางจิตวิทยาบางอย่างที่สามารถมีผลต่อประสิทธิภาพการค้าของคุณ ตอนนี้เราจะพิจารณาปรากฏการณ์ทางจิตวิทยาบางอย่างที่สามารถมีผลต่อประสิทธิภาพการค้าของคุณ อคติความอดทนทางจิตวิทยา โดยเฉพาะอย่างยิ่งปรากฏการณ์นี้ไม่ได้กล่าวถึงบ่อยครั้งในบริบทของการค้าเชิงปริมาณ แต่ก็เป็นที่กล่าวถึงอย่างกว้างขวางในเรื่องการซื้อขายมากขึ้นวิธีการตัดสินใจ มันมีชื่อต่าง ๆ แต่ Ive ตัดสินใจที่จะเรียกว่าอคติความอดทนทางจิตวิทยาเพราะมันรวบรวมสาระสำคัญของปัญหา เมื่อมีการสร้าง backtests ระยะเวลา 5 ปีหรือมากกว่านั้นก็เป็นเรื่องง่ายที่จะมองไปที่เส้นโค้งส่วนแนวโน้มเหนือคำนวณประกอบตอบแทนประจำปีอัตราส่วนชาร์ปและแม้กระทั่งการเบิกลักษณะและมีความพึงพอใจกับผลลัพธ์ที่ได้ เป็นตัวอย่างกลยุทธ์ที่อาจจะมีการเบิกญาติสูงสุด 25% และระยะเวลาเบิกได้สูงสุด 4 เดือน นี้จะไม่ผิดปกติสำหรับกลยุทธ์การโมเมนตัม มันเป็นเรื่องง่ายที่จะโน้มน้าวตัวเองว่ามันเป็นเรื่องง่ายที่จะทนต่อช่วงเวลาดังกล่าวของการสูญเสียเนื่องจากภาพโดยรวมเป็นสีดอกกุหลาบ แต่ในทางปฏิบัติก็จะไกลยาก! หากเบิกถอนทางประวัติศาสตร์ของ 25% หรือมากกว่านั้นเกิดขึ้นใน backtests แล้วในทุกโอกาสที่คุณจะได้เห็นช่วงเวลาของการเบิกที่คล้ายกันในการซื้อขายสด ช่วงเวลานี้เป็นเบิกทางจิตใจยากที่จะทน ฉันได้สังเกตมือแรกสิ่งที่เบิกขยายอาจจะเป็นเหมือนในการตั้งค่าที่สถาบันและมันเป็นสิ่งที่ไม่พอใจแม้ว่า backtests แนะนำช่วงเวลาดังกล่าวจะเกิดขึ้น เหตุผลที่ผมได้เรียกว่าเป็นอคติที่มักจะเป็นกลยุทธ์ที่อื่นจะประสบความสำเร็จจะหยุดการซื้อขายในช่วงเวลาของการขยายและการเบิกจึงจะนำไปสู่ผลประกอบสำคัญเมื่อเทียบกับ backtest ดังนั้นแม้ว่ากลยุทธ์ที่เป็นอัลกอริทึมในธรรมชาติปัจจัยทางจิตวิทยายังสามารถมีอิทธิพลในการทำกำไร ประเด็นคือเพื่อให้แน่ใจว่าถ้าคุณเห็นเบิกถอนของอัตราร้อยละและระยะเวลาใน backtests แล้วคุณควรคาดหวังให้เกิดขึ้นในสภาพแวดล้อมที่มีการซื้อขายสดและจะต้องอดทนเพื่อให้บรรลุการทำกำไรอีกครั้ง แพคเกจซอฟต์แวร์สำหรับ Backtesting ภูมิทัศน์ซอฟต์แวร์สำหรับ backtesting กลยุทธ์มีมากมาย โซลูชั่นช่วงจากสถาบันครบวงจรเกรดซอฟต์แวร์ที่ซับซ้อนผ่านการเขียนโปรแกรมภาษาเช่น C ++, Python และ R เกือบทุกอย่างที่จะต้องเขียนจากรอยขีดข่วน (หรือปลั๊กอินที่เหมาะสมที่ได้รับ) ในฐานะที่เป็นผู้ค้า quant เรามีความสนใจในความสมดุลของความสามารถในการเป็นเจ้าของสแต็คเทคโนโลยีการค้าของเราเมื่อเทียบกับความเร็วและความน่าเชื่อถือของวิธีการพัฒนาของเรา นี่คือการพิจารณาที่สำคัญสำหรับการเลือกซอฟต์แวร์ที่: ทักษะการเขียนโปรแกรมทางเลือกของสภาพแวดล้อมที่จะอยู่ในส่วนที่มีขนาดใหญ่ลงมาให้ความสามารถในการเขียนโปรแกรมซอฟแวร์ ฉันจะยืนยันว่าอยู่ในการควบคุมของกองรวมจะมีผลมากขึ้นในระยะยาวของคุณ PL กว่าจ้างมากที่สุดเท่าที่เป็นไปได้ที่ผู้จำหน่ายซอฟต์แวร์ เพราะนี่คือความเสี่ยงข้อเสียของการมีข้อบกพร่องภายนอกหรือนิสัยที่คุณไม่สามารถที่จะแก้ไขใน บริษัท ผู้ผลิตซอฟแวร์ซึ่งมิฉะนั้นจะแก้ได้ง่ายถ้าคุณมีการควบคุมที่มากกว่าสแต็คเทคโนโลยีของคุณ คุณยังต้องการสภาพแวดล้อมที่นัดสมดุลระหว่างการผลิต, ความพร้อมห้องสมุดและความเร็วของการประหาร ผมให้คำแนะนำส่วนตัวของตัวเองด้านล่าง ความสามารถในการดำเนินการ / นายหน้าปฏิสัมพันธ์ซอฟต์แวร์ backtesting บางอย่างเช่น TradeStation ความสัมพันธ์โดยตรงกับนายหน้า ผมไม่ได้เป็นแฟนของวิธีการนี้กับการลดค่าใช้จ่ายในการทำธุรกรรมที่มักจะมีขนาดใหญ่เป็นองค์ประกอบของการได้รับอัตราส่วนชาร์ปที่สูงขึ้น หากคุณกำลังผูกเป็นนายหน้าโดยเฉพาะอย่างยิ่ง (และกองกำลัง TradeStation คุณทำเช่นนี้) แล้วคุณจะมีช่วงเวลาที่ยากเปลี่ยนไปซอฟต์แวร์ใหม่ (หรือนายหน้าใหม่) ถ้าจำเป็นต้องเกิดขึ้น อินเตอร์แอคทีโบรกเกอร์ให้ API ซึ่งเป็นแข็งแกร่งแม้จะมีอินเตอร์เฟซที่ป้านเล็กน้อย การปรับแต่งสภาพแวดล้อมเช่น MATLAB หรืองูหลามจะช่วยให้คุณจัดการที่ดีของความยืดหยุ่นในการสร้างกลยุทธ์ algo ที่พวกเขาให้ห้องสมุดที่ยอดเยี่ยมสำหรับเกือบดำเนินการใด ๆ ทางคณิตศาสตร์เท่า แต่ยังช่วยให้การปรับแต่งมากมายในกรณีที่จำเป็น กลยุทธ์ซับซ้อนซอฟต์แวร์บางอย่างไม่ได้เป็นเพียงแค่ตัดออกสำหรับจำนวนกระทืบหนักหรือความซับซ้อนทางคณิตศาสตร์ Excel เป็นหนึ่งชิ้นส่วนของซอฟต์แวร์ดังกล่าว ในขณะที่มันเป็นสิ่งที่ดีสำหรับกลยุทธ์ที่เรียบง่ายก็ไม่สามารถจริงๆรับมือกับทรัพย์สินจำนวนมากหรือมากกว่าขั้นตอนวิธีการที่ซับซ้อนที่ความเร็ว ไม่อคติ Minimisation ชิ้นส่วนของซอฟต์แวร์หรือข้อมูลที่ให้ยืมตัวมากขึ้นในการซื้อขายอคติ? คุณต้องให้แน่ใจว่าถ้าคุณต้องการที่จะสร้างการทำงานทั้งหมดด้วยตัวคุณเองที่คุณไม่แนะนำข้อบกพร่องที่สามารถนำไปสู่การมีอคติ ความเร็วของการพัฒนาหนึ่งไม่ควรมีการใช้จ่ายเดือนและเดือนการใช้เครื่องมือ backtest การสร้างต้นแบบควรใช้เวลาไม่กี่สัปดาห์ ตรวจสอบให้แน่ใจว่าซอฟต์แวร์ของคุณไม่ได้ขัดขวางความคืบหน้าของคุณไปยังระดับที่ดีใด ๆ เพียงแค่การคว้าไม่กี่คะแนนร้อยละที่เพิ่มขึ้นของการดำเนินความเร็ว C ++ เป็นช้างในห้องพักที่นี่! ความเร็วของการดำเนินการหากกลยุทธ์ของคุณจะสมบูรณ์ขึ้นอยู่กับการดำเนินการทันเวลา (เช่นใน HFT / UHFT) แล้วภาษาเช่น C หรือ C ++ จะมีความจำเป็น แต่คุณจะได้รับในการเพิ่มประสิทธิภาพผาลินุกซ์และการใช้ FPGA สำหรับโดเมนเหล่านี้ซึ่งอยู่นอกขอบเขตของบทความนี้! เสียค่าใช้จ่ายจำนวนมากของสภาพแวดล้อมซอฟต์แวร์ที่คุณสามารถโปรแกรมกลยุทธ์การซื้อขายอัลกอริทึมที่มีเป็นแหล่งสมบูรณ์ฟรีและเปิด ในความเป็นจริงกองทุนป้องกันความเสี่ยงจำนวนมากทำให้การใช้ซอฟต์แวร์โอเพนซอร์สสำหรับอัลโกของพวกเขาทั้งกองซื้อขาย นอกจากนี้ Excel และโปรแกรม MATLAB มีทั้งที่ค่อนข้างถูกและมีแม้กระทั่งฟรีทางเลือกให้กับแต่ละ ตอนนี้ที่เรามีอยู่เกณฑ์ที่เราจะต้องเลือกโครงสร้างพื้นฐานซอฟต์แวร์ของเราผมต้องการที่จะวิ่งผ่านบางส่วนของแพคเกจที่นิยมมากขึ้นและวิธีการเปรียบเทียบ: หมายเหตุ: ฉันเพียงจะรวมถึงซอฟต์แวร์ที่มีให้กับผู้ปฏิบัติงานค้าปลีกมากที่สุดและ นักพัฒนาซอฟต์แวร์เช่นนี้เป็นผู้อ่านของเว็บไซต์ ในขณะที่ซอฟต์แวร์อื่น ๆ ที่มีอยู่เช่นเครื่องมืออื่น ๆ สถาบันชั้นประถมศึกษาปีผมรู้สึกเหล่านี้มีราคาแพงเกินไปที่จะใช้อย่างมีประสิทธิภาพในการตั้งค่าการค้าปลีกและผมเองมีประสบการณ์กับพวกเขา คำอธิบาย WYSIWYG (สิ่งที่คุณเห็นคือสิ่งที่คุณจะได้รับ) ซอฟต์แวร์สเปรดชีต ที่แพร่หลายอย่างมากในอุตสาหกรรมการเงิน ข้อมูลและขั้นตอนวิธีการเป็นคู่แน่น การดำเนินการ ใช่ Excel สามารถผูกเป็นโบรกเกอร์ส่วนใหญ่ การปรับแต่ง แมโคร VBA ช่วยให้การทำงานที่สูงขึ้นที่ค่าใช้จ่ายในการดำเนินการซ่อน กลยุทธ์ซับซ้อน เครื่องมือทางสถิติที่สูงขึ้นยากที่จะดำเนินการเช่นเดียวกับกลยุทธ์ที่มีหลายร้อยหลายสินทรัพย์ อคติ Minimisation อคติมองไปข้างหน้าเป็นเรื่องง่ายในการตรวจสอบการทำงานผ่านทางมือถือเน้น (สมมติว่าไม่มี VBA) การพัฒนาความเร็ว รวดเร็วในการดำเนินกลยุทธ์พื้นฐาน ความเร็วในการดำเนินการ ความเร็วในการทำงานช้าเหมาะสำหรับกลยุทธ์ความถี่ที่ต่ำกว่า ค่าใช้จ่าย ราคาถูกหรือฟรี (ขึ้นอยู่กับใบอนุญาต) ทางเลือก OpenOffice คำอธิบาย สภาพแวดล้อมของโปรแกรมออกแบบมาสำหรับการคำนวณคณิตศาสตร์ฟิสิกส์และวิศวกรรม ดีมากเหมาะกับการดำเนินงาน vectorised และผู้ที่เกี่ยวข้องกับตัวเลขพีชคณิตเชิงเส้น ให้หลากหลายของปลั๊กอินสำหรับการซื้อขาย quant ในการใช้งานที่แพร่หลายในเชิงปริมาณกองทุนป้องกันความเสี่ยง การดำเนินการ ไม่มีความสามารถในการดำเนินพื้นเมือง MATLAB ต้องการระบบการดำเนินการแยกจากกัน การปรับแต่ง อาร์เรย์ใหญ่ของปลั๊กอินชุมชนเกือบทุกพื้นที่ของการคำนวณทางคณิตศาสตร์ กลยุทธ์ซับซ้อน หลายวิธีการทางสถิติขั้นสูงอยู่แล้วและมีการทดสอบ อคติ Minimisation ยากที่จะตรวจสอบอคติมองไปข้างหน้าต้องมีการทดสอบอย่างกว้างขวาง การพัฒนาความเร็ว สคริปสั้นสามารถสร้างที่มีความซับซ้อนได้อย่างง่ายดาย backtests ความเร็วในการดำเนินการ สมมติว่า vectorised / ขั้นตอนวิธี parallelised, MATLAB มีการเพิ่มประสิทธิภาพสูง ดีสำหรับลูปซ้ำแบบดั้งเดิม ค่าใช้จ่าย คำอธิบาย ภาษาระดับสูงที่ออกแบบมาสำหรับความเร็วของการพัฒนา หลากหลายของห้องสมุดสำหรับเกือบทุกงานเขียนโปรแกรมเท่า ได้รับการยอมรับในวงกว้างในกองทุนป้องกันความเสี่ยงและการลงทุนธนาคารชุมชน ไม่ได้ค่อนข้างเร็วที่สุดเท่าที่ C / C ++ สำหรับการดำเนินการความเร็ว การดำเนินการ ปลั๊กอินหลามที่มีอยู่สำหรับโบรกเกอร์ที่มีขนาดใหญ่เช่นโบรกเกอร์ Interactive ดังนั้น backtest และระบบการดำเนินการทุกคนสามารถเป็นส่วนหนึ่งของกองเทคโนโลยีเดียวกัน การปรับแต่ง งูใหญ่มีการพัฒนาชุมชนมีสุขภาพดีมากและเป็นภาษาที่เป็นผู้ใหญ่ NumPy / SciPy ให้การคำนวณทางวิทยาศาสตร์ได้อย่างรวดเร็วและเครื่องมือการวิเคราะห์ทางสถิติที่เกี่ยวข้องสำหรับการซื้อขาย quant ความซับซ้อนกลยุทธ์: ปลั๊กอินหลายคนที่มีอยู่สำหรับขั้นตอนวิธีการหลัก แต่ไม่ได้ค่อนข้างเป็นชุมชนขนาดใหญ่ quant เป็นอยู่สำหรับ MATLAB อคติ Minimisation ปัญหาการลดอคติเดียวกันอยู่เป็นภาษาระดับสูง จะต้องระมัดระวังอย่างมากเกี่ยวกับการทดสอบ การพัฒนาความเร็ว งูเหลือมประโยชน์หลักคือความเร็วในการพัฒนาที่มีประสิทธิภาพในการสร้างความสามารถในการทดสอบ ความเร็วในการดำเนินการ ไม่ได้ค่อนข้างเป็นไปอย่างรวดเร็วเป็น C ++ แต่องค์ประกอบการคำนวณทางวิทยาศาสตร์ที่ดีที่สุดและ Python สามารถพูดคุยกับรหัส C พื้นเมืองที่มีปลั๊กอินบางอย่าง ค่าใช้จ่าย ฟรี / เปิดทางเลือกแหล่งที่มา ทับทิม. Erlang Haskell คำอธิบาย สิ่งแวดล้อมที่ออกแบบมาสำหรับวิธีการทางสถิติขั้นสูงและการวิเคราะห์อนุกรมเวลา หลากหลายของเฉพาะทางสถิติและเศรษฐพื้นเมืองกราฟ toolsets ชุมชนนักพัฒนาที่มีขนาดใหญ่ การดำเนินการ R มีปลั๊กอินเพื่อโบรกเกอร์บางอย่างโดยเฉพาะอย่างยิ่งโบรกเกอร์อินเทอร์ ดังนั้นระบบแบบ end-to-end สามารถเขียนทั้งหมดในอาร์การปรับแต่ง R สามารถปรับแต่งด้วยแพคเกจใด ๆ แต่จุดแข็งอยู่ในสถิติ / โดเมนทางเศรษฐมิติ กลยุทธ์ซับซ้อน ประโยชน์ส่วนใหญ่ถ้าการดำเนินการทางเศรษฐมิติกลยุทธ์ทางสถิติหรือเครื่องการเรียนรู้อันเนื่องมาจากปลั๊กอินที่มีอยู่ อคติ Minimisation ระดับใกล้เคียงกับความเป็นไปได้มีอคติใด ๆ สำหรับภาษาระดับสูงเช่นงูหลามหรือ C ++ การทดสอบดังนั้นจะต้องดำเนินการ การพัฒนาความเร็ว R คืออย่างรวดเร็วสำหรับการเขียนกลยุทธ์ขึ้นอยู่กับวิธีการทางสถิติ ความเร็วในการดำเนินการ R คือช้ากว่า C ++ แต่ยังคงค่อนข้างที่ดีที่สุดสำหรับการดำเนินงาน vectorised (เช่นเดียวกับ MATLAB) ค่าใช้จ่าย ฟรี / เปิดทางเลือกแหล่งที่มา SPSS Stata คำอธิบาย ผู้ใหญ่ภาษาระดับสูงที่ออกแบบมาสำหรับความเร็วของการดำเนินการ หลากหลายของทางการเงินเชิงปริมาณและห้องสมุดตัวเลข ยากที่จะแก้ปัญหาและมักจะใช้เวลานานในการดำเนินการกว่างูหลามหรือ MATLAB ที่แพร่หลายมากทั้งใน buy - และขายด้าน การดำเนินการ APIs นายหน้าส่วนใหญ่จะเขียนใน C ++ และ Java ดังนั้นปลั๊กอินมากมายที่มีอยู่ การปรับแต่ง C / C ++ ช่วยให้เข้าถึงโดยตรงไปยังหน่วยความจำพื้นฐานดังนั้นกลยุทธ์ความถี่สูงพิเศษสามารถดำเนินการได้ กลยุทธ์ซับซ้อน C ++ STL ให้หลากหลายของขั้นตอนวิธีการที่ดีที่สุด เกือบทุกขั้นตอนวิธีการทางคณิตศาสตร์ที่มีคุณสมบัติพิเศษฟรีเปิดแหล่งที่มา C / C ++ การดำเนินงานบนเว็บ อคติ Minimisation มองไปข้างหน้าอคติอาจเป็นเรื่องยุ่งยากที่จะกำจัด แต่ไม่หนักกว่าภาษาระดับสูงอื่น ๆ เครื่องมือการแก้จุดบกพร่องที่ดี แต่ต้องระวังเมื่อต้องรับมือกับหน่วยความจำพื้นฐาน การพัฒนาความเร็ว C ++ เมื่อเทียบค่อนข้างละเอียดเพื่อหลามหรือ MATLAB สำหรับ algorithmm เดียวกัน บรรทัดของรหัสอื่น ๆ (LOC) มักจะนำไปสู่โอกาสที่มากขึ้นของข้อบกพร่อง ความเร็วในการดำเนินการ C / C ++ มีความเร็วในการทำงานได้อย่างรวดเร็วและสามารถดีที่สุดสำหรับสถาปัตยกรรมการคำนวณที่เฉพาะเจาะจง นี่คือเหตุผลหลักที่จะใช้มัน ค่าใช้จ่าย คอมไพเลอร์ต่างๆ: Linux / GCC เป็นฟรี MS Visual Studio มีใบอนุญาตที่แตกต่างกัน ทางเลือก c # ชวา กาลากลยุทธ์ที่แตกต่างกันจะต้องมีซอฟแวร์ที่แตกต่างกัน HFT และกลยุทธ์ UHFT จะถูกเขียนใน C / C ++ (วันนี้พวกเขาจะดำเนินการมักจะออกมาใน GPUs และ FPGAs) ในขณะที่ความถี่ต่ำกลยุทธ์ส่วนทิศทางง่ายต่อการใช้ใน TradeStation เนื่องจากทั้งหมดในลักษณะของซอฟแวร์ / นายหน้าซื้อขายหลักทรัพย์ การตั้งค่าส่วนตัวของฉันคือสำหรับหลามที่จะให้การศึกษาระดับปริญญาที่เหมาะสมของการปรับแต่งความเร็วของการพัฒนาทดสอบความสามารถและความเร็วในการทำงานสำหรับความต้องการและกลยุทธ์ของฉัน ถ้าผมต้องการอะไรได้เร็วขึ้นผมสามารถลดลงไปที่ C ++ ได้โดยตรงจากโปรแกรมหลามของฉัน วิธีการหนึ่งที่ชื่นชอบโดยผู้ค้า quant หลายต้นแบบกลยุทธ์ของพวกเขาในหลามแล้วแปลงส่วนการดำเนินการช้าไปที่ C ++ ในลักษณะที่ซ้ำแล้วซ้ำอีก ในที่สุดอัลโกทั้งหมดจะถูกเขียนใน C ++ และสามารถนำมาเหลือเพียงอย่างเดียวเพื่อการค้า! ในบทความที่สามต่อไปใน backtesting เราจะดูที่ปัญหาเฉพาะบางรอบการดำเนินงานของระบบซื้อขายอัลกอริทึม backtesting เป็นเช่นเดียวกับวิธีการรวมผลกระทบของการแลกเปลี่ยนซื้อขาย เราจะหารือเกี่ยวกับการวัดประสิทธิภาพกลยุทธ์และในที่สุดก็สรุปกับกลยุทธ์ตัวอย่าง - โดยไมเคิลฮอลล์มัวร์จาก QuantStart
No comments:
Post a Comment