Wednesday 12 July 2017

Numpy เคลื่อนไหว เฉลี่ย หน้าต่าง


อืมดูเหมือนว่าง่ายที่จะใช้ฟังก์ชันนี้เป็นเรื่องง่ายสวยผิดและส่งเสริมการอภิปรายที่ดีเกี่ยวกับประสิทธิภาพของหน่วยความจำฉัน m ยินดีที่จะมีการขยายตัวถ้ามันหมายถึงรู้ว่าสิ่งที่ได้รับการทำถูกริชาร์ด 20 กันยายน 14 ที่ 19 23.NumPy การขาดการทำงานเฉพาะโดเมนโดยเฉพาะอาจเนื่องมาจากหลักเกณฑ์ของ Core Team และความจงรักภักดีต่อคำสั่ง NumPy s prime ให้มีประเภทอาร์เรย์ N มิติรวมถึงฟังก์ชันสำหรับการสร้างและการจัดทำดัชนีอาร์เรย์เหล่านี้เช่นเดียวกับวัตถุประสงค์พื้นฐานหลายประการ ไม่เล็กและ NumPy ไม่เก่ง. SciPy มีขนาดใหญ่กว่ามากมีห้องสมุดเฉพาะโดเมนที่เรียกว่า subpackages โดย SciPy devs เช่นการเพิ่มประสิทธิภาพการเพิ่มประสิทธิภาพเชิงตัวเลข signaling signal signaling และการคำนวณแคลคูลัสรวม ว่าฟังก์ชันที่คุณใช้หลังจากอยู่ในกลุ่มย่อย SciPy อย่างน้อยหนึ่งอย่างอาจเป็นอย่างไรก็ตามฉันจะดูเป็นครั้งแรกในชุด SciPy scikits ระบุ scikit ที่เกี่ยวข้องและมองหา ฟังก์ชั่นที่น่าสนใจมีโปรแกรม SciPy พัฒนาขึ้นมาเองโดยใช้โปรแกรม NumPy SciPy และนำไปสู่วินัยทางด้านเทคนิคโดยเฉพาะเช่น scikits-image scikits-learn ฯลฯ หลาย ๆ คนโดยเฉพาะ OpenOpt น่ากลัวสำหรับการเพิ่มประสิทธิภาพเชิงตัวเลข ก่อนที่จะเลือกที่จะอาศัยอยู่ภายใต้ค่าความนิยม scikits ใหม่หน้าแรกของ Scikits ชอบรายการข้างต้นประมาณ 30 scikits ดังกล่าวแม้ว่าอย่างน้อยหลายคนจะไม่อยู่ภายใต้การพัฒนาที่ใช้งานต่อไปนี้คำแนะนำจะนำคุณไป scikits-timeseries แต่แพคเกจที่ไม่มี อีกต่อไปภายใต้การพัฒนาที่ใช้งาน Pandas ได้กลายเป็น AFAIK, the facto NumPy-based series library เวลา. มีหลายฟังก์ชันที่สามารถใช้ในการคำนวณค่าเฉลี่ยเคลื่อนที่ที่ง่ายที่สุดของเหล่านี้น่าจะเป็น rollingmean ที่คุณใช้เช่นเดียวกับตอนนี้ เพียงเรียกใช้ฟังก์ชัน rollingmean ที่ส่งผ่านไปยังชุดข้อมูลและขนาดของหน้าต่างซึ่งในตัวอย่างด้านล่างของฉันคือ 10 วันตรวจสอบว่า w orked - เช่นค่าที่เทียบกัน 10 - 15 ในชุดต้นฉบับกับชุดใหม่เรียบด้วยความหมายกลิ้ง. ฟังก์ชัน rollingmean พร้อมกับประมาณหนึ่งโหลหรืออื่น ๆ ฟังก์ชันจะถูกจัดกลุ่มอย่างไม่เป็นทางการในเอกสาร Pandas ภายใต้รูเล็ตย้ายหน้าต่างทำงานที่สอง. , กลุ่มที่เกี่ยวข้องของฟังก์ชันใน Pandas ถูกเรียกว่าฟังก์ชันที่มีการยกกำลังยกตัวอย่างเช่น ewma ซึ่งคำนวณค่าเฉลี่ยถ่วงน้ำหนักแบบยกกำลังความจริงที่ว่ากลุ่มที่สองนี้ไม่ได้รวมอยู่ในฟังก์ชันการเคลื่อนย้ายหน้าต่างแรกอาจเป็นเพราะการแปลงแบบทวีคูณเป็นหลัก window. answered Jan 14 13 at 6 38.Backtesting Crossover เฉลี่ยเคลื่อนที่ใน Python กับ pandas ในบทความก่อนหน้านี้เกี่ยวกับการวิจัย Backtesting Environments ใน Python ด้วย Pandas เราได้สร้างสภาพแวดล้อม backtesting การวิจัยเชิงวัตถุและทดสอบ เกี่ยวกับกลยุทธ์การคาดการณ์แบบสุ่มในบทความนี้เราจะใช้ประโยชน์จากเครื่องจักรที่เรานำมาใช้เพื่อดำเนินการวิจัยเกี่ยวกับข้อมูลที่แท้จริง ategy คือ Moving Average Crossover ใน AAPL. Moving Average Crossover Strategy เทคนิค Moving Average Crossover เป็นกลยุทธ์โมเมนตัมที่ใช้กันอย่างแพร่หลายเป็นอย่างมากซึ่งถือเป็นตัวอย่างของ Hello World สำหรับการซื้อขายเชิงปริมาณกลยุทธ์ดังที่ระบุไว้ในที่นี้มีมานานแล้ว มีการสร้างตัวกรองที่มีค่าเฉลี่ยเคลื่อนที่สองตัวแยกกันโดยมีช่วงเวลามองย้อนกลับที่ต่างกันของชุดเวลาเฉพาะสัญญาณเพื่อซื้อเนื้อหาจะเกิดขึ้นเมื่อค่าเฉลี่ยเคลื่อนที่แบบย้อนกลับสั้นกว่าค่าเฉลี่ยเคลื่อนที่ที่ยาวนานกว่าถ้าค่าเฉลี่ยต่อยาวเกินกว่าค่าเฉลี่ยที่สั้นกว่า ขายกลับกลยุทธ์ทำงานได้ดีเมื่อชุดข้อมูลเข้าสู่ช่วงเวลาที่มีแนวโน้มดีขึ้นแล้วค่อยๆกลับทิศทางเช่นนี้ฉันได้เลือก Apple, Inc AAPL เป็นชุดข้อมูลระยะเวลาโดยมี lookback สั้น 100 วันและ lookback ยาว จาก 400 วันนี่เป็นตัวอย่างที่จัดให้โดยไลบรารีการค้าอัลกอริธึม zipline ดังนั้นถ้าเราต้องการที่จะใช้ backtester ของเราเองเราต้องให้แน่ใจว่า t หมวกมันตรงกับผลลัพธ์ใน zipline เป็นวิธีพื้นฐานของการตรวจสอบให้แน่ใจว่าได้ทำตามกวดวิชาก่อนหน้านี้ที่นี่ซึ่งจะอธิบายวิธีลำดับชั้นของวัตถุเริ่มต้นสำหรับ backtester มีการสร้างมิฉะนั้นโค้ดด้านล่างจะไม่ทำงานสำหรับการใช้งานเฉพาะนี้ฉันได้ใช้ ต่อไปนี้การดำเนินการห้องสมุดต้องจากกวดวิชาก่อนหน้านี้ขั้นตอนแรกคือการนำเข้าโมดูลที่จำเป็นและวัตถุในการสอนก่อนหน้านี้เราจะไป subclass ชั้นกลยุทธ์พื้นฐานนามธรรมในการผลิต MovingAverageCrossStrategy ซึ่งมีรายละเอียดทั้งหมดเกี่ยวกับวิธีการ เพื่อสร้างสัญญาณเมื่อค่าเฉลี่ยเคลื่อนที่ของ AAPL ข้ามกันและกันวัตถุต้องมี shortwindow และ longwindow ที่จะใช้งานค่าถูกตั้งค่าเป็นค่าเริ่มต้นเป็น 100 วันและ 400 วันตามลำดับซึ่งเป็นพารามิเตอร์เดียวกับที่ใช้ใน ตัวอย่างหลักของ zipline ค่าเฉลี่ยเคลื่อนที่จะถูกสร้างขึ้นโดยใช้ฟังก์ชัน rollingmean pandas บนแท่งปิดราคาปิดของ สต็อค AAPL เมื่อสร้างค่าเฉลี่ยเฉพาะบุคคลสัญญาณซีรีย์จะถูกสร้างขึ้นโดยการตั้งค่าคอลัมน์ให้เท่ากับ 1 0 เมื่อค่าเฉลี่ยเคลื่อนที่สั้นมากกว่าค่าเฉลี่ยเคลื่อนที่นานหรือ 0 0 มิฉะนั้นจากคำสั่งนี้จะสามารถสร้างคำสั่งตำแหน่งได้ แสดงถึงสัญญาณการซื้อขาย MarketOnClosePortfolio เป็น subclassed จาก Portfolio ซึ่งพบได้ในเกือบจะเหมือนกันกับการดำเนินการที่อธิบายไว้ในกวดวิชาก่อนหน้านี้โดยมีข้อยกเว้นว่าธุรกิจการค้าจะดำเนินการในรูปแบบ Close-to-Close แทนที่จะเป็น Open - ไปเปิดสำหรับรายละเอียดเกี่ยวกับวิธีการ Portfolio วัตถุมีการกำหนดให้ดู tutorial ก่อนหน้านี้ I ve ซ้ายรหัสในเพื่อความสมบูรณ์และเพื่อให้การสอนนี้ด้วยตนเอง contained. Now ที่ MovingAverageCrossStrategy และ MarketOnClosePortfolio เรียนได้กำหนดหน้าที่หลัก จะถูกเรียกให้ผูกทั้งหมดของการทำงานร่วมกันนอกจากนี้ประสิทธิภาพของกลยุทธ์จะได้รับการตรวจสอบผ่านทางพล็อตของเส้นโค้งส่วนได้รับแพนดาส DataR eader object ดาวน์โหลดราคา OHLCV ของหุ้น AAPL สำหรับงวดตั้งแต่วันที่ 1 ม. ค. 2533 ถึงวันที่ 1 ม. ค. 2545 จุดที่สัญญาณ DataFrame สร้างขึ้นเพื่อสร้างสัญญาณแบบยาวเท่านั้นต่อจากนั้นพอร์ตโฟลิโอจะสร้างขึ้นด้วยฐานเงินทุนเริ่มแรก 100,000 เหรียญสหรัฐและผลตอบแทนที่ได้รับ คำนวณจากส่วนของส่วนของผู้ถือหุ้นขั้นตอนสุดท้ายคือการใช้ matplotlib เพื่อคำนวณพล็อตทั้งสองแบบของทั้งราคา AAPL ซึ่งถูกทับซ้อนกับค่าเฉลี่ยเคลื่อนที่และสัญญาณการซื้อขายรวมทั้งเส้นแสดงความเป็นเจ้าของด้วยสัญญาณการขายซื้อเดียวกัน ถูกนำมาและแก้ไขจากตัวอย่างการใช้งาน zipline ผลกราฟิกของโค้ดมีดังต่อไปนี้ฉันใช้คำสั่งวาง IPython เพื่อใส่ข้อมูลนี้ลงในคอนโซล IPython โดยตรงใน Ubuntu เพื่อให้เอาต์พุตแบบกราฟิกยังคงอยู่ในมุมมอง เป็นตัวแทนการซื้อหุ้นในขณะที่ downticks สีดำแสดงขายมันกลับ AAPL Moving Crossover เฉลี่ยผลการดำเนินงานจาก 1990-01-01 เพื่อ 2002-01-01.As สามารถมองเห็นกลยุทธ์สูญเสียเงินมากกว่า ระยะเวลากับธุรกิจการค้ารอบห้าเที่ยวนี้ไม่น่าแปลกใจที่ได้รับพฤติกรรมของ AAPL ในช่วงเวลาซึ่งอยู่ในแนวโน้มลดลงเล็กน้อยตามด้วยการเริ่มต้นขึ้นอย่างมีนัยสำคัญขึ้นในปี 1998 ระยะเวลา lookback ของสัญญาณค่าเฉลี่ยเคลื่อนที่ค่อนข้างใหญ่และ นี้ส่งผลกระทบต่อผลกำไรของการค้าขั้นสุดท้ายซึ่งอาจทำให้กลยุทธ์มีกำไรในบทความต่อไปเราจะสร้างวิธีการที่ซับซ้อนมากขึ้นในการวิเคราะห์ประสิทธิภาพรวมทั้งอธิบายถึงวิธีการเพิ่มประสิทธิภาพช่วงเวลามองย้อนกลับของแต่ละค่าเฉลี่ยของการเคลื่อนไหวเพียงอย่างเดียว เริ่มต้นการค้าขายเชิงปริมาณตัวอย่างต่อไปนี้สร้างค่าเฉลี่ยเคลื่อนที่ของค่า WINDOW ก่อนหน้าเราตัดค่าแรกของ WINDOW -1 เนื่องจากเราสามารถหาค่าเฉลี่ยได้ก่อนค่าเริ่มต้นสำหรับการบิดคือสมมติว่าค่าก่อนการเริ่มต้นของเรา ลำดับเป็น 0 เพิ่มเติมอย่างเป็นทางการเราสร้างลำดับ y สำหรับลำดับ x ที่ yi xi xi 1 xin n. This ใช้ numpy s convolution func นี่คือการเคลื่อนไหวเฉลี่ยโดยทั่วไปการทำงานการเปลี่ยนแปลงน้ำหนักทำให้ค่าบางอย่างที่สำคัญกว่าการหักกลบลบหนี้อย่างเหมาะสมช่วยให้คุณสามารถดูค่าเฉลี่ยรอบจุดมากกว่าก่อนจุดได้มากกว่าค่าตัดทอนเราสามารถกำหนดค่าเริ่มต้นในสถานที่ได้ดังแสดงในตัวอย่างนี้ .

No comments:

Post a Comment