ง่าย เฉลี่ยเคลื่อนที่ สูตร จาวา


ฉันจำเป็นต้องติดตาม 7 วันทำการล่าสุดในการอ่านไฟล์แบบแบน ถูกใช้ในการวัดความเมื่อยล้าของ rosters งาน ตอนนี้ฉันมีบางสิ่งบางอย่างที่ใช้ได้ แต่ดูเหมือนว่าค่อนข้าง verbose และ Im ไม่แน่ใจว่า theres รูปแบบที่กระชับมากขึ้น ขณะนี้ฉันมีคลาส Java ที่มีอาร์เรย์แบบคงที่ในการเก็บข้อมูล x วันล่าสุดจากนั้นเมื่ออ่านไฟล์ฉันจะตัดองค์ประกอบแรกและย้ายอีก 6 รายการ (รวมเป็นสัปดาห์โดยรวม) กลับมาทีละหนึ่ง การประมวลผลของอาร์เรย์แบบคงที่นี้จะกระทำในรูปแบบของตัวเองเช่น คำถามของฉัน: นี่คือวิธีการออกแบบที่เหมาะสมหรือมีบางอย่างที่เห็นได้ชัด blindingly และง่ายที่จะทำสิ่งนี้ขอบคุณ guys ถามสิงหาคม 30 11 ที่ 14:33 ขอบคุณคนมาก: Iveve ข้อความ: ใช้วัตถุที่ระดับสูงกว่าและใช้ประโยชน์จาก วิธีการที่เกี่ยวข้องหรือบัฟเฟอร์วงกลม คำตอบที่ดีทั้งหมดของพวกเขา เมื่อคุณคิดถึงเรื่องนี้คุณจะต้องเข้าถึงอาร์เรย์ทั้งหมดเพื่อที่คุณจะได้สามารถกำจัดรายการแรกซึ่งฉันไม่แน่ใจว่าจะเป็นของตัวเองได้ 100 รายการ I'm โล่งใจที่ฉัน hadn39t พลาดบางซับ 1 และเป็นพื้นที่เหมาะสมหากไม่ได้มีประสิทธิภาพและสั้นติดตามนี่คือสิ่งที่ฉันรักเกี่ยวกับเว็บไซต์นี้: ที่มีคุณภาพสูงคำตอบที่เกี่ยวข้องจากผู้ที่รู้ SHT ของพวกเขา ndash Pete855217 Aug 30 11 at 15:05 ทำไมคุณถึงเริ่มต้นใช้งาน Total to null สิ่งที่เป็นชนิดของมันประกาศว่าจะทำอย่างไรดีถ้าคุณใส่โค้ดตัวอย่างที่คล้ายกับโค้ด Java จริง การวิจารณ์คำติชมของฉันจะเป็นดังนี้: งานของคุณทำมากเกินไป ฟังก์ชั่นหรือวิธีการควรจะเหนียว เหมาะสมมากขึ้นควรทำสิ่งหนึ่งสิ่งเดียวเท่านั้น ยิ่งแย่ลงสิ่งที่เกิดขึ้นในห่วงของคุณเมื่อ x 5 คุณคัดลอกรันTotal6เข้าสู่รัน Total5 แต่แล้วคุณมีสองชุดของค่าเดียวกันที่ตำแหน่ง 5 และ 6 ในการออกแบบของคุณ movesshuffles ฟังก์ชันของคุณรายการในอาร์เรย์ของคุณคำนวณจำนวนพิมพ์สิ่งที่ผิดพลาดมาตรฐานส่งกลับทั้งหมดมันไม่มากเกินไป ข้อเสนอแนะครั้งแรกของฉันไม่ใช่การย้ายเนื้อหารอบ ๆ แทนที่จะใช้บัฟเฟอร์แบบวงกลมและใช้แทนอาร์เรย์ จะทำให้การออกแบบของคุณง่ายขึ้น ข้อเสนอแนะที่สองของฉันคือการแบ่งแยกสิ่งต่างๆลงในหน้าที่ที่เหนียวแน่น: มีโครงสร้างข้อมูล (บัฟเฟอร์แบบวงกลม) ที่ช่วยให้คุณสามารถเพิ่มลงไปได้ (และจะลบรายการที่เก่าที่สุดเมื่อใดก็ตามที่เข้าถึงความจุของมัน) มีโครงสร้างข้อมูลที่ใช้ interator มีฟังก์ชันที่คำนวณจำนวนรวมของ iterator (คุณไม่สนใจถ้าคุณกำลังคำนวณจำนวนรวมของอาร์เรย์รายการหรือ bufer แบบวงกลม) อย่าเรียกว่า total เรียกว่าผลรวมซึ่งเป็นสิ่งที่คุณกำลังคำนวณ Thats สิ่งที่ Id ทำ :) ที่ Luis ข้อมูลที่ดี แต่จำฟังก์ชันนี้เป็นส่วนเล็ก ๆ ของการทำงานของชั้นเรียนและมันจะ overkill เพิ่มรหัสมากเกินไปเพื่อให้สมบูรณ์แบบ คุณมีความถูกต้องทางเทคนิคและฉันเข้าใจรหัสของฉันไม่ 39too มาก 39 แต่ในเวลาเดียวกันบางครั้งก็จะดีกว่าที่จะผิดพลาดในด้านของรหัสที่มีขนาดเล็กชัดเจนกว่าไปเพื่อความสมบูรณ์แบบ ให้ทักษะ Java ของฉันแม้ทำให้ pseudocode ที่คุณอธิบายคอมไพล์จะให้ฉันเป่างบประมาณของฉันในนี้ () แต่ขอขอบคุณสำหรับคำอธิบายที่ชัดเจน ndash Pete855217 Aug 31 11 at 2:23 Hmmm ไม่เกี่ยวกับความสมบูรณ์แบบ แต่เกี่ยวกับการปฏิบัติอุตสาหกรรมที่เป็นที่ยอมรับที่เราได้ทราบมาแล้วในช่วง 3 ทศวรรษที่ผ่านมา รหัสทำความสะอาดคือส่วนที่ถูกแบ่งพาร์ติชันเสมอ เรามีหลักฐานหลายสิบปีที่ชี้ให้เห็นว่านี่คือวิธีที่จะไปในกรณีทั่วไป (ในเรื่องของต้นทุน - ประสิทธิภาพการลดข้อบกพร่องความเข้าใจ ฯลฯ ) เว้นเสียแต่ว่าจะเป็นรหัสทิ้งสำหรับสิ่งที่ทำเพียงครั้งเดียว ไม่ต้องเสียค่าใช้จ่ายเมื่อทำเช่นนี้เมื่อเริ่มวิเคราะห์ปัญหาในลักษณะนี้ รหัส 101 ทำลายปัญหาและรหัสต่อไปนี้ไม่ overkill หรือยาก) ndash luis. espinal Aug 31 11 at 15:55 งานของคุณง่ายเกินไปและ aproach คุณได้นำแน่นอนดีสำหรับงาน อย่างไรก็ตามถ้าคุณต้องการใช้การออกแบบที่ดีกว่าคุณต้องกำจัดการเคลื่อนไหวจำนวนทั้งหมดที่คุณใช้คิว FIFO และใช้ประโยชน์จากวิธีการแบบพุชและป๊อปซึ่งวิธีนี้จะไม่สะท้อนการเคลื่อนไหวข้อมูลใด ๆ ของข้อมูลใหม่และลบข้อมูลที่มีอายุมากกว่า 7 วัน ตอบ Aug 30 11 at 14: 49Moving Averages - ค่าเฉลี่ยเคลื่อนที่ที่ง่ายและค่าเฉลี่ย Exponential - การแนะนำแบบง่ายและเป็นประโยชน์บทนำการย้ายค่าเฉลี่ยทำให้ข้อมูลราคาเป็นไปอย่างต่อเนื่อง พวกเขาไม่ได้คาดการณ์ทิศทางราคา แต่กำหนดทิศทางปัจจุบันที่มีความล่าช้า การเลื่อนค่าเฉลี่ยของความล่าช้าเนื่องจากขึ้นอยู่กับราคาในอดีต แม้ว่าความล่าช้านี้ค่าเฉลี่ยเคลื่อนที่จะช่วยให้การดำเนินการด้านราคาเรียบและกรองเสียงรบกวน พวกเขายังเป็นตัวสร้างสำหรับตัวชี้วัดทางเทคนิคและการซ้อนทับอื่น ๆ อีกมากมายเช่นกลุ่ม Bollinger Bands MACD และ Oscillator McClellan ค่าเฉลี่ยเคลื่อนที่สองประเภทคือ Moving Average เฉลี่ย (SMA) และ Exponential Moving Average (EMA) ค่าเฉลี่ยเคลื่อนที่เหล่านี้สามารถใช้เพื่อระบุทิศทางของแนวโน้มหรือกำหนดระดับการสนับสนุนและความต้านทานที่อาจเกิดขึ้น กราฟของ SMA และ EMA มีดังนี้ Simple Moving Average Calculation ค่าเฉลี่ยเคลื่อนที่โดยเฉลี่ยคำนวณโดยใช้ราคาเฉลี่ยของการรักษาความปลอดภัยในช่วงเวลาที่ระบุ ค่าเฉลี่ยเคลื่อนที่ส่วนใหญ่จะขึ้นอยู่กับราคาปิด ค่าเฉลี่ยเคลื่อนที่ 5 วันเป็นผลรวมของราคาปิดห้าวันหารด้วยห้า เป็นชื่อที่แสดงถึงค่าเฉลี่ยเคลื่อนที่ที่เป็นค่าเฉลี่ยที่เคลื่อนที่ได้ ข้อมูลเก่าจะถูกลดลงเนื่องจากมีข้อมูลใหม่มาให้ นี่เป็นสาเหตุให้ค่าเฉลี่ยเคลื่อนที่ไปตามช่วงเวลา ด้านล่างเป็นตัวอย่างของค่าเฉลี่ยเคลื่อนที่ 5 วันที่มีการเปลี่ยนแปลงไปสามวัน วันแรกของค่าเฉลี่ยเคลื่อนที่จะครอบคลุมช่วง 5 วันที่ผ่านมา วันที่สองของค่าเฉลี่ยเคลื่อนที่จะเว้นจุดข้อมูลแรก (11) และเพิ่มจุดข้อมูลใหม่ (16) วันที่สามของค่าเฉลี่ยเคลื่อนที่จะคงที่ต่อไปโดยทิ้งจุดข้อมูลแรก (12) และเพิ่มจุดข้อมูลใหม่ (17) ในตัวอย่างข้างต้นราคาค่อยๆเพิ่มขึ้นจาก 11 เป็น 17 ในช่วงเจ็ดวัน สังเกตว่าค่าเฉลี่ยเคลื่อนที่จะเพิ่มขึ้นจาก 13 เป็น 15 ในช่วงการคำนวณสามวัน นอกจากนี้โปรดสังเกตด้วยว่าค่าเฉลี่ยเคลื่อนที่แต่ละรายการต่ำกว่าราคาล่าสุด ตัวอย่างเช่นค่าเฉลี่ยเคลื่อนที่ของวันที่หนึ่งเท่ากับ 13 และราคาสุดท้ายคือ 15 วันราคาในช่วง 4 วันก่อนหน้านี้ลดลงและนี่เป็นสาเหตุให้ค่าเฉลี่ยเคลื่อนที่ล่าช้า การคำนวณเฉลี่ยที่เพิ่มขึ้นชี้แจงค่าเฉลี่ยเคลื่อนที่ที่เป็นตัวชี้วัดจะลดความล่าช้าโดยการใช้น้ำหนักมากขึ้นกับราคาล่าสุด การถ่วงน้ำหนักที่ใช้กับราคาล่าสุดขึ้นอยู่กับจำนวนงวดในค่าเฉลี่ยเคลื่อนที่ มีสามขั้นตอนในการคำนวณค่าเฉลี่ยเคลื่อนที่แบบเสวนา ขั้นแรกคำนวณค่าเฉลี่ยเคลื่อนที่ที่เรียบง่าย ค่าเฉลี่ยเคลื่อนที่แบบเสวนา (EMA) จะต้องเริ่มต้นที่ไหนสักแห่งดังนั้นค่าเฉลี่ยเคลื่อนที่แบบเรียบจะถูกใช้เป็น EMA ของช่วงเวลาก่อนหน้าในการคำนวณครั้งแรก สองคำนวณตัวคูณการถ่วงน้ำหนัก ขั้นที่สามคำนวณค่าเฉลี่ยเคลื่อนที่แบบเสวนา สูตรด้านล่างมีไว้สำหรับ EMA 10 วัน ค่าเฉลี่ยการเคลื่อนย้ายเลขคณิต 10 ช่วงมีค่าเป็น 18.18 ตามราคาล่าสุด EMA 10 ระยะเวลาสามารถเรียกได้ว่าเป็น EMA 18.18 EMA 20 ระยะเวลาใช้การชั่งน้ำหนัก 9.52 กับราคาล่าสุด (2 (201) .0952) สังเกตว่าการชั่งน้ำหนักในช่วงเวลาที่สั้นลงนั้นมากกว่าการชั่งน้ำหนักในช่วงเวลาที่ยาวขึ้น ในความเป็นจริงการถ่วงน้ำหนักลดลงครึ่งหนึ่งทุกครั้งที่ช่วงเวลาเฉลี่ยที่เคลื่อนที่ได้สองเท่า หากคุณต้องการให้เราเป็นเปอร์เซ็นต์เฉพาะสำหรับ EMA คุณสามารถใช้สูตรนี้เพื่อแปลงเป็นช่วงเวลาและป้อนค่าดังกล่าวเป็นพารามิเตอร์ของ EMA0: ด้านล่างเป็นตัวอย่างของสเปรดชีตที่ใช้ค่าเฉลี่ยเคลื่อนที่ 10 วันและค่าเฉลี่ยเคลื่อนที่ 10- day สำหรับ Intel ค่าเฉลี่ยเคลื่อนที่เฉลี่ยอยู่ที่ตรงและต้องการคำอธิบายเล็กน้อย ค่าเฉลี่ยของระยะเวลา 10 วันมีการเคลื่อนไหวเพียงเล็กน้อยเมื่อราคาใหม่เข้าสู่ตลาดและราคาเก่าร่วงลง ค่าเฉลี่ยเคลื่อนที่แบบทึบจะขึ้นต้นด้วยค่าเฉลี่ยเคลื่อนที่อย่างง่าย (22.22) ในการคำนวณครั้งแรก หลังจากการคำนวณครั้งแรกสูตรปกติจะใช้เวลามากกว่า เนื่องจาก EMA เริ่มต้นด้วยค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายค่าที่แท้จริงจะไม่ได้รับรู้จนกว่าจะถึง 20 งวดในภายหลัง กล่าวอีกนัยหนึ่งค่าในสเปรดชีต Excel อาจแตกต่างจากค่าแผนภูมิเนื่องจากระยะเวลามองย้อนกลับสั้น สเปรดชีทนี้จะย้อนกลับไป 30 รอบซึ่งหมายความว่าผลกระทบของค่าเฉลี่ยเคลื่อนที่แบบง่ายๆมีระยะเวลา 20 ช่วงที่จะกระจายไป StockCharts ย้อนกลับไปอย่างน้อย 250 รอบ (โดยทั่วไปมากขึ้น) สำหรับการคำนวณของตนดังนั้นผลกระทบของค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายในการคำนวณครั้งแรกมีการกระจายอย่างสิ้นเชิง ปัจจัยความล่าช้ายิ่งค่าเฉลี่ยเคลื่อนที่สูงเท่าไหร่ยิ่งเท่าไร ค่าเฉลี่ยเลขคณิต 10 วันจะกอดราคาได้ค่อนข้างใกล้เคียงกันและจะเลี้ยวไปไม่นานหลังจากที่ราคาเปลี่ยนไป ค่าเฉลี่ยการเคลื่อนที่โดยรวมสั้น ๆ เหมือนเรือเร็ว - มีความว่องไวและรวดเร็วในการเปลี่ยนแปลง ในทางตรงกันข้ามค่าเฉลี่ยเคลื่อนที่ 100 วันมีข้อมูลที่ผ่านมาจำนวนมากที่ทำให้การทำงานช้าลง ค่าเฉลี่ยเคลื่อนที่ที่ยาวขึ้นเป็นเหมือนเรือบรรทุกน้ำมันในมหาสมุทร - เซื่องซึมและชะลอการเปลี่ยนแปลง การเคลื่อนไหวของราคาที่ยาวขึ้นและยาวนานขึ้นสำหรับค่าเฉลี่ยเคลื่อนที่ 100 วันเพื่อเปลี่ยนเส้นทาง แผนภูมิข้างต้นแสดง SampP 500 ETF ที่มี EMA 10 วันใกล้เคียงกับราคาและ SMA 100 วันที่สูงขึ้น แม้จะมีการลดลงในเดือนมกราคมถึงเดือนกุมภาพันธ์ แต่ SMA 100 วันก็ยังไม่ปิดลง SMA 50 วันเหมาะกับบางช่วงระหว่างค่าเฉลี่ยเคลื่อนที่ 10 และ 100 วันเมื่อพูดถึงปัจจัยล่าช้า ค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายและเป็นเส้นตรงแม้ว่าจะมีความแตกต่างระหว่างค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายและค่าเฉลี่ยเคลื่อนที่แบบเสวนาอย่างใดอย่างหนึ่ง แต่ก็ไม่จำเป็นต้องดีกว่าอีก ค่าเฉลี่ยเคลื่อนที่ที่มีนัยสำคัญมีความล่าช้าน้อยลงและมีความอ่อนไหวต่อราคาล่าสุดและการเปลี่ยนแปลงราคาล่าสุด ค่าเฉลี่ยเลขยกกำลังแบบ Exponential จะเปลี่ยนตัวก่อนค่าเฉลี่ยเคลื่อนที่โดยเฉลี่ย ค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายเป็นค่าเฉลี่ยที่แท้จริงของราคาสำหรับช่วงเวลาทั้งหมด ดังนั้นค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายอาจเหมาะสมกว่าในการระบุระดับการสนับสนุนหรือความต้านทาน การย้ายการตั้งค่าเฉลี่ยขึ้นอยู่กับวัตถุประสงค์ลักษณะการวิเคราะห์และขอบฟ้าเวลา Chartists ควรทดลองทั้งสองประเภทของค่าเฉลี่ยเคลื่อนที่และระยะเวลาที่ต่างกันเพื่อหาพอดีที่ดีที่สุด กราฟด้านล่างแสดงให้เห็นว่า IBM มี SMA 50 วันเป็นสีแดงและ EMA 50 วันเป็นสีเขียว ทั้งสองจุดในช่วงปลายเดือนมกราคม แต่การลดลงของ EMA มีความคมชัดกว่าการลดลงของ SMA EMA เปิดขึ้นในกลางเดือนกุมภาพันธ์ แต่ SMA ยังคงลดลงไปจนถึงสิ้นเดือนมีนาคม สังเกตว่า SMA เปิดขึ้นภายในหนึ่งเดือนหลังจาก EMA ความยาวและระยะเวลาความยาวของค่าเฉลี่ยเคลื่อนที่ขึ้นอยู่กับวัตถุประสงค์ในการวิเคราะห์ ระยะสั้นการเคลื่อนไหวระยะสั้น (5-20 ช่วง) เหมาะสมกับแนวโน้มระยะสั้นและการซื้อขาย กลุ่มผู้ชาตินิยมที่สนใจในแนวโน้มในระยะกลางจะเลือกใช้ค่าเฉลี่ยเคลื่อนที่ที่ยาวขึ้นซึ่งอาจขยายได้ 20-60 ช่วง นักลงทุนระยะยาวจะชอบเคลื่อนไหวโดยเฉลี่ยที่มีระยะเวลาตั้งแต่ 100 ขึ้นไป ความยาวเฉลี่ยที่เคลื่อนที่ได้บางส่วนมีความนิยมมากกว่าคนอื่น ๆ ค่าเฉลี่ยเคลื่อนที่ 200 วันอาจเป็นที่นิยมมากที่สุด เนื่องจากความยาวของมันเป็นอย่างชัดเจนในระยะยาวค่าเฉลี่ยเคลื่อนที่ ถัดไปค่าเฉลี่ยเคลื่อนที่ 50 วันค่อนข้างเป็นที่นิยมสำหรับแนวโน้มระยะกลาง นักเกรเทนหลายคนใช้ค่าเฉลี่ยเคลื่อนที่ 50 วันและ 200 วันด้วยกัน ระยะสั้นค่าเฉลี่ยเคลื่อนที่ 10 วันเป็นที่นิยมมากในอดีตเนื่องจากสามารถคำนวณได้ง่าย หนึ่งเพียงแค่เพิ่มตัวเลขและย้ายจุดทศนิยม การระบุแนวโน้ม (Trend Identification) สัญญาณเดียวกันสามารถสร้างได้โดยใช้ค่าเฉลี่ยเคลื่อนที่แบบง่ายหรือแบบเสแสร้ง ตามที่ระบุไว้ข้างต้นการตั้งค่าจะขึ้นอยู่กับแต่ละบุคคล ตัวอย่างด้านล่างนี้จะใช้ทั้งค่าเฉลี่ยเคลื่อนที่แบบง่ายและแบบทึบ ค่าเฉลี่ยเคลื่อนที่ระยะจะใช้กับค่าเฉลี่ยเคลื่อนที่แบบธรรมดาและแบบทึบ ทิศทางของค่าเฉลี่ยเคลื่อนที่จะบ่งบอกถึงข้อมูลที่สำคัญเกี่ยวกับราคา ค่าเฉลี่ยเคลื่อนที่ที่เพิ่มขึ้นแสดงให้เห็นว่าโดยทั่วไปราคาจะเพิ่มขึ้น ค่าเฉลี่ยถล่มที่ลดลงบ่งชี้ว่าราคาเฉลี่ยลดลง ค่าเฉลี่ยการเคลื่อนไหวระยะยาวที่เพิ่มขึ้นสะท้อนถึงแนวโน้มขาขึ้นในระยะยาว ค่าเฉลี่ยเคลื่อนที่ที่ลดลงในระยะยาวสะท้อนถึงแนวโน้มขาลงในระยะยาว แผนภูมิด้านบนแสดง 3M (MMM) โดยมีค่าเฉลี่ยเลขยกกำลัง 150 วัน ตัวอย่างนี้แสดงให้เห็นว่าค่าเฉลี่ยเคลื่อนที่ที่ใช้งานได้ดีเพียงใดเมื่อแนวโน้มแข็งแกร่ง EMA 150 วันปิดลงในเดือนพฤศจิกายน 2550 และอีกครั้งในเดือนมกราคม 2551 สังเกตเห็นว่ามีการปรับตัวลดลง 15 ครั้งเพื่อเปลี่ยนทิศทางของค่าเฉลี่ยเคลื่อนที่นี้ ตัวชี้วัดที่ล่าช้าเหล่านี้ระบุการพลิกกลับของแนวโน้มตามที่เกิดขึ้น (ที่ดีที่สุด) หรือหลังจากเกิดขึ้น (ที่แย่ที่สุด) MMM ยังคงลดลงในเดือนมีนาคม 2009 และเพิ่มขึ้น 40-50 สังเกตว่า EMA 150 วันไม่เปิดขึ้นจนกว่าจะถึงจุดสูงสุด อย่างไรก็ตามเมื่อ MMM ยังคงทำยอดขายต่อไปอีก 12 เดือน การย้ายค่าเฉลี่ยทำงานได้เรื่อย ๆ ตามแนวโน้มที่แข็งแกร่ง Double Crossovers ค่าเฉลี่ยเคลื่อนที่สองตัวสามารถใช้ร่วมกันเพื่อสร้างสัญญาณไขว้ ในการวิเคราะห์ทางเทคนิคของตลาดการเงิน John Murphy เรียกวิธีนี้ว่าไขว้แบบคู่ ไขว้คู่มีค่าเฉลี่ยเคลื่อนที่สั้น ๆ และมีค่าเฉลี่ยเคลื่อนที่ค่อนข้างยาว เช่นเดียวกับค่าเฉลี่ยเคลื่อนที่ทั้งหมดความยาวโดยทั่วไปของค่าเฉลี่ยเคลื่อนที่จะกำหนดระยะเวลาของระบบ ระบบที่ใช้ EMA 5 วันและ EMA 35 วันจะถือว่าเป็นระยะสั้น ระบบที่ใช้ SMA 50 วันและ SMA 200 วันจะถือว่าเป็นระยะปานกลางหรืออาจเป็นระยะเวลานาน การครอสโอเวอร์แบบรุกจะเกิดขึ้นเมื่อค่าเฉลี่ยเคลื่อนที่ที่สั้นลงเหนือค่าเฉลี่ยเคลื่อนที่ที่ยาวขึ้น นี้เรียกว่าเป็นกากบาทสีทอง การไขว้หยาบคายเกิดขึ้นเมื่อค่าเฉลี่ยเคลื่อนที่สั้นลงต่ำกว่าค่าเฉลี่ยเคลื่อนที่ที่ยาวขึ้น นี้เรียกว่าข้ามตาย การย้ายค่าเฉลี่ยของไขว้ให้สัญญาณค่อนข้างช้า อย่างไรก็ตามระบบมีตัวบ่งชี้อยู่สองตัว ระยะเวลาเฉลี่ยที่ยาวนานขึ้นความล่าช้าในสัญญาณ สัญญาณเหล่านี้ทำงานได้ดีเมื่อมีแนวโน้มดีขึ้น อย่างไรก็ตามระบบครอสโอเวอร์เฉลี่ยเคลื่อนที่จะผลิตจำนวนมากของ whipsaws ในกรณีที่ไม่มีแนวโน้มที่แข็งแกร่ง นอกจากนี้ยังมีวิธีไขว้แบบไขว้ซึ่งมีค่าเฉลี่ยเคลื่อนที่สามค่า อีกครั้งสัญญาณจะถูกสร้างขึ้นเมื่อค่าเฉลี่ยเคลื่อนที่ที่สั้นที่สุดข้ามค่าเฉลี่ยเคลื่อนที่อีกสองเส้น ระบบไขว้แบบทริปเปิ้ลที่เรียบง่ายอาจเกี่ยวข้องกับค่าเฉลี่ยเคลื่อนที่ 5 วัน 10 วันและ 20 วัน แผนภูมิด้านบนแสดง Home Depot (HD) ด้วย EMA 10 วัน (เส้นสีเขียว) และ EMA 50 วัน (เส้นสีแดง) เส้นสีดำปิดทุกวัน การใช้ครอสโอเวอร์เฉลี่ยเคลื่อนที่จะส่งผลให้เกิด whipsaws สามตัวก่อนที่จะมีการค้าขายที่ดี EMA 10 วันพังลงมาต่ำกว่า EMA 50 วันในช่วงปลายเดือนตุลาคม (1) แต่ระยะเวลาดังกล่าวไม่นานถึง 10 วันที่กลับมาในช่วงกลางเดือนพฤศจิกายน (2) การข้ามนี้ใช้เวลานาน แต่ครอสโอเวอร์แบบลบต่อไปในเดือนมกราคม (3) เกิดขึ้นใกล้ระดับราคาในปลายเดือนพฤศจิกายนซึ่งส่งผลให้เกิดการแสลงอีกครั้ง เครื่องหมายกากบาทดังกล่าวไม่อยู่ในช่วงที่ EMA 10 วันกลับมาอยู่เหนือ 50 วันในอีกไม่กี่วันต่อมา (4) หลังจากสัญญาณไม่ดีสามสัญญาณสัญญาณที่สี่คาดว่าจะมีการเคลื่อนไหวที่แข็งแกร่งเมื่อหุ้นพุ่งขึ้นสูงกว่า 20 แห่งมีสองประเด็นที่นี่ แรกไขว้มีแนวโน้มที่จะ whipsaw สามารถใช้ตัวกรองราคาหรือเวลาเพื่อช่วยป้องกันไม่ให้ whipsaws ผู้ค้าอาจต้องการครอสโอเวอร์ 3 วันก่อนทำเครื่องหมายหรือต้องการให้ EMA 10 วันเคลื่อนตัวเหนือเส้น EMA 50 วันตามจำนวนที่กำหนดก่อนทำการค้า ประการที่สอง MACD สามารถใช้ระบุและหาจำนวนไขว้ได้ MACD (10,50,1) จะแสดงเส้นที่แสดงถึงความแตกต่างระหว่างค่าเฉลี่ยเคลื่อนที่แบบทแยงมุมสองค่า MACD เปลี่ยนเป็นค่าบวกระหว่างช่วงกากบาทสีทองและค่าลบระหว่างช่วงที่ตายแล้ว Oscillator ราคาร้อยละ (PPO) สามารถใช้วิธีเดียวกันเพื่อแสดงความแตกต่างของเปอร์เซ็นต์ โปรดทราบว่า MACD และ PPO ใช้ค่าเฉลี่ยเคลื่อนที่ที่เป็นเส้นตรงและไม่ตรงกับค่าเฉลี่ยเคลื่อนที่โดยเฉลี่ย แผนภูมินี้แสดง Oracle (ORCL) พร้อมกับ EMA 50 วัน EMA 200 วันและ MACD (50,200,1) ในช่วงระยะเวลา 12 ปีมีการครอสโอเวอร์เฉลี่ย 4 ช่วง สามคนแรกทำให้เกิดเสียงกระหึ่มหรือไม่ดี แนวโน้มอย่างต่อเนื่องเริ่มขึ้นด้วยการครอสโอเวอร์ที่ 4 เมื่อ ORCL ก้าวสู่ช่วงกลางยุค 20 อีกครั้งการขยับไขว้เฉลี่ยทำงานได้ดีเมื่อมีแนวโน้มแข็งแกร่ง แต่สร้างความสูญเสียในกรณีที่ไม่มีแนวโน้ม ราคา Crossovers ค่าเฉลี่ยเคลื่อนที่สามารถใช้ในการสร้างสัญญาณด้วย crossovers ราคาที่เรียบง่าย สัญญาณรั้นเกิดขึ้นเมื่อราคาเคลื่อนตัวเหนือค่าเฉลี่ยเคลื่อนที่ สัญญาณหยาบคายถูกสร้างขึ้นเมื่อราคาเคลื่อนตัวต่ำกว่าค่าเฉลี่ยเคลื่อนที่ ไขว้ราคาสามารถรวมกันเพื่อการค้าภายในแนวโน้มที่ใหญ่กว่า ค่าเฉลี่ยที่ยาวขึ้นจะกำหนดค่าเสียงสำหรับแนวโน้มที่ใหญ่ขึ้นและใช้ค่าเฉลี่ยเคลื่อนที่ที่สั้นลงเพื่อสร้างสัญญาณ หนึ่งจะมองหาการข้ามราคารั้นเฉพาะเมื่อราคามีอยู่แล้วสูงกว่าค่าเฉลี่ยเคลื่อนที่อีกต่อไป นี้จะซื้อขายในความกลมกลืนกับแนวโน้มที่ใหญ่กว่า ตัวอย่างเช่นถ้าราคาสูงกว่าค่าเฉลี่ยเคลื่อนที่ 200 วันนักเก็งกำไรจะเน้นเฉพาะสัญญาณเมื่อราคาเคลื่อนตัวเหนือค่าเฉลี่ยเคลื่อนที่ 50 วันเท่านั้น เห็นได้ชัดว่าการเคลื่อนไหวต่ำกว่าค่าเฉลี่ยเคลื่อนที่ 50 วันจะเป็นสัญญาณก่อนเช่นสัญญาณ แต่จะลดลงเช่นกันเนื่องจากแนวโน้มที่ใหญ่ขึ้น การข้ามแบบหยาบคายจะช่วยแนะนำการฟื้นตัวที่ใหญ่ขึ้น การข้ามกลับเหนือเส้นค่าเฉลี่ยเคลื่อนที่ 50 วันจะส่งสัญญาณถึงการปรับตัวดีขึ้นของราคาและความต่อเนื่องของแนวโน้มขาขึ้นที่ใหญ่ขึ้น กราฟถัดไปแสดง Emerson Electric (EMR) พร้อมกับ EMA 50 วันและ EMA 200 วัน ราคาหุ้นปรับตัวขึ้นเหนือเส้นค่าเฉลี่ยเคลื่อนที่ 200 วันในเดือนส. ค. มีการปรับตัวลงมาต่ำกว่า 50 วัน EMA ในช่วงต้นเดือนพฤศจิกายนและอีกครั้งในช่วงต้นเดือนกุมภาพันธ์ ราคาปรับตัวลงมาอย่างรวดเร็วเหนือเส้น EMA 50 วันเพื่อให้สัญญาณรั้น (ลูกศรสีเขียว) สอดคล้องกับแนวโน้มขาขึ้นที่ใหญ่ขึ้น MACD (1,50,1) แสดงในหน้าต่างตัวบ่งชี้เพื่อยืนยันการข้ามผ่านด้านล่างหรือด้านล่าง EMA 50 วัน EMA เท่ากับ 1 วันเท่ากับราคาปิด MACD (1,50,1) เป็นบวกเมื่อระยะใกล้อยู่เหนือเส้น EMA 50 วันและมีค่าเป็นลบเมื่อระยะใกล้อยู่ใต้ EMA 50 วัน แนวรองรับและความต้านทานการเคลื่อนไหวเฉลี่ยยังสามารถทำหน้าที่เป็นแนวรับในแนวรองรับและแนวต้านระยะสั้นได้ แนวรองรับระยะสั้นอาจได้รับแรงหนุนจากเส้นค่าเฉลี่ยเคลื่อนที่ 20 วันซึ่งใช้ในกลุ่ม Bollinger Bands แนวรองรับระยะยาวอาจได้รับแรงสนับสนุนจากค่าเฉลี่ยเคลื่อนที่ระยะสั้น 200 วันซึ่งเป็นค่าเฉลี่ยระยะยาวที่เป็นที่นิยมมากที่สุด หากความเป็นจริงค่าเฉลี่ยเคลื่อนที่ 200 วันอาจให้การสนับสนุนหรือความต้านทานได้เนื่องจากมีการใช้กันอย่างแพร่หลาย เกือบจะเหมือนกับคำทำนายด้วยตัวคุณเอง แผนภูมิข้างต้นแสดง NY Composite โดยมีค่าเฉลี่ยเคลื่อนที่ 200 วันจากกลางปี ​​2547 จนถึงสิ้นปีพ. ศ. 2551 การสนับสนุน 200 วันให้การสนับสนุนหลายครั้งในช่วงก่อน เมื่อแนวโน้มผันผวนด้วยแรงสนับสนุนด้านบนคู่ค่าเฉลี่ยเคลื่อนที่ 200 วันทำหน้าที่เป็นแนวรับรอบ 9500 อย่าคาดหวังว่าการสนับสนุนที่ถูกต้องและระดับความต้านทานจากค่าเฉลี่ยเคลื่อนที่โดยเฉพาะค่าเฉลี่ยเคลื่อนที่ที่ยาวขึ้น ตลาดมีแรงผลักดันจากความรู้สึกซึ่งทำให้พวกเขามีแนวโน้มที่จะถูกตัดทอน แทนระดับที่แน่นอนค่าเฉลี่ยเคลื่อนที่สามารถใช้เพื่อระบุเขตการสนับสนุนหรือความต้านทานได้ ข้อสรุปข้อดีของการใช้ค่าเฉลี่ยเคลื่อนที่จะต้องมีการชั่งน้ำหนักกับข้อเสีย ค่าเฉลี่ยเคลื่อนที่หมายถึงแนวโน้มหรือล้าหลังตัวชี้วัดที่จะเป็นขั้นตอนต่อไปเสมอ นี้ไม่จำเป็นต้องเป็นสิ่งที่ไม่ดี หลังจากที่ทุกแนวโน้มเป็นเพื่อนของคุณและที่ดีที่สุดคือการค้าในทิศทางของแนวโน้ม การเคลื่อนไหวโดยเฉลี่ยช่วยให้มั่นใจได้ว่าผู้ประกอบการรายย่อยสอดคล้องกับแนวโน้มในปัจจุบัน แม้ว่าเทรนด์จะเป็นเพื่อนของคุณ แต่หลักทรัพย์ก็ใช้จ่ายในช่วงการซื้อขายเป็นอย่างมากซึ่งทำให้ค่าเฉลี่ยเคลื่อนที่ไม่ได้ผล เมื่ออยู่ในแนวโน้มค่าเฉลี่ยเคลื่อนที่จะทำให้คุณได้รับ แต่ก็ให้สัญญาณช้า อย่าคาดหวังที่จะขายที่ด้านบนและซื้อที่ด้านล่างโดยใช้ค่าเฉลี่ยเคลื่อนที่ เช่นเดียวกับเครื่องมือวิเคราะห์ทางเทคนิคส่วนใหญ่ค่าเฉลี่ยเคลื่อนที่ไม่ควรใช้ด้วยตนเอง แต่ร่วมกับเครื่องมือเสริมอื่น ๆ Chartists สามารถใช้ค่าเฉลี่ยเคลื่อนที่เพื่อกำหนดแนวโน้มโดยรวมและใช้ RSI เพื่อกำหนดระดับซื้อเกินหรือ oversold การเพิ่มค่าเฉลี่ยเคลื่อนที่ไปยัง StockCharts Charts การย้ายค่าเฉลี่ยจะมีอยู่เป็นคุณลักษณะการวางซ้อนราคาบนโต๊ะทำงาน SharpCharts การใช้เมนูแบบเลื่อนลงแบบเลื่อนลงผู้ใช้สามารถเลือกค่าเฉลี่ยเคลื่อนที่แบบเรียบหรือค่าเฉลี่ยเคลื่อนที่แบบเสวนา พารามิเตอร์แรกใช้เพื่อกำหนดจำนวนช่วงเวลา คุณสามารถเพิ่มพารามิเตอร์ที่เป็นตัวเลือกเพื่อระบุฟิลด์ราคาที่ควรใช้ในการคำนวณ O สำหรับ Open, H สำหรับ High, L สำหรับ Low และ C สำหรับ Close ใช้เครื่องหมายจุลภาคเพื่อแยกพารามิเตอร์ คุณสามารถเพิ่มพารามิเตอร์อื่นที่จำเป็นเพื่อเปลี่ยนค่าเฉลี่ยเคลื่อนที่ไปทางซ้าย (อดีต) หรือทางขวา (อนาคต) ตัวเลขเชิงลบ (-10) จะเปลี่ยนค่าเฉลี่ยเคลื่อนที่ไปทางซ้าย 10 ช่วงเวลา จำนวนบวก (10) จะเปลี่ยนค่าเฉลี่ยเคลื่อนที่ไปทางขวา 10 ช่วงเวลา ค่าเฉลี่ยเคลื่อนที่หลายค่าสามารถวางซ้อนราคาได้โดยเพียงแค่เพิ่มอีกชั้นวางซ้อนลงในโต๊ะทำงาน สมาชิก StockCharts สามารถเปลี่ยนสีและสไตล์เพื่อแยกความแตกต่างระหว่างค่าเฉลี่ยเคลื่อนที่หลาย ๆ หลังจากเลือกตัวบ่งชี้แล้วให้เปิดตัวเลือกขั้นสูงโดยคลิกที่รูปสามเหลี่ยมสีเขียวเล็กน้อย นอกจากนี้ยังสามารถใช้ตัวเลือกขั้นสูงเพื่อเพิ่มการวางซ้อนค่าเฉลี่ยเคลื่อนไหวสำหรับตัวชี้วัดทางเทคนิคอื่น ๆ เช่น RSI, CCI และ Volume คลิกที่นี่เพื่อดูกราฟสดที่มีค่าเฉลี่ยเคลื่อนที่หลายค่า การใช้ Moving Averages with ScanCharts Scans นี่คือตัวอย่างการสแกนที่สมาชิก StockCharts สามารถใช้ในการสแกนหาสถานการณ์ต่างๆที่มีการเคลื่อนไหวโดยเฉลี่ยได้: Bullish Moving Average Cross: การสแกนนี้เป็นการค้นหาหุ้นที่มีค่าเฉลี่ยเคลื่อนที่ 150 วันที่เพิ่มขึ้น วัน EMA และ EMA 35 วัน ค่าเฉลี่ยเคลื่อนที่ 150 วันจะเพิ่มขึ้นตราบเท่าที่ราคาซื้อขายอยู่เหนือระดับ 5 วันก่อน เครื่องหมายกาชาดเกิดขึ้นเมื่อ EMA 5 วันเคลื่อนตัวเหนือเส้น EMA 35 วันได้เหนือระดับเฉลี่ย Bearish Moving Cross ค่าเฉลี่ย: การสแกนนี้จะมองหาหุ้นที่มีค่าเฉลี่ยเคลื่อนที่ที่ลดลง 150 วันและสัญญาณการชะลอตัวของ EMA 5 วันและ EMA 35 วัน ค่าเฉลี่ยเคลื่อนที่ 150 วันจะร่วงลงตราบเท่าที่ราคาซื้อขายอยู่ในระดับต่ำกว่า 5 วันที่ผ่านมา สัญญาณการซื้อขายขาดดุลเกิดขึ้นเมื่อ EMA 5 วันเคลื่อนตัวใต้ EMA 35 วันจากระดับเฉลี่ยที่สูงกว่า หนังสือของ John Murphy0 มีหนังสือเกี่ยวกับค่าเฉลี่ยเคลื่อนที่และการใช้งานต่างๆ Murphy ครอบคลุมข้อดีและข้อเสียของการย้ายค่าเฉลี่ย นอกจากนี้เมอร์ฟี่ยังแสดงให้เห็นว่าค่าเฉลี่ยเคลื่อนที่โดยใช้ Bollinger Bands และระบบการซื้อขายช่องทางอย่างไร การวิเคราะห์ทางเทคนิคของตลาดการเงิน John MurphyJava moving average Method หากคุณกำลังมองหา EMA ที่ได้รับการปรับให้เหมาะสำหรับการสตรีมข้อมูลที่มาจากไฟล์หรือบริการ quoting ชั้นตัวอย่างต่อไปนี้จะช่วยให้คุณสามารถทำได้ดีกว่าที่จะใช้การคำนวณแบบ brute-force . วิธีนี้เป็นประโยชน์อย่างยิ่งหากคุณประมวลผลข้อมูลในแบบเรียลไทม์ EMA ซึ่งเป็นกรณีพิเศษของค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักมีประโยชน์ที่น้ำหนักสัมพัทธ์สำหรับแต่ละช่วงเวลาต่อเนื่องจะลดลงตามค่าคงที่ f 2 (N1) โดยที่ N คือจำนวนรอบที่จะใช้ EMA สมมติว่าคุณสามารถคำนวณ EMA ปัจจุบัน (เช่นในช่วงเวลาปัจจุบัน) โดยใช้สูตรซ้ำต่อไปนี้: eman fprice (1-f) eman-1 ตัวอย่างคลาสต่อไปนี้ใช้ลักษณะซ้ำของ EMA และลดความต้องการในการคำนวณมากกว่าความสามารถในการประมวลผลแบบเดรัจฉาน - วิธีกำลังหรือวิธีหลังการประมวลผล private int numPeriods 0 private int totalPeriods 0 private double runningEMA 0.0 private double factor 0.0 public EMA (int numPeriods) this. numPeriods numPeriods factor 2.0 (numPeriods 1.0) รีเซ็ตการคำนวณเพื่อสร้าง EMA ในช่วงเวลาที่กำหนด รีเซ็ต void สาธารณะ (int numPeriods) ส่งกลับค่า EMA สำหรับระยะเวลาที่กำหนดระหว่างตัวสร้าง หากช่วงการประมวลผลมีค่าน้อยกว่าช่วง EMA จะส่งกลับค่าเป็นศูนย์ การคำนวณค่าใช้จ่ายของคู่ค้าสาธารณะ (ราคาคู่) ที่เรียกใช้งาน IFA factorprice (1-factor) runningEMA if (totalPeriods lt numPeriods) จากแหล่งข้อมูลที่คุณให้ข้อมูลราคาและสิ่งที่คุณทำกับผลลัพธ์ EMA ขึ้นอยู่กับคุณ ตัวอย่างเช่นหากคุณมีข้อมูลราคาในอาร์เรย์และต้องการคำนวณ EMA ในอาร์เรย์อื่นข้อมูลโค้ดต่อไปนี้จะใช้งานได้: ราคาคู่ แหล่งที่มาจากการคำนวณไฟล์หรือบริการการเสนอราคา double ema doubleprices. length ใหม่ EMA ema ใหม่ EMA (50) ระยะเวลา 50 EMA สำหรับ (int idx0 iltprices. length idx) emaidx ema (pricesidx) ขอให้โชคดีและความปรารถนาดีสำหรับโครงการของคุณ ค่าเฉลี่ยเคลื่อนที่เฉลี่ยคุณจะได้รับการสนับสนุนให้แก้ปัญหานี้ตามคำอธิบายงานโดยใช้ภาษาใด ๆ ที่คุณอาจรู้จัก คำนวณค่าเฉลี่ยเคลื่อนที่แบบง่ายๆของชุดตัวเลข สร้างคลาการทำงานของรัฐที่ต้องใช้ระยะเวลาและส่งกลับค่าตามปกติที่ใช้ตัวเลขเป็นอาร์กิวเมนต์และส่งกลับค่าเฉลี่ยเคลื่อนที่โดยเฉลี่ยของอาร์กิวเมนต์จนถึงตอนนี้ ค่าเฉลี่ยเคลื่อนที่โดยเฉลี่ยเป็นวิธีการคำนวณจำนวนกระแสเฉลี่ยโดยเฉลี่ยเพียง 160 หมายเลข 160 P จากสตรีม 160 ซึ่ง 160 P 160 เรียกว่าช่วงเวลา สามารถใช้งานได้โดยการเรียกใช้ initialing routine กับ 160 P 160 เป็นอาร์กิวเมนต์ของมัน 160 I (P), 160 ซึ่งควรจะคืนค่าตามปกติซึ่งเมื่อเรียกกับแต่ละสมาชิกต่อเนื่องของสตรีมตัวเลขคำนวณค่าเฉลี่ยของ ), 160 P 160 ตัวสุดท้ายของพวกเขาอนุญาตให้เรียก 160 SMA () นี้ คำ 160 160 stateful ในคำอธิบายงานหมายถึงต้อง 160 SMA () 160 เพื่อจดจำข้อมูลบางอย่างระหว่างการโทรไป 160 ระยะเวลา 160 P 160 ตู้ที่สั่งซื้ออย่างน้อย 160 160 หมายเลขล่าสุดจากแต่ละ การโทรแต่ละครั้ง Stateful 160 หมายความว่าการเรียกเลขหมาย 160 I (), 160 initializer 160 ควรจะแยกแต่ละครั้งที่ทำ 160 ไม่ 160 รัฐที่บันทึกไว้เพื่อให้สามารถใช้ข้อมูลได้สองแบบ Pseudo-code สำหรับการใช้ 160 SMA 160 คือ: รุ่นนี้ใช้คิวถาวรเพื่อเก็บค่า p ล่าสุด แต่ละฟังก์ชันที่ส่งกลับมาจาก init-moving-average จะมีสถานะเป็นอะตอมที่เก็บค่าคิวไว้ การใช้งานนี้ใช้รายการแบบวงกลมเพื่อจัดเก็บตัวเลขภายในหน้าต่างที่จุดเริ่มต้นของตัวชี้ย้ำแต่ละอันหมายถึงเซลล์ของรายการซึ่งเก็บค่าที่เพิ่งย้ายออกจากหน้าต่างและจะแทนที่ด้วยค่าที่เพิ่มขึ้น การใช้การแก้ไข Closure ปัจจุบันนี้ sma cant เป็น nogc เนื่องจากจัดสรรการปิดบน heap การวิเคราะห์หนีบางอย่างสามารถลบการจัดสรรฮีปได้ การใช้การแก้ไข Struct รุ่นนี้จะหลีกเลี่ยงการจัดสรรฮีปของการปิดเพื่อเก็บข้อมูลไว้ในกรอบกองซ้อนของฟังก์ชันหลัก เอาท์พุทเดียวกัน: เพื่อหลีกเลี่ยงการประมาณจุดลอยเก็บซ้อนขึ้นและการเจริญเติบโตรหัสสามารถดำเนินการรวมเป็นงวดในอาร์เรย์แถววงกลมทั้งหมด การใช้งานนี้จะสร้างอ็อบเจ็กต์ร่วมกันสองสถานะ (ฟังก์ชัน) เป็น idiomatic ใน E เพื่อแยกข้อมูลจาก output (อ่านจากเขียน) แทนที่จะรวมไว้ในวัตถุหนึ่ง โครงสร้างนี้เหมือนกับการใช้งาน Standard DeviationE โปรแกรม Elixir ด้านล่างสร้างฟังก์ชันที่ไม่ระบุตัวตนด้วยระยะเวลาฝังตัว p ซึ่งใช้เป็นระยะเวลาของค่าเฉลี่ยเคลื่อนที่ที่เรียบง่าย ฟังก์ชัน run จะอ่านข้อมูลตัวเลขและส่งผ่านไปยังฟังก์ชันที่ไม่ระบุตัวตนที่สร้างขึ้นใหม่จากนั้นตรวจสอบผลที่ได้รับจาก STDOUT ผลลัพธ์แสดงด้านล่างโดยมีค่าเฉลี่ยตามด้วยข้อมูลที่จัดกลุ่มซึ่งเป็นพื้นฐานของค่าเฉลี่ยเคลื่อนที่แต่ละค่า Erlang มีการปิด แต่ตัวแปรไม่เปลี่ยนรูป วิธีแก้ปัญหาคือการใช้กระบวนการและข้อความง่ายๆผ่าน API ตาม ภาษาเมทริกซ์มีขั้นตอนการคํานวณค่าเฉลี่ยการร่อนสําหรับลำดับรายการที่กำหนด มีประสิทธิภาพน้อยกว่าการวนรอบในคำสั่งต่อไปนี้ แจ้งให้ฉันป้อนข้อมูลอย่างต่อเนื่อง ซึ่งจะถูกเพิ่มลงในตอนท้ายของรายการ L1 L1 สามารถพบได้โดยการกด 2ND1 และค่าเฉลี่ยจะอยู่ใน ListOPS กด ON เพื่อยุติโปรแกรม รายการที่มีค่าเฉลี่ยของอาร์กิวเมนต์ที่ให้มาโปรแกรมที่ส่งกลับค่าที่ง่ายในแต่ละคำร้อง: รายการคือรายการที่มีค่าเฉลี่ย: p คือช่วง: 5 จะแสดงรายการค่าเฉลี่ย: ตัวอย่างที่ 2: การใช้โปรแกรม movinav2 (i. , 5) - เริ่มต้นการคำนวณค่าเฉลี่ยเคลื่อนที่และกำหนดระยะเวลา 5 movinav2 (3, x): x - ข้อมูลใหม่ในรายการ (ค่า 3) และผลลัพธ์จะถูกจัดเก็บในตัวแปร x และแสดง movinav2 (4, x) : x - ข้อมูลใหม่ (ค่า 4) และผลลัพธ์ใหม่จะถูกเก็บไว้ในตัวแปร x และแสดง (43) 2 คำอธิบายของฟังก์ชัน movinavg: ตัวแปร r - เป็นผลลัพธ์ (รายการเฉลี่ย) ที่จะถูกส่งคืนตัวแปร i - เป็นตัวแปรดัชนีและชี้ไปที่จุดสิ้นสุดของรายการย่อยที่รายการถูกเฉลี่ย ตัวแปร z - ตัวแปรผู้ช่วยเหลือฟังก์ชันใช้ตัวแปร i เพื่อกำหนดว่าค่าใดของรายการจะได้รับการพิจารณาในการคำนวณค่าเฉลี่ยถัดไป เมื่อทำซ้ำทุกครั้ง i ตัวแปรจะชี้ไปที่ค่าสุดท้ายในรายการที่จะใช้ในการคำนวณโดยเฉลี่ย ดังนั้นเราจะต้องคิดออกซึ่งจะเป็นค่าแรกในรายการ มักจะต้องพิจารณาองค์ประกอบ p ดังนั้นองค์ประกอบแรกจะเป็นดัชนีที่จัดทำดัชนีโดย (i-p1) อย่างไรก็ตามในการทำซ้ำครั้งแรกที่การคำนวณมักจะเป็นค่าลบดังนั้นสมการต่อไปนี้จะหลีกเลี่ยงดัชนีเชิงลบ: max (i-p1,1) หรือการจัดสมการ max (i-p, 0) 1 แต่จำนวนขององค์ประกอบในการทำซ้ำครั้งแรกจะเล็กลงค่าที่ถูกต้องจะเป็น (ดัชนีสิ้น - เริ่มดัชนีที่ 1) หรือการจัดสมการ (i - (max (ip, 0) 1) 1) แล้ว , (i-max (ip, 0)) ตัวแปร z มีค่าร่วมกัน (max (ip), 0) ดังนั้น beginindex จะเป็น (z1) และ numberofelements จะเป็น (iz) mid (list, z1, iz) จะคืนค่ารายการที่จะรวมเป็นค่าเฉลี่ย ( .) จะรวมพวกเขา sum (.) (iz) ri จะเฉลี่ยพวกเขาและเก็บผลในสถานที่ที่เหมาะสมในรายการผลลัพธ์ fp1 สร้างโปรแกรมบางส่วนกำหนด (ในกรณีนี้) พารามิเตอร์ที่สองและสาม

Comments