Skip to main content

Backtesting Trading กลยุทธ์ ใน R


Backtesting: การตีความย้อนหลังการทำ 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) ของ บริษัท เพื่อลดจำนวนหุ้นในตลาด บริษัท การคืนเงินภาษีคือการคืนเงินภาษีที่จ่ายให้กับบุคคลหรือครัวเรือนเมื่อหนี้สินภาษีที่เกิดขึ้นจริงน้อยกว่าจำนวนเงิน มูลค่าทางการเงินของสินค้าสำเร็จรูปและบริการทั้งหมดที่เกิดขึ้นภายในพรมแดนของประเทศในช่วงเวลาที่เฉพาะเจาะจงฉันเป็นคนใหม่ของ R และพยายามที่จะทดสอบกลยุทธ์ที่ 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 กลยุทธ์การซื้อขายหุ้นอย่างง่ายหมายเหตุ: โพสต์นี้ไม่ใช่คำแนะนำทางการเงินนี่เป็นเพียงวิธีที่สนุกในการสำรวจบางส่วนของความสามารถ R มีการนำเข้าและจัดการข้อมูล ฉันเพิ่งอ่านบทความเกี่ยวกับ ETF Prophet ที่สำรวจกลยุทธ์การซื้อขายหุ้นที่น่าสนใจใน Excel กลยุทธ์นี้ใช้ง่าย: ค้นหาจุดที่สูงของสต็อกในช่วง 200 วันที่ผ่านมาและนับจำนวนวันที่ผ่านไปนับจากที่สูง หากได้รับน้อยกว่า 100 วันเป็นเจ้าของสต็อก ถ้าวันนี้เป็นเวลามากกว่า 100 วัน don8217t ก็เป็นเจ้าของ กลยุทธ์นี้ง่ายมาก แต่ให้ผลลัพธ์ที่น่าประทับใจ (อย่างไรก็ตามโปรดทราบว่าตัวอย่างนี้ใช้ข้อมูลที่ไม่ได้รับการปรับปรุงจากส่วนแบ่งหรือเงินปันผลและอาจมีข้อผิดพลาดอื่น ๆ นอกจากนี้เรายังละเว้นค่าใช้จ่ายในการซื้อขายและความล่าช้าในการดำเนินการซึ่งทั้งสองอย่างนี้มีผลต่อประสิทธิภาพของกลยุทธ์) และมีข้อได้เปรียบเหนือกว่า excel โดยหลัก ๆ คือการดึงข้อมูลตลาดหุ้นเข้าสู่ R ง่ายและเราสามารถทดสอบกลยุทธ์นี้ได้ในหลายดัชนีด้วยความพยายามเพียงเล็กน้อย ก่อนอื่นเราจะดาวน์โหลดข้อมูลสำหรับ GSPC โดยใช้ quantmod (GSPC หมายถึงดัชนี SampP 500) ต่อไปเราจะสร้างฟังก์ชันในการคำนวณจำนวนวันนับจาก n-day high ในชุดข้อมูลเวลาและเป็นฟังก์ชันที่จะใช้กลยุทธ์การซื้อขายของเรา ฟังก์ชั่นหลังใช้พารามิเตอร์ 2 ตัวคือค่าสูงสุด n วันที่คุณต้องการใช้และจำนวนวันที่ผ่านมาที่สูงคุณจะถือสต็อก ตัวอย่างเช่น 200 และ 100 แต่คุณสามารถเปลี่ยนค่านี้เป็น 500 วันได้โดยง่ายและดูว่าเกิดอะไรขึ้นหากคุณถือหุ้น 300 วันก่อนที่จะออกตั๋ว เนื่องจากฟังก์ชันนี้ได้รับการปรับพารามิเตอร์ทำให้เราสามารถทดสอบกลยุทธ์เวอร์ชันอื่น ๆ ได้โดยง่าย เราเริ่มต้นกลยุทธ์ของเราด้วยศูนย์ดังนั้นจะยาวเท่ากับข้อมูลที่ป้อนเข้าของเรา (ถ้าคุณต้องการคำอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับวันนับตั้งแต่วันทำงานสูงดูการอภิปรายเกี่ยวกับการตรวจสอบข้าม) เราคูณเวกเตอร์ตำแหน่งของเรา (0,1) ด้วยผลตอบแทนจากดัชนีเพื่อให้ได้ผลตอบแทนจากกลยุทธ์ 8217s ตอนนี้เราสร้างฟังก์ชันเพื่อแสดงสถิติเกี่ยวกับกลยุทธ์การซื้อขายและเปรียบเทียบกลยุทธ์ของเรากับเกณฑ์มาตรฐาน ค่อนข้างพละโดย I8217ve ตัดสินใจที่จะดูผลตอบแทนสะสม, ผลตอบแทนเฉลี่ยต่อปี, อัตราส่วนของ sharpe, การชนะ, ความผันผวนเฉลี่ยต่อปี, การเบิกสูงสุดและการเบิกจ่ายสูงสุด สถิติอื่น ๆ จะง่ายต่อการใช้งาน ดังที่คุณเห็นกลยุทธ์นี้เปรียบเทียบได้ดีกับแนวทาง 8220buy-and-hold8221 ที่เป็นค่าเริ่มต้น สุดท้ายเราทดสอบกลยุทธ์ของเราใน 3 ดัชนีอื่น ๆ ได้แก่ FTSE ซึ่งหมายถึงไอร์แลนด์และสหราชอาณาจักรดัชนีอุตสาหกรรมดาวโจนส์ ซึ่งย้อนกลับไปในปี 1896 และ N225 ซึ่งหมายถึงประเทศญี่ปุ่น I8217ve ทำหน้าที่กระบวนการทั้งหมดเพื่อให้คุณสามารถทดสอบแต่ละกลยุทธ์ใหม่ด้วยโค้ด 1 บรรทัด: อย่าพลาดการอัปเดตสมัครสมาชิก R-bloggers เพื่อรับอีเมลพร้อมโพสต์ R ล่าสุด (คุณจะไม่เห็นข้อความนี้อีก) 30 พฤศจิกายน 2016, 12:34 น. ไม่กี่เดือนที่ผ่านมาผู้อ่านชี้ให้ฉันเห็นวิธีการใหม่ในการเชื่อมต่อ R และ Excel ฉัน don8217t รู้นานเท่าไหร่นี้ได้รับรอบ แต่ฉันไม่เคยเจอมันและ I8217ve ไม่เคยเห็นโพสต์บล็อกหรือบทความเกี่ยวกับเรื่องใด ๆ ดังนั้นฉันจึงตัดสินใจที่จะเขียนโพสต์เป็นเครื่องมือที่มีค่าจริงๆและก่อนใครถาม I8217m ไม่เกี่ยวข้องกับ บริษัท ในทางใดทางหนึ่ง BERT ย่อมาจาก Basic Excel R Toolkit It8217s ฟรี (มีใบอนุญาตภายใต้ GPL v2) และได้รับการพัฒนาโดย Structured Data LLC ในขณะที่เขียนเวอร์ชันปัจจุบันของ BERT เท่ากับ 1.07 ข้อมูลเพิ่มเติมสามารถดูได้ที่นี่. จากมุมมองด้านเทคนิคเพิ่มเติม BERT ได้รับการออกแบบมาเพื่อสนับสนุนการทำงานของ R จากเซลล์กระดาษคำนวณของ Excel ในข้อกำหนดของ Excel, it8217s สำหรับการเขียน User-Defined Functions (UDF) ใน R. ใน I8217m โพสต์นี้จะไม่แสดงให้คุณเห็นว่า R และ Excel มีปฏิสัมพันธ์ผ่านทาง BERT มีบทเรียนดีๆอยู่ที่นี่ ที่นี่และที่นี่ แต่ฉันต้องการแสดงให้คุณเห็นว่าฉันใช้ BERT เพื่อสร้าง 8220control tower8221 เพื่อการซื้อขายของฉันอย่างไร สัญญาณการค้าของฉันถูกสร้างโดยใช้รายการยาวของไฟล์ R แต่ฉันต้องการความยืดหยุ่นของ Excel เพื่อแสดงผลลัพธ์อย่างรวดเร็วและมีประสิทธิภาพ ดังที่แสดงไว้ข้างต้น BERT สามารถทำเช่นนี้ได้สำหรับฉัน แต่ฉันต้องการปรับแต่งแอพพลิเคชันตามความต้องการของฉันด้วย โดยการรวมพลังของ XML, VBA, R และ BERT ฉันสามารถสร้างแอปพลิเคชันที่ดูดี แต่ทรงพลังในรูปแบบไฟล์ Excel ที่มีรหัส VBA ต่ำสุด สุดท้ายฉันมีไฟล์ Excel เดียวรวบรวมงานทั้งหมดที่จำเป็นในการจัดการพอร์ตโฟลิโอของฉัน: การอัพเดตฐานข้อมูลการสร้างสัญญาณการส่งใบสั่งซื้อเป็นต้น 8230 วิธีการของฉันอาจถูกแบ่งออกเป็น 3 ขั้นตอนด้านล่างนี้: ใช้ XML เพื่อสร้างเมนูและปุ่มที่ผู้ใช้กำหนดเองใน Excel ไฟล์. เมนูและปุ่มข้างต้นเป็นหลักเรียกฟังก์ชัน VBA ฟังก์ชั่น VBA ดังกล่าวจะถูกตัดรอบฟังก์ชัน R ที่กำหนดโดยใช้ BERT ด้วยวิธีนี้ฉันสามารถเก็บความแตกต่างระหว่างหลักของรหัสของฉันเก็บไว้ใน R, SQL และ Python และทุกอย่างใช้ในการแสดงและจัดรูปแบบผลเก็บไว้ใน Excel, VBA amp XML ในส่วนถัดไปฉันจะนำเสนอสิ่งที่จำเป็นสำหรับการพัฒนาแนวทางดังกล่าวและคำแนะนำทีละขั้นตอนที่อธิบายว่า BERT สามารถใช้สำหรับการส่งผ่านข้อมูลจาก R ไปยัง Excel ด้วยรหัส VBA ที่น้อยที่สุดได้อย่างไร 1 8211 ดาวน์โหลดและติดตั้ง BERT จากลิงค์นี้ เมื่อการติดตั้งเสร็จสิ้นคุณควรจะมีเมนู Add-Ins ใหม่ใน Excel ด้วยปุ่มดังแสดงด้านล่าง นี่เป็นวิธีที่ BERT มีอยู่ใน Excel 2 8211 ดาวน์โหลดและติดตั้ง Custom UI editor ตัวแก้ไข UI ที่กำหนดเองช่วยในการสร้างเมนูและปุ่มที่กำหนดโดยผู้ใช้ใน Excel ribbon มีขั้นตอนการทำตามขั้นตอนที่นี่ คำแนะนำทีละขั้นตอน 1 8211 R รหัส: ฟังก์ชัน R ด้านล่างเป็นโค้ดที่ใช้งานง่ายสำหรับการอธิบายเท่านั้น จะคำนวณและคืนส่วนที่เหลือจากการถดถอยเชิงเส้น นี่คือสิ่งที่เราต้องการดึงข้อมูลใน Excel บันทึกไฟล์นี้ไว้ในไฟล์ myRCode. R (ชื่อใด ๆ ก็ได้ดี) ในไดเร็กทอรีที่คุณเลือก 2 8211 functions. R ใน BERT จาก Excel เลือก Add-Ins - gt Home Directory และเปิดไฟล์ที่ชื่อว่า functions. R ในไฟล์นี้วางรหัสต่อไปนี้ ตรวจสอบว่าคุณได้ใส่เส้นทางที่ถูกต้อง นี่เป็นเพียงการจัดหาไฟล์ BERT ที่ R ที่คุณสร้างไว้ข้างต้น จากนั้นให้บันทึกและปิดฟังก์ชั่นไฟล์ R หากคุณต้องการทำการเปลี่ยนแปลงใด ๆ ในไฟล์ R ที่สร้างขึ้นในขั้นตอนที่ 1 คุณจะต้องโหลดใหม่โดยใช้ปุ่ม BERT 8220Reload Startup File8221 จากเมนู Add-Ins ใน Excel 3 8211 ใน Excel: สร้างและบันทึกไฟล์ที่ชื่อ myFile. xslm (ชื่ออื่นใดก็ได้) นี่คือไฟล์ที่เปิดใช้งานมาโครที่คุณบันทึกไว้ในไดเร็กทอรีที่คุณเลือก เมื่อแฟ้มถูกบันทึกไว้ปิดมัน 4 8211 เปิดไฟล์ที่สร้างขึ้นข้างต้นใน Custom UI editor: เมื่อเปิดไฟล์แล้ววางโค้ดด้านล่าง คุณควรมีบางอย่างเช่นนี้ในตัวแก้ไข XML: โค้ด XML นี้จะสร้างเมนูเพิ่มเติม (RTrader) กลุ่มใหม่ (กลุ่มของฉัน) และปุ่มที่กำหนดโดยผู้ใช้ (New Button) ใน ribbon Excel เมื่อ you8217re เสร็จแล้วให้เปิด myFile. xslm ใน Excel และปิด Custom UI Editor คุณควรเห็นบางอย่างเช่นนี้ 5 8211 เปิดตัวแก้ไข VBA ใน myFile. xlsm แทรกโมดูลใหม่ วางโค้ดด้านล่างลงในโมดูลที่สร้างขึ้นใหม่ การดำเนินการนี้จะลบผลการค้นหาก่อนหน้าในแผ่นงานก่อนที่จะดำเนินการใหม่ 6 8211 คลิกปุ่ม New ตอนนี้กลับไปที่สเปรดชีตและในเมนู RTrader คลิกปุ่ม 8220New Button8221 คุณจะเห็นสิ่งที่ปรากฏด้านล่าง คู่มือข้างต้นเป็นรุ่นพื้นฐานของสิ่งที่สามารถทำได้โดยใช้ BERT แต่จะแสดงวิธีการรวมพลังของเครื่องมือเฉพาะต่างๆเพื่อสร้างแอ็พพลิเคชันที่กำหนดเองของคุณเอง จากมุมมองของฉันความสนใจของวิธีดังกล่าวคือความสามารถในการกาวด้วยกัน R และ Excel ชัด แต่รวมถึง XML (และชุด) ชิ้นส่วนของโค้ดจาก Python, SQL และอื่น ๆ นี่คือสิ่งที่ฉันต้องการ สุดท้ายฉันอยากรู้ว่าใครมีประสบการณ์กับ BERT 19 สิงหาคม 2016, 9:26 น. เมื่อทดสอบกลยุทธ์การซื้อขายวิธีการทั่วไปคือการแบ่งข้อมูลเริ่มแรกที่ตั้งไว้ในตัวอย่างข้อมูล: ส่วนหนึ่งของข้อมูลที่ออกแบบมาเพื่อปรับเทียบ โมเดลและข้อมูลตัวอย่าง: ส่วนหนึ่งของข้อมูลที่ใช้ในการตรวจสอบการสอบเทียบและตรวจสอบว่าประสิทธิภาพที่สร้างขึ้นในตัวอย่างจะสะท้อนให้เห็นในโลกแห่งความจริง ตามกฎของหัวแม่มือประมาณ 70 ของข้อมูลเริ่มต้นสามารถใช้สำหรับการสอบเทียบ (เช่นในตัวอย่าง) และ 30 สำหรับการตรวจสอบ (เช่นออกจากตัวอย่าง) จากนั้นการเปรียบเทียบข้อมูลในและนอกของตัวอย่างช่วยในการตัดสินใจว่าโมเดลมีประสิทธิภาพเพียงพอหรือไม่ โพสต์นี้มุ่งไปที่ขั้นตอนต่อไปและเป็นวิธีการทางสถิติในการตัดสินใจว่าข้อมูลตัวอย่างจะไม่ตรงกับสิ่งที่สร้างขึ้นในตัวอย่าง ในแผนภูมิด้านล่างพื้นที่สีน้ำเงินหมายถึงประสิทธิภาพตัวอย่างสำหรับกลยุทธ์ของฉัน การตรวจสอบภาพที่เรียบง่ายแสดงให้เห็นถึงความพอดีที่ดีระหว่างการเข้าและออกจากการทดสอบตัวอย่าง แต่ฉันมีความมั่นใจในระดับใดในขั้นตอนนี้ไม่มากนักและนี่เป็นปัญหา สิ่งที่จำเป็นอย่างแท้จริงคือการวัดความคล้ายคลึงกันระหว่างชุดข้อมูลตัวอย่างในและนอก ในแง่ทางสถิติอาจแปลได้ว่าเป็นไปได้ว่าตัวเลขการเข้าชมและออกจากตัวเลขประสิทธิภาพตัวอย่างมาจากการกระจายเดียวกัน มีการทดสอบสถิติที่ไม่ใช่พารามิเตอร์ที่ไม่ตรงนี้: การทดสอบ Kruskall-Wallis ความหมายที่ดีของการทดสอบนี้สามารถพบได้ในกลุ่มตัวอย่างของ R-Tutor 8220A ที่เก็บตัวอย่างข้อมูลได้โดยอิสระหากมาจากประชากรที่ไม่เกี่ยวกันและตัวอย่างเหล่านี้ไม่มีผลต่อกันและกัน ใช้การทดสอบ Kruskal-Wallis เราสามารถตัดสินใจได้ว่าการกระจายของประชากรจะเหมือนกันหรือไม่โดยสมมติว่าพวกเขาไม่ปฏิบัติตามการแจกแจงแบบปกติ 8221 ผลประโยชน์เพิ่มเติมของการทดสอบนี้ไม่ได้เป็นการสมมติว่ามีการแจกแจงแบบปกติ มีการทดสอบอื่นที่มีลักษณะเดียวกับที่สามารถใส่ลงในกรอบดังกล่าวได้ การทดสอบ Mann-Whitney-Wilcoxon หรือการทดสอบ Kolmogorov-Smirnov จะเหมาะกับกรอบการทำงานนี้อย่างสมบูรณ์ แต่นี่ไม่ใช่ข้อ จำกัด ของบทความนี้เพื่อหารือเกี่ยวกับข้อดีข้อเสียของการทดสอบแต่ละข้อ คำอธิบายที่ดีพร้อมกับตัวอย่าง R สามารถดูได้ที่นี่ Here8217s รหัสที่ใช้ในการสร้างแผนภูมิด้านบนและการวิเคราะห์: ในตัวอย่างข้างต้นในช่วงตัวอย่างมีค่าเกินกว่าระยะเวลาตัวอย่างดังนั้นฉันจึงสุ่มสร้าง 1000 ส่วนย่อยของข้อมูลตัวอย่างซึ่งแต่ละตัวมีความยาวเท่ากันหมด ของข้อมูลตัวอย่าง จากนั้นผมได้ทดสอบแต่ละชุดย่อยตัวอย่างเทียบกับข้อมูลตัวอย่างและบันทึกค่า p - กระบวนการนี้สร้างค่า p เดียวสำหรับการทดสอบ Kruskall-Wallis แต่เป็นการกระจายที่ทำให้การวิเคราะห์มีประสิทธิภาพมากขึ้น ในตัวอย่างนี้ค่าเฉลี่ย p - ค่าดีกว่าศูนย์ (0.478) แสดงให้เห็นว่าสมมติฐานที่เป็นโมฆะควรได้รับการยอมรับ: มีหลักฐานว่าข้อมูลเข้าและออกจากตัวอย่างมาจากการกระจายเดียวกัน ตามปกติแล้วสิ่งที่นำเสนอในโพสต์นี้เป็นตัวอย่างของเล่นที่ทำหน้าที่ขูดขีดพื้นผิวของปัญหาเท่านั้นและควรปรับให้ตรงตามความต้องการของแต่ละบุคคล อย่างไรก็ตามผมคิดว่าข้อเสนอแนะนี้เป็นกรอบทางสถิติที่น่าสนใจและมีเหตุผลเพื่อประเมินผลลัพธ์จากผลการทดสอบตัวอย่าง โพสต์นี้ได้รับแรงบันดาลใจจากเอกสารสองฉบับต่อไปนี้: Vigier Alexandre, Chmil Swann (2007), ผลกระทบของฟังก์ชันการเพิ่มประสิทธิภาพต่างๆที่มีต่อประสิทธิภาพการทำงานตัวอย่างของกลยุทธ์การซื้อขายพันธุกรรมที่พัฒนาขึ้น, การคาดการณ์การประชุมตลาดการเงิน Vigier Alexandre, Chmil Swann (2010), กระบวนการเพิ่มประสิทธิภาพเพื่อปรับปรุงความสอดคล้องตัวอย่าง, กรณี Stock Market, การประชุมเชิงปริมาณ JP Morgan Cazenove Equity, London October 2010 13 ธันวาคม 2015, 2:03 pm การทำวิจัยเชิงปริมาณหมายถึงการกระทืบข้อมูลจำนวนมากและหนึ่งต้องการข้อมูลที่สะอาดและเชื่อถือได้ บรรลุเป้าหมายนี้ สิ่งที่จำเป็นจริงๆคือข้อมูลสะอาดที่สามารถเข้าถึงได้ง่าย (แม้จะไม่มีการเชื่อมต่ออินเทอร์เน็ต) วิธีที่มีประสิทธิภาพมากที่สุดในการทำเช่นนี้สำหรับฉันคือการรักษาชุดของไฟล์ CSV แน่นอนกระบวนการนี้สามารถจัดการได้หลายวิธี แต่ฉันพบว่ามีประสิทธิภาพมากและง่ายทำงานล่วงเวลาเพื่อรักษาไดเรกทอรีที่ฉันเก็บและ update ไฟล์ csv ฉันมีไฟล์ csv หนึ่งไฟล์ต่อหนึ่งตราสารและไฟล์แต่ละไฟล์จะมีชื่อตามอุปกรณ์ที่มีอยู่ เหตุผลที่ฉันทำเช่นนั้นเป็นสองเท่า: ประการแรกฉัน don8217t ต้องการดาวน์โหลดข้อมูลราคา (ราคา) จาก Yahoo, Google itd8230 ทุกครั้งที่ฉันต้องการทดสอบแนวคิดใหม่ ๆ แต่ที่สำคัญกว่าเมื่อฉันระบุและแก้ไขปัญหาแล้วฉัน don8217t ต้องการจะต้อง ทำอีกครั้งในครั้งต่อไปที่ฉันต้องการเครื่องดนตรีเดียวกัน เรียบง่ายและมีประสิทธิภาพมาก กระบวนการดังกล่าวสรุปได้จากตารางด้านล่าง ในทุกอย่างที่ตามมาผมถือว่าข้อมูลมาจาก Yahoo รหัสจะต้องได้รับการแก้ไขสำหรับข้อมูลจาก Google, Quandl ฯลฯ8230นอกจากนี้ฉันยังเสนอขั้นตอนการอัปเดตข้อมูลราคารายวัน การตั้งค่าจะแตกต่างกันสำหรับข้อมูลความถี่สูงและชุดข้อมูลประเภทอื่น ๆ (เช่นแตกต่างจากราคา) 1 8211 การดาวน์โหลดข้อมูลเบื้องต้น (listOfInstruments. R amp historicalData. R) ไฟล์ listOfInstruments. R คือไฟล์ที่มีเฉพาะรายการเครื่องมือทั้งหมด หากเครื่องไม่ได้เป็นส่วนหนึ่งของรายการของฉัน (เช่นไม่มีไฟล์ csv ในโฟลเดอร์ข้อมูล) หรือถ้าคุณทำเช่นนั้นเป็นครั้งแรกคุณต้องดาวน์โหลดชุดข้อมูลทางประวัติศาสตร์ในตอนแรก ตัวอย่างด้านล่างดาวน์โหลดชุดราคา ETFs ประจำวันจาก Yahoo Finance ตั้งแต่เดือนมกราคม 2000 และเก็บข้อมูลไว้ในไฟล์ CSV 2 8211 อัพเดตข้อมูลที่มีอยู่ (updateData. R) โค้ดด้านล่างนี้เริ่มจากไฟล์ที่มีอยู่ในโฟลเดอร์เฉพาะและอัปเดตข้อมูลทั้งหมดที่มีอยู่หลังจากที่อื่น ฉันมักจะเรียกใช้กระบวนการนี้ทุกวันยกเว้นเมื่อ I8217m ในวันหยุด หากต้องการเพิ่มเครื่องมือใหม่ให้ใช้ขั้นตอนที่ 1 ด้านบนสำหรับเครื่องนี้เพียงอย่างเดียว 3 8211 สร้างไฟล์แบทช์ (updateDailyPrices. bat) ส่วนที่สำคัญอีกอย่างหนึ่งของงานคือการสร้างไฟล์แบทช์ที่ทำให้กระบวนการอัปเดตทำงานโดยอัตโนมัติ (I8217m เป็นผู้ใช้ Windows) วิธีนี้จะหลีกเลี่ยงการเปิด RRStudio และเรียกใช้โค้ดจากที่นั่น รหัสด้านล่างจะอยู่ในไฟล์. bat (เส้นทางจะต้องมีการแก้ไขด้วยการตั้งค่า reader8217s) โปรดทราบว่าฉันได้เพิ่มไฟล์ที่ส่งออก (updateLog. txt) เพื่อติดตามการดำเนินการ ขั้นตอนข้างต้นเป็นเรื่องง่ายมากเพราะจะอธิบายเฉพาะวิธีการอัปเดตข้อมูลราคารายวันเท่านั้น I8217 ใช้เวลานี้มาเรื่อย ๆ และทำงานได้อย่างราบรื่นสำหรับฉันจนถึงตอนนี้ สำหรับข้อมูลขั้นสูงและความถี่ที่สูงขึ้นสิ่งต่างๆจะมีความซับซ้อนมากขึ้น ตามปกติความคิดเห็นใด ๆ ต้อนรับ 23 มีนาคม 2015, 8:55 น. เมื่อพูดถึงการจัดการพอร์ตการลงทุนของหุ้นเทียบกับเกณฑ์มาตรฐานปัญหาจะแตกต่างจากการกำหนดกลยุทธ์การคืนผลแน่นอน ในอดีตต้องถือหุ้นมากขึ้นกว่าในภายหลังซึ่งไม่มีหุ้นที่สามารถถือได้หากมีโอกาสไม่ดีพอ เหตุผลคือข้อผิดพลาดในการติดตาม นี่คือส่วนเบี่ยงเบนมาตรฐานของผลตอบแทนของพอร์ตการลงทุนโดยหักผลตอบแทนจากการลงทุน มีการจัดเก็บหุ้นที่น้อยลงเทียบกับเกณฑ์มาตรฐานมากขึ้นจะทำให้เกิดข้อผิดพลาดในการติดตามได้มากขึ้น (เช่นความเสี่ยงที่สูงขึ้น) การวิเคราะห์ต่อไปนี้ได้รับแรงบันดาลใจมาจากหนังสือ 8220Active Portfolio Management8221 โดย Grinold amp Kahn นี่คือพระคัมภีร์สำหรับทุกคนที่สนใจในการทำผลงานกับมาตรฐาน ผมขอแนะนำให้ทุกคนที่มีความสนใจในหัวข้อนี้ในการอ่านหนังสือตั้งแต่ต้นจนจบ It8217s เขียนเป็นอย่างดีและวางรากฐานของการจัดการพอร์ตโฟลิโอที่ใช้งานอย่างเป็นระบบ (ฉันไม่มีความร่วมมือใด ๆ กับบรรณาธิการหรือผู้เขียน) 1 8211 Factor Analysis นี่เรากำลังพยายามจัดอันดับหุ้นในจักรวาลการลงทุนให้ได้มากที่สุดเท่าที่จะเป็นไปได้ หลายคนคิดค้นเครื่องมือและเครื่องมือมากมายที่พัฒนาขึ้นเพื่อให้บรรลุเป้าหมายนี้ ในบทความนี้ฉันมุ่งเน้นไปที่สองเมตริกที่ง่ายและใช้กันอย่างแพร่หลาย: ค่าสัมประสิทธิ์ข้อมูล (IC) และ Quantiles Return (QR) 1.1 8211 ค่าสัมประสิทธิ์ข้อมูลเส้นขอบฟ้าสำหรับผลตอบแทนที่ได้รับจะต้องถูกกำหนดโดยนักวิเคราะห์และ it8217s ซึ่งเป็นส่วนหนึ่งของการหมุนเวียนของกลยุทธ์8217และการสลายตัวของอัลฟา (ซึ่งเป็นหัวข้อที่ครอบคลุมการวิจัย) เห็นได้ชัดว่าไอซีจะต้องสูงที่สุดเท่าที่จะเป็นไปได้ในรูปแบบสัมบูรณ์ สำหรับผู้อ่านที่กระตือรือร้นในหนังสือโดย Grinold amp Kahn สูตรการเชื่อมโยง Information Ratio (IR) และ IC จะได้รับ: ด้วยความกว้างคือจำนวนของการเดิมพันที่เป็นอิสระ (ธุรกิจการค้า) สูตรนี้เรียกว่ากฎพื้นฐานของการจัดการที่ใช้งานอยู่ ปัญหาคือบ่อยครั้งที่การกำหนดความกว้างได้อย่างถูกต้องไม่ใช่เรื่องง่ายเหมือนกับเสียง 1.2 8211 Quantiles Return เพื่อให้มีการคาดการณ์ที่ถูกต้องยิ่งขึ้นเกี่ยวกับปัจจัยที่ทำให้พลังงานที่คาดการณ์ได้ it8217s จำเป็นที่จะต้องก้าวไปอีกขั้นหนึ่งและจัดกลุ่มหุ้นตามปริมาณของค่าปัจจัยแล้ววิเคราะห์ค่าเฉลี่ยของผลตอบแทน (หรือตัวชี้วัดค่าเฉลี่ยของศูนย์กลางอื่น ๆ ) ของแต่ละกลุ่ม quantiles ประโยชน์ของเครื่องมือนี้ตรงไปตรงมา ปัจจัยหนึ่งสามารถมี IC ที่ดี แต่พลังการคาดการณ์อาจ จำกัด อยู่ที่จำนวนหุ้นที่น้อย ไม่ดีเท่าผู้จัดการด้านการลงทุนจะต้องเลือกหุ้นภายในจักรวาลทั้งหมดเพื่อให้สอดคล้องกับข้อ จำกัด ในการติดตามข้อผิดพลาด กลับ quantiles ดีมีลักษณะความสัมพันธ์ที่น่าเบื่อระหว่างแต่ละ quantiles และส่งกลับ. หุ้นทั้งหมดในดัชนี SampP500 (ในขณะที่เขียน) เห็นได้ชัดว่ามีอคติในการอยู่รอดของเรือ: รายการดัชนีหุ้นในดัชนีมีการเปลี่ยนแปลงอย่างมีนัยสำคัญระหว่างช่วงเริ่มต้นและจุดสิ้นสุดของช่วงเวลาตัวอย่าง แต่ก็มีความสามารถเพียงพอสำหรับวัตถุประสงค์ในการแสดงเท่านั้น รหัสด้านล่างดาวน์โหลดราคาหุ้นแต่ละแบบใน SampP500 ระหว่างเดือน ม. ค. 2548 ถึงวันนี้ (ต้องใช้เวลาสักครู่) และจะเปลี่ยนราคาวัตถุดิบให้เป็นผลตอบแทนในช่วง 12 เดือนที่ผ่านมาและเดือนที่ผ่านมา อดีตเป็นปัจจัยของเราหลังจะใช้เป็นมาตรการส่งกลับ ด้านล่างนี้เป็นรหัสในการคำนวณค่าสัมประสิทธิ์ข้อมูลและปริมาณการส่งกลับ โปรดทราบว่าฉันใช้ quintiles ในตัวอย่างนี้ แต่สามารถใช้วิธีจัดกลุ่มอื่น ๆ (terciles, deciles etc8230) จริงๆมันขึ้นอยู่กับขนาดตัวอย่างสิ่งที่คุณต้องการจับภาพและสภาพอากาศที่คุณต้องการมีภาพรวมกว้างหรือมุ่งเน้นกระจายหาง สำหรับการประเมินผลตอบแทนภายในแต่ละกลุ่มค่ามัธยฐานถูกใช้เป็นตัวประมาณแนวโน้มกลาง มาตรการนี้มีความไวต่อค่าผิดปกติน้อยกว่าค่าเฉลี่ยเลขคณิต และสุดท้ายโค้ดเพื่อสร้างแผนภูมิ Quantiles Return 3 8211 วิธีการใช้ประโยชน์จากข้อมูลข้างต้นในแผนภูมิด้านบน Q1 จะกลับมาต่ำสุดในรอบ 12 เดือนและ Q5 สูงสุด มีการเพิ่มผลตอบแทนเชิงปริมาณในช่วง Q1 และ Q5 ที่เพิ่มขึ้นอย่างเห็นได้ชัดเกือบทุกอย่างซึ่งแสดงให้เห็นว่าหุ้นที่ลดลงใน Q5 ดีกว่าไตรมาสที่ 1 ประมาณ 1 ต่อเดือน นี่เป็นสิ่งที่มีความสำคัญและมีประสิทธิภาพสำหรับปัจจัยง่ายๆเช่น (ไม่แปลกใจเลยครับ) ดังนั้นเราจึงมีโอกาสที่จะเอาชนะดัชนีได้มากขึ้นโดยการถ่วงน้ำหนักหุ้นที่ลดลงในไตรมาสที่ 5 และทำให้น้ำหนักลดลงเมื่อเทียบกับเกณฑ์มาตรฐาน IC ของ 0.0206 อาจไม่ได้หมายถึงการจัดการที่ดีในตัวเอง แต่ it8217s อย่างมีนัยสำคัญที่แตกต่างจาก 0 และบ่งบอกถึงพลังการคาดการณ์ที่ดีของที่ผ่านมา 12 เดือนกลับโดยรวม การทดสอบความสำคัญอย่างเป็นทางการสามารถประเมินได้ แต่สิ่งนี้อยู่นอกเหนือขอบเขตของบทความนี้ 4 8211 ข้อ จำกัด ในทางปฏิบัติกรอบการทำงานข้างต้นเป็นสิ่งที่ดีเยี่ยมสำหรับการประเมินคุณภาพของปัจจัยการลงทุน 8272s อย่างไรก็ตามมีข้อ จำกัด ในทางปฏิบัติที่ต้องใช้ในการดำเนินการในชีวิตจริงคือการปรับสมดุลใหม่ ในคำอธิบายด้านบน it8217s สันนิษฐานว่า ณ สิ้นเดือนของพอร์ตโฟลิโอจะปรับสมดุลได้อย่างเต็มที่ ซึ่งหมายความว่าหุ้นทั้งหมดที่ร่วงลงใน Q1 มีน้ำหนักน้อยและหุ้นทั้งหมดที่ตกอยู่ในไตรมาสที่ 5 มีน้ำหนักเกินเมื่อเทียบกับเกณฑ์มาตรฐาน นี่เป็นไปไม่ได้ที่จะเป็นไปได้ในทางปฏิบัติ: บางหุ้นอาจถูกแยกออกจากจักรวาลการลงทุนมีข้อจํากัดเกี่ยวกับอุตสาหกรรมหรือภาคน้ำหนักมีข้อจํากัดในการหมุนเวียนเป็นต้น 823 ต้นทุนการทำธุรกรรม สิ่งนี้ไม่ได้นำมาพิจารณาในการวิเคราะห์ข้างต้นและเป็นข้อบกพร่องร้ายแรงต่อการใช้ชีวิตจริง การพิจารณาการหมุนเวียนมักใช้ในชีวิตจริงในรูปของการลงโทษต่อคุณภาพของปัจจัย สัมประสิทธิ์การถ่ายเท นี่คือการขยายกฎหมายพื้นฐานของการจัดการที่ใช้งานอยู่และเป็นการผ่อนคลายสมมติฐานของแบบจำลอง Grinold8217s ที่ผู้บริหารไม่ต้องเผชิญกับข้อ จำกัด ใด ๆ ที่ทำให้พวกเขาไม่สามารถแปลข้อมูลเชิงลึกด้านการลงทุนของตนโดยตรงไปยังการเดิมพันในพอร์ตโฟลิโอ และสุดท้าย I8217m ประหลาดใจด้วยสิ่งที่สามารถทำได้ในน้อยกว่า 80 บรรทัดของรหัสกับ R8230 ตามปกติความคิดเห็นใด ๆ ต้อนรับ 14 มีนาคม 2014, 01:07 คำถามหนึ่งควรถาม himherself เมื่อใช้ตัวชี้วัดทางเทคนิคคือสิ่งที่จะเป็นวัตถุประสงค์ เกณฑ์การเลือกพารามิเตอร์ตัวบ่งชี้ (เช่นทำไมต้องใช้ RSI 14 วันมากกว่า 15 หรือ 20 วัน) อัลกอริทึมทางพันธุกรรม (GA) เป็นเครื่องมือที่เหมาะสำหรับตอบคำถามนี้ ในบทความนี้ I8217 จะแสดงวิธีการตั้งค่าปัญหาใน R. ก่อนดำเนินการเตือนตามปกติ: สิ่งที่ฉันนำเสนอในโพสต์นี้เป็นเพียงตัวอย่างของเล่นเท่านั้นไม่ใช่คำเชิญในการลงทุน ไม่ใช่กลยุทธ์ที่สมบูรณ์แบบ แต่เป็นแนวคิดการวิจัยที่ต้องมีการวิจัยพัฒนาและปรับแต่งตามความต้องการของแต่ละบุคคล ขั้นตอนวิธีเชิงพันธุกรรมคืออะไรคำอธิบายที่ดีที่สุดของ GA ที่ฉันมาจาก Cybernatic Trading เป็นหนังสือของ Murray A. Ruggiero 8220Genetic Algorithms ถูกคิดค้นโดย John Holland ในช่วงกลางปี ​​1970 เพื่อแก้ปัญหาการเพิ่มประสิทธิภาพอย่างหนัก วิธีนี้ใช้การคัดเลือกโดยธรรมชาติการอยู่รอดของ fittest8221 กระบวนการทั่วไปทำตามขั้นตอนด้านล่าง: เข้ารหัสปัญหาเป็นโครโมโซมใช้การเข้ารหัสการพัฒนาฟังก์ชั่นสมรรถภาพสำหรับใช้ในการประเมินแต่ละค่าโครโมโซม 8017 ในการแก้ปัญหาที่กำหนดเริ่มต้นประชากรโครโมโซมประเมินแต่ละโครโมโซมในประชากรสร้างโครโมโซมใหม่โดยการผสมพันธุ์สอง โครโมโซม (พ่อแม่จะถูกเลือกแบบสุ่ม แต่ลำเอียงโดยการออกกำลังกายของพวกเขา) ประเมินโครโมโซมใหม่ลบสมาชิกของประชากรที่ไม่พอดีกับโครโมโซมใหม่และใส่โครโมโซมใหม่ในประชากร . ถ้าเกณฑ์การยุติ (จำนวนสูงสุดของอายุเกณฑ์การออกกำลังกายดีพอ 823) ให้กลับโครโมโซมที่ดีที่สุดหรือไปที่ขั้นตอนที่ 4 จากมุมมองการซื้อขาย GA มีประโยชน์มากเพราะสามารถจัดการปัญหาที่ไม่เป็นเชิงเส้นได้มาก อย่างไรก็ตามคุณลักษณะเหล่านี้แสดงถึงคุณลักษณะที่น่ารังเกียจซึ่งน่าจะเป็นที่กล่าวถึง: เหมาะกว่า: นี่เป็นปัญหาหลักและทำให้นักวิเคราะห์วิเคราะห์ปัญหาในลักษณะที่ลดความเสี่ยงนี้ลง เวลาในการคำนวณ ถ้าปัญหา isn8217t ถูกกำหนดอย่างถูกต้องอาจใช้เวลานานมากในการเข้าถึงโซลูชันที่ดีและความซับซ้อนเพิ่มขึ้นอย่างมากตามจำนวนตัวแปร ดังนั้นความจำเป็นในการเลือกพารามิเตอร์อย่างรอบคอบ มีหลายแพคเกจ R เกี่ยวกับ GA ฉันเลือกที่จะใช้กันมากที่สุด: rgenoud ราคาปิดรายวันสำหรับ ETFs สภาพคล่องส่วนใหญ่จากการเงินของ Yahoo จะย้อนกลับไปในเดือนมกราคม 2000 ในช่วงตัวอย่างมาจากมกราคม 2000 ถึงธันวาคม 2010 Out of ระยะเวลาตัวอย่างจะเริ่มในเดือนมกราคม 2554 ตรรกะดังต่อไปนี้ฟังก์ชั่นการออกกำลังกายจะได้รับการปรับให้เหมาะกับช่วงเวลาตัวอย่างเพื่อให้ได้พารามิเตอร์ที่ดีที่สุดสำหรับตัวชี้วัดทางเทคนิคที่เลือก ผลการปฏิบัติงานของตัวชี้วัดเหล่านี้จะได้รับการประเมินในช่วงเวลาที่ตัวอย่าง แต่ก่อนที่จะทำเช่นนั้นตัวชี้วัดทางเทคนิคจะต้องได้รับการคัดเลือก ตลาดตราสารทุนแสดงถึงลักษณะสำคัญสองประการที่คุ้นเคยกับทุกคนที่มีประสบการณ์ในการซื้อขาย โมเมนตัมระยะยาวและการกลับรายการระยะสั้น คุณลักษณะเหล่านี้สามารถแปลเป็นตัวชี้วัดทางเทคนิคได้จาก: moving averages cross over และ RSI ค่านี้แสดงถึงชุดของพารามิเตอร์ 4 ตัวคือช่วงเวลามองย้อนกลับสำหรับค่าเฉลี่ยเคลื่อนที่แบบระยะสั้นและระยะยาวช่วงเวลามองย้อนกลับของเกณฑ์ RSI และ RSI ชุดของพารามิเตอร์คือโครโมโซม องค์ประกอบสำคัญอื่น ๆ คือการออกกำลังกาย เราอาจต้องการใช้สิ่งที่ต้องการเช่นอัตราผลตอบแทนสูงสุดหรืออัตราส่วน Sharpe หรือค่าเฉลี่ยถ่วงน้ำหนักขั้นต่ำ ในสิ่งต่อไปนี้ฉันเลือกที่จะเพิ่มอัตราส่วน Sharpe การใช้ R คือชุดของ 3 ฟังก์ชัน: fitnessFunction กำหนดฟังก์ชันการออกกำลังกาย (เช่นอัตราส่วนชาร์ปสูงสุด) ที่จะใช้ภายในสถิติการซื้อขายเครื่องมือของ GA สรุปสถิติการซื้อขายสำหรับทั้งในและนอกช่วงเวลาตัวอย่างเพื่อวัตถุประสงค์ในการเปรียบเทียบ โปรแกรม GA จากแพคเกจ rgenoud ฟังก์ชั่น genoud ค่อนข้างซับซ้อน แต่ I8217m จะไม่อธิบายว่าพารามิเตอร์แต่ละข้อมีความหมายอย่างไรเนื่องจากฉันต้องการเก็บบทความนี้สั้น ๆ (และเอกสารเป็นสิ่งที่ดีมาก) ในตารางด้านล่างผมจะนำเสนอพารามิเตอร์ที่เหมาะสมที่สุด (RSI look-back period, RSI threshold, Movement Average เฉลี่ยระยะยาวและ Average Moving Average) พร้อมกับสถิติการเข้าและออกจากสถิติตัวอย่าง ก่อนที่จะแสดงความคิดเห็นข้างต้นฉันต้องการอธิบายประเด็นสำคัญบางประการ เพื่อให้ตรงกับตรรกะที่กำหนดข้างต้นฉันได้กำหนดพารามิเตอร์ไว้เพื่อให้แน่ใจว่าระยะเวลาย้อนกลับของค่าเฉลี่ยเคลื่อนที่ในระยะยาวนั้นยาวกว่าค่าเฉลี่ยเคลื่อนที่ที่สั้นกว่า ฉันยัง จำกัด การเพิ่มประสิทธิภาพให้เลือกเฉพาะโซลูชันที่มีมากกว่า 50 ธุรกิจการค้าในช่วงเวลาตัวอย่าง (เช่นความสำคัญทางสถิติ) โดยรวมผลลัพธ์จากตัวอย่างไม่ได้น่าประทับใจ ผลตอบแทนต่ำแม้ว่าจำนวนธุรกิจการค้าจะมีขนาดเล็กเพื่อให้ผลลัพธ์มีความสำคัญมาก อย่างไรก็ตามการสูญเสียประสิทธิภาพอย่างมีนัยสำคัญระหว่างการเข้าและออกจากกลุ่มตัวอย่างสำหรับประเทศญี่ปุ่น (EWJ) ซึ่งน่าจะหมายถึงการปรับตัวให้เหมาะสม โพสต์นี้มีวัตถุประสงค์เพื่อมอบเครื่องมือให้ผู้อ่านใช้ GA อย่างถูกต้องในกรอบการทำธุรกรรมเชิงปริมาณ อีกครั้ง It8217s เป็นตัวอย่างที่ต้องได้รับการขัดเกลาเพิ่มเติม การปรับปรุงศักยภาพในการสำรวจคือการออกกำลังกาย การเพิ่มอัตราส่วน Sharpe เป็นเรื่องง่ายมาก ฟังก์ชัน 8220smarter8221 จะช่วยปรับปรุงรูปแบบสถิติการซื้อขายตัวอย่างตัวอย่าง เราพยายามจับภาพแบบตรงไปตรงมามาก จำเป็นต้องมีการวิจัยในเชิงลึกมากขึ้น การเพิ่มประสิทธิภาพ มีหลายวิธีในการปรับปรุงวิธีดำเนินการเพิ่มประสิทธิภาพ วิธีนี้จะช่วยเพิ่มความเร็วในการคำนวณและความมีเหตุมีผลของผลลัพธ์ รหัสที่ใช้ในโพสต์นี้มีอยู่ในที่เก็บ Gist ตามปกติแล้วความคิดเห็นใด ๆ ที่ยินดีต้อนรับ 28 กุมภาพันธ์ 2014, 15:52 น. มีเนื้อหาทางวรรณกรรมมากมายมหาศาลทั้งด้านวิชาการและเชิงประจักษ์เกี่ยวกับการคาดการณ์ของตลาด โดยส่วนใหญ่จะผสมผสานคุณสมบัติทางการตลาด 2 รูปแบบ ได้แก่ Magnitude and Direction ในบทความนี้ฉันต้องการเน้นการระบุทิศทางตลาดเท่านั้น เป้าหมายที่ฉันตั้งค่าไว้คือการระบุสภาวะตลาดเมื่อราคาตลาดมีความลำเอียงต่อตลาดขึ้นหรือลง โพสต์นี้ให้ตัวอย่างของวิธีการใช้งาน CART (การจัดหมวดหมู่และการถดถอย) ในบริบทนี้ ก่อนที่ฉันจะดำเนินการเตือนตามปกติ: สิ่งที่ฉันนำเสนอในโพสต์นี้เป็นเพียงตัวอย่างของเล่นและไม่ใช่คำเชิญในการลงทุน ไม่ใช่กลยุทธ์ที่สมบูรณ์แบบ แต่เป็นแนวคิดการวิจัยที่ต้องมีการวิจัยพัฒนาและปรับแต่งตามความต้องการของแต่ละบุคคล 1 8211 ตะกร้าคืออะไรและทำไมถึงใช้มันจากสถิติ CART คือชุดของเทคนิคสำหรับการจัดหมวดหมู่และการคาดเดา เทคนิคนี้มีจุดมุ่งหมายเพื่อสร้างกฎที่ทำนายค่าของตัวแปรผลลัพธ์ (เป้าหมาย) จากค่าตัวแปรพยากรณ์ (อธิบาย) ที่รู้จักกันดี มีการใช้งานที่แตกต่างกันมาก แต่พวกเขาทั้งหมดมีลักษณะทั่วไปและสิ่งที่ Im สนใจมาจากวิกิพีเดียอัลกอริธึมสำหรับการสร้างต้นไม้ตัดสินใจมักจะทำงานจากบนลงล่างโดยการเลือกตัวแปรในแต่ละขั้นตอนที่ดีที่สุดในการแบ่งชุดของไอเท็ม อัลกอริทึมต่างๆใช้เมตริกที่แตกต่างกันสำหรับการวัด 8220best8221 เหล่านี้โดยทั่วไปจะวัดความสม่ำเสมอของตัวแปรเป้าหมายภายในส่วนย่อย เมตริกเหล่านี้ถูกนำไปใช้กับเซตย่อยย่อยแต่ละชุดและค่าที่เป็นผลลัพธ์จะรวมกัน (เช่นค่าเฉลี่ย) เพื่อวัดคุณภาพของการแบ่ง CART มีลักษณะบางอย่างที่เหมาะสำหรับการวิเคราะห์ตลาด: Non parametric รถเข็นสามารถจัดการประเภทของการกระจายทางสถิติใด ๆ ที่ไม่ใช่เชิงเส้น CART สามารถจัดการคลื่นความถี่ขนาดใหญ่ระหว่างการพึ่งพาระหว่างตัวแปร (เช่นไม่ จำกัด เฉพาะความสัมพันธ์เชิงเส้น) ทนทานต่อความผิดพลาดมี R แพ็กเกจต่างๆที่เกี่ยวข้องกับ Recursive Partitioning ฉันใช้ที่นี่สำหรับการประมาณต้นไม้และ rpart. plot สำหรับการวาดภาพของต้นไม้ 2 8211 การออกแบบการทดลองแอ็พแอมการออกแบบราคา OHLC รายวันสำหรับ ETF ที่มีสภาพคล่องมากที่สุดตั้งแต่เดือนมกราคม 2000 ถึงธันวาคม 2013 ที่แยกออกจากการเงินของ Google ระยะเวลาตัวอย่างในช่วงมกราคม 2000 ถึงธันวาคม 2010 ส่วนที่เหลือของชุดข้อมูลคือช่วงเวลาที่ไม่อยู่ในตัวอย่าง ก่อนที่จะดำเนินการวิเคราะห์ประเภทใด ๆ ชุดข้อมูลจะต้องเตรียมพร้อมสำหรับงาน ตัวแปรเป้าหมายคือผลตอบแทนย้อนหลังของ ETF รายสัปดาห์ตามที่ระบุไว้ในสถานะของทั้งสองประเทศ (ขึ้นหรือลง) ถ้ารายสัปดาห์ส่งกลับ gt 0 แล้วตลาดในรัฐ UP, ลงเป็นอย่างอื่นตัวแปรอธิบายคือชุดของตัวบ่งชี้ทางเทคนิคที่ได้จากชุดข้อมูล OHLC วันแรกเริ่มต้น ตัวบ่งชี้แต่ละตัวบ่งชี้ถึงพฤติกรรมทางการตลาดที่ได้รับการรับรองเป็นอย่างดี เพื่อลดเสียงรบกวนในข้อมูลและเพื่อพยายามระบุความสัมพันธ์ที่แข็งแกร่งแต่ละตัวแปรอิสระจะถือว่ามีผลแบบไบนารี ความผันผวน (VAR1) ความผันผวนสูงมักเกี่ยวข้องกับตลาดที่ต่ำลงและมีความผันผวนน้อยเมื่อเทียบกับตลาดที่เพิ่มขึ้น ความผันผวนคือค่าเฉลี่ย ATR (Average True Range 20 วัน) ที่กระจายอยู่ในค่าเฉลี่ยเคลื่อนที่ (MA) หากเป็น ATR GT MA ดิบแล้ว VAR1 1 อื่น VAR1 -1 โมเมนตัมระยะสั้น (VAR2) ตลาดตราสารทุนแสดงพฤติกรรมโมเมนตัมในระยะสั้นที่จับได้ที่นี่โดยค่าเฉลี่ยเคลื่อนที่เฉลี่ย 5 วัน (SMA) ถ้าราคา gt SMA แล้ว VAR2 1 อื่น VAR2 -1 โมเมนตัมระยะยาว (VAR3) ตลาดตราสารทุนแสดงพฤติกรรมโมเมนตัมในระยะยาวที่จับได้ที่นี่โดยเฉลี่ยเคลื่อนที่ 50 วัน (LMA) หากราคา gt LMA แล้ว VAR3 1 อื่น VAR3 -1 การกลับรายการระยะสั้น (VAR4) นี่คือ CRTDR ซึ่งย่อมาจาก Close Relative To Daily Range และคำนวณเป็นดังนี้:. ถ้า CRTDR gt 0.5 แล้ว VAR4 1 else VAR4 -1 การปกครองแบบอัตโนมัติ (VAR5) ตลาดตราสารทุนมีแนวโน้มที่จะผ่านช่วงเวลาของระบบการปกครองแบบเผด็จการเชิงบวกและเชิงลบ ถ้าส่งกลับค่าความสัมพันธ์ในช่วง 5 วันที่ผ่านมา gt 0 แล้ว VAR5 1 else VAR5 -1 ฉันใส่คำอธิบายใต้ต้นไม้ตัวอย่างเช่นต้นไม้ต้นทางเส้นทางไปถึงโหนด 4 คือ VAR3 gt0 (Momentum ระยะยาว GT 0) และ VAR4 gt0 (CRTDR gt0) สี่เหลี่ยมสีแดงแสดงว่าเป็นใบลง (เช่นโหนดปลายทาง) มีความเป็นไปได้ที่ 58 (1 8211 0.42) ในแง่ของตลาดหมายความว่าถ้า Momentum ระยะยาวขึ้นและ CRTDR เท่ากับ gt 0.5 แล้วความเป็นไปได้ที่จะได้รับผลตอบแทนเป็นบวกในสัปดาห์หน้าจะเท่ากับ 42 ตามตัวอย่างข้อมูลตัวอย่าง 18 indicates the proportion of the data set that falls into that terminal node (e. g. leaf). There are many ways to use the above approach, I chose to estimate and combine all possible trees. From the in sample data, I collect all leaves from all possible trees and I gather them into a matrix. This is the 8220rules matrix8221 giving the probability of next week beeing UP or DOWN. I apply the rules in the above matrix to the out of sample data (Jan 2011 8211 Dec 2013) and I compare the results to the real outcome. The problem with this approach is that a single point (week) can fall into several rules and even belong to UP and DOWN rules simultaneously. Therefore I apply a voting scheme . For a given week I sum up all the rules that apply to that week giving a 1 for an UP rule and -1 for a DOWN rule. If the sum is greater than 0 the week is classified as UP, if the sum is negative it8217s a DOWN week and if the sum is equal to 0 there will be no position taken that week (return 0) The above methodology is applied to a set of very liquid ETFs. I plot below the out of sample equity curves along with the buy and hold strategy over the same period. Initial results seem encouraging even if the quality of the outcome varies greatly by instrument. However there is a huge room for improvement. I put below some directions for further analysis Path optimality . The algorithm used here for defining the trees is optimal at each split but it doesn8217t guarantee the optimality of the path. Adding a metric to measure the optimality of the path would certainly improve the above results. Other variables . I chose the explanatory variables solely based on experience. It8217s very likely that this choice is neither good nor optimal. Backtest methodology . I used a simple In and Out of sample methodology. In a more formal backtest I would rather use a rolling or expanding window of in and out sample sub-periods (e. g. walk forward analysis) As usual, any comments welcomeIm very new to R and trying to backtest a strategy Ive programmed already in WealthLab. Several stuff I dont understand (and it doesnt work obviously:) I dont get the Close Prices nicely into a vector. or some kind of vector but it starts with structure and I dont really understand what this function does. Thats why my series,1 call probably doesnt work. n lt - nrow(series) doesnt work either, but I need that for the Loop So I guess if I get These 2 questions answered my strategy should work. Im very thankful for any help..R seems quite complicated even with programming experience in other languages yeah I Kind of copied some lines of code from this tutorial and don39t really understand this line. I mean series,1 I thought would apply the function f onto quotcolumnquot 1 of the series. But since this series is some compley with structure etc. it doesn39t work. I39m talking about this tutorial: r-bloggersbacktesting-a-trading-strategy ndash MichiZH Jun 6 13 at 14:22This is the third post in the Backtesting in Excel and R series and it will show how to backtest a simple strategy in R. It will follow the 4 steps Damian outlined in his post on how to backtest a simple strategy in Excel . Step 1: Get the data The getSymbols function in quantmod makes this step easy if you can use daily data from Yahoo Finance. There are also methods (not in the strict sense) to pull data from other sources (FRED, Google, Oanda, R save files, databases, etc.). You could also use them as a template to write a custom function for a particular vendor you use. run the command below if quantmod isnt already installed use the quantmod package (loads TTR, xts, and zoo) pull SPX data from Yahoo (getSymbols returns an xts object) Step 2: Create your indicator The TTR package contains a multitude of indicators. The indicators are written to make it easy to combine them in creative and unconventional ways. Starting with revision 106 on R-forge, TTR has a DVI indicator . calculate DVI indicator dvi lt - DVI(Cl(GSPC)) Cl() extracts the close price column Step 3: Construct your trading rule Since this trading rule is simple--were long 100 if the DVI is below 0.5 and short 100 otherwise--it can be written in a single line. More elaborate rules andor position sizings can be done as well, but require more code (RSI(2) with Position Sizing is an example of more complex position sizing rules). Also notice that the signal vector is lagged, which avoids look-ahead bias. create signal: (long (short) if DVI is below ( above ) 0.5) lag so yesterdays signal is applied to todays returns sig lt - Lag(ifelse(dvidvi lt 0.5, 1, -1)) Step 4: The trading rulesequity curve As in Damians example, the code below is a simplified approach that is frictionless and does not account for slippage. The code below takes todays percentage return and multiplies it by yesterdays signal position size (always - 100 in this example). I also subset the system returns to match the results in the Excel file . calculate signal-based returns ret lt - ROC(Cl(GSPC))sig subset returns to match data in Excel file ret lt - ret2009-06-022010-09-07 Step 5: Evaluate strategy performance Damian mentioned the importance of evaluating your strategy. Fortunately for R users, the PerformanceAnalytics package makes this easy. With a few lines of code we can view the drawdowns, downside risks, and a performance summary. use the PerformanceAnalytics package create table showing drawdown statistics create table of downside risk estimates chart equity curve, daily performance, and drawdowns Thats all there is to backtesting a simple strategy in R. It wasnt that intimidating, was it Please leave feedback if youre moving your backtesting from Excel to R and theres something youre hung up on or you have an awesome tip youd like to share. Heres a succinct version of the code in the above post if you want to be able to copy paste it all in one block:I follow those There seems to be some perverse human characteristic that likes to make easy things difficult. (buffett) ฉันสามารถให้คุณได้แน่นอน (ซามูเอลโกลด์วิน) ถ้าเป็นตัวเลขทั้งหมดที่เรามีอยู่ความเชื่อทั่วไปคือการแต่งงานนั้นเป็นสาเหตุหลักของการหย่าร้าง (Zvika Harel) ในพระเจ้าที่เราไว้วางใจคนอื่น ๆ ทุกคนต้องนำข้อมูล (Edwards Deming) แรงบันดาลใจที่ดีที่สุดคือกำหนดเวลา (Nolan Bushnell) ความเบื่อหน่ายคือความโกรธกระจาย (Paul Tillich) ความจริงคือสิ่งที่เมื่อคุณหยุดเชื่อในสิ่งนั้นไม่ได้หายไป (ฟิลิปเคดิ๊ก) การแสดงข้างนอกเป็นสิ่งที่น่าสงสารแทนคุณค่าภายใน (อีสป) การรับรู้เป็นแรงจูงใจที่ยิ่งใหญ่ที่สุด ( Gerard C. Eakedale ) TV is chewing gum for the eyes. ( Frank Lloyd Wright ) Drugs are realitys legal loopholes. (Jeremy Preston Johnson) ตัวอย่างไม่ใช่สิ่งสำคัญในการมีอิทธิพลต่อคนอื่น มันเป็นสิ่งเดียวเท่านั้น (อัลเบิร์ตชไวเซอร์เซอร์) คนดีเป็นสิ่งที่ดีเพราะพวกเขาได้รับความคิดสร้างสรรค์จากความล้มเหลว ( William Saroyan ) If people are good only because they fear punishment, and hope for reward, then we are a sorry lot indeed. ( Albert Einstein ) I learned long ago, never to wrestle with a pig. คุณสกปรกและนอกจากหมูชอบมัน ( George Bernard Shaw ) It is always brave to say what everyone thinks. (Georges Duhamel) เป็นประสบการณ์ของผมที่คนที่ไม่มีความชั่วร้ายมีคุณธรรมน้อยมาก (Abraham Lincoln) มากเกินไปของสิ่งที่ดีคือเพียงแค่นั้น ( Brian J. Dent ) The future is here. มันยังไม่กระจายอย่างกว้างขวาง (William Gibson) เพื่อทำให้ความเพลิดเพลินรื่นรมย์ให้สั้นลง (Charles Buxton) ความจริงคือสิ่งที่เมื่อคุณหยุดเชื่อในสิ่งนั้นไม่ได้หายไป (Philip K. Dick) ทุกคนที่หยุดเรียนรู้ก็เก่าไม่ว่าจะอายุยี่สิบหรือแปดสิบปี ต้องมีชีวิตมากกว่าการมีทุกสิ่งทุกอย่าง (Maurice Sendak) ความเงียบเป็นหนึ่งในข้อโต้แย้งที่ยากที่สุดที่จะลบล้าง ( Josh Billings ) Backtesting trading strategies with RHow to Backtest a Strategy in R Were going to explore the backtesting capabilities of R. In a previous post we developed some simple entry opportunities for the USDCAD using a machine-learning algorithm and techniques from a subset of data mining called association rule learning. In this post, we are going to explore how to do a full backtest in R using our rules from the previous post and implementing take profits and stop losses. Lets dive right in: Note: the backtest is built off the 4-hour bars in our data set and doesnt have a more granular view. The CAGR (compounded annual growth rate) is the percentage gainloss annualized, meaning it smooths out the growth into equal instalments each year. Since our test was over Lets see if we can improve the performance by adding a stop loss and take profit. With just a stop loss, performance went down. It looks like we are getting taken out of our trades before they are able to recover. In order to lock in our profits, lets go ahead and implement a take profit. Locking in our gains with a take profit slightly improved the performance, but not drastically. Lets incorporate both a stop loss and a take profit. Now lets compare the baseline Long Short strategy, with just a stop loss, just a take profit, and both a take stop loss and take profit. Now you know how to add a take profit and stop loss, I recommend you play around with the data and test different values based on your own personal risk parameters and using your own rules. Even with powerful algorithms and sophisticated tools, it is difficult to build a successful strategy. For every good idea, we tend to have many more bad ones. Armed with the right tools and knowledge, you can efficiently test your ideas until you get to the good ones. We have streamlined this process in TRAIDE. Weve developed a testing infrastructure that allows you to see where the patterns are in your data are and in real-time see how they would have performed over your historical data. Well be releasing TRAIDE for 7 major pairs in the FX market with technical indicators in two weeks. If you are interested in testing the software and providing feedback, please send an email to infoinovancetech. We have 50 spots available.

