Monday 14 August 2017

Backtesting และ การทำเหมืองข้อมูล


สกอตต์ Percival บทนำ ในบทความนี้เราจะดูที่สองการปฏิบัติที่เกี่ยวข้องกับการที่มีการใช้กันอย่างแพร่หลายโดยผู้ค้าที่เรียกว่า Backtesting และข้อมูลการทำเหมืองแร่ เหล่านี้เป็นเทคนิคที่มีประสิทธิภาพและมีคุณค่าถ้าเราใช้อย่างถูกต้องอย่างไรก็ตามผู้ค้ามักจะผิดพวกเขา ดังนั้นเราจึงยังจะสำรวจทั้งสองข้อผิดพลาดที่พบบ่อยของเทคนิคเหล่านี้ที่เรียกว่าปัญหาสมมติฐานหลายและอิงและวิธีการที่จะเอาชนะข้อผิดพลาดเหล่านี้ backtesting backtesting เป็นเพียงกระบวนการของการใช้ข้อมูลทางประวัติศาสตร์ในการทดสอบประสิทธิภาพของกลยุทธ์การค้าบางส่วนที่ backtesting โดยทั่วไปจะเริ่มต้นด้วยกลยุทธ์ที่เราต้องการที่จะทดสอบเช่นการซื้อ GBP / USD เมื่อมันข้ามดังกล่าวข้างต้น 20 วันค่าเฉลี่ยเคลื่อนที่และขายเมื่อมันข้ามต่ำก​​ว่าค่าเฉลี่ยที่ ตอนนี้เราสามารถทดสอบกลยุทธ์โดยการเฝ้าดูสิ่งที่ตลาดไม่ก้าวไปข้างหน้า แต่ที่จะต้องใช้เวลานาน นี่คือเหตุผลที่เราจะใช้ข้อมูลทางประวัติศาสตร์ที่มีอยู่แล้ว แต่รอรอ! ผมได้ยินคุณพูด คุณอาจจะไม่โกงหรืออย่างน้อยจะลำเอียงเพราะคุณรู้อยู่แล้วว่าสิ่งที่เกิดขึ้นในอดีตหรือไม่ นั่นคือแน่นอนกังวลดังนั้น backtest ที่ถูกต้องจะเป็นหนึ่งในการที่เราไม่คุ้นเคยกับข้อมูลทางประวัติศาสตร์ เราสามารถทำได้โดยการเลือกช่วงเวลาที่สุ่มหรือโดยการเลือกช่วงเวลาที่แตกต่างกันในการที่จะดำเนินการทดสอบ ตอนนี้ฉันสามารถได้ยินเสียงกลุ่มของคุณบอกอีก แต่ทั้งหมดที่ข้อมูลทางประวัติศาสตร์เพียงแค่นั่งอยู่ที่นั่นรอคอยที่จะได้รับการวิเคราะห์เป็นที่ดึงดูดไม่ได้หรือไม่ อาจจะมีความลับที่ลึกซึ้งในข้อมูลว่าเพียงแค่การรอคอยสำหรับ geeks เช่นเราจะค้นพบมัน มันจะผิดสำหรับเราที่จะตรวจสอบว่าข้อมูลครั้งแรกในประวัติศาสตร์การวิเคราะห์และดูว่าเราสามารถหารูปแบบที่ซ่อนอยู่ภายในหรือไม่ เรื่องนี้ยังเป็นที่ถูกต้อง แต่มันทำให้เราเข้าไปในพื้นที่เต็มไปด้วยอันตราย โลกของการทำเหมืองข้อมูล การทำเหมืองข้อมูล การทำเหมืองข้อมูลที่เกี่ยวข้องกับการค้นหาผ่านข้อมูลเพื่อที่จะหารูปแบบและพบความสัมพันธ์ระหว่างตัวแปรที่เป็นไปได้ ในตัวอย่างข้างต้นที่เกี่ยวข้องกับ 20 วันย้ายกลยุทธ์เฉลี่ยเราก็ขึ้นมาด้วยตัวบ่งชี้ว่าโดยเฉพาะอย่างยิ่งจากสีฟ้า แต่สมมติว่าเรามีความคิดว่าสิ่งที่ประเภทของกลยุทธ์ที่เราต้องการที่จะทดสอบ? นั่นคือเมื่อการทำเหมืองข้อมูลมีประโยชน์ เราสามารถค้นหาผ่านข้อมูลทางประวัติศาสตร์ของเราใน GBP / USD เพื่อดูว่าราคาประพฤติหลังจากที่มันข้ามค่าเฉลี่ยการเคลื่อนไหวที่แตกต่างกัน เราสามารถตรวจสอบการเคลื่อนไหวของราคาเมื่อเทียบกับประเภทอื่น ๆ ของตัวชี้วัดเช่นกันและดูว่าคนที่สอดคล้องกับการเคลื่อนไหวของราคาที่มีขนาดใหญ่ เรื่องของการทำเหมืองข้อมูลสามารถเป็นเพราะขณะที่ผมกล่าวถึงข้างต้นดูเหมือนว่าบิตเช่นการโกงหรือมองไปข้างหน้าในข้อมูล คือการทำเหมืองข้อมูลเทคนิคทางวิทยาศาสตร์ที่ถูกต้อง? ในมือข้างหนึ่งวิธีการทางวิทยาศาสตร์บอกว่าเราควรจะทำให้สมมติฐานแรกและจากนั้นทดสอบกับข้อมูลของเรา แต่ในทางกลับกันก็ดูเหมือนว่าเหมาะสมที่จะทำการตรวจสอบข้อเท็จจริงของข้อมูลที่บางครั้งแรกเพื่อแนะนำสมมติฐาน ดังนั้นที่ถูกต้อง? เราสามารถมองไปที่ขั้นตอนในวิธีการทางวิทยาศาสตร์สำหรับเบาะแสถึงแหล่งที่มาของความสับสนได้ กระบวนการโดยทั่วไปมีลักษณะเช่นนี้: สังเกต (ข้อมูล) & gt; & gt; & gt; สมมติฐาน & gt; & gt; & gt; ทำนาย & gt; & gt; & gt; การทดลอง (ข้อมูล) ขอให้สังเกตว่าเราสามารถจัดการกับข้อมูลระหว่างทั้งสังเกตและการทดสอบขั้นตอน ดังนั้นมุมมองที่ทั้งสองมีความเหมาะสม เราจะต้องใช้ข้อมูลเพื่อที่จะสร้างสมมติฐานที่เหมาะสม แต่เรายังทดสอบสมมติฐานว่าการใช้ข้อมูล เคล็ดลับที่เป็นเพียงการตรวจสอบให้แน่ใจว่าทั้งสองชุดของข้อมูลไม่เหมือนกัน! เราจะต้องไม่เคยทดสอบสมมติฐานของเราโดยใช้ชุดเดียวกันของข้อมูลที่เราใช้ในการแนะนำให้สมมติฐานของเรา ในคำอื่น ๆ ถ้าคุณใช้การทำเหมืองข้อมูลเพื่อที่จะมากับความคิดกลยุทธ์ให้แน่ใจว่าคุณใช้ชุดที่แตกต่างกันของข้อมูลที่จะ backtest ความคิดเหล่านั้น ตอนนี้เราจะหันความสนใจของเราที่จะผิดพลาดหลักของการใช้การทำเหมืองข้อมูลและ backtesting ไม่ถูกต้อง ปัญหาที่เกิดขึ้นโดยทั่วไปเป็นที่รู้จักกันมากกว่าการเพิ่มประสิทธิภาพและฉันชอบที่จะทำลายปัญหาที่ออกเป็นสองประเภทที่แตกต่าง เหล่านี้เป็นปัญหาที่เกิดขึ้นหลายครั้งและสมมติฐาน overfitting ในความรู้สึกที่พวกเขามีวิธีการที่ตรงข้ามกับการทำข้อผิดพลาดเดียวกัน ปัญหาหลายสมมติฐานที่เกี่ยวข้องกับการเลือกสมมติฐานที่ง่ายมากในขณะที่อิงเกี่ยวข้องกับการสร้างหนึ่งในสมมติฐานที่ซับซ้อนมาก สมมติฐานหลายปัญหา เพื่อดูว่าปัญหานี้เกิดขึ้นให้กลับไปที่ตัวอย่างของเราที่เรา backtested 20 วันย้ายกลยุทธ์เฉลี่ย สมมติว่าเรา backtest กลยุทธ์กับสิบปีของข้อมูลการตลาดทางประวัติศาสตร์และแท้จริงและเห็นเดาอะไร ผลลัพธ์ที่ได้จะไม่ได้ให้กำลังใจมาก แต่การเป็นผู้ค้าหยาบและเกลือกกลิ้งที่เราเป็นเราตัดสินใจที่จะไม่ให้ขึ้นได้อย่างง่ายดาย สิ่งที่เกี่ยวกับสิบวันค่าเฉลี่ยเคลื่อนที่? ที่อาจจะทำงานออกมาดีขึ้นเล็กน้อยจึงขอ backtest มัน! เราทำงาน backtest อื่นและเราพบว่าผลที่ได้ยังไม่ได้เป็นตัวเอก แต่พวกเขากำลังดีขึ้นเล็กน้อยกว่าผล 20 วัน เราตัดสินใจที่จะสำรวจน้อยและเรียกใช้การทดสอบที่คล้ายกันด้วย 5 วันและ 30 วันค่าเฉลี่ยเคลื่อนที่ ในที่สุดมันก็เกิดขึ้นกับเราว่าเราจะได้จริงเพียงการทดสอบทุกการเคลื่อนไหวเฉลี่ยเดียวถึงบางจุดและดูว่าพวกเขาดำเนินการทั้งหมด ดังนั้นเราจึงทดสอบ 2 วัน 3 วัน 4 วันและอื่น ๆ ตลอดทางถึง 50 วันค่าเฉลี่ยเคลื่อนที่ ตอนนี้อย่างแน่นอนบางส่วนของค่าเฉลี่ยเหล่านี้จะทำงานได้ไม่ดีและคนอื่น ๆ จะดำเนินการค่อนข้างดี แต่จะต้องเป็นหนึ่งในนั้นซึ่งเป็นที่ดีที่สุดแน่นอน ยกตัวอย่างเช่นเราอาจพบว่า 32 วันค่าเฉลี่ยเคลื่อนที่จะกลายเป็นนักแสดงที่ดีที่สุดในช่วงระยะเวลาสิบปีนี้โดยเฉพาะ นี้ไม่ได้หมายความว่ามีบางสิ่งบางอย่างที่พิเศษเกี่ยวกับค่าเฉลี่ย 32 วันและที่เราควรจะมั่นใจว่ามันจะทำงานได้ดีในอนาคตหรือไม่ แต่น่าเสียดายที่ผู้ค้าจำนวนมากถือว่านี้จะเป็นกรณีและพวกเขาเพียงแค่หยุดการวิเคราะห์ของพวกเขาที่จุดนี้คิดว่าพวกเขาได้ค้นพบบางสิ่งบางอย่างที่ลึกซึ้ง พวกเขาได้ตกลงไปในหลุมพรางหลายสมมติฐานปัญหา ปัญหาคือว่ามีอะไรผิดปกติท​​ั้งหมดหรืออย่างมีนัยสำคัญเกี่ยวกับความจริงที่ว่าบางเฉลี่ยเปิดออกมาจะดีที่สุด หลังจากทั้งหมดเราทดสอบเกือบห้าสิบของพวกเขากับข้อมูลเดียวกันดังนั้นเราจึงคาดหวังที่จะหานักแสดงที่ดีไม่กี่เพียงโดยบังเอิญ มันไม่ได้หมายความว่ามีอะไรพิเศษเกี่ยวกับค่าเฉลี่ยเคลื่อนที่โดยเฉพาะอย่างยิ่งที่ได้รับรางวัลในกรณีนี้ ปัญหาที่เกิดขึ้นเพราะเราทดสอบสมมติฐานหลายจนกว่าเราจะพบหนึ่งที่ทำงานแทนการเลือกสมมติฐานเดียวและการทดสอบนั้น นี่คือการเปรียบเทียบคลาสสิกที่ดี เราอาจจะเกิดขึ้นกับสมมติฐานเดียวเช่นสกอตต์ดีมากที่พลิกหัวเหรียญ จากนั้นเราสามารถสร้างการทำนายที่บอกว่าถ้าสมมติฐานที่เป็นความจริงที่สกอตต์จะสามารถที่จะพลิก 10 หัวในแถว จากนั้นเราก็สามารถดำเนินการทดสอบอย่างง่ายเพื่อทดสอบสมมติฐานที่ว่า ถ้าผมสามารถพลิกหัว 10 ในแถวที่จริง ๆ แล้วมันไม่ได้พิสูจน์สมมติฐาน แต่ถ้าฉันไม่สามารถบรรลุความสำเร็จนี้แน่นอนมันหักล้างสมมติฐาน ในขณะที่เราทำซ้ำการทดลองที่ล้มเหลวที่จะพิสูจน์สมมติฐานที่แล้วเชื่อมั่นของเราในความเป็นจริงมันเติบโต นั่นเป็นวิธีการที่เหมาะสมที่จะทำมัน แต่สิ่งที่ถ้าเราได้มากับสมมติฐาน 1000 แทนเพียงอย่างใดอย่างหนึ่งเกี่ยวกับฉันเป็นฟลิปเปอร์เหรียญที่ดีหรือไม่? เราจะทำให้สมมติฐานเดียวกันประมาณ 1,000 คนที่แตกต่างกัน ฉันเอ็ดซินดี้บิลแซม ฯลฯ ตกลงตอนนี้ขอทดสอบสมมติฐานของเราหลาย ๆ เราขอให้ทุก 1,000 คนที่จะพลิกเหรียญ อาจจะมีประมาณ 500 คนที่หัวพลิก คนอื่นสามารถกลับบ้านได้ ตอนนี้เราขอให้ผู้ที่อยู่ 500 คนที่จะพลิกอีกครั้งและในครั้งนี้ประมาณ 250 จะพลิกหัว บนพลิกสามประมาณ 125 คนพลิกหัวบนที่สี่ประมาณ 63 คนที่เหลือและพลิกห้ามีประมาณ 32 เหล่านี้ 32 คนทุกคนน่ารักไม่ได้พวกเขา? พวกเขาได้พลิกทั้งห้าในหัวแถว! ถ้าเราพลิกห้าครั้งและกำจัดคนครึ่งในแต่ละครั้งโดยเฉลี่ยที่เราจะจบลงด้วย 16 แล้ว 8 แล้ว 4 แล้ว 2 และในที่สุดก็เหลือเพียงหนึ่งคนที่ได้พลิกสิบหัวในแถว บิลมัน! บิลเป็นฟลิปเปอร์ Fantabulous เหรียญ! หรือว่าเขา? ดีที่เราไม่ทราบและที่จุด บิลอาจจะได้รับรางวัลการประกวดของเราออกจากโอกาสที่บริสุทธิ์หรือเขาเป็นอย่างดีอาจจะเป็นฟลิปเปอร์ที่ดีที่สุดของหัวด้านข้างของกาแล็คซี่ Andromeda นี้ ในทำนองเดียวกันเราไม่ทราบว่า 32 วันค่าเฉลี่ยเคลื่อนที่จากตัวอย่างข้างต้นของเราเพียงแค่ทำได้ดีในการทดสอบของเราโดยบังเอิญบริสุทธิ์หรือถ้ามีสิ่งที่พิเศษจริงๆเกี่ยวกับเรื่องนี้ แต่ทั้งหมดที่เราได้ทำเพื่อให้ห่างไกลคือการหาสมมติฐานคือว่า 32 วันย้ายกลยุทธ์เฉลี่ยมีผลกำไร (หรือบิลที่เป็นฟลิปเปอร์เหรียญที่ดี) เรายังไม่ได้ผ่านการทดสอบจริงสมมติฐานที่ยัง ดังนั้นตอนนี้ที่เราเข้าใจว่าเราไม่ได้ค้นพบอะไรจริงๆที่สำคัญยังเกี่ยวกับ 32 วันค่าเฉลี่ยเคลื่อนที่หรือเกี่ยวกับความสามารถของบิลที่จะพลิกเหรียญคำถามธรรมชาติที่จะถามคือสิ่งที่เราควรทำอย่างไรต่อไป ที่ผมกล่าวถึงข้างต้นผู้ค้าหลายคนไม่เคยรู้ว่ามีความจำเป็นต้องใช้ขั้นตอนต่อไปได้เลย ทั้งในกรณีของบิลที่คุณอาจจะถาม Aha แต่เขาสามารถพลิกสิบหัวแถวอีกครั้งหรือไม่ ในกรณีที่มี 32 วันค่าเฉลี่ยเคลื่อนที่ที่เราต้องการที่จะทดสอบอีกครั้ง แต่ก็ไม่ได้กับตัวอย่างข้อมูลเดียวกับที่เราใช้ในการเลือกสมมติฐานที่ว่า เราก็จะเลือกอีกระยะเวลาสิบปีและดูว่ากลยุทธ์ที่ทำงานก็เช่นกัน เราอาจจะยังคงทำการทดลองนี้หลาย ๆ ครั้งตามที่เราต้องการจนอุปทานของเราระยะเวลาสิบปีใหม่วิ่งออกมา เราอ้างถึงนี้เป็นจากการทดสอบตัวอย่างและเป็นวิธีที่จะหลีกเลี่ยงอันตรายนี้ มีวิธีการต่างๆของการทดสอบดังกล่าวซึ่งหนึ่งในนั้นมีการตรวจสอบข้าม แต่เราจะไม่ได้รับเป็นที่รายละเอียดมากที่นี่ overfitting overfitting เป็นจริงชนิดของการพลิกกลับของปัญหาดังกล่าว ในตัวอย่างหลายสมมติฐานข้างต้นเรามองไปที่การตั้งสมมติฐานที่เรียบง่ายจำนวนมากและเลือกหนึ่งที่ดีที่สุดในการดำเนินการที่ผ่านมา ในอิงเราดูครั้งแรกที่ผ่านมาและจากนั้นสร้างสมมติฐานที่ซับซ้อนเดียวที่พอดีกับสิ่งที่เกิดขึ้น ตัวอย่างเช่นถ้าฉันมองไปที่ USD / JPY อัตราที่ผ่านมา 10 วันผมอาจจะเห็นว่าปิดทุกวันทำอย่างนี้: ขึ้นขึ้นลงขึ้นขึ้นขึ้นลงลงลงขึ้น มีมันได้หรือไม่ ดูรูปแบบหรือไม่ ใช่ไม่ทำจริงผม แต่ถ้าผมต้องการที่จะใช้ข้อมูลนี้เพื่อแนะนำสมมติฐานผมอาจจะเกิดขึ้นกับ สมมติฐานที่น่าตื่นตาตื่นใจของฉัน: ถ้าราคาปิดไปขึ้นสองแถวแล้วลงสำหรับหนึ่งวันหรือถ้ามันลงไปเป็นเวลาสามวันในแถวที่เราควรจะซื้อ, แต่ถ้าราคาปิดไปถึงสามวันในแถวที่เราควรจะขายที่ แต่ถ้ามันจะไปถึงสามวันในแถวแล้วลงสามวันในแถวที่เราควรจะซื้อ ฮะ? เสียงเหมือนสมมติฐาน whacky ใช่มั้ย? แต่ถ้าเราได้ใช้กลยุทธ์นี้ที่ผ่านมา 10 วันเราจะได้รับสิทธิในการค้าทุกเดียวที่เราทำ! overfitter ใช้ backtesting และการทำเหมืองข้อมูลที่แตกต่างกว่าผู้ผลิตหลายสมมติฐานทำ overfitter ไม่ได้เกิดขึ้นกับ 400 กลยุทธ์ที่แตกต่างไป backtest ไม่มีทาง! overfitter ใช้เครื่องมือการทำเหมืองข้อมูลที่จะคิดออกเพียงหนึ่งกลยุทธ์ไม่ว่าวิธีการที่ซับซ้อนที่จะมีประสิทธิภาพที่ดีที่สุดในช่วงเวลา backtesting มันจะทำงานในอนาคตหรือไม่ ไม่น่า แต่เราก็สามารถให้ปรับรูปแบบและกลยุทธ์ในการทดสอบตัวอย่างที่แตกต่างกัน (จากการทดสอบตัวอย่างอีกครั้ง) เพื่อดูว่าจะช่วยเพิ่มประสิทธิภาพของเรา เมื่อเราหยุดได้รับการปรับปรุงประสิทธิภาพการทำงานและสิ่งเดียวที่เพิ่มขึ้นคือความซับซ้อนของรูปแบบของเราแล้วเรารู้ว่าเราได้ข้ามเส้นเข้าไปอิง สรุป ดังนั้นในการสรุปเราได้เห็นว่าการทำเหมืองข้อมูลเป็นวิธีที่จะใช้ข้อมูลราคาประวัติศาสตร์ของเราที่จะแนะนำกลยุทธ์การซื้อขายที่สามารถทำงานได้ แต่การที่เราจะต้องตระหนักถึงข้อผิดพลาดของปัญหาสมมติฐานหลายและอิง วิธีที่จะทำให้แน่ใจว่าเราจะไม่ตกเหยื่อเพื่อข้อผิดพลาดเหล่านี้คือการ backtest กลยุทธ์ของเราโดยใช้ชุดข้อมูลที่แตกต่างกันมากกว่าหนึ่งที่เรานำมาใช้ในการตรวจสอบข้อเท็จจริงการทำเหมืองข้อมูลของเรา เรามักอ้างถึงนี้เป็นจากการทดสอบตัวอย่าง

No comments:

Post a Comment