Php รหัส ชี้แจง เคลื่อนไหว ค่าเฉลี่ย


ฉันต้องการคำนวณค่าเฉลี่ย EMA Exponential Moving Average ใน PHP. I ve พยายามกับรหัสต่อไปนี้ แต่ s ให้ฉัน 500 error. PHP EMA คำนวณฟังก์ชัน trader-ema. Tried กับเวลานาน Googling แต่ไม่ได้รับความช่วยเหลือในนี้ใน PHP ดังนั้น , I ve เงื่อนงำไม่มีสิ่งที่ต้องทำในการคำนวณค่า EMA. แก้ไข -1 ติดตั้ง extensions. I ติดตั้งทั้งหมดนามสกุลที่จำเป็นตอนนี้ฉันได้รับการส่งออก แต่ doesn t ดูเหมือนให้ output. I เหมาะสมคิดว่าฟังก์ชัน PHP สำหรับ การคำนวณ EMA ไม่ทำงานอย่างถูกต้องความช่วยเหลือในเรื่องนี้จะได้รับการชื่นชมอย่างมากฉันพยายามดึง EMA ล่าสุดของค่าข้อมูล 15000 ชุดข้อมูลเป็นอัลกอริธึมที่ต้องใช้ทรัพยากรมากเนื่องจากแต่ละค่าขึ้นอยู่กับรหัสก่อนหน้านี่คือโค้ดของฉัน สิ่งที่ฉันทำแล้วคำนวณ k ดังนั้นจึงไม่ได้คำนวณ 10000 times. Keep เฉพาะ EMA คำนวณล่าสุดและไม่ให้ทั้งหมดของพวกเขาใน array. use แทน foreach. the อาร์เรย์ข้อมูล doesn t มีคีย์เป็นอาร์เรย์พื้นฐาน นี้ช่วยให้ฉันสามารถลดเวลาดำเนินการจาก 2000ms ไป abo ut 500ms สำหรับ 15000 ค่าสิ่ง didn t work. Use SplFixedArray นี้โกน only.10ms รัน 1,000,000 ค่าใช้ส่วนขยาย PHPTrader นี้ส่งกลับอาร์เรย์ที่มี EMAs ทั้งหมดแทนเพียงล่าสุดและก็ slower. Writing และทำงานเดียวกัน อัลกอริทึมใน C และทำงานได้มากกว่า 2,000,000 ค่าใช้เวลาเพียง 13ms ดังนั้นชัดโดยใช้เรียบเรียงภาษาระดับล่างดูเหมือนว่าจะช่วย P ที่ฉันควรไปจากที่นี่รหัสในที่สุดจะทำงานใน Ubuntu ดังนั้นฉันควรเลือกภาษา PHP สามารถเรียกและผ่านเช่นอาร์กิวเมนต์ใหญ่ script. asked 11 กรกฎาคมที่ 19 19 21.Celarly การใช้กับนามสกุลจะช่วยให้คุณเพิ่มความสำคัญนอกจากนี้แคลคูลัสสามารถปรับปรุงเป็นตัวเองและที่ได้รับคุณสามารถเพิ่มในภาษาใดก็ตามที่คุณ select. It เป็นเรื่องง่ายที่จะเห็นว่า lastEMA สามารถคำนวณได้ดังต่อไปนี้ซึ่งสามารถเขียนใหม่ได้ดังต่อไปนี้เพื่อที่จะออกจาก loop ให้มากที่สุดเท่าที่จะเป็นไปได้เพื่ออธิบายการสกัดของ k คิดว่าในสูตรก่อนหน้านี้จะเป็นถ้า ทั้งหมด ดิบข้อมูลดิบจะคูณด้วย k ดังนั้นในทางปฏิบัติคุณสามารถเพิ่มผลลัพท์ที่เกิดขึ้นได้แล้วหมายเหตุว่าเขียนใหม่ด้วยวิธีนี้คุณจะมีการดำเนินงาน 2 รอบภายในวงเล็บแทน 3 เพื่อให้แม่นยำภายในลูปนอกจากนี้ยังมีการเพิ่ม i เพิ่มขึ้นการเปรียบเทียบ ด้วยการกำหนดค่าขนาดและ lastEMA ดังนั้นวิธีนี้ทำให้คุณสามารถบรรลุการเพิ่มความเร็วเพิ่มเติมในช่วงระหว่าง 16 ถึง 33 นอกจากนี้ยังมีการปรับปรุงอื่น ๆ ที่สามารถพิจารณาได้อย่างน้อยในบางสถานการณ์โดยพิจารณาเฉพาะค่าล่าสุดค่าแรกคือ คูณหลายครั้งโดย k1m 1 - k ดังนั้นการมีส่วนร่วมของพวกเขาอาจน้อยหรือแม้กระทั่งไปภายใต้ความแม่นยำจุดลอยหรือข้อผิดพลาดที่ยอมรับได้ความคิดนี้เป็นประโยชน์อย่างยิ่งหากคุณสามารถทำสมมติฐานว่าข้อมูลที่เก่ากว่ามีลำดับเดียวกันของขนาดเป็น ใหม่กว่าเพราะถ้าคุณพิจารณาเฉพาะค่า n สุดท้ายข้อผิดพลาดที่คุณทำคือ err EMAofdiscardeddata 1- k n ดังนั้นถ้าความกว้างของคำสั่งมีความเหมือนกันเราสามารถบอกได้ว่าข้อผิดพลาดที่สัมพันธ์กันคือ relerr err lastEMA EMAofdiscardeddata 1- kn lastEMA. that เกือบจะเท่ากับเพียง 1 - k n ภายใต้สมมติฐานว่า lastEMA เกือบเท่ากับ EMAofdiscardeddata จากนั้นให้พูดว่าคุณสามารถยอมรับข้อผิดพลาด relerr. you ญาติได้อย่างปลอดภัยสามารถพิจารณาเฉพาะ n ล่าสุด ค่าที่ 1 - kn relerr. Means ที่คุณสามารถคำนวณก่อน log n log relerr ล็อก 1 - k และคำนวณทั้งหมดเฉพาะเมื่อพิจารณาค่า n สุดท้ายถ้าชุดข้อมูลมีขนาดใหญ่มากนี้สามารถให้ speedup.0 พิจารณาว่าสำหรับ หมายเลขจุดลอยตัว 64 บิตคุณมีความแม่นยำสัมพัทธ์ที่เกี่ยวข้องกับ mantissa ที่เป็น 2 -53 ประมาณ 1 1e-16 และมีเพียง 2 -24 5 96e-8 สำหรับตัวเลขทศนิยม 32 บิตเท่านั้นดังนั้นคุณจึงไม่สามารถหาได้ดีกว่าข้อผิดพลาดของญาตินี้ โดยทั่วไปคุณไม่ควรมีข้อได้เปรียบในการคำนวณมากกว่า n log 1 1e-16 log 1- k values. to ให้ตัวอย่างถ้าช่วง 2000 แล้ว n log 1 1e-16 log 1-2 2001 36 746. คิดว่าน่าสนใจ รู้ว่าการคำนวณพิเศษจะหายไปภายในรอบที่ไร้ประโยชน์จะดีกว่า t to do. now ตัวอย่างหนึ่งสำหรับกรณีที่คุณสามารถยอมรับความผิดพลาดของญาติที่มีขนาดใหญ่กว่าความแม่นยำของจุดลอยตัว 1ppm 1e-6 0 00001 6 หลักทศนิยมที่คุณมี n log 1 1e-16 log 1-2 2001 13 815.I คิดว่าเป็นจำนวนน้อยเมื่อเทียบกับตัวเลขตัวอย่างล่าสุดของคุณดังนั้นในกรณีที่ speedup อาจจะเห็นฉันสมมติว่า m ช่วง 2000 มีความหมายหรือสูงสำหรับการใช้งานของคุณ แต่ฉันไม่สามารถทราบตัวเลขอื่น ๆ ไม่กี่เพราะฉันไม่ทราบว่า เป็นตัวเลขทั่วไปของคุณ relerr 1e-3 range 2000 n 6 907 relerr 1e-3 range 200 n 691 relerr 1e-3 range 20 n 69 relerr 1e-6 range 2000 n 13 815 relerr 1e-6 range 200 n 1 381. relerr 1e -6 ช่วง 20 n 138 หากสมมติฐาน lastEMA เกือบเท่ากับ EMAofdiscardeddata ไม่สามารถถ่ายได้ง่ายน้อยกว่า แต่เนื่องจากข้อได้เปรียบที่สำคัญมากจึงอาจมีความหมายต่อไปเราจำเป็นต้องพิจารณาสูตร relerr แบบใหม่ EMAofdiscardeddata 1- kn lastEMA. so n บันทึก relerr lastEMA EMAofdiscardeddata log 1 - k log relerr log lastEMA EMAofdiscardeddata log 1 - k คือจุดศูนย์กลางคือการคำนวณ lastMAA EMAofdiscardeddata ข้อมูลโดยไม่ต้องคำนวณ lastEMA หรือ EMAofdiscardeddata ของ course. one กรณีคือเมื่อเรารู้ว่า a priori ว่า ตัวอย่างเช่น EMAofdiscardeddata lastEMA M เช่น M 1000 หรือ M 1e6.in กรณีนั้น n relerr rel log M log 1- k. if คุณไม่สามารถให้หมายเลข M ได้คุณต้องหาวิธีที่ดีกว่าในการประเมิน EMAofdiscardeddata lastEMA. one วิธีที่รวดเร็ว อาจจะใช้ M ข้อมูลสูงสุด min data. The สามารถเขียนใหม่ ในรูปแบบที่มันเป็นคำอธิบายที่เป็นอิสระนอกจากนี้ถ้าภาษาที่ใช้สนับสนุน parallelization ชุดข้อมูลสามารถแบ่งออกเป็น 4 หรือ 8 หรือ n โดยทั่วไปจำนวนแกน CPU ที่มีอยู่และสามารถคำนวณผลรวมของเงื่อนไขในแต่ละ ก้อนในแบบขนานสรุปผลแต่ละที่ท้ายฉันไม่ได้ไปในรายละเอียดด้วยนี้เนื่องจากคำตอบนี้มีอยู่แล้วชะมัดยาวและฉันคิดว่าแนวคิดมีการแสดงแล้วขอบคุณคุณนี้ I m ใช้นี้ในข้อมูลการลงทุนในตลาดหุ้นดังนั้น ความจริงที่ว่าข้อมูลที่เก่ากว่าอยู่ในลำดับความสำคัญเท่ากันเนื่องจากข้อมูลใหม่ ๆ ขึ้นอยู่กับกรอบเวลาที่ใช้สมมติว่าช่วงของ 200 จะมีการเปลี่ยนแปลงในราคาในกรอบเวลารายวัน 200 วันมากกว่ากรอบเวลา 5 นาที 16 ชั่วโมงฉันจะทดสอบกับสถานการณ์ที่แตกต่างกันเกี่ยวกับข้อมูลจริงและข้อมูลจำลองข้อมูลใหม่ที่มีช่วง 200 ฉันใช้ชุดข้อมูลองค์ประกอบ 1000 แต่ฉันยังทำการทดสอบกลับบางช่วงไม่กี่ปีที่ผ่านมาดังนั้นฉันยังต้องโหลดชุดข้อมูลทั้งหมด คุณช่วยทั้งสองอย่าง สถานการณ์ขอบคุณ Lykegenes Jul 16 14 at 15 11.Building ส่วนขยายของคุณเองแน่นอนช่วยเพิ่มประสิทธิภาพการทำงานที่นี่ sa tutorial ดีจาก Zend เว็บไซต์ตัวเลขประสิทธิภาพบางฮาร์ดแวร์ Ubuntu 14 04, PHP 5 5 9, 1-core Intel CPU 3 3GHz, 128MB RAM มัน SA VPS ก่อนที่จะ PHP เท่านั้น 16,000 ค่า 500ms. C ส่วนขยาย 16,000 ค่า 0 3ms. C ส่วนขยาย 100,000 ค่า 3 7ms. C ส่วนขยาย 500,000 ค่า 28 0ms. But I m ​​หน่วยความจำ จำกัด ที่จุดนี้โดยใช้ 70MB ฉันจะแก้ไขที่ และปรับปรุงตัวเลขตามลำดับค่าเฉลี่ยเคลื่อนที่ที่คำนวณได้ค่าเฉลี่ยเคลื่อนที่เฉลี่ยที่แนะนำคือค่าเฉลี่ยความน่าเชื่อถือที่น่าเชื่อถือที่สุดของค่าเฉลี่ยของค่าเฉลี่ยเคลื่อนที่ประเภทนี้จะให้องค์ประกอบของการถ่วงน้ำหนักโดยในแต่ละวันก่อนหน้านี้จะให้น้ำหนักที่น้อยลงการเพิ่มความลื่นไหลช่วยหลีกเลี่ยงปัญหาที่เกิดขึ้นกับค่าเฉลี่ยเคลื่อนที่ที่เรียบง่าย ที่เฉลี่ยมีแนวโน้มที่จะเห่าสองครั้งเมื่อเริ่มต้นของระยะเวลาเฉลี่ยที่เคลื่อนที่และอีกครั้งในทิศทางตรงกันข้ามในตอนท้ายของระยะเวลาความชันเฉลี่ยถ่วงน้ำหนักยังเป็น e asier เพื่อกำหนดความลาดชันอยู่เสมอเมื่อราคาปิดต่ำกว่าค่าเฉลี่ยเคลื่อนที่และมักจะขึ้นเมื่อราคาอยู่ข้างต้น. ทบทวน Twiggs สัปดาห์ของเศรษฐกิจโลกจะช่วยให้คุณระบุความเสี่ยงของตลาดและปรับปรุงเวลาของคุณ

Comments

Popular posts from this blog

ตั้งแต่ ตลาด forex ซื้อขาย

เครดิต สวิส forex ซื้อขาย

วิธีการ ไม่ forex หุ่นยนต์ ทำงาน