Comments

Popular posts from this blog

Forex Altd ±± N Yorumlard 2012

ไบรอันเลือกการเล่นการพนันปัญหา memes del chavo tan ไบนารีตัวเลือกการเล่นการพนันปัญหา memes del chavo tan 4 บทบาทของแบบจำลอง Black Scholes ในตลาด option vanilla FX 4. Detetterer landet i en srlig สถานการณ์ kendetegnet ved magt, men ogs srbarhed 369 nye i 2004 til 12 บทบาทนี้ทำไปได้จากข้อเท็จจริงที่ว่ามีเครือข่ายของห้องและสมาคมที่มีสังกัด UMFCCI มากมาย อย่ากังวลว่าคุณจะไม่ได้ตั้งครรภ์นานนัก สถานที่: Zurich, Switzerland (กำลังศึกษา Business Economics in Zagreb, Croatia) รูปแบบการลงทุน: หนังสือที่ชอบ: Role Models: Major Completed: แผนการในอนาคต: idslide16 seoMilan-Cutkovic-18-already-trading-Forex-since-he-was -14-He-also-writes-daily-newsletters-about-the-foreign-exchange-market-data-seoTHE-20-UNDER-20-Meet-The-Teen-Traders-Who-Plan-To-Take-Over - FinalMilan-Cutkovic-18-has-been-trading-Forex-since-his-was-14-He-also-writes-daily-newsletters-about-the-foreign-exchange-market - มิลาน Cutkovic, 18, ได้รับการซื้อขาย Forex ตั้งแต่เขาอายุ 14 ปี Apakah Ciri-Ciri Inside Bar ฉันทำทั้งการซื้อขายด้

