Monday 10 July 2017

เฉลี่ยเคลื่อนที่ C ตัวอย่างเช่น


ค่าเฉลี่ยเคลื่อนที่ตัวอย่างนี้สอนวิธีคำนวณค่าเฉลี่ยเคลื่อนที่ของชุดข้อมูลเวลาใน Excel ค่าเฉลี่ยเคลื่อนที่จะใช้เพื่อทำให้เกิดความผิดปกติ (ยอดเขาและหุบเขา) เพื่อรับรู้แนวโน้มได้ง่ายขึ้น 1. ขั้นแรกให้ดูที่ซีรี่ส์เวลาของเรา 2. ในแท็บข้อมูลคลิกการวิเคราะห์ข้อมูล หมายเหตุ: ไม่สามารถหาปุ่ม Data Analysis คลิกที่นี่เพื่อโหลด Add-in Analysis ToolPak 3. เลือก Moving Average และคลิก OK 4. คลิกที่กล่อง Input Range และเลือกช่วง B2: M2 5. คลิกที่ช่อง Interval และพิมพ์ 6. 6. คลิกที่ Output Range box และเลือก cell B3 8. วาดกราฟของค่าเหล่านี้ คำอธิบาย: เนื่องจากเราตั้งค่าช่วงเป็น 6 ค่าเฉลี่ยเคลื่อนที่คือค่าเฉลี่ยของ 5 จุดข้อมูลก่อนหน้าและจุดข้อมูลปัจจุบัน เป็นผลให้ยอดเขาและหุบเขาจะเรียบออก กราฟแสดงแนวโน้มที่เพิ่มขึ้น Excel ไม่สามารถคำนวณค่าเฉลี่ยเคลื่อนที่สำหรับจุดข้อมูล 5 จุดแรกได้เนื่องจากไม่มีจุดข้อมูลก่อนหน้านี้เพียงพอ 9. ทำซ้ำขั้นตอนที่ 2 ถึง 8 สำหรับช่วงเวลา 2 และช่วงที่ 4 ข้อสรุป: ช่วงที่ใหญ่กว่ายอดเนินและหุบเขาจะเรียบขึ้น ระยะห่างที่สั้นลงค่าเฉลี่ยของค่าเฉลี่ยที่เคลื่อนที่ได้ใกล้เคียงกับจุดข้อมูลที่เกิดขึ้นจริงค่าเฉลี่ยขั้นสูง: อะไรคือตัวชี้วัดทางเทคนิคที่เป็นที่นิยมมากที่สุดค่าเฉลี่ยเคลื่อนที่จะใช้เพื่อวัดทิศทางของแนวโน้มในปัจจุบัน ค่าเฉลี่ยเคลื่อนที่ทุกประเภท (เขียนโดยทั่วไปในบทแนะนำนี้เป็น MA) คือผลทางคณิตศาสตร์ที่คำนวณโดยเฉลี่ยจำนวนจุดข้อมูลที่ผ่านมา เมื่อพิจารณาแล้วค่าเฉลี่ยที่เกิดขึ้นจะถูกวางแผนลงบนแผนภูมิเพื่อให้ผู้ค้าสามารถดูข้อมูลที่ราบรื่นแทนที่จะมุ่งเน้นไปที่ความผันผวนของราคาในแต่ละวันที่มีอยู่ในตลาดการเงินทั้งหมด รูปแบบที่ง่ายที่สุดของค่าเฉลี่ยเคลื่อนที่โดยทั่วไปหมายถึงค่าเฉลี่ยเคลื่อนที่ที่เรียบง่าย (SMA) โดยคำนวณค่าเฉลี่ยเลขคณิตของชุดค่าที่กำหนด ตัวอย่างเช่นในการคำนวณค่าเฉลี่ยเคลื่อนที่ 10 วันคุณจะเพิ่มราคาปิดจาก 10 วันที่ผ่านมาและหารผลตาม 10 ในรูปที่ 1 ผลรวมของราคาในช่วง 10 วันที่ผ่านมา (110) คือ หารด้วยจำนวนวัน (10) เพื่อให้ได้ค่าเฉลี่ย 10 วัน หากผู้ค้าต้องการเห็นค่าเฉลี่ย 50 วันแทนจะต้องมีการคำนวณประเภทเดียวกัน แต่จะรวมราคาในช่วง 50 วันที่ผ่านมา ค่าเฉลี่ยที่เกิดขึ้นด้านล่าง (11) คำนึงถึงจุดข้อมูล 10 จุดที่ผ่านมาเพื่อให้ผู้ค้าทราบว่าสินทรัพย์มีราคาเทียบกับ 10 วันที่ผ่านมาอย่างไร บางทีคุณอาจสงสัยว่าทำไมผู้ค้าทางเทคนิคเรียกเครื่องมือนี้ว่าเป็นค่าเฉลี่ยเคลื่อนที่และไม่ใช่แค่ค่าเฉลี่ยปกติ คำตอบก็คือเมื่อค่าใหม่มีพร้อมใช้งานจุดข้อมูลที่เก่าที่สุดต้องถูกลดลงจากชุดข้อมูลและจุดข้อมูลใหม่ ๆ ต้องมาเพื่อแทนที่ ดังนั้นชุดข้อมูลจึงมีการย้ายข้อมูลบัญชีใหม่ ๆ ไปเรื่อย ๆ วิธีการคำนวณนี้ช่วยให้แน่ใจได้ว่าจะมีการบันทึกข้อมูลปัจจุบันเท่านั้น ในรูปที่ 2 เมื่อมีการเพิ่มค่าใหม่ของชุดที่ 5 ช่องสีแดง (แทนจุดข้อมูล 10 จุดที่ผ่านมา) จะเลื่อนไปทางขวาและค่าสุดท้ายของ 15 จะถูกลดลงจากการคำนวณ เนื่องจากค่าที่ค่อนข้างเล็ก 5 จะแทนที่ค่าที่สูงถึง 15 คุณจึงคาดว่าจะเห็นค่าเฉลี่ยของการลดข้อมูลชุดซึ่งในกรณีนี้มีค่าตั้งแต่ 11 ถึง 10 ค่าเฉลี่ยของค่าเฉลี่ยเคลื่อนที่เมื่อค่าของ MA ได้รับการคำนวณพวกเขาจะวางแผนลงบนแผนภูมิและเชื่อมต่อแล้วเพื่อสร้างเส้นค่าเฉลี่ยเคลื่อนที่ เส้นโค้งเหล่านี้มีอยู่ทั่วไปในแผนภูมิของผู้ค้าด้านเทคนิค แต่วิธีการใช้งานเหล่านี้อาจแตกต่างกันอย่างมาก (ในภายหลัง) ดังที่เห็นในรูปที่ 3 คุณสามารถเพิ่มค่าเฉลี่ยเคลื่อนที่ได้มากกว่าหนึ่งรายการในแผนภูมิใด ๆ โดยการปรับจำนวนช่วงเวลาที่ใช้ในการคำนวณ เส้นโค้งเหล่านี้ดูเหมือนจะเสียสมาธิหรือทำให้เกิดความสับสนในตอนแรก แต่คุณจะคุ้นเคยกับพวกเขาเมื่อเวลาผ่านไป เส้นสีแดงเป็นเพียงราคาเฉลี่ยในช่วง 50 วันที่ผ่านมาในขณะที่เส้นสีน้ำเงินเป็นราคาเฉลี่ยในช่วง 100 วันที่ผ่านมา ตอนนี้คุณเข้าใจว่าค่าเฉลี่ยเคลื่อนที่คืออะไรและแนะนำให้ใช้ค่าเฉลี่ยเคลื่อนที่ที่ต่างกันและดูว่าค่าเฉลี่ยเคลื่อนที่แตกต่างจากค่าเฉลี่ยเคลื่อนที่ที่กล่าวถึงก่อนหน้านี้เท่าไร ค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายเป็นที่นิยมอย่างมากของผู้ค้า แต่เป็นตัวบ่งชี้ทางเทคนิคทั้งหมดก็มีนักวิจารณ์ หลายคนอ้างว่าประโยชน์ของ SMA มีข้อ จำกัด เนื่องจากแต่ละจุดในชุดข้อมูลมีน้ำหนักเท่ากันโดยไม่คำนึงถึงตำแหน่งที่เกิดขึ้นในลำดับ นักวิจารณ์ยืนยันว่าข้อมูลล่าสุดมีความสำคัญมากกว่าข้อมูลที่เก่ากว่าและควรมีอิทธิพลมากขึ้นต่อผลลัพธ์สุดท้าย ในการตอบสนองต่อคำวิจารณ์นี้ผู้ค้าเริ่มให้ความสำคัญกับข้อมูลล่าสุดซึ่งนำไปสู่การประดิษฐ์เครื่องคิดเลขใหม่ ๆ ประเภทต่างๆซึ่งเป็นที่นิยมมากที่สุดซึ่งเป็นค่าเฉลี่ยเคลื่อนที่แบบเสวนา (EMA) (สำหรับการอ่านเพิ่มเติมโปรดดูข้อมูลเบื้องต้นเกี่ยวกับค่าเฉลี่ยถ่วงน้ำหนักและความแตกต่างระหว่าง SMA กับ EMA) ค่าเฉลี่ยเคลื่อนที่แบบเสวนาค่าเฉลี่ยเคลื่อนที่แบบเสวนาคือค่าเฉลี่ยเคลื่อนที่ที่ให้น้ำหนักมากกว่าราคาล่าสุดในความพยายามที่จะทำให้การตอบสนองดีขึ้น ข้อมูลใหม่ ๆ การเรียนรู้สมการที่ค่อนข้างซับซ้อนสำหรับการคำนวณ EMA อาจไม่จำเป็นสำหรับผู้ค้าจำนวนมากเนื่องจากเกือบทุกชุดรูปแบบแผนภูมิทำคำนวณสำหรับคุณ อย่างไรก็ตามสำหรับคุณ geeks คณิตศาสตร์ออกมีที่นี่สมการ EMA: เมื่อใช้สูตรในการคำนวณจุดแรกของ EMA คุณอาจสังเกตเห็นว่าไม่มีค่าที่จะใช้เป็น EMA ก่อนหน้านี้ ปัญหาเล็ก ๆ นี้สามารถแก้ไขได้โดยเริ่มต้นการคำนวณด้วยค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายและต่อเนื่องโดยใช้สูตรด้านบนจากที่นั่น เราได้จัดเตรียมสเปรดชีตตัวอย่างไว้ในตัวอย่างชีวิตจริงในการคำนวณทั้งค่าเฉลี่ยเคลื่อนที่แบบเรียบและค่าเฉลี่ยเคลื่อนที่แบบเสวนา ความแตกต่างระหว่าง EMA และ SMA ตอนนี้คุณเข้าใจดีว่า SMA และ EMA คำนวณอย่างไรให้ลองดูว่าค่าเฉลี่ยเหล่านี้แตกต่างกันอย่างไร เมื่อพิจารณาการคำนวณ EMA คุณจะสังเกตเห็นว่าจุดข้อมูลสำคัญ ๆ อยู่ในจุดข้อมูลล่าสุดทำให้เป็นประเภทของค่าเฉลี่ยถ่วงน้ำหนัก ในรูปที่ 5 ตัวเลขของช่วงเวลาที่ใช้ในแต่ละค่าเฉลี่ยเหมือนกัน (15) แต่ EMA จะตอบสนองต่อการเปลี่ยนแปลงราคาได้เร็วขึ้น สังเกตว่า EMA มีมูลค่าสูงขึ้นเมื่อราคาเพิ่มขึ้นและลดลงเร็วกว่า SMA เมื่อราคาลดลง การตอบสนองนี้เป็นเหตุผลหลักที่ทำให้ผู้ค้าจำนวนมากต้องการใช้ EMA มากกว่า SMA อะไรที่แตกต่างกันระหว่างวันหมายถึงค่าเฉลี่ยเคลื่อนที่เป็นตัวบ่งชี้ที่ปรับแต่งได้โดยสิ้นเชิงซึ่งหมายความว่าผู้ใช้สามารถเลือกช่วงเวลาที่ต้องการได้อย่างอิสระเมื่อสร้างค่าเฉลี่ย ช่วงเวลาที่ใช้บ่อยที่สุดในการเคลื่อนที่โดยเฉลี่ยอยู่ที่ 15, 20, 30, 50, 100 และ 200 วัน ช่วงเวลาสั้น ๆ ที่ใช้ในการสร้างค่าเฉลี่ยความละเอียดอ่อนมากขึ้นคือการเปลี่ยนแปลงราคา ยิ่งช่วงเวลาที่ยาวนานขึ้นเท่าไรก็ยิ่งอ่อนไหวหรือเรียบเนียนขึ้นเท่านั้นโดยเฉลี่ยแล้ว ไม่มีกรอบเวลาที่เหมาะสมที่จะใช้เมื่อตั้งค่าค่าเฉลี่ยเคลื่อนที่ของคุณ วิธีที่ดีที่สุดในการหาว่าผลงานใดที่ดีที่สุดสำหรับคุณคือการทดสอบกับช่วงเวลาต่างๆจนกว่าคุณจะพบกับช่วงเวลาที่เหมาะสมกับกลยุทธ์ของคุณฉันรู้ว่านี่เป็นไปได้ที่จะเพิ่มขึ้นตาม แต่ฉันต้องการหลีกเลี่ยงการใช้งานเพิ่ม . ฉันมี googled และไม่พบตัวอย่างที่เหมาะสมหรืออ่านได้ โดยทั่วไปฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ของสตรีมกระแสข้อมูลจำนวนจุดลอยโดยใช้ตัวเลข 1000 ครั้งล่าสุดเป็นตัวอย่างข้อมูล วิธีที่ง่ายที่สุดในการทำแบบทดสอบนี้คือการใช้อาร์เรย์แบบวงกลมค่าเฉลี่ยเคลื่อนที่แบบเสวนาและค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายกว่าและพบว่าผลลัพธ์จากอาร์เรย์แบบวงกลมเหมาะกับความต้องการของฉันมากที่สุด ถาม 12 มิ.ย. 12 เวลา 4:38 หากความต้องการของคุณเรียบง่ายคุณอาจลองใช้ค่าเฉลี่ยเคลื่อนที่แบบเสวนา ใส่เพียงแค่คุณสร้างตัวแปรสะสมและเมื่อโค้ดของคุณดูที่ตัวอย่างแต่ละโค้ดจะอัปเดตข้อมูลสะสมด้วยค่าใหม่ คุณสามารถเลือกค่า alpha คงที่ระหว่าง 0 ถึง 1 และคำนวณค่านี้: คุณเพียงแค่หาค่า alpha ที่ผลของตัวอย่างที่กำหนดจะใช้เวลาประมาณ 1000 ตัวอย่างเท่านั้น อืมฉันไม่แน่ใจว่านี่เหมาะกับคุณแล้วตอนนี้ฉันวางมันไว้ที่นี่แล้ว ปัญหาคือว่า 1000 เป็นหน้าต่างยาวสวยสำหรับค่าเฉลี่ยเคลื่อนที่ที่อธิบายไม่แน่ใจว่ามีอัลฟาที่จะกระจายค่าเฉลี่ยมากกว่า 1000 หมายเลขล่าสุดโดยไม่ต้อง underflow ในการคำนวณจุดลอย แต่ถ้าคุณต้องการค่าเฉลี่ยที่เล็กลงเช่น 30 ตัวเลขหรือมากกว่านี่เป็นวิธีที่ง่ายและรวดเร็วในการดำเนินการ ตอบ 12 มิ.ย. 12 เวลา 4:44 1 ในโพสต์ของคุณ ค่าเฉลี่ยเคลื่อนที่ที่อธิบายได้จะทำให้ตัวแปรอัลฟ่าเป็นตัวแปรได้ ดังนั้นจึงช่วยให้สามารถใช้คำนวณค่าเฉลี่ยของฐานเวลา (เช่นไบต์ต่อวินาที) ถ้าเวลานับตั้งแต่การอัปเดตสะสมครั้งล่าสุดเป็นเวลามากกว่า 1 วินาทีคุณจะยอมให้ alpha เป็น 1.0 มิเช่นนั้นคุณสามารถปล่อยให้ alpha เป็น (usecs ตั้งแต่ update1000000 ครั้งล่าสุด) ndash jxh Jun 12 12 at 6:21 โดยทั่วไปฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ของกระแสอย่างต่อเนื่องของกระแสตัวเลขจุดลอยใช้ล่าสุด 1000 หมายเลขเป็นตัวอย่างข้อมูล โปรดทราบว่าด้านล่างปรับปรุงชุดค่าผสมทั้งหมดเป็นองค์ประกอบที่เพิ่มขึ้นโดยไม่ต้องเสียค่าใช้จ่ายในการคำนวณ O (N) traversal เพื่อคำนวณผลรวม - จำเป็นสำหรับค่าเฉลี่ย - ตามความต้องการ ทั้งหมดถูกกำหนดเป็นพารามิเตอร์อื่นจาก T เพื่อสนับสนุนเช่น ใช้ยาวนานเมื่อรวม 1000 ยาว s, int สำหรับ char s หรือ double เพื่อรวม float s นี่เป็นบิตที่มีข้อบกพร่องในการที่ numsamples อาจผ่าน INTMAX - ถ้าคุณสนใจคุณสามารถใช้ unsigned long long หรือใช้สมาชิกข้อมูล bool พิเศษเพื่อบันทึกเมื่อเติมคอนเทนเนอร์เป็นครั้งแรกในขณะที่วนรอบ numsamples รอบ (ดีที่สุดแล้วเปลี่ยนชื่อบางอย่างที่ไม่เป็นอันตรายเช่น pos) ตอบ 12 มิ.ย. 12 at 5:19 สมมติว่าตัวดำเนินการ quotvoid (T sample) quot ก็คือ quotvoid operatorltlt (T sample) quot ndash o วันที่ 8 มิ.ย. 14 เวลา 11:52 น. oPhút ahhh เห็นดี จริงฉันตั้งใจจะให้โมฆะดำเนิน () (T ตัวอย่าง) แต่แน่นอนคุณสามารถใช้สิ่งที่คุณต้องการสัญกรณ์. จะแก้ไขขอบคุณ ndash Tony D Jun 8 14 at 14: 27 ฉันต้องการพัฒนาการคำนวณราคาเฉลี่ยของหุ้นเคลื่อนไหว แต่การคำนวณที่ซับซ้อนมากได้รับการวางแผนในภายหลัง ขั้นตอนแรกของฉันเพื่อทราบวิธีคำนวณ Average Moving อย่างมีประสิทธิภาพ ฉันต้องการทราบวิธีการป้อนข้อมูลและส่งคืนข้อมูลอย่างมีประสิทธิภาพ พิจารณาวันที่และราคา วันเดือนปีราคาและค่าเฉลี่ยเคลื่อนที่ ถ้าฉันมี 500 ระเบียนและฉันต้องการคำนวณค่าเฉลี่ยเคลื่อนที่เป็นเวลา 5 วันวิธีที่ effient แทนที่จะไปกลับในอาร์เรย์ของวันที่และราคาอีกครั้งโปรด sugest วิธีที่ดีที่สุดในการรับ input คืออะไร (ArrayList, Table, array ฯลฯ ) และส่งกลับ หมายเหตุ: วันนี้ MA 5 วันจะเป็นค่าเฉลี่ย 5 วันล่าสุดรวมทั้งราคาปัจจุบัน เมื่อวานนี้ MA จะเฉลี่ย 5 วันล่าสุดจากวันวาน ฉันต้องการเก็บวันที่จะมีความยืดหยุ่นแทน 5 อาจเป็น 9, 14, 20 เป็นต้นพฤหัสบดี 10 เมษายน 2008 3:21 PM หากคุณต้องการการคำนวณง่ายๆโดยไม่ต้องใช้ความพยายามมากกว่าที่คุณสามารถใช้ TA-Lib แต่ถ้าคุณต้องการให้การคำนวณของคุณมีประสิทธิภาพมากกว่า TA-Lib คุณสามารถสร้างตัวบ่งชี้ทางเทคนิคของคุณเองได้ TA - Lib ดีมาก แต่ปัญหาคือไลบรารีนี้มีวิธีการแบบคงที่เท่านั้น นั่นหมายความว่าเมื่อคุณต้องการคำนวณค่าอาเรย์ SMA จาก 500 บาร์ราคาแล้วคุณจะส่งอาร์เรย์ทั้งหมดของแถบและจะส่งกลับอาร์เรย์ของค่า SMA แต่ถ้าคุณได้รับค่า 501 ใหม่แล้วคุณควรส่งอาร์เรย์ทั้งหมดอีกครั้งและ TA-Lib จะคำนวณและส่งคืนค่าของค่า SMA อีกครั้ง ตอนนี้คิดว่าคุณต้องมีตัวบ่งชี้ดังกล่าวในฟีดราคาจริงและสำหรับการเปลี่ยนแปลงราคาทุกครั้งคุณต้องมีค่าตัวบ่งชี้ใหม่ หากคุณมีตัวบ่งชี้เพียงตัวเดียวไม่ใช่ปัญหาใหญ่ แต่ถ้าคุณมีตัวบ่งชี้หลายร้อยตัวทำงานอยู่อาจเป็นปัญหาประสิทธิภาพ ฉันอยู่ในสถานการณ์ดังกล่าวและเริ่มต้นการพัฒนาตัวชี้วัดแบบเรียลไทม์ที่มีประสิทธิภาพและทำการคำนวณเพิ่มเติมสำหรับแถบราคาใหม่หรือสำหรับแถบราคาที่เปลี่ยนแปลงเท่านั้น ไม่เป็นไรฉันไม่เคยต้องการตัวบ่งชี้ SMA สำหรับระบบการซื้อขายของฉัน แต่ฉันมีเช่น EMA, WMA, AD และอื่น ๆ ตัวบ่งชี้หนึ่งตัวดังกล่าวจะถูกเผยแพร่ในบล็อกของฉันและคุณสามารถดูได้จากโครงสร้างตัวบ่งชี้เรียลไทม์ของฉัน ฉันหวังว่าคุณจะต้องมีการเปลี่ยนแปลงเล็กน้อยเพื่อใช้ตัวบ่งชี้ SMA เนื่องจากเป็นหนึ่งในแบบที่ง่ายที่สุด ตรรกะเป็นเรื่องง่าย ในการคำนวณ SMA ทั้งหมดที่คุณต้องมีค่า n ราคาล่าสุด ตัวอย่างเช่นชั้นจะมีการเก็บรวบรวมราคาที่จะเก็บไว้เฉพาะจำนวน n ราคาสุดท้ายเป็น SMA กำหนด (ในกรณีของคุณ 5) ดังนั้นเมื่อคุณมีแถบใหม่คุณจะลบที่เก่าที่สุดและเพิ่มใหม่และสร้างการคำนวณ วันพฤหัสบดีที่ 10 เมษายน 2008 เวลา 04:04 น. All replies มีห้องสมุดที่เรียกว่า TA-Lib ซึ่งทำทุกอย่างให้คุณและเป็นโอเพ่นซอร์ส มีตัวบ่งชี้ประมาณ 50 ตัวที่ฉันคิด ใดก็ตามเราใช้มันในสภาพแวดล้อมการผลิตและมีประสิทธิภาพมากและเป็นจริง คุณสามารถใช้มันใน C, Java, C, ฯลฯ หากคุณต้องการคำนวณง่ายๆโดยไม่ต้องใช้ความพยายามของคุณมากกว่าที่คุณสามารถใช้ TA - Lib แต่ถ้าคุณต้องการให้การคำนวณของคุณมีประสิทธิภาพมากกว่า TA-Lib คุณสามารถสร้างตัวบ่งชี้ทางเทคนิคของคุณเองได้ TA - Lib ดีมาก แต่ปัญหาคือไลบรารีนี้มีวิธีการแบบคงที่เท่านั้น นั่นหมายความว่าเมื่อคุณต้องการคำนวณค่าอาเรย์ SMA จาก 500 บาร์ราคาแล้วคุณจะส่งอาร์เรย์ทั้งหมดของแถบและจะส่งกลับอาร์เรย์ของค่า SMA แต่ถ้าคุณได้รับค่า 501 ใหม่แล้วคุณควรส่งอาร์เรย์ทั้งหมดอีกครั้งและ TA-Lib จะคำนวณและส่งคืนค่าของค่า SMA อีกครั้ง ตอนนี้คิดว่าคุณต้องมีตัวบ่งชี้ดังกล่าวในฟีดราคาจริงและสำหรับการเปลี่ยนแปลงราคาทุกครั้งคุณต้องมีค่าตัวบ่งชี้ใหม่ หากคุณมีตัวบ่งชี้หนึ่งตัวไม่ใช่ปัญหาใหญ่ แต่ถ้าคุณมีตัวชี้วัดหลายร้อยตัวทำงานอาจเป็นปัญหาประสิทธิภาพ ฉันอยู่ในสถานการณ์ดังกล่าวและเริ่มต้นการพัฒนาตัวชี้วัดแบบเรียลไทม์ที่มีประสิทธิภาพและทำการคำนวณเพิ่มเติมสำหรับแถบราคาใหม่หรือสำหรับแถบราคาที่เปลี่ยนแปลงเท่านั้น ไม่เป็นไรฉันไม่เคยต้องการตัวบ่งชี้ SMA สำหรับระบบการซื้อขายของฉัน แต่ฉันมีเช่น EMA, WMA, AD และอื่น ๆ ตัวบ่งชี้หนึ่งตัวดังกล่าวจะถูกเผยแพร่ในบล็อกของฉันและคุณสามารถดูได้จากโครงสร้างตัวบ่งชี้เรียลไทม์ของฉัน ฉันหวังว่าคุณจะต้องมีการเปลี่ยนแปลงเล็กน้อยเพื่อใช้ตัวบ่งชี้ SMA เนื่องจากเป็นหนึ่งในแบบที่ง่ายที่สุด ตรรกะเป็นเรื่องง่าย ในการคำนวณ SMA ทั้งหมดที่คุณต้องมีค่า n ราคาล่าสุด ตัวอย่างเช่นชั้นจะมีการเก็บรวบรวมราคาที่จะเก็บไว้เฉพาะจำนวน n ราคาสุดท้ายเป็น SMA กำหนด (ในกรณีของคุณ 5) ดังนั้นเมื่อคุณมีแถบใหม่คุณจะลบที่เก่าที่สุดและเพิ่มใหม่และสร้างการคำนวณ ฉันจะคำนวณค่าเฉลี่ยเคลื่อนที่ในฐานข้อมูลผ่านขั้นตอนที่เก็บไว้หรือใน cube คุณเคยดู Analysis Services แล้วมีความสามารถในการคำนวณค่าเฉลี่ยเคลื่อนที่ได้หรือไม่ วันพฤหัสบดีที่ 10 เมษายน 2008 เวลา 16:05 น. ใช่ TA-LIB ดี แต่อาจไม่เหมาะสำหรับฉัน เมื่อฉันเพิ่มค่าใหม่หรือค่าที่อัพเดตสำหรับประวัติของเร็กคอร์ดฉันจะทำการคำนวณในฟังก์ชันแยกต่างหากสำหรับใบเสนอราคาใหม่และเก็บไว้ในฐานข้อมูล ฉันกำลังวางแผนที่จะปรับปรุงใบเสนอราคาทุกๆชั่วโมง ฉันต้องทำประมาณ 25 ถึง 30 ตัวชี้วัดทางเทคนิคสำหรับ 2200 หุ้น วันพฤหัสบดีที่ 10 เมษายน 2551 เวลา 5: 51 น. เวลาในการดำเนินการของการเรียกใช้ TA-Lib ในอาร์เรย์ขององค์ประกอบ 10000 ชิ้นใช้เวลาประมาณ 15 มิลลิวินาที (บน Intel Core Duo 2.13 Ghz) นี่คือค่าเฉลี่ยของฟังก์ชันทั้งหมด SMA ที่เร็วที่สุดใช้เวลาไม่ถึง 2.5 มิลลิวินาที HTTRENDMODE ที่ช้าที่สุดใช้เวลาประมาณ 450 มิลลิวินาที มีองค์ประกอบน้อยกว่าจะเร็วขึ้น SMA ใช้เวลาประมาณ 0.22 มิลลิวินาทีสำหรับส่วนประกอบอินพุท 1000 ตัว การเพิ่มความเร็วเป็นแบบเส้นตรง (ค่าใช้จ่ายในการดำเนินการเรียกฟังก์ชันนั้นไม่สำคัญ) ในบริบทของแอ็พพลิเคชันของคุณ TA-Lib ไม่น่าจะเป็นปัญหาคอขวดของคุณสำหรับประสิทธิภาพของความเร็ว นอกจากนี้ฉันโดยทั่วไปไม่แนะนำให้โซลูชันดังกล่าว quotlast nquot อ่านด้านล่างเพื่อดูรายละเอียด ขั้นแรกแก้ไขคำสั่ง Boban. s ฟังก์ชันทั้งหมดใน TA-Lib สามารถคำนวณค่าสุดท้ายด้วยค่าต่ำสุดขององค์ประกอบ nquot ในข้อความ คุณสามารถมีอาร์เรย์ขนาด 10000 มีข้อมูลเริ่มต้นเฉพาะสำหรับ 500 องค์ประกอบแรกเพิ่มองค์ประกอบหนึ่งและเรียกใช้ TA-Lib เพื่อคำนวณ SMA เฉพาะสำหรับองค์ประกอบใหม่เท่านั้น TA-Lib จะมองย้อนกลับไม่เกินความจำเป็น (ถ้า SMA เป็น 5 แล้ว TA-Lib จะคำนวณ SMA เพียงค่าเดียวโดยใช้ 5 ค่าล่าสุด) นี่เป็นไปได้ด้วยพารามิเตอร์ startIdx และ endIdx คุณสามารถระบุช่วงที่จะคำนวณหรือค่าเดียว ในสถานการณ์สมมตินี้คุณจะทำ startIdx endIdx 500 เพื่อคำนวณองค์ประกอบ 501st เหตุใดโซลูชัน nquot quotlast ดังกล่าวอาจเป็นอันตรายต่อบางส่วนไม่ว่าจะเลือกโซลูชัน Boban. s หรือ TA-Lib พิจารณาว่าการใช้ข้อมูลจำนวน จำกัด ที่ จำกัด ในอดีตจะทำงานได้ดีกับฟังก์ชัน TA ส่วนใหญ่ กับ SMA เป็นที่ชัดเจนว่าคุณต้องการเพียงองค์ประกอบ n เพื่อคำนวณค่าเฉลี่ยขององค์ประกอบ n ไม่เหมือนกับ EMA (และฟังก์ชั่น TA อื่น ๆ ) อัลโกมักขึ้นอยู่กับค่าก่อนหน้าในการคำนวณค่าใหม่ ฟังก์ชันนี้เป็นแบบทับซ้อน นั่นหมายความว่าค่านิยมในอดีตทั้งหมดมีอิทธิพลต่อค่าในอนาคต หากคุณตัดสินใจที่จะกำหนดจำนวนอัลมาของคุณเพื่อใช้ค่า n ในช่วงที่ผ่านมาเพียงเล็กน้อยคุณจะไม่ได้รับผลลัพธ์เช่นเดียวกับคนที่คำนวณค่าที่ผ่านมาจำนวนมาก การแก้ปัญหาคือการประนีประนอมระหว่างความเร็วและความแม่นยำ ฉันมักจะพูดถึงเรื่องนี้ในบริบทของ TA-Lib (ฉันเรียกว่าช่วงเวลาที่ไม่สามารถแก้ไขได้ในเอกสารและฟอรัม) เพื่อให้ง่ายคำแนะนำทั่วไปของฉันคือถ้าคุณไม่สามารถสร้างความแตกต่างระหว่าง algo กับการตอบสนองของ impulse จำกัด (FIR) จาก algo ที่มีการตอบสนองอิมพัลส์ที่ไม่สิ้นสุด (IIR) คุณจะปลอดภัยกว่าการคำนวณข้อมูลทั้งหมดที่คุณมี ใช้ได้ TA-Lib ระบุในโค้ดซึ่งหน้าที่ของมันมีระยะเวลาที่ไม่เสถียร (IIR) แก้ไขโดย mfortier วันศุกร์ที่ 15 สิงหาคม 2551 เวลา 4:25 น. แก้ไขประโยคภาษาอังกฤษวันศุกร์ที่ 15 สิงหาคม 2551 เวลา 4:20 น.

No comments:

Post a Comment