Wednesday 21 June 2017

Backtesting trading กลยุทธ์ ที่ใช้ r


ฉันมากใหม่เพื่อ R และพยายามที่จะ backtest กลยุทธ์ฉันได้ตั้งโปรแกรมแล้วในสิ่ง WealthLab. Several ฉัน don t เข้าใจและ doesn t ทำงานชัดฉันไม่ได้รับการปิดราคาอย่างเป็นเวกเตอร์หรือชนิดของเวกเตอร์ แต่ เริ่มต้นด้วยโครงสร้างและฉัน don t จริงๆเข้าใจสิ่งที่ฟังก์ชันนี้ไม่ Thats ทำไมชุดของฉัน 1 โทรอาจ doesn t work. n - ชุด nrow doesn t งานทั้ง แต่ฉันต้องการที่ Loop ดังนั้นฉันเดาถ้าฉันได้รับเหล่านี้ 2 คำถามตอบกลยุทธ์ของฉันควรจะทำงานฉัน m ขอบคุณมากสำหรับความช่วยเหลือใด ๆ R ดูเหมือนว่าค่อนข้างซับซ้อนแม้จะมีประสบการณ์การเขียนโปรแกรมใน languages. yeah อื่น ๆ I ชนิดของการคัดลอกบางบรรทัดของรหัสจากการกวดวิชานี้และ don t จริงๆเข้าใจบรรทัดนี้ฉันหมายถึงชุด 1 ฉัน คิดว่าจะใช้ฟังก์ชัน f บนคอลัมน์ 1 ของชุด แต่เนื่องจากชุดนี้มีบาง compley กับโครงสร้างอื่น ๆ it doesn t งานฉันพูดคุยเกี่ยวกับการกวดวิชานี้ MichiZH Jun 6 13 at 14 22.Backtesting Interpreting Past. Backtesting เป็นองค์ประกอบสำคัญ ของการซื้อขายที่มีประสิทธิภาพ - การพัฒนาระบบมันสามารถทำได้โดยการสร้างใหม่ด้วยข้อมูลทางประวัติศาสตร์การค้าที่จะเกิดขึ้นในอดีตโดยใช้กฎที่กำหนดโดยกลยุทธ์ที่กำหนดผลลัพธ์มีสถิติที่สามารถใช้ในการวัดประสิทธิภาพของกลยุทธ์การใช้ข้อมูลนี้ผู้ค้าสามารถเพิ่มประสิทธิภาพ และปรับปรุงกลยุทธ์ของพวกเขาหาข้อบกพร่องด้านเทคนิคหรือทฤษฎีและได้รับความเชื่อมั่นในกลยุทธ์ของพวกเขาก่อนที่จะนำไปใช้กับตลาดจริงทฤษฎีพื้นฐานคือว่ากลยุทธ์ใด ๆ ที่ทำงานได้ดีในอดีตมีแนวโน้มที่จะทำงานได้ดีในอนาคตและตรงกันข้าม, กลยุทธ์ใด ๆ ที่ทำงานได้ไม่ดีในอดีตมีแนวโน้มที่จะทำงานไม่ดีในอนาคตบทความนี้จะพิจารณาถึงสิ่งที่แอ็พพลิเคชันใช้เพื่อทำ backtest ชนิดของข้อมูลที่ได้มาและวิธีการนำไปใช้ Data และเครื่องมือ Backtesting สามารถให้ข้อเสนอแนะที่มีคุณค่าทางสถิติที่มีคุณค่าเกี่ยวกับระบบที่กำหนดได้สถิติการทำ backtesting ที่ใช้กันทั่วไป ได้แก่ กำไรหรือขาดทุน - กำไรสุทธิที่ได้รับหรือขาดทุนสุทธิช่วงเวลา - วันที่ผ่านมา การวัดความคลาดเคลื่อน - ร้อยละสูงสุด upside และ downside เฉลี่ย - ร้อยละกำไรเฉลี่ยและการสูญเสียเฉลี่ย, บาร์เฉลี่ยที่จัดขึ้นการเปิดรับ - ร้อยละของเงินลงทุนที่นำมาลงทุนหรือสัมผัสกับตลาด อัตราผลตอบแทนจากการลงทุน - ผลตอบแทนจากการลงทุนในแต่ละปีผลตอบแทนที่ได้รับจากการลงทุน - ผลตอบแทนจากการลงทุนเป็นผลมาจากความเสี่ยงโดยปกติซอฟต์แวร์ backtesting จะมีหน้าจอสองหน้าจอที่มีความสำคัญก่อนจะช่วยให้ผู้ค้าสามารถปรับแต่งได้ การตั้งค่าสำหรับ backtesting การปรับแต่งเหล่านี้รวมทุกอย่างตั้งแต่ช่วงเวลาไปจนถึงค่าคอมมิชชั่นนี่คือตัวอย่างของหน้าจอดังกล่าวใน AmiBroker หน้าจอที่สองคือรายงานผลการทำ backtesting ที่เกิดขึ้นจริงซึ่งเป็นที่ที่คุณสามารถค้นหาสถิติทั้งหมดที่กล่าวถึงข้างต้นได้อีกครั้ง ตัวอย่างของหน้าจอนี้ใน AmiBroker โดยทั่วไปซอฟต์แวร์การค้าส่วนใหญ่มีองค์ประกอบที่คล้ายกันบางโปรแกรมระดับไฮเอนด์ยังรวมถึงฟังก์ชันการทำงานเพิ่มเติม เพื่อทำตำแหน่งโดยอัตโนมัติขนาดการเพิ่มประสิทธิภาพและอื่น ๆ อีกมากมายคุณสมบัติขั้นสูง 10 บัญญัติมีหลายปัจจัยที่ผู้ค้าให้ความสนใจกับเมื่อมี backtesting กลยุทธ์การซื้อขายนี่คือรายการของ 10 สิ่งที่สำคัญที่สุดที่ต้องจำในขณะที่ backtesting. Take เข้าบัญชีกว้าง แนวโน้มของตลาดในกรอบเวลาที่มีการทดสอบกลยุทธ์ตัวอย่างเช่นถ้ากลยุทธ์มีการถ่วงดุลเฉพาะตั้งแต่ปี 2542-2543 แต่อาจไม่ดีเท่าที่ควรในตลาดหมีมันเป็นความคิดที่ดีที่จะทำ backtest ในกรอบเวลาที่ยาวนาน ครอบคลุมสภาวะตลาดที่แตกต่างกันหลายเงื่อนไขคำนึงถึงเอกภพที่เกิดขึ้นหลังการตรวจสอบตัวอย่างเช่นถ้าระบบของตลาดในวงกว้างได้รับการทดสอบกับจักรวาลซึ่งประกอบด้วยหุ้นเทคโนโลยีอาจล้มเหลวในการทำธุรกิจที่แตกต่างกันตามกฎทั่วไปถ้า กลยุทธ์มีการกำหนดเป้าหมายไปยังประเภทที่เฉพาะเจาะจงของสต็อก จำกัด จักรวาลกับประเภทนั้น แต่ในกรณีอื่น ๆ ทั้งหมดรักษาจักรวาลขนาดใหญ่เพื่อการทดสอบวัตถุประสงค์มาตรการความหิวเป็น e สิ่งสำคัญอย่างยิ่งที่ต้องพิจารณาในการพัฒนาระบบการซื้อขายโดยเฉพาะอย่างยิ่งสำหรับบัญชีที่ใช้ประโยชน์ซึ่งอยู่ภายใต้การเรียกหลักประกันหากส่วนของผู้ถือหุ้นลดลงต่ำกว่าจุดหนึ่งผู้ค้าควรพยายามทำให้ความผันผวนต่ำเพื่อลดความเสี่ยงและช่วยให้สามารถเข้าและออกได้ง่ายขึ้น ของหุ้นที่ระบุจำนวนบาร์โดยเฉลี่ยที่จัดขึ้นเป็นสิ่งที่สำคัญมากในการดูเมื่อพัฒนาระบบการซื้อขายแม้ว่าซอฟต์แวร์ backtesting ส่วนใหญ่จะมีค่าคอมมิชชั่นในการคำนวณขั้นสุดท้ายไม่ได้หมายความว่าคุณควรละเว้นสถิตินี้ถ้าเป็นไปได้ให้เพิ่มจำนวนเฉลี่ยของคุณ ของแถบที่จัดขึ้นสามารถลดค่าใช้จ่ายค่านายหน้าและปรับปรุงผลตอบแทนโดยรวมของคุณการเปิดรับเป็นดาบสองคมการเปิดรับเพิ่มขึ้นสามารถนำไปสู่ผลกำไรที่สูงขึ้นหรือขาดทุนที่สูงขึ้นในขณะที่การเปิดรับที่ลดลงหมายถึงผลกำไรที่ลดลงหรือขาดทุนน้อยลง แต่โดยทั่วไปแล้วมันเป็นสิ่งที่ดี ความคิดที่จะให้ได้รับต่ำกว่า 70 เพื่อลดความเสี่ยงและช่วยให้การเปลี่ยนแปลงง่ายขึ้นและออกจากหุ้นที่กำหนดสถิติการสูญเสียเฉลี่ย statisti c รวมกับอัตราส่วนที่ชนะต่อการสูญเสียสามารถเป็นประโยชน์ในการกำหนดตำแหน่งที่เหมาะสมและการจัดการเงินโดยใช้เทคนิคเช่น Kelly Criterion ดูการบริหารเงินโดยใช้ Kelly Criterion Traders สามารถใช้ตำแหน่งที่มีขนาดใหญ่และลดค่าคอมมิชชั่นโดยการเพิ่มผลกำไรโดยเฉลี่ยของพวกเขา การเพิ่มรายได้เป็นสิ่งสำคัญเพราะใช้เป็นเครื่องมือในการเปรียบเทียบผลตอบแทนของระบบกับสถานที่จัดลงทุนอื่น ๆ เป็นสิ่งสำคัญไม่เพียง แต่จะพิจารณาผลตอบแทนต่อปีโดยรวม แต่ยังคำนึงถึง ความเสี่ยงที่เพิ่มขึ้นหรือลดลงนี้สามารถทำได้โดยดูที่ผลตอบแทนที่ปรับเปลี่ยนความเสี่ยงซึ่งมีปัจจัยเสี่ยงต่างๆก่อนที่จะใช้ระบบการซื้อขายจะต้องมีประสิทธิภาพดีกว่าสถานที่ลงทุนอื่น ๆ ทั้งหมดที่มีความเสี่ยงเท่ากันหรือน้อยลงการปรับแต่งการทำรายการเป็นเรื่องสำคัญมาก backtesting งานมีการป้อนข้อมูลสำหรับจำนวนเงินค่านายหน้า, ขนาดล็อตหรือเศษเล็กเศษน้อย, ขนาดเห็บ, ความต้องการอัตราดอกเบี้ยอัตราดอกเบี้ย, slippa สมมติฐาน ge กฎการปรับขนาดตำแหน่งกฎการออกจากแถบเดียวกันการตั้งค่าการหยุดการทำงานต่อเนื่องและอื่น ๆ อีกมากมาย T o ได้ผลการทดสอบย้อนหลังที่ถูกต้องที่สุดเป็นสิ่งสำคัญในการปรับแต่งการตั้งค่าเหล่านี้เพื่อเลียนแบบโบรกเกอร์ที่จะใช้เมื่อระบบทำงานได้ นี่เป็นเงื่อนไขที่ผลการดำเนินงานได้รับการปรับให้เข้ากับอดีตอย่างมากจนไม่เป็นความจริงในอนาคตโดยทั่วไปความคิดที่ดีในการใช้กฎที่ใช้กับหุ้นทั้งหมด, หรือเลือกกลุ่มเป้าหมายที่กำหนดไว้และไม่ได้รับการปรับให้เหมาะสมตามที่ผู้สร้างไม่สามารถเข้าใจกฎได้การทดสอบการทำสำเนาไม่ใช่วิธีที่แม่นยำที่สุดในการวัดประสิทธิภาพของระบบการซื้อขายที่กำหนดไว้บางครั้งยุทธศาสตร์ที่ทำได้ดีใน อดีตไม่ได้ทำดีในปัจจุบันผลการดำเนินงานที่ผ่านมาไม่ได้เป็นตัวบ่งชี้ถึงผลในอนาคตอย่าลืมค้ากระดาษเป็นระบบที่ประสบความสำเร็จในการตรวจสอบย้อนหลังก่อนที่จะมีชีวิตอยู่ กลยุทธ์นี้ยังคงใช้ในทางปฏิบัติข้อสรุปการทำ Backtesting เป็นส่วนสำคัญที่สุดในการพัฒนาระบบการค้าหากสร้างและแปลความหมายอย่างถูกต้องจะช่วยให้ผู้ค้าสามารถเพิ่มประสิทธิภาพและปรับปรุงกลยุทธ์หาข้อบกพร่องด้านเทคนิคและทฤษฎีรวมทั้งได้รับความเชื่อมั่นใน กลยุทธ์การพัฒนาระบบการซื้อขายระดับไฮเอนด์ AmiBroker - การพัฒนาระบบการซื้อขายงบประมาณมูลค่าสูงสุดของเงินที่สหรัฐฯสามารถยืมได้มีการสร้างเพดานหนี้ภายใต้พระราชบัญญัติตราสารหนี้เสรี 2 ที่สถาบันรับฝากเงินให้ยืมเงินไว้ใน Federal Reserve ไปยังสถาบันรับฝากหลักทรัพย์แห่งอื่น 1 มาตรการทางสถิติในการกระจายผลตอบแทนสำหรับการรักษาความปลอดภัยหรือดัชนีตลาดที่กำหนดความผันผวนสามารถวัดได้การกระทำของรัฐสภาคองเกรสแห่งสหรัฐฯในปีพ. ศ. 2476 ในขณะที่ธนาคาร Act ซึ่งห้ามไม่ให้ธนาคารพาณิชย์เข้าร่วมในการลงทุนการจ่ายเงินเดือนของ Nonfarm หมายถึงงานใด ๆ ฟาร์มของเอกชนครัวเรือนและภาคผลกำไร US Bureau of Labor ย่อสกุลเงินหรือสัญลักษณ์สกุลเงินสำหรับ Indian Rupee INR สกุลเงินของอินเดีย Rupee ถูกสร้างขึ้นจาก 1.Backtesting กลยุทธ์การซื้อขายหุ้นที่เรียบง่ายหมายเหตุโพสต์นี้ ไม่ใช่คำแนะนำทางการเงินนี่เป็นเพียงวิธีที่สนุกในการสำรวจความสามารถบางอย่างที่ R มีไว้สำหรับการนำเข้าและจัดการข้อมูลที่เพิ่งอ่านโพสต์เกี่ยวกับอีเอฟเอฟท่านศาสดาที่สำรวจกลยุทธ์การซื้อขายหุ้นที่น่าสนใจใน Excel กลยุทธ์ง่าย ๆ ค้นหาจุดสูงสุดของ หุ้นในช่วง 200 วันที่ผ่านมาและนับจำนวนวันที่ผ่านไปนับตั้งแต่ที่สูงถ้าได้รับน้อยกว่า 100 วันเป็นเจ้าของสต็อกถ้าได้รับมากกว่า 100 วันอย่าเป็นเจ้าของมันกลยุทธ์นี้ง่ายมาก, แต่จะให้ผลที่น่าประทับใจบางอย่างอย่างไรก็ตามโปรดทราบว่าตัวอย่างนี้ใช้ข้อมูลที่ไม่ได้รับการปรับปรุงจากส่วนแบ่งหรือเงินปันผลและอาจมีข้อผิดพลาดอื่น ๆ นอกจากนี้เรายังละเลยค่าใช้จ่ายในการซื้อขายและความล่าช้าในการดำเนินการ ประสิทธิภาพของกลยุทธ์ ect การใช้กลยุทธ์นี้ใน R เป็นเรื่องง่ายและมีข้อได้เปรียบเหนือกว่า excel โดยหลัก ๆ คือการดึงข้อมูลตลาดหุ้นเข้าสู่ R เป็นเรื่องง่ายและเราสามารถทดสอบกลยุทธ์นี้ได้ในหลายดัชนีโดยใช้ความพยายามเพียงเล็กน้อย ประการแรกเราจะดาวน์โหลดข้อมูลสำหรับ GSPC โดยใช้ quantmod GSPC ย่อมาจากดัชนี SP 500 ถัดไปเราจะสร้างฟังก์ชันในการคำนวณจำนวนวันนับจาก n-day high ในชุดข้อมูลเวลาและมีบทบาทในการใช้กลยุทธ์การซื้อขายของเรา ฟังก์ชันหลังใช้พารามิเตอร์ 2 ค่า n วันสูงที่คุณต้องการใช้และจำนวนวันที่ผ่านมาสูงคุณจะถือหุ้นตัวอย่างคือ 200 และ 100 แต่คุณสามารถเปลี่ยนค่านี้เป็น 500 วันได้โดยง่ายและดู เกิดอะไรขึ้นถ้าคุณถือหุ้น 300 วันที่ผ่านมาก่อนที่จะออกใบอนุญาตเนื่องจากฟังก์ชันนี้ได้รับการปรับพารามิเตอร์ทำให้เราสามารถทดสอบเวอร์ชันอื่น ๆ ของกลยุทธ์ของเราได้โดยง่ายเราจะวางจุดเริ่มต้นของยุทธศาสตร์ด้วยศูนย์ให้ยาวเท่ากับข้อมูลที่ป้อนเข้า ถ้าโย u ต้องการอธิบายรายละเอียดเพิ่มเติมของ daysSinceHigh ฟังก์ชันดูการสนทนาเกี่ยวกับ cross - validated เราคูณ 0.1 ตำแหน่งของเราโดยผลตอบแทนจากดัชนีเพื่อให้ได้ผลตอบแทนของกลยุทธ์ของเราตอนนี้เราสร้างฟังก์ชันเพื่อกลับสถิติบางอย่างเกี่ยวกับ กลยุทธ์การซื้อขายและเปรียบเทียบกลยุทธ์ของเรากับเกณฑ์มาตรฐานค่อนข้างพละผมตัดสินใจที่จะดูผลตอบแทนสะสมผลตอบแทนเฉลี่ยต่อปีอัตราส่วนของ sharpe การชนะความผันผวนเฉลี่ยต่อปีการเบิกสูงสุดและการเบิกใช้ความยาวสูงสุดสถิติอื่น ๆ จะง่ายต่อการใช้งาน ในขณะที่เราสามารถทดสอบกลยุทธ์ของเราในดัชนี FTSE อื่น ๆ อีก 3 ดัชนีซึ่งหมายถึงไอร์แลนด์และสหราชอาณาจักรดัชนีอุตสาหกรรมดาวโจนส์ซึ่งย้อนกลับไปถึงปีพ. ศ. 2439 และ N225 ซึ่งเป็นตัวแทนของประเทศญี่ปุ่นฉันได้ทำกระบวนการทั้งหมดไว้เพื่อให้คุณสามารถทดสอบกลยุทธ์ใหม่ ๆ ได้โดยใช้โค้ด 1 บรรทัดไม่เคยพลาดการอัพเดทสมัคร R-bloggers เพื่อรับอีเมลที่มีโพสต์ R ล่าสุดคุณจะไม่ ดูข้อความนี้อีกครั้ง

No comments:

Post a Comment