Binary ตัวเลือก กลยุทธ์ 5 นาที 15 นาที ไม่มี การสูญเสีย อากาศ

กลยุทธ์ตัวเลือกไบนารีที่ดีที่สุด 2017 ยุทธศาสตร์ตัวเลือกไบนารี 5 นาที 15 นาทีไม่มีผลขาดทุนเริ่มต้นวันนี้กลยุทธ์ตัวเลือกไบนารี 5 นาที 15 นาทีไม่มีขาดทุนคลิกที่นี่: 45.gsiqoptionbinaryoptions คลิกที่นี่: 45.gsiqoptionbinaryoptions ไบนารีตัวเลือกสัญญาณ: ตัวเลือกไบนารีได้รับความนิยมมากในช่วง ไม่กี่ปีที่ผ่านมาเนื่องจากความสามารถเฉพาะของตนเพื่อช่วยให้ผู้คนได้รับผลกำไรได้อย่างรวดเร็วด้วยการคลิกปุ่ม Ive มีส่วนเกี่ยวข้องกับการซื้อขายตัวเลือกไบนารีประมาณสองปีในขณะนี้และจากประสบการณ์ของฉันวิธีการข้างต้นสำหรับวิธีการค้าตัวเลือกไบนารีเป็นที่ดีที่สุด Ive พยายามและเป็นกลยุทธ์ระยะยาวที่ใช้โดยผู้ค้ามืออาชีพจำนวนมาก หากคุณกำลังมองหากลยุทธ์ Binary Options ที่ดีที่สุดเพื่อเริ่มต้นการซื้อขายกับวิดีโอดังกล่าวข้างต้นสำหรับคุณ แน่นอนว่าพวกเขาเป็นเส้นโค้งการเรียนรู้เหมือนกับทุกอย่าง ตัวเลือกไบนารีตัวเลือกสัญญาณ 9nl. mebinaryoptionsstrategycom ไบนารีตัวเลือกสัญญาณ 2017 ไบนารีตัวเลือกสัญญาณหุ่นยนต์ไบนารีตัวเลือกสัญญาณ franco ไบนารีตัวเลือกซอฟต์แวร์สัญญาณไบนารีฟรีซอฟต์แวร์สัญญาณ 60 ไบนารีตัวเลือกสัญญาณ nadex bina

