Backtesting Trading กลยุทธ์ ที่ใช้ R
Im ใหม่มาก R และพยายาม backtest กลยุทธ์ Ive โปรแกรมแล้วใน WealthLab หลายสิ่งที่ฉันไม่เข้าใจ (และมัน does not ทำงานชัด :) ฉัน dont รับราคาปิดอย่างเป็นเวกเตอร์ หรือบางชนิดของเวกเตอร์ แต่จะเริ่มต้นด้วยโครงสร้างและฉันไม่เข้าใจจริงๆว่าฟังก์ชันนี้ทำอะไร Thats ทำไมชุดของฉัน 1 โทรอาจไม่ทำงาน n lt - nrow (ชุด) ไม่ทำงานอย่างใดอย่างหนึ่ง แต่ฉันต้องการที่สำหรับ Loop ดังนั้นฉันเดาว่าถ้าฉันได้รับทั้ง 2 คำถามตอบกลยุทธ์ของฉันควรจะทำงาน Im ขอบคุณมากสำหรับความช่วยเหลือใด ๆ .. R ดูเหมือนว่าค่อนข้างซับซ้อนแม้มีประสบการณ์การเขียนโปรแกรมในภาษาอื่น ๆ ใช่ฉันชนิดของการคัดลอกบางบรรทัดของรหัสจากกวดวิชานี้และ don39t จริงๆเข้าใจบรรทัดนี้ ฉันหมายถึงชุด 1 ฉันคิดว่าจะใช้ฟังก์ชัน f กับ quotcolumnquot 1 ของชุด แต่เนื่องจากชุดนี้เป็น compley กับโครงสร้างอื่น ๆ บางอย่างมันไม่ทำงาน ฉันกำลังพูดถึงบทแนะนำนี้ r-bloggersbacktesting-a-trading-strategy ndash MichiZH Jun 6 13 at 14: 22Backtesting: การตีความ Backtesting ที่ผ่านมาเป็นองค์ประกอบสำคัญของการพัฒนาระบบการซื้อขายที่มีประสิทธิภาพ สามารถทำได้โดยการสร้างใหม่โดยใช้ข้อมูลทางประวัติศาสตร์การค้าที่เกิดขึ้นในอดีตโดยใช้กฎที่กำหนดโดยกลยุทธ์ที่กำหนด ผลเสนอสถิติที่สามารถใช้ในการวัดประสิทธิภาพของกลยุทธ์ การใช้ข้อมูลนี้ผู้ค้าสามารถเพิ่มประสิทธิภาพและปรับปรุงกลยุทธ์หาข้อบกพร่องด้านเทคนิคหรือทฤษฎีและได้รับความมั่นใจในกลยุทธ์ของตนก่อนนำไปใช้กับตลาดจริง ทฤษฎีพื้นฐานคือกลยุทธ์ใด ๆ ที่ทำงานได้ดีในอดีตมีแนวโน้มที่จะทำงานได้ดีในอนาคตและตรงกันข้ามกลยุทธ์ใด ๆ ที่มีประสิทธิภาพต่ำในอดีตน่าจะมีผลในทางที่ไม่ดีในอนาคต บทความนี้จะกล่าวถึงสิ่งที่แอ็พพลิเคชันใช้เพื่อทำ backtest ชนิดของข้อมูลที่ได้มาและวิธีการนำไปใช้ข้อมูลและเครื่องมือ Backtesting สามารถให้ข้อเสนอแนะทางสถิติที่มีคุณค่ามากมายเกี่ยวกับระบบที่กำหนดได้ สถิติย้อนหลังแบบทั่วไปบางอย่าง ได้แก่ : กำไรสุทธิหรือขาดทุน - กำไรหรือขาดทุนสุทธิเพิ่มขึ้น กรอบเวลา - วันที่ผ่านมาซึ่งเกิดการทดสอบ จักรวาล - คลังที่รวมอยู่ในการทดสอบหลังการขาย มาตรการความผันผวน - เปอร์เซ็นต์ upside และ downside สูงสุด ค่าเฉลี่ย - เปอร์เซ็นต์เฉลี่ยที่ได้รับและการสูญเสียเฉลี่ยเฉลี่ยที่จัดขึ้น การได้รับสาร - เปอร์เซ็นต์ของเงินลงทุนที่ลงทุน (หรือถูกนำออกสู่ตลาด) อัตราส่วน - อัตราส่วนการชนะในการขาดทุน ผลตอบแทนต่อปี - ผลตอบแทนร้อยละต่อปี ผลตอบแทนที่ปรับเปลี่ยนตามความเสี่ยง - อัตราผลตอบแทนเป็นเปอร์เซ็นต์ตามความเสี่ยง โดยปกติซอฟต์แวร์ backtesting จะมีหน้าจอสองหน้าจอที่มีความสำคัญ ข้อแรกช่วยให้พ่อค้าสามารถกำหนดการตั้งค่า backtesting ได้ การปรับแต่งเหล่านี้ประกอบด้วยทุกอย่างตั้งแต่ช่วงเวลาจนถึงค่าคอมมิชชั่น นี่คือตัวอย่างของหน้าจอดังกล่าวใน AmiBroker: หน้าจอที่สองคือรายงานผลการทำ backtesting ที่เกิดขึ้นจริง นี่คือที่ที่คุณสามารถดูข้อมูลทั้งหมดที่กล่าวมาข้างต้นได้ นี่คือตัวอย่างของหน้าจอนี้ใน AmiBroker: โดยทั่วไปซอฟต์แวร์ซื้อขายส่วนใหญ่มีองค์ประกอบที่คล้ายคลึงกัน บางโปรแกรมระดับไฮเอนด์ยังมีฟังก์ชันเพิ่มเติมในการปรับขนาดตำแหน่งอัตโนมัติการเพิ่มประสิทธิภาพและคุณลักษณะขั้นสูงอื่น ๆ อีกด้วย 10 บัญญัติมีหลายปัจจัยที่ผู้ค้าต้องใส่ใจกับกลยุทธ์การซื้อขายย้อนหลัง นี่คือรายการ 10 สิ่งที่สำคัญที่สุดที่ควรจดจำขณะที่ทำย้อนหลังการทดสอบ: คำนึงถึงแนวโน้มตลาดในระยะเวลาที่กำหนดกลยุทธ์ที่กำหนดไว้ ตัวอย่างเช่นถ้ากลยุทธ์มีการตรวจสอบย้อนหลังเฉพาะช่วงปี 2542-2543 แต่อาจไม่ดีเท่าที่ควรในตลาดหมี บ่อยครั้งที่ควรทำ backtest ในกรอบเวลาที่ยาวนานซึ่งครอบคลุมเงื่อนไขตลาดหลายประเภท คำนึงถึงจักรวาลที่เกิดขึ้นในการทำ backtesting ตัวอย่างเช่นหากมีการทดสอบระบบตลาดแบบกว้าง ๆ กับจักรวาลซึ่งประกอบด้วยหุ้นเทคโนโลยีอาจทำให้ไม่ดีขึ้นในหลายภาคส่วน ตามกฎทั่วไปหากกลยุทธ์มีการกำหนดเป้าหมายไปยังประเภทเฉพาะของหุ้น จำกัด จักรวาลประเภท แต่ในกรณีอื่น ๆ ทั้งหมดรักษาจักรวาลขนาดใหญ่เพื่อการทดสอบ มาตรการความผันผวนเป็นสิ่งสำคัญอย่างยิ่งที่จะต้องพิจารณาในการพัฒนาระบบการซื้อขาย โดยเฉพาะอย่างยิ่งสำหรับบัญชีที่ใช้ประโยชน์ซึ่งอยู่ภายใต้การเรียกหลักประกันหากส่วนของผู้ถือหุ้นลดลงต่ำกว่าจุดหนึ่ง ผู้ค้าควรพยายามทำให้ความผันผวนต่ำเพื่อลดความเสี่ยงและช่วยให้สามารถเข้าและออกได้ง่ายขึ้น จำนวนบาร์โดยเฉลี่ยที่จัดขึ้นเป็นสิ่งที่สำคัญมากในการเฝ้าดูเมื่อมีการพัฒนาระบบการซื้อขาย แม้ว่าซอฟต์แวร์การทำ backtesting ส่วนใหญ่จะมีค่าคอมมิชชั่นในการคำนวณขั้นสุดท้ายไม่ได้หมายความว่าคุณควรละเลยสถิตินี้ ถ้าเป็นไปได้การเพิ่มจำนวนบาร์โดยเฉลี่ยที่จัดขึ้นสามารถลดค่าคอมมิชชั่นและปรับปรุงผลตอบแทนโดยรวมของคุณได้ การเปิดรับแสงเป็นดาบสองคม ความเสี่ยงที่เพิ่มขึ้นอาจนำไปสู่ผลกำไรที่สูงขึ้นหรือความสูญเสียที่สูงขึ้นในขณะที่ความเสี่ยงที่ลดลงหมายถึงกำไรที่ลดลงหรือความสูญเสียที่ลดลง อย่างไรก็ตามโดยทั่วไปแล้วควรเก็บความเสี่ยงไว้ต่ำกว่า 70 เพื่อลดความเสี่ยงและทำให้สามารถเข้าและออกจากสต็อกได้ง่ายขึ้น สถิติ gainloss เฉลี่ยบวกกับอัตราส่วนที่ชนะต่อขาดทุนจะเป็นประโยชน์ในการกำหนดตำแหน่งและการจัดการเงินที่ดีที่สุดโดยใช้เทคนิคเช่น Kelly Criterion (ดูการบริหารเงินโดยใช้เกณฑ์ Kelly) ผู้ค้าสามารถทำตำแหน่งที่มีขนาดใหญ่ขึ้นและลดค่าใช้จ่ายด้านค่าคอมมิชชั่นโดยการเพิ่มผลกำไรโดยเฉลี่ยและเพิ่มอัตราส่วนการชนะต่อขาดทุน ผลตอบแทนเป็นรายปีเป็นสิ่งสำคัญเพราะถูกใช้เป็นเครื่องมือในการเปรียบเทียบประสิทธิภาพของระบบกับสถานที่การลงทุนอื่น ๆ เป็นสิ่งสำคัญไม่เพียง แต่จะดูที่ผลตอบแทนต่อปีโดยรวม แต่ยังคำนึงถึงความเสี่ยงที่เพิ่มขึ้นหรือลดลง ซึ่งสามารถทำได้โดยดูจากผลตอบแทนที่ได้รับการปรับความเสี่ยงซึ่งเป็นปัจจัยเสี่ยงต่างๆ ก่อนที่ระบบการซื้อขายจะถูกนำมาใช้จะต้องมีประสิทธิภาพดีกว่าสถานที่ลงทุนอื่น ๆ ทั้งหมดที่มีความเสี่ยงเท่ากับหรือน้อยกว่า การปรับแต่งการทำ backtesting เป็นเรื่องสำคัญมาก แอ็พพลิเคชัน backtesting จำนวนมากมีการป้อนข้อมูลสำหรับจำนวนเงินที่ได้รับค่าคอมมิชชั่นจำนวนล็อต (หรือเศษส่วน) ขนาดล็ใหญ่ขนาดขีดความต้องการของอัตราดอกเบี้ยอัตราดอกเบี้ยสมมติฐานการลื่นไถลกฎการจัดตำแหน่งตำแหน่งกฎการออกจากแถบเดียวกันการตั้งค่าการหยุดชะงัก (ต่อท้าย) และอื่น ๆ อีกมากมาย ได้ผลการทำ backtesting ที่ถูกต้องที่สุด i t เป็นสิ่งสำคัญในการปรับแต่งการตั้งค่าเหล่านี้เพื่อเลียนแบบโบรกเกอร์ที่จะใช้เมื่อระบบทำงานได้ การทำ Backtesting บางครั้งอาจนำไปสู่สิ่งที่เรียกว่าการเพิ่มประสิทธิภาพมากเกินไป นี่เป็นเงื่อนไขที่ผลการดำเนินงานได้รับการปรับให้เข้ากับอดีตมากจนไม่เป็นที่คาดหมายในอนาคตอีกต่อไป โดยทั่วไปแล้วควรใช้หลักเกณฑ์ที่ใช้กับหุ้นทั้งหมดหรือเลือกกลุ่มเป้าหมายที่เลือกและไม่ได้รับการปรับให้เหมาะกับขอบเขตที่ผู้สร้างไม่สามารถเข้าใจได้อีกต่อไป Backtesting ไม่ใช่วิธีที่ถูกต้องที่สุดในการวัดประสิทธิภาพของระบบการซื้อขายที่กำหนด บางครั้งยุทธศาสตร์ที่ทำงานได้ดีในอดีตไม่สามารถทำได้ดีในปัจจุบัน ผลการดำเนินงานที่ผ่านมาไม่ได้บ่งบอกถึงผลการดำเนินงานในอนาคต ตรวจสอบให้แน่ใจว่าได้ทำการค้ากระดาษเป็นระบบที่ได้รับการตรวจสอบย้อนกลับสำเร็จแล้วก่อนที่จะมีการดำเนินชีวิตเพื่อให้มั่นใจว่ากลยุทธ์ยังคงใช้ในทางปฏิบัติ บทสรุปการทำ Backtesting เป็นส่วนสำคัญที่สุดในการพัฒนาระบบการซื้อขาย หากสร้างและตีความอย่างถูกต้องจะช่วยให้ผู้ค้าสามารถเพิ่มประสิทธิภาพและปรับปรุงกลยุทธ์หาข้อบกพร่องด้านเทคนิคหรือทฤษฎีรวมทั้งได้รับความเชื่อมั่นในกลยุทธ์ของตนก่อนนำไปใช้กับตลาดโลกแห่งความจริง การพัฒนาระบบการค้าระดับ high-end AmiBroker (amibroker) - การพัฒนาระบบการค้าการลงทุนด้านงบประมาณ ทฤษฎีเศรษฐศาสตร์ของการใช้จ่ายทั้งหมดในระบบเศรษฐกิจและผลกระทบต่อผลผลิตและอัตราเงินเฟ้อ เศรษฐศาสตร์ของเคนส์ได้รับการพัฒนา การถือครองสินทรัพย์ในพอร์ตลงทุน การลงทุนในพอร์ทจะทำโดยคาดหวังว่าจะได้รับผลตอบแทนจากการลงทุน นี้. อัตราส่วนที่พัฒนาขึ้นโดย Jack Treynor ว่ามาตรการผลตอบแทนที่ได้รับเกินกว่าที่อาจได้รับในความเสี่ยง การซื้อหุ้นคืน (Repurchase) ของ บริษัท เพื่อลดจำนวนหุ้นในตลาด บริษัท การคืนเงินภาษีคือการคืนเงินภาษีที่จ่ายให้กับบุคคลหรือครัวเรือนเมื่อหนี้สินภาษีที่เกิดขึ้นจริงน้อยกว่าจำนวนเงิน คุณค่าทางการเงินของสินค้าสำเร็จรูปและบริการที่ผลิตภายในพรมแดนของประเทศในระยะเวลาที่เฉพาะเจาะจงวิธีการทำ Backtest Strategy ใน R จะมีการสำรวจความสามารถในการทำ backtesting ของ R. ในโพสต์ก่อนหน้านี้เราได้พัฒนาโอกาสในการเข้าสู่ระบบที่เรียบง่ายสำหรับ USDCAD โดยใช้อัลกอริธึมและเทคนิคการเรียนรู้ด้วยเครื่องจักรจากเซตย่อยของการทำเหมืองข้อมูลที่เรียกว่ากฎของกฎการรวมกลุ่ม ในโพสต์นี้เราจะสำรวจวิธีการทำแบบทดสอบเต็มรูปแบบใน R โดยใช้กฎจากโพสต์ก่อนหน้านี้และใช้ผลกำไรและหยุดการขาดทุน ช่วยให้ดำน้ำได้ทันที: หมายเหตุ: ผลการทดสอบหลังทำถูกสร้างขึ้นจากแถบข้อมูล 4 ชั่วโมงในชุดข้อมูลของเราและไม่มีมุมมองแบบละเอียดมากขึ้น CAGR (อัตราการเติบโตรายปี) เป็นเปอร์เซ็นต์ gainloss ต่อปีซึ่งหมายความว่าจะทำให้การเจริญเติบโตเป็นงวดเท่า ๆ กันในแต่ละปี เนื่องจากการทดสอบของเราสิ้นสุดลงแล้วให้ดูว่าเราสามารถปรับปรุงประสิทธิภาพโดยการเพิ่มการหยุดขาดทุนและทำกำไรได้หรือไม่ ด้วยการสูญเสียเพียงครั้งเดียวประสิทธิภาพการทำงานลดลง ดูเหมือนว่าเรากำลังนำธุรกิจของเราออกไปก่อนที่จะสามารถกู้คืนได้ เพื่อที่จะล็อคผลกำไรของเราให้ไปข้างหน้าและดำเนินการทำกำไร การล็อกกำไรของเราด้วยผลกำไรดีขึ้นเล็กน้อย แต่ไม่มากนัก รวมทั้งการหยุดขาดทุนและการทำกำไร ตอนนี้ให้เปรียบเทียบกลยุทธ์ Long Short กับการสูญเสียเพียงแค่ทำกำไรและหยุดทำกำไรและทำกำไร ตอนนี้คุณรู้วิธีเพิ่มกำไรและหยุดการขาดทุนผมขอแนะนำให้คุณเล่นข้อมูลและทดสอบค่าต่างๆตามพารามิเตอร์ความเสี่ยงส่วนบุคคลของคุณและใช้กฎของคุณเอง แม้จะมีอัลกอริทึมที่มีประสิทธิภาพและเครื่องมือที่ซับซ้อนก็ยากที่จะสร้างกลยุทธ์ที่ประสบความสำเร็จ สำหรับทุกความคิดที่ดีเรามักจะมีคนเลวร้ายอีกหลายคน คุณสามารถใช้เครื่องมือและความรู้ที่เหมาะสมกับคุณได้อย่างมีประสิทธิภาพเพื่อทดสอบความคิดของคุณจนกว่าคุณจะได้รับความคิดเห็นที่ดี เราได้ปรับปรุงขั้นตอนนี้ใน TRAIDE ใดก็ตามเราพัฒนาโครงสร้างพื้นฐานการทดสอบที่ช่วยให้คุณสามารถดูได้ว่ารูปแบบใดอยู่ในข้อมูลของคุณและในแบบเรียลไทม์ดูว่าข้อมูลเหล่านี้มีประสิทธิภาพสูงกว่าข้อมูลที่ผ่านมาของคุณอย่างไร มีการออก TRAIDE สำหรับ 7 คู่ใหญ่ในตลาด FX ด้วยตัวชี้วัดทางเทคนิคภายในสองสัปดาห์ หากคุณสนใจในการทดสอบซอฟต์แวร์และให้ข้อเสนอแนะโปรดส่งอีเมลไปที่ infoinovancetech เรามี 50 จุดที่มีอยู่คนที่ Rstudio ได้ทำบางงานที่น่าตื่นตาตื่นใจกับแพคเกจเงา จากหน้าเว็บที่ดูเงางาม 8220Shiny ทำให้ผู้ใช้ R สามารถใช้งานแอปพลิเคชันเว็บแบบโต้ตอบได้อย่างรวดเร็วเพื่อให้ผู้ใช้สามารถใช้งานได้ง่ายขึ้น 8222 การพัฒนาแอ็พพลิเคชันเว็บมีการอุทธรณ์ไปยังทุกอย่างเสมอไป แต่โฮสติ้งการเรียนรู้ javascript, นี้ค่อนข้างต่ำในรายการลำดับความสำคัญของฉัน มีเงาสามารถเขียนเว็บแอ็พพลิเคชันใน R. ตัวอย่างนี้ใช้ชุดข้อมูลของผู้จัดการที่มีการเรียกไปยังแผนภูมิ PerformanceSummary และ table. Stats จาก Package PerformanceAnalytics เพื่อแสดงพล็อตและตารางในโปรแกรมประยุกต์ที่มันวาว คุณจำเป็นต้องมีแพ็กเกจ Analytics ที่เงาและประสิทธิภาพเพื่อติดตั้งแอพพลิเคชัน เมื่อมีการติดตั้งแล้วให้เปิดพรอมต์ R และเรียกใช้: มีบทแนะนำที่ยอดเยี่ยมจาก Rstudio รวมทั้งตัวอย่างจาก SystematicInvestor สำหรับผู้ที่สนใจในการเรียนรู้เพิ่มเติม โพสต์ไม่กี่แห่งที่ผ่านมาในโมเมนตัมกับ R มุ่งเน้นไปที่วิธีง่ายๆในการทำ backtest momentum strategies ในส่วนที่ 4 ฉันใช้กรอบ quantstrat เพื่อทำ backtest กลยุทธ์โมเมนตัม การใช้ quantstrat จะเปิดประตูไปยังคุณลักษณะและตัวเลือกต่างๆรวมทั้งหนังสือสั่งซื้อเพื่อตรวจสอบการค้าที่เสร็จสิ้นการทำ backtest ฉันแนะนำฟังก์ชันใหม่บางส่วนที่ใช้ในการเตรียมข้อมูลและคำนวณอันดับ ฉัน won8217t ผ่านพวกเขาในรายละเอียดฟังก์ชั่นเหล่านี้มีอยู่ใน repo github ของฉันในโฟลเดอร์อันดับฟังก์ชั่น โค้ดอันแรกของโค้ดนี้จะโหลดไลบรารีข้อมูลและใช้ฟังก์ชัน ave3ROC เพื่อจัดอันดับเนื้อหาตามค่าเฉลี่ย 2, 4 และ 6 เดือน โปรดทราบว่าคุณจะต้องโหลดฟังก์ชันใน Rank. R และรายเดือน fun. R โค้ดอันต่อไปของโค้ดเป็นขั้นตอนสำคัญในการจัดเตรียมข้อมูลที่จะใช้ในเชิงปริมาณ ขั้นตอนต่อไปคือการผูกอันดับกับข้อมูลการตลาดจริงที่จะใช้กับ quantstrat การเปลี่ยนชื่อคอลัมน์เป็นเช่น XLY. Rank เนื่องจากจะใช้เป็นคอลัมน์สัญญาณทางการค้าเมื่อใช้คอนแทคเลนส์ quantstrat ขณะนี้สามารถใช้งานการทดสอบ backtest ได้แล้ว ฟังก์ชัน qstratRank เป็นเพียงฟังก์ชันความสะดวกสบายที่ซ่อนการใช้งาน quantstrat สำหรับกลยุทธ์อันดับของฉัน สำหรับผลการสำรวจครั้งแรกครั้งนี้ฉันซื้อขายสินทรัพย์สูงสุด 2 อันดับแรกโดยมีขนาดตำแหน่งเท่ากับ 1000 หน่วย การเปลี่ยนอาร์กิวเมนต์เป็น max. levels2 ทำให้มีความยืดหยุ่นในการซื้อขาย 8220scaling8221 ในตัวอย่างนี้พูดสินทรัพย์ ABC เป็นอันดับ 1 ในเดือนแรก 8212 ฉันซื้อ 500 หน่วย ในเดือนที่ 2 สินทรัพย์ ABC ยังคงอันดับ 1 8212 ฉันซื้ออีก 500 หน่วย ในโพสต์ก่อนหน้านี้ผมได้แสดงข้อสอบง่ายๆสำหรับการซื้อขายสินทรัพย์จำนวนมากที่ได้รับการจัดอันดับตามช่วงเวลาที่ได้รับคืนง่ายๆเพียง 3 เดือน 6, 9 หรือ 12 เดือน แม้ว่าจะไม่ใช่ผลการทดสอบที่มีประสิทธิภาพสูง แต่ผลลัพธ์ที่ได้แสดงให้เห็นว่าเมื่อทำการซื้อขายสินทรัพย์อันดับสูงสุด 8 อันดับผลการจัดอันดับจาก 3, 6, 9 และ 12 เดือนมีผลในทำนองเดียวกัน หากผลการทดสอบมีความคล้ายคลึงกันในช่วงเวลามองย้อนกลับที่แตกต่างกันระยะเวลาการมองย้อนกลับที่ควรเลือกสำหรับกลยุทธ์ของฉันคำตอบของฉันคือการรวมระยะเวลาการมองย้อนกลับหลายครั้งในวิธีการจัดลำดับ สามารถทำได้โดยใช้ค่าเฉลี่ยของผลตอบแทน 6, 9 และ 12 เดือนหรือผลตอบแทนอื่น ๆ n เดือน สิ่งนี้ทำให้เราได้รับประโยชน์จากการกระจายความเสี่ยงในช่วงเวลาที่มองย้อนกลับได้หลายช่วง ถ้าฉันเชื่อว่าช่วงเวลาที่มองย้อนกลับไปของผลตอบแทน 9 เดือนจะดีกว่า 6 และ 12 เดือนฉันสามารถใช้ค่าเฉลี่ยถ่วงน้ำหนักเพื่อให้น้ำหนัก 9 เดือนกลับมีน้ำหนักมากขึ้นเพื่อให้มีอิทธิพลมากขึ้นในการพิจารณาอันดับ นี้สามารถดำเนินการได้อย่างง่ายดายด้วยสิ่งที่ฉันเรียกฟังก์ชัน WeightAve3ROC () ที่แสดงด้านล่าง ฟังก์ชั่นนี้ใช้อธิบายได้ง่าย แต่คุณสามารถถามได้หากมีคำถามใด ๆ ตอนนี้ถึงผลการทดสอบแล้ว กราฟด้านล่างแสดงผลการใช้ผลตอบแทน 6, 9 และ 12 เดือนรวมทั้งค่าเฉลี่ย 6, 9, และ 12 เดือนและค่าเฉลี่ยถ่วงน้ำหนักของผลตอบแทน 6, 9 และ 12 เดือน กรณีที่ 1: การทดสอบโมเมนตัมแบบง่ายตาม ROC 6 เดือนในการจัดอันดับกรณีที่ 2: การทดสอบโมเมนตัมแบบง่ายตาม ROC 9 เดือนเพื่อจัดอันดับกรณีที่ 3: การทดสอบโมเมนตัมแบบเรียบง่ายโดยใช้ ROC 12 เดือนในการจัดอันดับกรณีที่ 4: การทดสอบโมเมนตัมแบบเรียบง่ายโดยเฉลี่ย 6 , 9 และ 12 เดือน ROC เพื่อจัดอันดับกรณีที่ 5: การทดสอบโมเมนตัมแบบเรียบง่ายโดยใช้ค่าเฉลี่ยถ่วงน้ำหนัก 6, 9 และ 12 เดือน ROC ที่จะจัดลำดับ น้ำหนักคือ 16, 23, 16 สำหรับผลตอบแทน 6, 9 และ 12 เดือน นี่คือตารางแสดงผลตอบแทนและการเบิกใช้สูงสุดสำหรับการทดสอบ การทดสอบนี้แสดงให้เห็นว่าอาจเป็นไปได้ที่จะได้รับผลตอบแทนจากการปรับความเสี่ยงที่ดีขึ้น (CAGR ที่สูงกว่าและการเบิกใช้ที่ลดลงในกรณีนี้) โดยการพิจารณาช่วงเวลาการมองย้อนกลับหลายครั้งในวิธีการจัดลำดับ รหัส R เต็มอยู่ด้านล่าง ฉันได้รวมฟังก์ชันทั้งหมดไว้ในสคริปต์ R ด้านล่างเพื่อให้คุณสามารถทำซ้ำการทดสอบและทดลองใช้งานได้ง่าย แต่ขอแนะนำให้วางฟังก์ชันไว้ในไฟล์แยกต่างหากและใช้ source () เพื่อโหลดฟังก์ชันเพื่อเก็บโค้ดไว้ ทำความสะอาด เว็บไซต์จำนวนมากที่ฉันเชื่อมโยงกับโพสต์ก่อนหน้านี้มีบทความหรือเอกสารเกี่ยวกับการลงทุนแบบโมเมนตัมที่ตรวจสอบปัจจัยการจัดอันดับทั่วไป 3, 6, 9 และ 12 เดือน บทความส่วนใหญ่ (ไม่ทั้งหมด) หาข้อมูลเพื่อค้นหาอันดับที่ดีที่สุดในการจัดอันดับเนื้อหา บอกว่าผลลัพธ์ของบทความคือการมองย้อนกลับไป 6 เดือนมีผลตอบแทนสูงสุด การซื้อขายกลยุทธ์ที่ใช้ระยะเวลามองย้อนกลับไป 6 เดือนในการจัดอันดับเนื้อหาทำให้ฉันเสี่ยงต่อการถูกจับกุมมากเกินไปโดยพิจารณาจากผลการทดสอบหลังการขาย ผลการทดสอบย้อนหลังบอกเราว่าไม่มีอะไรมากไปกว่าที่กลยุทธ์ทำดีที่สุดในอดีตที่ผ่านมาไม่มีอะไรบอกเกี่ยวกับอนาคต 8230 duh เมื่อใดก็ตามที่ฉันทบทวนผลลัพธ์จากการทดสอบย้อนกลับฉันมักถามตัวเองว่าคำถามคืออะไร นี่คือ 3 ถ้าคำถามที่ฉันจะขอให้ backtest นี้คืออะไรถ้ากลยุทธ์ตาม 6 เดือนมองกลับภายใต้การดำเนินการและ 9 เดือนหรือ 3 เดือนเริ่มทำงานมากกว่าถ้ากลยุทธ์ตาม 3, 6, และระยะเวลามองย้อนหลัง 9 เดือนมีผลตอบแทนและความเสี่ยงที่เหมือนกันซึ่งควรจะใช้กลยุทธ์การค้าอะไรถ้าสินทรัพย์ที่มีความผันผวนสูงมีส่วนสำคัญในการจัดอันดับและส่งผลให้เกิดผลตอบแทน Backtests แสดงเป็น backtest แบบง่ายๆเพื่อแสดงถึงความแปรปรวนของผลตอบแทน ขึ้นอยู่กับช่วงเวลามองย้อนกลับและจำนวนของสินทรัพย์ที่ซื้อขาย กราฟด้านล่างแสดงประสิทธิภาพของกลยุทธ์โมเมนตัมโดยใช้อัตราผลตอบแทน 3, 6, 9 และ 12 เดือนและซื้อขายสินทรัพย์อันดับ 1, 4 และ 8 คุณจะสังเกตเห็นว่ามีความผันผวนและความผันแปรของผลตอบแทนที่มีนัยสำคัญเพียงอย่างเดียว ความแปรปรวนระหว่างระยะเวลามองย้อนกลับลดลง แต่ก็ยังไม่มีระยะเวลามองย้อนกลับที่ดีที่สุด มีช่วงเวลาที่อยู่ระหว่างการปฏิบัติงานและประสิทธิภาพเหนือกว่าช่วงเวลาที่มองย้อนกลับไปทั้งหมดในการทดสอบ นี่คือรหัส R ที่ใช้สำหรับการทดสอบ backtests และพล็อต ฝากความคิดเห็นหากคุณมีข้อสงสัยเกี่ยวกับรหัสด้านล่าง เวลาจริงๆแมลงวันมันยากที่จะเชื่อว่าได้รับเกินหนึ่งเดือนนับตั้งแต่การโพสต์ล่าสุดของฉัน การทำงานและชีวิตโดยทั่วไปมีการบริโภคมากเวลาของฉันเมื่อเร็ว ๆ นี้และทิ้งเวลาเพียงเล็กน้อยสำหรับการวิจัยและโพสต์บล็อก อย่างไรก็ตามโพสต์โพสต์นี้จะเป็นครั้งแรกในชุดของการครอบคลุมกลยุทธ์โมเมนตัมโดยใช้ R. หนึ่งในกลยุทธ์ที่ชื่นชอบเป็นโมเมนตัมหรือกลยุทธ์ความแรงญาติ นี่เป็นเพียงไม่กี่เหตุผลที่ฉันชอบโมเมนตัม: ง่ายในการใช้พอร์ตการลงทุนแบบยาวหรือแบบ longshort หลายวิธีในการกำหนดความแรงหรือวัดโมเมนตัมเพียงแค่ใช้ได้ผลก็คือยุทธศาสตร์โมเมนตัมย่อมดีต่อศักยภาพในการกระจายความเสี่ยง จักรวาลของเครื่องมือสามารถเป็นอนันต์ แต่เครื่องมือที่ซื้อขายมี จำกัด ลองคิดดูสิด้วยวิธีนี้นักลงทุน A ดู 10 ตราสารและลงทุน 1,000 ใน 5 อันดับแรกที่จัดอันดับโดยโมเมนตัม นักลงทุน B มองไปที่ 100 ตราสารและลงทุน 1000 ใน 5 อันดับแรกที่จัดอันดับโดยโมเมนตัม นักลงทุน A กำลัง จำกัด ศักยภาพในการกระจายการลงทุนโดยมีเพียง 10 เครื่องเท่านั้น นักลงทุน B มีจักรวาลที่มีขนาดใหญ่กว่ามากและในทางทฤษฎีอาจมีความหลากหลายมากขึ้น ในทางทฤษฎีคุณสามารถซื้อขายเครื่องมือจำนวนนับไม่ถ้วนด้วยปริมาณการซื้อขายที่ จำกัด โดยใช้กลยุทธ์โมเมนตัมหรือกลยุทธ์ความสัมพันธ์ ตรวจสอบการเชื่อมโยงเหล่านี้เพื่ออ่านต่อในโพสต์แรกของชุดนี้เกี่ยวกับโมเมนตัมฉันจะไปผ่านบางส่วนของการตั้งค่าพื้นฐานและหน้าที่ที่เราจะใช้ ขั้นตอนแรกคือการได้รับข้อมูลจาก yahoo โปรดทราบว่าลูปสำหรับแปลงข้อมูลเป็นรายเดือนและแบ่งส่วนข้อมูลเพื่อให้คอลัมน์เดียวที่เราเก็บไว้คือคอลัมน์ปิดที่ปิดแล้ว ขณะนี้เรามีสี่ออบเจกต์ (XLY, XLP, XLE, XLF) ที่มีการปรับราคาปิด ขั้นตอนต่อไปคือการรวมสี่วัตถุเหล่านี้ไว้ในวัตถุเดียวที่มีราคาปิดที่ถูกปรับ เราสามารถทำสิ่งนี้ได้ด้วยวิธีง่ายๆใน R สำหรับปัจจัยที่จะได้รับการจัดอันดับฉันจะใช้อัตราการเปลี่ยนแปลงระยะเวลา 3 (ROC)
Comments
Post a Comment