ที่ประสบความสำเร็จ backtesting ของ ขั้นตอน กลยุทธ์การซื้อขาย - part ii




ที่ประสบความสำเร็จ Backtesting ของขั้นตอนกลยุทธ์การซื้อขาย - Part II โดยไมเคิลฮอลล์มัวร์เมื่อวันที่ 9 พฤษภาคม 2013 ในบทความครั้งแรกที่ประสบความสำเร็จ backtesting เราพูดถึงอคติทางสถิติและพฤติกรรมที่มีผลต่อประสิทธิภาพการทำงานของเรา backtest นอกจากนี้เรายังกล่าวถึงซอฟแวร์สำหรับ backtesting รวมทั้ง Excel, MATLAB, Python, R และ C ++ ในบทความนี้เราจะพิจารณาวิธีการรวมต้นทุนการทำธุรกรรมเช่นเดียวกับการตัดสินใจบางอย่างที่จะต้องทำเมื่อมีการสร้างเครื่องมือ backtest เช่นประเภทการสั่งซื้อและความถี่ของข้อมูล ต้นทุนการทำธุรกรรม หนึ่งในความผิดพลาดที่พบบ่อยที่สุดเริ่มต้นเมื่อการดำเนินการรูปแบบการค้าคือการละเลย (หรือไม่มีการลดประมาท) ผลกระทบของต้นทุนการทำธุรกรรมเกี่ยวกับกลยุทธ์ แม้ว่ามันมักจะสันนิษฐานว่าค่าใช้จ่ายในการทำธุรกรรมเพียงสะท้อนให้เห็นถึงค่าคอมมิชชั่นนายหน้ามีในความเป็นจริงวิธีการอื่น ๆ อีกมากมายที่ค่าใช้จ่ายสามารถค้างในรูปแบบการค้า ทั้งสามประเภทหลักของค่าใช้จ่ายที่จะต้องได้รับการพิจารณารวมถึง: คณะกรรมการ / ค่าธรรมเนียม รูปแบบที่ตรงที่สุดของต้นทุนการทำธุรกรรมที่เกิดขึ้นโดยกลยุทธ์การซื้อขายอัลกอริทึมที่มีค่าคอมมิชชั่นและค่าธรรมเนียม กลยุทธ์ทุกคนจำเป็นต้องรูปแบบของการเข้าถึงบางอย่างที่จะแลกเปลี่ยน โดยตรงหรือผ่านตัวกลางนายหน้า ("นายหน้า") บริการเหล่านี้ต้องเสียค่าใช้จ่ายที่เพิ่มขึ้นกับการค้าแต่ละที่รู้จักกันเป็นคณะกรรมการ โบรกเกอร์ทั่วไปให้บริการจำนวนมากแม้ว่าขั้นตอนวิธีการเชิงปริมาณเท่านั้นจริงๆทำให้การใช้งานของโครงสร้างพื้นฐานของการแลกเปลี่ยน ดังนั้นค่าคอมมิชชั่นนายหน้ามักจะมีขนาดเล็กบนพื้นฐานต่อการค้า โบรกเกอร์ยังเรียกเก็บค่าธรรมเนียม ซึ่งเป็นค่าใช้จ่ายที่เกิดขึ้นในการล้างและชำระการซื้อขาย ต่อไปนี้คือภาษีที่กำหนดโดยรัฐบาลภูมิภาคหรือระดับชาติ ยกตัวอย่างเช่นในสหราชอาณาจักรมีอากรแสตมป์ที่จะต้องจ่ายในการทำธุรกรรมตราสารทุน ตั้งแต่ค่าคอมมิชชั่นค่าธรรมเนียมและภาษีได้รับการแก้ไขโดยทั่วไปพวกเขาจะค่อนข้างตรงไปตรงมาในการดำเนินการในเครื่องมือ backtest (ดูด้านล่าง) ลื่นไถล / แฝง การเลื่อนหลุดของความแตกต่างในราคาที่ประสบความสำเร็จระหว่างช่วงเวลาที่ระบบการซื้อขายตัดสินใจที่จะทำธุรกรรมและเวลาเมื่อการทำธุรกรรมจะดำเนินการจริงออกที่แลกเปลี่ยน เลื่อนหลุดเป็นส่วนประกอบที่สำคัญของต้นทุนการทำธุรกรรมและสามารถทำให้ความแตกต่างระหว่างกลยุทธ์การทำกำไรได้มากและหนึ่งที่มีประสิทธิภาพต่ำ เลื่อนหลุดเป็นหน้าที่ของความผันผวนของหุ้นอ้างอิงที่แฝงระหว่างระบบการค้าและการแลกเปลี่ยนและประเภทของกลยุทธ์ที่มีการดำเนินการ เป็นเครื่องมือที่มีความผันผวนสูงขึ้นมีแนวโน้มที่จะย้ายและราคาเพื่อให้ระหว่างสัญญาณและการดำเนินการที่แตกต่างกันอย่างมีนัยสำคัญสามารถ แฝงถูกกำหนดให้เป็นความแตกต่างระหว่างรุ่นเวลาของสัญญาณและจุดของการดำเนินการ กลยุทธ์ความถี่สูงมีความไวต่อปัญหาความล่าช้าและการปรับปรุงมิลลิวินาทีในความล่าช้านี้สามารถสร้างความแตกต่างที่มีต่อการทำกำไร ประเภทของกลยุทธ์เป็นสิ่งที่สำคัญ ระบบโมเมนตัมต้องทนทุกข์ทรมานจากการลื่นไถลมากขึ้นโดยเฉลี่ยเพราะพวกเขากำลังพยายามที่จะซื้อตราสารที่มีอยู่แล้วไปในทิศทางที่คาดการณ์ ตรงข้ามเป็นจริงสำหรับกลยุทธ์หมายถึงกลับเป็นกลยุทธ์เหล่านี้เป็นไปในทิศทางตรงข้ามการค้า ผลกระทบต่อตลาด / สภาพคล่อง ผลกระทบต่อตลาดเป็นค่าใช้จ่ายที่เกิดขึ้นให้กับผู้ค้าเนื่องจากการอุปทาน / อุปสงค์ของการแลกเปลี่ยน (และสินทรัพย์) โดยที่พวกเขากำลังพยายามที่จะค้า คำสั่งขนาดใหญ่เป็นสินทรัพย์ที่มีสภาพคล่องต่ำค่อนข้างมีแนวโน้มที่จะย้ายตลาดการค้าอย่างมีนัยสำคัญจะต้องมีการเข้าถึงองค์ประกอบใหญ่ของอุปทานในปัจจุบัน นี้เพื่อตอบโต้การซื้อขายบล็อกขนาดใหญ่จะแบ่งออกเป็นขนาดเล็ก "ชิ้น" ซึ่งจะมีการทำธุรกรรมเป็นระยะ ๆ และเมื่อสภาพคล่องใหม่มาถึงที่แลกเปลี่ยน ที่ปลายตรงข้ามตราสารมีสภาพคล่องสูงเช่น S & P500 ดัชนี E-mini สัญญาฟิวเจอร์สซื้อขายมีปริมาณน้อยไม่น่าจะปรับ "ราคาปัจจุบัน" ในจำนวนมาก ๆ สินทรัพย์สภาพคล่องเพิ่มเติมที่โดดเด่นด้วยการแพร่กระจายขนาดใหญ่ ซึ่งเป็นความแตกต่างระหว่างการเสนอราคาในปัจจุบันและขอให้ราคาในการสั่งซื้อหนังสือขีด จำกัด การแพร่กระจายนี้เป็นค่าใช้จ่ายในการทำธุรกรรมเพิ่มเติมที่เกี่ยวข้องกับการค้าใด ๆ การแพร่กระจายเป็นส่วนประกอบที่สำคัญมากของค่าใช้จ่ายในการทำธุรกรรมรวม - เป็นหลักฐานโดยมากมายของสหราชอาณาจักร บริษัท แพร่กระจายการพนันที่มีแคมเปญโฆษณาแสดง "ความหนาแน่น" ของการแพร่กระจายของพวกเขาสำหรับการซื้อขายตราสารหนั​​ก การทำธุรกรรมรุ่นต้นทุน เพื่อที่จะประสบความสำเร็จในรูปแบบค่าใช้จ่ายดังกล่าวข้างต้นในระบบ backtesting ที่หลายองศาของรูปแบบการทำธุรกรรมที่ซับซ้อนได้รับการแนะนำ พวกเขาช่วงจากการสร้างแบบจำลองแบนเรียบง่ายผ่านไปประมาณสมการไม่เชิงเส้น ที่นี่เราจะร่างข้อดีและข้อเสียของแต่ละรุ่น: คอนโด / การทำธุรกรรมคงที่รุ่นต้นทุน ต้นทุนการทำธุรกรรมแบนเป็นรูปแบบที่ง่ายที่สุดของการสร้างแบบจำลองรายการค่าใช้จ่าย พวกเขาคิดค่าใช้จ่ายคงที่เกี่ยวข้องกับการค้าในแต่ละ ดังนั้นพวกเขาที่ดีที่สุดเป็นตัวแทนของแนวคิดของค่าคอมมิชชั่นนายหน้าซื้อขายหลักทรัพย์และค่าธรรมเนียม พวกเขาจะไม่ถูกต้องการสร้างแบบจำลองมากสำหรับพฤติกรรมที่ซับซ้อนมากขึ้นเช่นการลื่นไถลหรือผลกระทบต่อตลาด ในความเป็นจริงพวกเขาไม่ได้พิจารณาความผันผวนของสินทรัพย์สภาพคล่องที่ทุกคน ประโยชน์หลักของพวกเขาคือว่าพวกเขามีคอมพิวเตอร์ตรงไปตรงมาในการดำเนินการ แต่พวกเขามีแนวโน้มที่จะมีนัยสำคัญภายใต้หรือค่าใช้จ่ายการทำธุรกรรมประมาณการขึ้นอยู่กับกลยุทธ์ที่ถูกว่าจ้าง ดังนั้นพวกเขาจะไม่ค่อยได้ใช้ในทางปฏิบัติ เชิงเส้น / Piecewise เชิงเส้น / กำลังสองรุ่นต้นทุนการทำธุรกรรม รูปแบบรายการค่าใช้จ่ายที่สูงขึ้นเริ่มต้นด้วยรูปแบบเชิงเส้นยังคงมีรูปแบบเชิงเส้นชิ้นที่ชาญฉลาดและสรุปที่มีรูปแบบสมการกำลังสอง พวกเขาอยู่ในสเปกตรัมของน้อยที่ถูกต้องมากที่สุดแม้จะมีความพยายามน้อยการดำเนินงานที่ยิ่งใหญ่ที่สุด ตั้งแต่การลื่นไถลและผลกระทบต่อตลาดโดยเนื้อแท้เป็นปรากฏการณ์ที่ไม่ใช่เชิงเส้นกำลังสองฟังก์ชั่นที่มีความถูกต้องแม่นยำมากที่สุดในการสร้างแบบจำลองการเปลี่ยนแปลงเหล่านี้ รูปแบบรายการค่าใช้จ่ายกำลังสองจะยากมากที่จะใช้และสามารถใช้เวลานานในการคำนวณง่ายกว่ารุ่นแบนหรือเชิงเส้น แต่พวกเขามักจะใช้ในทางปฏิบัติ อัลกอริทึมผู้ค้ายังพยายามที่จะทำให้การใช้งานของการทำธุรกรรมที่เกิดขึ้นจริงในอดีตค่าใช้จ่ายสำหรับกลยุทธ์ของพวกเขาเป็นปัจจัยการผลิตการทำธุรกรรมกับรุ่นปัจจุบันของพวกเขาจะทำให้พวกเขาถูกต้องมากขึ้น นี่คือธุรกิจที่ยุ่งยากและมักจะ verges ในพื้นที่ที่มีความซับซ้อนจากความผันผวนของการสร้างแบบจำลองการลื่นไถลและผลกระทบต่อตลาด แต่ถ้ากลยุทธ์การซื้อขายที่มีการทำธุรกรรมปริมาณมากในช่วงเวลาสั้น ๆ เวลาประมาณการที่ถูกต้องแล้วในการทำธุรกรรมที่เกิดขึ้นค่าใช้จ่ายจะมีผลอย่างมีนัยสำคัญเกี่ยวกับกลยุทธ์ด้านล่างบรรทัดและดังนั้นจึงเป็นมูลค่าความพยายามที่จะลงทุนในการวิจัยรูปแบบเหล่านี้ กลยุทธ์ backtest ประเด็นการดำเนินงาน ในขณะที่ต้นทุนการทำธุรกรรมเป็นลักษณะสำคัญของการใช้งานที่ประสบความสำเร็จ backtesting มีปัญหาอื่น ๆ อีกมากมายที่สามารถส่งผลกระทบต่อผลการดำเนินกลยุทธ์ การสั่งซื้อสินค้าการค้าประเภท หนึ่งทางเลือกที่ผู้ประกอบการจะต้องทำขั้นตอนวิธีคือวิธีการและเวลาที่จะใช้ประโยชน์จากคำสั่งซื้อที่แตกต่างกันมีการแลกเปลี่ยน ทางเลือกนี้มักจะตกอยู่ในดินแดนของระบบการดำเนินการที่ แต่เราจะคิดว่ามันเป็นที่นี่ก็สามารถส่งผลกระทบต่อผลการดำเนินงานกลยุทธ์ backtest มีสองประเภทของคำสั่งที่สามารถดำเนินการได้คือคำสั่งของตลาดและการ จำกัด การสั่งซื้อ คำสั่งดำเนินการตลาดการค้าทันทีโดยไม่คำนึงถึงราคาที่มีอยู่ ดังนั้นการซื้อขายขนาดใหญ่ดำเนินการตามคำสั่งซื้อของตลาดมักจะได้รับส่วนผสมของราคาเพื่อเป็นข้อ จำกัด ต่อมาในแต่ละด้านตรงข้ามถูกเติมเต็ม คำสั่งซื้อที่ตลาดมีการพิจารณาคำสั่งก้าวร้าวตั้งแต่พวกเขาเกือบจะแน่นอนจะเต็มไปแม้จะมีค่าใช้จ่ายที่อาจเกิดขึ้นไม่รู้จัก คำสั่ง จำกัด ให้กลไกสำหรับกลยุทธ์ที่ใช้ในการกำหนดราคาที่เลวร้ายที่สุดที่การค้าจะได้รับการดำเนินการที่มีคำเตือนว่าการค้าอาจจะไม่ได้รับบางส่วนหรือเต็มไปอย่างเต็มที่ คำสั่ง จำกัด ได้รับการพิจารณาคำสั่งเรื่อย ๆ เนื่องจากพวกเขามักจะไม่สำเร็จ แต่เมื่อพวกเขาเป็นราคาที่รับประกัน คอลเลกชันแลกเปลี่ยนของแต่ละบุคคลของคำสั่งการ จำกัด เป็นที่รู้จักกันเป็นหนังสือเพื่อขีด จำกัด ซึ่งเป็นหลักคิวของการซื้อและขายคำสั่งซื้อที่มีขนาดบางและราคา เมื่อ backtesting มันเป็นสิ่งสำคัญในการจำลองผลของการใช้การตลาดหรือ จำกัด การสั่งซื้ออย่างถูกต้อง สำหรับกลยุทธ์ความถี่สูงโดยเฉพาะอย่างยิ่ง backtests มีนัยสำคัญสามารถมีประสิทธิภาพสูงกว่าการซื้อขายสดถ้าผลกระทบของผลกระทบต่อตลาดและสั่งจองวงเงินที่ยังไม่ได้สร้างแบบจำลองได้อย่างถูกต้อง OHLC ข้อมูลเฉพาะตัว มีปัญหาโดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับกลยุทธ์ backtesting เมื่อมีการใช้งานในชีวิตประจำวันของข้อมูลในรูปแบบของแบบเปิดสูงปิดต่ำ (OHLC) ตัวเลขโดยเฉพาะอย่างยิ่งสำหรับตราสารทุน โปรดทราบว่านี้เป็นเพราะรูปแบบของข้อมูลที่ได้รับออกจากการเงิน yahoo ซึ่งเป็นแหล่งที่พบมากของข้อมูลสำหรับผู้ค้าปลีกอัลกอริทึม! ชุดข้อมูลราคาถูกหรือฟรีในขณะที่ทุกข์ทรมานจากอคติรอด (ซึ่งเราได้กล่าวแล้วใน Part I) นอกจากนี้ยังมีราคาที่มักจะฟีดคอมโพสิตจากการแลกเปลี่ยนหลาย ซึ่งหมายความว่าจุดที่รุนแรง (เช่นเปิดปิดสูงและต่ำ) ของข้อมูลที่มีความอ่อนไหวมากที่จะ "ห่างไกล" คุณค่าอันเนื่องมาจากคำสั่งขนาดเล็กที่การแลกเปลี่ยนในระดับภูมิภาค นอกจากนี้ค่าเหล่านี้นอกจากนี้ยังมีบางครั้งมีแนวโน้มที่จะติ๊กข้อผิดพลาดที่ยังไม่ได้ถูกลบออกจากชุดข้อมูล ซึ่งหมายความว่าหากกลยุทธ์การซื้อขายของคุณจะทำให้การใช้งานที่กว้างขวางของใด ๆ ของจุด OHLC เฉพาะประสิทธิภาพ backtest สามารถแตกต่างจากการแสดงสดเป็นคำสั่งซื้ออาจจะมีการส่งไปแลกเปลี่ยนที่แตกต่างกันขึ้นอยู่กับโบรกเกอร์ของคุณที่มีอยู่และการเข้าถึงของคุณเพื่อสภาพคล่อง วิธีเดียวที่จะแก้ไขปัญหาเหล​​่านี้คือการทำให้การใช้ข้อมูลความถี่ที่สูงขึ้นหรือได้รับข้อมูลโดยตรงจากการแลกเปลี่ยนตัวเองของแต่ละบุคคลมากกว่าฟีดคอมโพสิตราคาถูก ในคู่ต่อไปของบทความที่เราจะพิจารณาการวัดประสิทธิภาพการทำงานของ backtest รวมทั้งเป็นตัวอย่างที่แท้จริงของอัลกอริทึม backtesting มีหลายผลข้างต้นรวม ไมเคิลฮอลล์มัวร์ ไมค์เป็นผู้ก่อตั้ง QuantStart และได้รับการมีส่วนร่วมในอุตสาหกรรมการเงินเชิงปริมาณสำหรับในช่วงห้าปีที่ผ่านมาส่วนใหญ่เป็นนักพัฒนา quant และต่อมาเป็นที่ปรึกษาผู้ประกอบการ quant สำหรับกองทุนป้องกันความเสี่ยง