Fibonacci Trading กลยุทธ์ Youtube

ข้อผิดพลาดในการหักล้าง Fibonacci Fibonacci 4 อันดับแรกในการหลีกเลี่ยงการทำธุรกรรมการค้าเงินตราต่างประเทศทุกครั้งจะใช้การย้อนกลับ Fibonacci ในบางช่วงของการค้าขาย บางคนจะใช้มันเพียงบางเวลาในขณะที่คนอื่นจะใช้มันเป็นประจำ แต่ไม่ว่าคุณจะใช้เครื่องมือนี้บ่อยเพียงใดสิ่งที่สำคัญที่สุดคือคุณใช้งานเครื่องมือนี้อย่างถูกต้องทุกครั้ง (สำหรับการอ่านข้อมูลพื้นฐานเกี่ยวกับ Fibonacci ดู Fibonacci and Golden Ratio) การใช้วิธีการวิเคราะห์ทางเทคนิคอย่างไม่เหมาะสมจะนำไปสู่ผลลัพธ์ที่เลวร้ายเช่นจุดเริ่มต้นที่ไม่ดีและความสูญเสียที่เพิ่มขึ้นของตำแหน่งสกุลเงิน ที่นี่ดีตรวจสอบวิธีการไม่ใช้ retracements Fibonacci กับตลาดแลกเปลี่ยนเงินตราต่างประเทศ ทำความรู้จักกับข้อผิดพลาดทั่วไปเหล่านี้และโอกาสที่คุณจะสามารถหลีกเลี่ยงการทำให้พวกเขาและความทุกข์ทรมานที่เกิดขึ้นได้ในการซื้อขายของคุณ 1. อย่ารวมจุดอ้างอิง Fibonacci เมื่อปรับย้อนหลัง Fibonacci retracements ไปราคากระทำ ดีเสมอเพื่อให้จุดอ้างอิงของคุณสอดคล้อง ดังนั้นหากคุณกำลังอ้างอิงถึงราคาต่ำสุดของแนวโน้มผ่านช่วงปิดเซสชั่นหรือส่วนของร่างกายของเทียน ราคาที่ดีที่สุดควรอยู