Thursday 13 July 2017

ง่าย เฉลี่ยเคลื่อนที่ จาวา


Simple Moving Average - SMA ค่าเฉลี่ยเคลื่อนที่เรียบง่าย - SMA ค่าเฉลี่ยเคลื่อนที่เฉลี่ยอยู่ที่สามารถคำนวณได้สำหรับช่วงเวลาต่างกันโดยการเพิ่มราคาปิดของการรักษาความปลอดภัยเป็นระยะ ๆ และ จากนั้นหารยอดรวมนี้ตามจำนวนรอบระยะเวลาซึ่งจะให้ราคาเฉลี่ยของการรักษาความปลอดภัยในช่วงเวลาค่าเฉลี่ยเคลื่อนที่ที่เรียบช่วยขจัดความผันผวนและทำให้ง่ายต่อการดูแนวโน้มราคาของการรักษาความปลอดภัยหากค่าเฉลี่ยเคลื่อนที่ที่ถ่วงขึ้น ซึ่งหมายความว่าราคาของระบบรักษาความปลอดภัยจะเพิ่มขึ้นหากมีการชี้ลงหมายความว่าราคาของระบบรักษาความปลอดภัยลดลงระยะเวลาในการเคลื่อนที่ของค่าเฉลี่ยที่ยาวนานยิ่งขึ้นค่าเฉลี่ยเคลื่อนที่ที่เรียบขึ้นโดยเฉลี่ยค่าเฉลี่ยเคลื่อนที่ระยะสั้นมีความผันผวนมากขึ้น แต่ Significance. Moving เฉลี่ยเป็นเครื่องมือวิเคราะห์ที่สำคัญที่ใช้ในการระบุแนวโน้มราคาในปัจจุบันและศักยภาพในการเปลี่ยนแปลงใน Tre ที่จัดตั้งขึ้น nd รูปแบบที่ง่ายที่สุดในการใช้ค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายในการวิเคราะห์คือการใช้เพื่อระบุว่าการรักษาความปลอดภัยอยู่ในขาขึ้นหรือขาลงหรือไม่ง่ายอีกวิธีหนึ่งคือการเปรียบเทียบค่าเฉลี่ยเคลื่อนที่แบบง่ายๆกับแต่ละค่าที่ครอบคลุม time futures หากค่าเฉลี่ยเคลื่อนที่ระยะสั้นมีค่าสูงกว่าค่าเฉลี่ยระยะยาวคาดว่าแนวโน้มขาขึ้นจะเป็นไปตามที่คาดการณ์ในทางกลับกันค่าเฉลี่ยระยะยาวที่สูงกว่าค่าเฉลี่ยระยะสั้นจะส่งผลให้แนวโน้มการเคลื่อนไหวในรูปแบบการซื้อขายมีแนวโน้มลดลง สองรูปแบบการซื้อขายที่เป็นที่นิยมใช้ค่าเฉลี่ยเคลื่อนที่แบบง่ายๆ ได้แก่ เครื่องหมายการเสียชีวิตและเครื่องหมายกากบาทแบบกาชาดความตายจะเกิดขึ้นเมื่อค่าเฉลี่ยเคลื่อนที่ 50 วันที่ต่ำกว่าค่าเฉลี่ยเคลื่อนที่ 200 วันซึ่งถือเป็นสัญญาณหยาบคายที่มีการขาดทุนเพิ่มขึ้น เครื่องหมายกากบาทสีทองเกิดขึ้นเมื่อค่าเฉลี่ยเคลื่อนที่ระยะสั้นอยู่เหนือเส้นค่าเฉลี่ยเคลื่อนที่ในระยะยาวเสริมด้วยปริมาณการซื้อขายที่สูงขึ้นซึ่งเป็นสัญญาณว่ากำไรจะเพิ่มขึ้น ของค่าเช่นนี้อาร์เรย์ข้างต้นเป็น oversimplified I m เก็บ 1 ค่าต่อมิลลิวินาทีในรหัสจริงของฉันและฉันต้องดำเนินการออกในขั้นตอนฉันเขียนเพื่อหาจุดสูงสุดที่ใกล้เคียงที่สุดก่อนจุดในเวลาตรรกะของฉันล้มเหลวเพราะในของฉัน ตัวอย่างข้างต้น 0 36 เป็นยอดจริง แต่อัลกอริธึมของฉันจะมองย้อนกลับไปและดูจำนวนที่มากที่สุด 0 25 เป็นจุดสูงสุดเนื่องจากมี sa ลดลงเหลือ 0 24 ก่อนหน้านี้เป้าหมายคือการใช้ค่าเหล่านี้และใช้อัลกอริทึมเพื่อ พวกเขาซึ่งจะเรียบพวกเขาออกบิตเพื่อให้ฉันมีค่าเชิงเส้นมากขึ้นเช่นฉันต้องการผลของฉันจะ curvy ไม่ jaggedy. I เคยได้รับการบอกให้ใช้ตัวกรองเฉลี่ยชี้แจงค่าเฉลี่ยกับค่าของฉันฉันจะทำสิ่งนี้ได้จริงๆ ยากสำหรับฉันอ่านสมการทางคณิตศาสตร์ฉันจัดการดีมากกับ code. How ฉันค่ากระบวนการในอาร์เรย์ของฉันใช้การคำนวณค่าเฉลี่ยชี้แจงไปแม้แต่พวกเขา out. asked กุมภาพันธ์ 8 12 ที่ 20 27.To คำนวณค่าเฉลี่ยเคลื่อนที่ชี้แจงคุณ จำเป็นต้องให้รัฐบางรอบและคุณต้องมีพารามิเตอร์การปรับแต่ง นี้เรียกร้องให้ชั้นน้อยสมมติว่าคุณกำลังใช้ Java 5 ขึ้นไประบุว่าพารามิเตอร์การสลายตัวที่คุณต้องการอาจใช้การปรับค่าควรอยู่ระหว่าง 0 ถึง 1 และใช้ค่าเฉลี่ยในการกรองเมื่ออ่านหน้าเว็บเกี่ยวกับการกลับเป็นซ้ำคณิตศาสตร์บางสิ่งที่คุณทำจริงๆ จำเป็นต้องรู้เมื่อเปลี่ยนเป็นรหัสที่ mathematicians ต้องการเขียนดัชนีในอาร์เรย์และลำดับกับ subscripts พวกเขา ve notations อื่น ๆ ไม่กี่ที่ doesn t ช่วยอย่างไรก็ตาม EMA สวยง่ายๆที่คุณจะต้องจำค่าเก่าหนึ่ง ไม่มีอาร์เรย์สถานะที่ซับซ้อน required. answered Feb 8 12 at 20 42 TKKocheran สวยมาก Isn t มันดีเมื่อสิ่งที่สามารถทำได้ง่ายถ้าเริ่มต้นด้วยลำดับใหม่ได้รับ averager ใหม่โปรดทราบว่าคำไม่กี่คำแรกในลำดับเฉลี่ยจะกระโดดไปรอบ ๆ บิตเนื่องจากผลกระทบขอบเขต แต่คุณจะได้รับผู้ที่มีค่าเฉลี่ยเคลื่อนที่อื่น ๆ ด้วยอย่างไรก็ตามข้อได้เปรียบที่ดีคือคุณสามารถห่อตรรกะค่าเฉลี่ยเคลื่อนที่เป็นค่าเฉลี่ยและการทดสอบโดยไม่รบกวนส่วนที่เหลือของโปรแกรมด้วย Donal Fellows Feb 9 12 at 0 06.I am มีช่วงเวลาที่ยากลำบากในการทำความเข้าใจกับคำถามของคุณ แต่ฉันจะพยายามตอบคำถามต่อไป 1 ถ้าอัลกอริทึมของคุณพบ 0 25 แทน 0 36 แล้วมันก็ไม่ถูกต้องผิดเป็นเพราะถือว่า การเพิ่มขึ้นหรือลดลงแบบ monotonic ซึ่งมักเกิดขึ้นหรือจะไปตลอดเวลาเว้นแต่คุณจะเฉลี่ยข้อมูลทั้งหมดของคุณจุดข้อมูลของคุณ --- เมื่อคุณนำเสนอ --- ไม่ใช่เชิงเส้นถ้าคุณต้องการหาค่าสูงสุดระหว่างสองจุดในเวลา จากนั้นแบ่งส่วนของอาร์เรย์จาก tmin ไปเป็น tmax และหาค่าสูงสุดของ subarray.2 ตอนนี้แนวความคิดในการเคลื่อนที่โดยเฉลี่ยง่ายมากคิดว่าฉันมีรายการต่อไปนี้ 1 4, 1 5, 1 4, 1 5, 1 5 I สามารถใช้งานได้โดยเฉลี่ย 2 หมายเลข 1 45, 1 45, 1 45, 1 5 ขอให้สังเกตว่าหมายเลขแรกคือค่าเฉลี่ยของ 1 5 และ 1 4 วินาทีและตัวเลขแรกที่รายการใหม่ที่สองคือค่าเฉลี่ยของ 1 4 และ 1 5 รายการที่สามและสองที่สองรายการใหม่ที่สามค่าเฉลี่ยของ 1 5 และ 1 4 4 และ 3 และอื่น ๆ ฉันจะได้ทำให้มันระยะเวลาสามหรือ สี่หรือ n สังเกตว่าข้อมูลเป็นไปอย่างราบรื่นวิธีที่ดีในการดูค่าเฉลี่ยเคลื่อนที่ในที่ทำงานคือไปที่ Google Finance เลือกสต็อกลองใช้ Tesla Motors volatile TSLA และคลิก technicals ที่ด้านล่างของแผนภูมิเลือก Moving Average with ช่วงเวลาที่ระบุและค่าเฉลี่ยเคลื่อนที่แบบเสวนาเพื่อเปรียบเทียบความแตกต่างของพวกเขาค่าเฉลี่ยเคลื่อนที่ที่เป็นค่าลบเป็นเพียงการอธิบายเพิ่มเติมอีกประการหนึ่งจากข้อมูลนี้ แต่ให้น้ำหนักข้อมูลเก่าน้อยกว่าข้อมูลใหม่นี่เป็นวิธีที่จะทำให้เกิดความเรียบไปทางด้านหลังโปรดอ่านรายการ Wikipedia ดังนั้นนี่เป็นความคิดเห็นมากกว่าคำตอบ แต่กล่องความคิดเห็นเล็ก ๆ น้อย ๆ เป็นเพียงโชคเล็ก ๆ ถ้าคุณมีปัญหากับคณิตศาสตร์คุณสามารถไปกับค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายแทนการแทนดังนั้นผลลัพธ์ที่คุณได้รับจะเป็น ข้อตกลงสุดท้าย x หารด้วย x ปลอมแปลงไม่ได้เข้ารหัสทราบว่าคุณจะต้องจัดการกับจุดเริ่มต้นและจุดสิ้นสุดของข้อมูลเนื่องจากคุณสามารถ t เฉลี่ย 5 คำสุดท้ายเมื่อคุณอยู่ในจุดข้อมูลที่ 2 นอกจากนี้ยังมีวิธีที่มีประสิทธิภาพมากขึ้น โอ f คำนวณยอดรวมของค่าเฉลี่ยเคลื่อนที่นี้ - เก่าที่สุดที่เก่าที่สุด แต่นี่คือแนวคิดที่จะเกิดขึ้นใน 8 กุมภาพันธ์ที่ 20 41. การดำเนินการเฉลี่ยเคลื่อนที่แบบง่ายใน Java ในหลาย ๆ ครั้งฉันต้องการคำนวณเมตริกง่ายๆ ในการใช้งาน Java ของฉันเช่นจำนวนการเข้าชมต่อชั่วโมงหรือข้อผิดพลาดตลอดช่วงเวลาขณะที่การคำนวณเมตริกง่ายๆไม่ใช่เรื่องยากมากนักมันเป็นแค่การทำงานพิเศษและฉันค่อนข้างใช้เวลาในโดเมนปัญหาฉันรู้สึกประหลาดใจที่ไม่ พบโซลูชันที่ได้รับการยอมรับอย่างกว้างขวางสำหรับเมตริกใน Java ฉันได้พบเมตริก แต่ดูเหมือนว่าจะซับซ้อนเกินไปและไม่ได้รับการจัดทำเป็นเอกสารไว้เป็นอย่างดี - ทั้งหมดที่ฉันต้องการจริงๆคือคำนวณค่าเฉลี่ยเคลื่อนที่ที่ฉันคิดเกี่ยวกับปัญหาบางอย่างมากขึ้นและตัดสินใจว่าไม่ใช่เรื่องยาก ปัญหานี่ s solution. This ของฉันทำงานโดยการสร้างอาร์เรย์ของขนาดหน้าต่าง update ขนาดแล้วด้ายตั้งค่านับไปยังดัชนีต่อไปในอาร์เรย์ในความถี่ update นับสำหรับช่วงเป็นเพียง array i - array i 1 ซึ่งเป็นจำนวนล่าสุดนับจากจำนวนที่เก่าแก่ที่สุดสำหรับช่วงเวลา 10 นาทีนับที่เก่าแก่ที่สุด i 1 เท่ากับ 10 นาที old. To เพิ่มค่าเฉลี่ยเคลื่อนที่ไปเป็นรหัสของเราก่อนเราจำเป็นต้องใช้ตัวนับโดยใช้ AtomicLong. This Counter ควรเป็น incremented ขึ้นอยู่กับเหตุการณ์ที่คุณสนใจในการคำนวณเช่นคำขอ POST สำหรับบริการ REST เราจำเป็นต้องให้การใช้งานที่มีการเข้าถึงเคาน์เตอร์และที่ทำได้ผ่านทางอินเตอร์เฟซ GetCount ที่นี่ฉันจะสร้างค่าเฉลี่ยเคลื่อนที่กับหน้าต่าง 5 นาทีที่ การปรับปรุงทุกวินาทีและเพื่อให้ได้ค่าเฉลี่ยในปัจจุบันเราเพียงแค่เรียกใช้เมธอด getAverage รายละเอียดการใช้งานที่สำคัญคือขนาดของอาร์เรย์จะพิจารณาจากการหารหน้าต่างตามความถี่ในการอัปเดตดังนั้นหน้าต่างขนาดใหญ่ที่มีความถี่การอัปเดตบ่อย ๆ สามารถใช้งานได้เป็นจำนวนมาก ของหน่วยความจำในตัวอย่างนี้ขนาดอาร์เรย์มีความสมเหตุสมผล 300 แต่ถ้าเราสร้างค่าเฉลี่ยเคลื่อนที่ 24 ชั่วโมงโดยใช้ช่วงเวลา 1 วินาทีขนาดจะเป็น 86400 A คือความถี่การอัพเดตที่เหมาะสมกว่าสำหรับ 24 ชั่วโมงอาจเป็นทุก 5 นาทีขนาดอาร์เรย์ของ 288 พิจารณาอีกครั้งของการเลือกหน้าต่างและความถี่ในการปรับปรุงเป็นหน้าต่างจะต้องหารด้วยความถี่ตัวอย่างเช่นหน้าต่าง 2 นาทีมีความถี่การปรับปรุงที่ 6 วินาทีเป็น ok แต่การปรับปรุงที่ 7 วินาที ความถี่ไม่ได้เพราะมันไม่ได้หารด้วย 120 IllegalArgumentException ถูกโยนถ้าหน้าต่างโมดูลัสความถี่การปรับปรุงไม่ได้เป็นศูนย์การดำเนินการนี้ต้องใช้ด้ายต่อหนึ่งค่าเฉลี่ยเคลื่อนที่ซึ่งไม่ได้มีประสิทธิภาพมากวิธีที่ดีกว่าคือการแบ่งปันหัวข้อในหลาย ๆ ค่าเฉลี่ย Update ฉันได้ปรับปรุงรหัสเพื่อแบ่งปันเธรด here. Lastly มีปัญหาสถานะเริ่มต้นที่เรา don t มีข้อมูลสำหรับหน้าต่างทั้งหมดเช่นถ้าคุณมีหน้าต่าง 5 นาทีและเพียง 15 วินาทีของข้อมูลการใช้งานนี้ส่งกลับค่า null จนกว่าเราจะมีข้อมูล 5 นาทีวิธีการหนึ่งก็คือการประมาณค่าเฉลี่ยสมมติว่าเรามีจำนวน 10 ใน 30 วินาทีจากนั้นเราสามารถประมาณค่าเฉลี่ยเป็น 40 ใน 2 นาทีอย่างไรก็ตามมีความเสี่ยงที่จะเกิดสัญญาณ ข้อผิดพลาด icant โดย extrapolating ข้อมูลที่ไม่สมบูรณ์ตัวอย่างเช่นถ้าเรามีระเบิดจาก 20 ครั้งใน 2 วินาทีเราจะประมาณ 1200 ต่อ 2 นาทีซึ่งในความเป็นไปได้ทั้งหมดเป็นวิธีปิด

No comments:

Post a Comment