Tuesday, 25 July 2017

C คม ชี้แจง เคลื่อนไหว ค่าเฉลี่ย


หนึ่งวิธีที่เป็นไปได้ที่นี่คือการมีวิธีการที่ส่งกลับเคอร์เนล จากสิ่งที่ฉันสามารถดูปัจจัยการผลิตเพื่อวิธีนี้จะ kerneltype ผม. และอินเทอร์เฟซอื่น ๆ วิธีง่ายๆก็คือ: นี่เป็นเรื่องที่น่ากลัวหยาบคายและสามารถปรับปรุงได้ แต่ก็มีจุดมุ่งหมายเพื่อให้ได้ ฉันจะใช้ส่วนติดต่อเพื่อแสดงเคอร์เนลและมีชั้นเรียนที่ได้รับต่อเคอร์เนล จากประสบการณ์ของผมที่สร้างรหัสที่อ่านได้และสามารถอ่านได้อย่างเพียงพอ แต่ theres เสมอห้องสำหรับการปรับปรุง ตอบ 1 ส. ค. 14 ที่ 20: 39 ค่าเฉลี่ยเคลื่อนที่ - EMA ลดลงค่าเฉลี่ยเลขประจำตัว EMA - EMA ระยะเวลา 12 และ 26 วันเป็นค่าเฉลี่ยระยะสั้นที่ได้รับความนิยมสูงสุดและใช้ในการสร้างตัวบ่งชี้เช่นความแตกต่างของค่าเฉลี่ยการเคลื่อนที่ของค่าเฉลี่ย (Moving Divergence) MACD) และตัวประกอบอัตราสวนราคา (PPO) โดยทั่วไปแล้ว EMA 50 และ 200 วันใช้เป็นสัญญาณของแนวโน้มในระยะยาว ผู้ค้าที่ใช้การวิเคราะห์ทางเทคนิคพบค่าเฉลี่ยเคลื่อนที่ที่มีประโยชน์และลึกซึ้งเมื่อใช้อย่างถูกต้อง แต่สร้างความหายนะเมื่อใช้ไม่ถูกต้องหรือถูกตีความผิด ค่าเฉลี่ยเคลื่อนที่ทั้งหมดที่ใช้กันโดยทั่วไปในการวิเคราะห์ทางเทคนิคเป็นไปตามลักษณะของตัวชี้วัดที่ล่าช้า ดังนั้นข้อสรุปที่ได้จากการนำค่าเฉลี่ยเคลื่อนที่ไปใช้แผนภูมิตลาดหนึ่ง ๆ ควรเป็นการยืนยันการย้ายตลาดหรือเพื่อบ่งชี้ถึงความแข็งแกร่ง บ่อยครั้งเมื่อถึงเวลาที่เส้นค่าเฉลี่ยเคลื่อนไหวได้เปลี่ยนไปเพื่อสะท้อนการเคลื่อนไหวที่สำคัญในตลาดจุดที่เหมาะสมที่สุดของการเข้าสู่ตลาดได้ผ่านไปแล้ว EMA ช่วยลดปัญหานี้ได้บ้าง เนื่องจากการคำนวณ EMA ให้น้ำหนักมากขึ้นกับข้อมูลล่าสุดจึงทำให้การดำเนินการด้านราคาแย่ลงและตอบสนองได้เร็วขึ้น นี่เป็นที่พึงปรารถนาเมื่อใช้ EMA เพื่อรับสัญญาณการซื้อขาย การตีความ EMA เช่นเดียวกับตัวบ่งชี้ค่าเฉลี่ยเคลื่อนที่ทั้งหมดพวกเขาจะเหมาะกับตลาดที่มีแนวโน้มมากขึ้น เมื่อตลาดอยู่ในขาขึ้นที่แข็งแกร่งและยั่งยืน เส้นแสดงตัวบ่งชี้ EMA จะแสดงแนวโน้มขาขึ้นและทางกลับกันสำหรับแนวโน้มขาลง ผู้ค้าระมัดระวังจะไม่เพียง แต่ใส่ใจกับทิศทางของเส้น EMA แต่ยังสัมพันธ์ของอัตราการเปลี่ยนแปลงจากแถบหนึ่งไปอีก ตัวอย่างเช่นในขณะที่การดำเนินการตามราคาของขาขึ้นที่แข็งแกร่งจะเริ่มแผ่ออกและพลิกกลับอัตราการเปลี่ยนแปลงของ EMA จากแถบหนึ่งไปยังอีกแถบหนึ่งจะเริ่มลดลงไปจนกว่าจะถึงเวลาดังกล่าวที่บรรทัดตัวบ่งชี้จะราบเรียบและอัตราการเปลี่ยนแปลงเป็นศูนย์ เนื่องจากผลกระทบที่ปกคลุมด้วยวัตถุฉนวนถึงจุดนี้หรือแม้กระทั่งไม่กี่บาร์ก่อนการดำเนินการด้านราคาน่าจะได้กลับรายการไปแล้ว ดังนั้นจึงเป็นไปได้ว่าการสังเกตการลดอัตราการเปลี่ยนแปลงของ EMA ที่สอดคล้องกันอาจเป็นตัวบ่งชี้ที่สามารถช่วยป้องกันภาวะที่กลืนไม่เข้าคายไม่ออกซึ่งเกิดจากผลกระทบที่เกิดจากการเคลื่อนที่โดยเฉลี่ย การใช้ EMA ทั่วไปของ EMA มักใช้ร่วมกับตัวบ่งชี้อื่น ๆ เพื่อยืนยันการย้ายตลาดที่สำคัญและเพื่อวัดความถูกต้อง สำหรับผู้ค้าที่ค้าขายระหว่างวันและตลาดที่เคลื่อนไหวอย่างรวดเร็ว EMA จะสามารถใช้งานได้มากขึ้น ผู้ค้ามักใช้ EMA เพื่อหาอคติในการซื้อขาย ตัวอย่างเช่นถ้า EMA ในแผนภูมิรายวันแสดงแนวโน้มสูงขึ้นกลยุทธ์การค้าระหว่างวันอาจเป็นการค้าเฉพาะจากด้านยาวบนกราฟในวันนั้นดูเหมือนว่าฉันจะชอบการใช้ EMA เมื่อวานนี้ในวันแรก ( และดังนั้นจึงไม่มีเมื่อวาน) อาจขึ้นอยู่กับข้อมูลที่แตกต่างกันขึ้นอยู่กับบทความที่คุณอ่าน ฉันไม่ใช่ผู้เชี่ยวชาญด้านสต็อกดังนั้นฉันเพิ่งกำลังอ่านอยู่ ฉันอ่านบทความ Dummies ที่ฉันเชื่อมโยงไปซึ่งสามารถทำได้ในแบบที่ฉันได้แสดงให้คุณเห็นและนั่นคือการเริ่มต้นด้วยวันแรกของการปิดราคาเป็นวันอังคารที่ EMAquot คุณยังสามารถใช้ค่าเฉลี่ยของวันที่ปิดในช่วง (SMA ฉันสมมติ) แต่ดูเหมือนกับผมเช่นเดียวกับที่ใช้สำหรับค่าแรกที่คำนวณ (และใช้เป็น EMAquot ในวันคูปองในสูตร) ​​ไม่ใช่วิธีที่คุณได้ทำ ดังนั้นในภาพหน้าจอของคุณจากโพสต์ก่อนหน้าของคุณค่า SMA3 ที่ 1020, 27.733 จะไม่ถูกวางไว้ในคอลัมน์สำหรับ EMA3 ในปี 1020 แต่จะใช้ในการคำนวณ EMA3 ในวันที่ 1018 เป็นวันอังคารที่ EMAquot ดังนั้นในขณะที่ SMA3 มีศูนย์เป็น 1018 และ 1019 EMA3 จะไม่มีเลขศูนย์อยู่ EMA3 สำหรับ 2 วันดังกล่าวควรเป็น 28.017 และ 27.909 ดังนั้นในรหัสของฉันที่ฉันผิดนัด EMA ก่อนหน้านี้เพื่อ SMV ปิดเราสามารถเปลี่ยนได้ดังนี้: อีกครั้งนี้จะขึ้นอยู่กับสิ่งที่ฉันอ่านและในบทความ Dummies มันแสดงให้เห็นว่าวิธีการที่มากเกินไป ฉันคิดว่านี่คือสิ่งที่คุณต้องการจริงๆ Bonnie DeWitt C MVP ทำเครื่องหมายว่าเป็นคำตอบโดย newandold วันอาทิตย์ที่ 21 ธันวาคม 2014 เวลา 5:33 น. วันพฤหัสบดีที่ 18 ธันวาคม 2014 เวลา 16:52 นนนี้จะง่ายขึ้นมากถ้าคุณเปลี่ยนรหัสของคุณเพื่อใช้ ListltEmaDatagt ตามที่ได้กล่าวมาแล้วใน คำตอบก่อนหน้านี้ นี่คือสิ่งที่ฉันได้แนะนำไว้ก่อนหน้านี้: gtgtadd คุณสมบัติ SMA ไปยังชั้นข้อมูลนั้น ฉันเรียกว่าชั้น EmaData แต่เป็นเพราะฉันคิดว่าคุณกำลังคำนวณค่า EMA เท่านั้น แต่คุณสามารถเพิ่มคุณสมบัติ SMA ได้เช่นกัน จากนั้นปรับเปลี่ยนวิธีการของคุณเพื่อใช้ ListltEmaDatagt เดียวกันในการคำนวณ SMA แรกและจากนั้น EMA (คุณอาจต้องใช้ลูปหลายรายการ) ltlt ดังนั้นเมื่อคุณวนลูปผ่านรายการและคำนวณค่า SMA แล้วใช้ค่า SMA ที่ถูกต้องสำหรับ EMA เริ่มต้นของคุณจะง่ายกว่ามาก เพียงใช้รหัสลูปเดียวกันที่ฉันแสดงในการตอบกลับก่อนหน้านี้เพื่อคำนวณ EMA (แต่ใช้ EMA เริ่มต้นที่แตกต่างกันตาม SMA แทนวิธีที่ฉันใช้) Bonnie DeWitt C MVP ทำเครื่องหมายว่าเป็นคำตอบโดย newandold อาทิตย์ 21 ธันวาคม 2014 5:33 น. ศุกร์ 19 ธันวาคม 2014 11:28 PM เมื่อใดก็ตามที่คุณพบว่าตัวเองต้องการลดความซับซ้อนของรหัสให้คิดเกี่ยวกับการสร้างวิธีการใหม่ ๆ เพื่อนำเสนอบางส่วน รหัสสิ่งต่อไปนี้คือสิ่งที่ฉันได้ใส่รหัสซ้ำในวิธีการใหม่: ดังนั้นแทนการทำทั้งหมดที่อยู่ในลูปเดิมของคุณ youd เพียงแค่เรียกวิธีการใหม่แทน: Isnt ที่สะอาดมาก Bonnie DeWitt C MVP ทำเครื่องหมายว่าเป็นคำตอบโดย newandold วันอาทิตย์ที่ 21 ธันวาคม 2014 เวลา 5:33 น. วันเสาร์ที่ 20 ธันวาคม 2014 5:44 PM การตอบกลับทั้งหมดตามชื่อเรื่องของคุณคุณได้กล่าวถึงค่าเฉลี่ยการเคลื่อนที่แบบ Exponential คุณหมายถึง EMA ใน PowerPivot ถ้ามีฟอรัมพิเศษสำหรับปัญหาของคุณนี่คือลิงค์ SQL Server gt Power Pivot gtgt ฉันพยายาม แต่ฉันไม่ได้ใน c เป็นฉันใน vb (ยังเป็นอย่างมากช้ามากใน vb) และผลใน c แตกต่างกันแล้ว vb ดังนั้นสิ่งที่คุณต้องการบรรลุคุณต้องการเปลี่ยนรหัสที่คุณโพสต์ เรากำลังพยายามทำความเข้าใจมุมมองของลูกค้าเกี่ยวกับประสบการณ์การสนับสนุนทางสังคมมากขึ้นดังนั้นการมีส่วนร่วมในโครงการสัมภาษณ์ครั้งนี้จะได้รับการชื่นชมอย่างมากหากคุณมีเวลา ขอขอบคุณที่ช่วยทำให้ฟอรัมชุมชนเป็นสถานที่ที่ยอดเยี่ยม คลิกที่นี่เพื่อเข้าร่วมการสำรวจ พุธ 3 ธันวาคม 2014 7:03 AM เกี่ยวกับคำถามของคุณโดยสรุป 1. โค้ด C และ VB สำหรับการใช้อัลกอริทึม EMA แบบเดียวกันจะให้ผลลัพธ์ที่แตกต่างกัน 2. คุณรหัส VB ​​ช้ามาก สำหรับคำถามแรก C จะส่งผลผิดพลาดหรือไม่ถ้าเป็นเช่นนั้นคุณสามารถแบ่งปันรหัส C วิธีที่คุณใช้อัลกอริธึม EMA เพื่อให้ฉันทำการทดสอบในระบบของคุณได้บ้างขอบคุณมากหากคุณให้ข้อมูลโดยละเอียดมากขึ้น สำหรับคำถามที่สองเราพยายามเข้าใจมุมมองของลูกค้าเกี่ยวกับประสบการณ์การสนับสนุนทางสังคมมากขึ้นดังนั้นการมีส่วนร่วมของคุณในโครงการสัมภาษณ์นี้จะได้รับความนิยมอย่างมากหากคุณมีเวลา ขอขอบคุณที่ช่วยทำให้ฟอรัมชุมชนเป็นสถานที่ที่ยอดเยี่ยม คลิกที่นี่เพื่อเข้าร่วมการสำรวจ แต่ฉันสงสัยว่ามันมีบางอย่างที่เกี่ยวข้องกับสีของเซลล์ขึ้นอยู่กับการเปรียบเทียบการคำนวณบางอย่างฉันคิดว่า youre บอกว่าการเปรียบเทียบจะแตกต่างกันใน C กว่าใน VB สิ่งเดียวที่ฉันสามารถคิดจะขอให้คุณคือ: ค่าของคุณเก็บไว้เป็นคู่หรือทศนิยมสองครั้งไม่ดีเมื่อทำการเปรียบเทียบในขณะที่คุณเคยชินมีปัญหาที่มีทศนิยม แน่นอนคุณควรจะจัดเก็บข้อมูลของคุณเป็นตัวแปรทศนิยม Heres โพสต์บล็อกที่ฉันเขียนในเรื่อง: Bonnie DeWitt C MVP วันศุกร์ที่ 5 ธันวาคม 2014 4:40 น. ช่วงเวลา 3 คูณ: (2 (ช่วงเวลา 43 1)) ตัวคูณ EMA x 43 EMA (วันก่อนหน้า) ฉันต้องการ เพื่อใช้สูตร EMA โดยใช้ไฟล์จุลภาค txt และแสดงใน datagridview 1- โดยรายการเดียวเป็นกระแส 2- โดยทุกรายการ (จะได้รับเหตุการณ์ล่าสุดของระเบียน) เป็นกระแสหลังจากการคำนวณฉันจะใช้สภาพการไหลเพื่อให้ได้สีของ datagridview ข้อมูลที่ใช้เป็นไฟล์ txt คุณเก็บแสดงสิ่งเดียวกันซ้ำแล้วซ้ำอีก ที่ไม่ได้ช่วยให้เราคิดออกว่าที่ youre มีปัญหา คุณสามารถอธิบายที่ youre ติดอยู่และไม่ซ้ำภาพหรือข้อมูลอีกครั้งที่ใดก็ตามเราเห็นว่า gazillion ครั้ง หากการเปรียบเทียบถูกต้องอาจมีบางอย่างที่เกี่ยวข้องกับ double vs decimal เช่นเดียวกับที่กล่าวไว้ก่อนหน้านี้ หาก youre ติดอยู่ในการรับข้อมูลจากไฟล์ข้อความแล้วสิ่งที่คุณติดอยู่ในหาก youre ติดแสดงข้อมูลในตารางแล้วที่ว่าเป็นปัญหาหากไม่มีสิ่งเหล่านี้แล้วเป็นคำถามที่คุณต้องตอบอะไร Im แน่ใจ Im ไม่ได้คนเดียวสับสนโดยนี้ Bonnie DeWitt C MVP วันศุกร์ที่ 5 ธันวาคม 2014 เวลา 10:19 น. คุณยังคงแสดงสิ่งเดียวกันซ้ำแล้วซ้ำอีก ที่ไม่ได้ช่วยให้เราคิดออกว่าที่ youre มีปัญหา คุณสามารถอธิบายที่ youre ติดอยู่และไม่ซ้ำภาพหรือข้อมูลอีกครั้งที่ใดก็ตามเราเห็นว่า gazillion ครั้ง หากการเปรียบเทียบถูกต้องอาจมีบางอย่างที่เกี่ยวข้องกับ double vs decimal เช่นเดียวกับที่กล่าวไว้ก่อนหน้านี้ หาก youre ติดอยู่ในการรับข้อมูลจากไฟล์ข้อความแล้วสิ่งที่คุณติดอยู่ในหาก youre ติดแสดงข้อมูลในตารางแล้วที่ว่าเป็นปัญหาหากไม่มีสิ่งเหล่านี้แล้วเป็นคำถามที่คุณต้องตอบอะไร Im แน่ใจ Im ไม่ได้คนเดียวสับสนโดยนี้ Bonnie DeWitt C MVP วิธีการคำนวณ EMA (ค่าเฉลี่ยเคลื่อนที่แบบเสวนา) ข้อมูลต้นฉบับเป็นไฟล์คอมม่า txt วันเสาร์ที่ 6 ธันวาคม 2014 เวลา 5:24 น. ฉันเข้าใจสูตรนี้จากลิงก์ที่คุณโพสต์แล้วสูตรนั้นค่อนข้างง่าย แต่สิ่งที่เป็นส่วนหนึ่งของการนี้คุณมีปัญหากับการอ่านจากไฟล์ข้อความหรือจะทำอย่างไรกับตัวเลขเมื่อ youve อ่านจากแฟ้มข้อความหรือวิธีการแสดงไว้ในตารางวิธีการเกี่ยวกับเรื่องนี้ ทำไมคุณไม่แสดงส่วนของรหัสของคุณโดยเฉพาะส่วนที่คุณประสบปัญหา นั่นอาจจะง่ายสำหรับทุกคนดังนั้นเราจึงไม่ต้องคาดเดาเกี่ยวกับสิ่งที่คุณจำเป็นต้องรู้ และเพียงเพื่อ heck ของฉันฉัน Googled quotcalculate ema cquot และพบการเชื่อมโยงบางอย่างที่อาจช่วย ฉันไม่ทราบแน่นอนเพราะฉันลาดเทคิดออกสิ่ง youre ติดอยู่บน แต่ตรวจสอบพวกเขาออก: บทความล่าสุดทำให้การใช้ห้องสมุด Open Source ฟรีที่เรียกว่า TA - Lib, Technical Analysis Library (theres ลิงค์เพื่อคลิกใน บทความ). Bonnie DeWitt C MVP แก้ไขโดย BonnieB MVP, ผู้ดูแลวันเสาร์ที่ 6 ธันวาคม 2014 6:06 น. การชี้แจงวันเสาร์ที่ 6 ธันวาคม 2014 6:05 น. คุณลองใช้รหัสของคุณในดีบักเกอร์หลังจากอ่านข้อความแล้วไฟล์ foreach ผ่านสายของคุณถ้า: ถ้า (ComName SplitString0) จะเป็นเท็จ youve เริ่มต้น ComName เป็นสตริงที่ว่างเปล่า ดังนั้น ComSize จะเป็นศูนย์เสมอและลูปถัดไปของคุณจะไม่ทำอะไรอย่างใดอย่างหนึ่ง ดังนั้น theres ปัญหาของคุณได้ที่นั่น ฉันพยายามเรียกใช้โค้ดของคุณและสิ่งแรกที่ฉันทำคือตั้งจุดพักดีบั๊กหลังจากอ่านในไฟล์ข้อความแล้ว Thats ว่าฉันพบปัญหานี้ ลองใช้ดีบักเกอร์เพื่อดูผ่านโค้ดของคุณ จะช่วยคุณค้นหาปัญหาได้ง่ายขึ้นด้วยตัวคุณเอง ฉันปรับเปลี่ยนรหัสเฉพาะแสดง ComName ใน DataGridView3 และส่วนที่เหลือไม่แสดง แต่เมื่อฉันคลิกในเซลล์จะแสดงและถ้าฉันคลิกที่อื่น ๆ ก็จะแสดง. และก่อนหน้านี้จะถูกซ่อนอีกครั้งผลที่ฉันได้รับคือ SMA (ค่าเฉลี่ยเคลื่อนที่แบบเรียบ) ไม่ใช่สำหรับ EMA (ค่าเฉลี่ยเคลื่อนที่แบบเสวนา) Saturday, December 06, 2014 5:26 PM แสดง ComName เฉพาะใน DataGridView3 และส่วนที่เหลือไม่แสดง แต่เมื่อฉันคลิกในเซลล์จะแสดงและถ้าฉันคลิกที่อื่น ๆ ก็จะแสดงและก่อนหน้านี้จะถูกซ่อนอีกครั้งฉันไม่เห็นพฤติกรรมที่ ทุกอย่างแสดงขึ้นในตารางของฉัน ในการออกแบบฉันก็ลดลง DataGridView ในแบบฟอร์มของฉันไปในคุณสมบัติสำหรับตารางจากนั้นไปที่คอลเลกชันคอลัมน์และเพิ่ม 6 คอลัมน์ ฉันไม่ได้ทำอะไรอย่างอื่นและทุกอย่างก็แสดงได้ดี คุณต้องทำอย่างอื่นในตารางข้อมูลของคุณทำให้เกิดพฤติกรรมที่คุณเห็น แต่ไม่แน่ใจว่าไม่แน่ใจว่าอะไรที่อาจก่อให้เกิด บางทีคอลัมน์ของคุณ arent กว้างพอหรือมีคุณทำบางจัดรูปแบบในพวกเขาหรือคุณจัดการชนิดของแถวหรือเซลล์เหตุการณ์ใด ๆ ที่อาจจะทำบางสิ่งที่แปลก Bonnie DeWitt C MVP เสาร์ธันวาคม 06, 2014 5:58 PM ฉันจะตรวจสอบ ขอบคุณครับวันเสาร์ที่ 6 ธันวาคม 2014 6:19 น. ยินดีต้อนรับคุณ ให้เราโพสต์ความคืบหน้าของคุณ Bonnie DeWitt C MVP วันเสาร์ที่ 6 ธันวาคม 2014 เวลา 10:14 น. สำหรับ DataGridView3 กำลังทำงานในขณะนี้สำหรับสูตรไม่ได้ผลและฉันลองใช้งานนี้มากเกินไป แต่ทั้งสองไม่ทำงานในสิ่งที่ฉันไม่สามารถบรรลุได้ EMA แรก ( วันก่อนหน้า) (ผลรวมของสามอันดับสุดท้าย (ราคาปิด) 3) ควรใช้ราคาปิดที่จุดเริ่มต้นของ EMA ดังนั้นจะเป็น (27.1) อยู่ที่ 27.733 บาท) เมื่อพิจารณาถึงการสิ้นสุดของรอบระยะเวลา (เช่นถ้า EMA 3 วันจะมีสองบรรทัดสุดท้ายเป็น (0) เนื่องจากน้อยกว่า 3 ฉันคิดว่าคุณกำลังบอกว่าสีเขียวสำหรับ EMA3 ควรเป็น 27.1 แทน 27.33 แต่สองตัวสุดท้ายมีค่าอย่างถูกต้องที่ 0 ซึ่งเป็นค่าที่ถูกต้อง If ดังนั้นฉันมีการแก้ไขที่เรียบง่ายสำหรับคุณ Im ไม่แน่ใจว่าที่ของทั้งสองตัวอย่างรหัสที่คุณเพิ่งพบในการโพสต์ครั้งล่าสุดของคุณเป็นคนที่ youre ตอนนี้ใช้ แต่ Im ใช้รหัสจากการโพสต์ก่อนหน้าของคุณ (ก่อนสุดท้าย) ทั้งหมด คุณต้องทำคือการเปลี่ยนแปลงต่อไปนี้: ที่ควรทำมันทำงานให้ฉันกับรุ่นของรหัส Im ใช้ Bonnie D eWitt C MVP อาทิตย์ 7 ธันวาคม 2014 4:46 PM มันไม่ได้ทำงาน แต่ด้านล่างเป็นข้อมูลจากแฟ้มข้อความและเคล็ดลับใน EMA (วันก่อนหน้า) ว่าจะได้รับการเริ่มต้นของมัน 1- โดยใช้ราคาใกล้เคียงกับที่คุณทำ ในโพสต์ล่าสุดของคุณ 2- โดยใช้ค่าเฉลี่ยเคลื่อนที่แบบง่ายๆคุณจะต้องทำการ recode ใหม่ ฉันยอมแพ้ช่วงเวลา 3 คูณ: (2 (ช่วงเวลา 43 1)) ตัวคูณ EMA x 43 EMA (วันก่อนหน้า) ฉันต้องการใช้สูตร EMA โดยใช้ไฟล์คอมโพเนนต์ txt และแสดงใน datagridview 1- โดยรายการเดียวเป็นกระแส 2 - โดยรายการทั้งหมด (จะได้รับเหตุการณ์ล่าสุดของระเบียน) เป็นไหลข้อมูลที่ใช้เป็นไฟล์ txt สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ EMA ไม่เมื่อฉันใช้รหัสทั้งหมดที่ฉันได้ในไฟล์ txt ขนาดใหญ่จะช้ามากขอบคุณมาก สำหรับความช่วยเหลือของคุณทั้งหมดฉันจริงๆขอบคุณมันใช่ แต่ไม่ทำงานสำหรับแฟ้มข้อความและบทความนี้เป็นครั้งแรกที่แก้ EMA อ่านจากไฟล์จุลภาค txt ฉันค้นหาอินเทอร์เน็ต แต่ฉันไม่พบ แม้ว่าฉันไม่ได้โดยรหัสข้างต้นที่ยังไม่ได้ทำมันขวาฉันได้เฉลี่ยเคลื่อนที่ง่ายใน c วิธีที่ฉันเขียนข้างต้น แต่ไม่ได้มีประสิทธิภาพ มันช้ามากสำหรับบันทึกใหญ่มี jQuery แต่ฉันต้องการมันเป็น c ดังนั้นฉันกำลังมองหารหัสที่แตกต่างกันที่สามารถจัดการบันทึกใหญ่มากกับสภาพของเซลล์สี datagridview เป็นด้านล่าง DLaetRow DataGridView3 int แถว Count - 2 if (ema3 gt คณิตศาสตร์ Abs ((((2) (smvClose)) 100) 43 (smvClose))) DataGridView3 แถว DLaetRow เซลล์ที่ 3 สไตล์ สี BackColor LightGreen อื่นถ้า (คณิตศาสตร์ ema3 lt Abs ((((2) (smvClose)) 100) - (smvClose))) DataGridView3 แถว DLaetRow เซลล์ที่ 3 สไตล์ สี BackColor Red แก้ไขโดย newandold เมื่อวันอังคารที่ 09 ธันวาคม 2014 เวลา 9:33 น. วันอังคารที่ 9 ธันวาคม 2014 เวลา 9:32 น. ตกลงในที่สุดผมก็มีเวลาพอสมควรในการทำเช่นนี้และฉันควรจะคิดทำแบบนี้ตั้งแต่เริ่มแรก สร้างคลาส EmaData เพื่อเก็บค่าที่คำนวณได้สำหรับแต่ละแถวของข้อมูลและใช้ ListltEmaDatagt เพื่อเก็บค่าเหล่านี้ทั้งหมด จากนั้นคุณสามารถคำนวณทั้งหมดในลูปผ่านข้อมูล Heres สิ่งที่ฉันสิ้นสุดกับ: Bonnie DeWitt C MVP วันเสาร์ที่ 13 ธันวาคม 2014 5:59 PM ขอขอบคุณสำหรับเวลาของคุณและช่วยให้มันเป็นรหัสที่รวดเร็วก็ทำได้โดยการใช้ราคาปิด แต่ก็ไม่ได้ปิดราคาล่าสุดเป็นเริ่มต้นมัน ต้องการการเปลี่ยนแปลงบางอย่างโปรดเป็นกระแสขอบคุณนี้งานที่ดีและโปรดฉันอาจมีนี้ด้วย 2- รายการทั้งหมด (จะได้รับเหตุการณ์ล่าสุดของระเบียน) เป็นกระแสขอบคุณมากผมขอขอบคุณมันแก้ไขโดย newandold เสาร์ 13 ธันวาคม , 2014 9:59 PM ฉันได้รับข้อมูลเกี่ยวกับวิธีคำนวณ EMA จากลิงก์นี้: ฉันถือว่าหนังสือ quotDummiesquot เป็นแหล่งที่เชื่อถือได้ ถ้าคุณมองไปที่ตารางที่พวกเขาแสดงสำหรับการคำนวณไม่มีที่ไหนเลยมีศูนย์สำหรับการคำนวณ EMA ใด ๆ ดังนั้น thats ทำไมคุณ dont เห็นด้วยรหัสของฉัน หากคุณต้องการทำให้เป็นศูนย์สิ่งที่คุณต้องทำก็คือเปลี่ยนรหัสเพื่อกำหนดให้เป็นศูนย์สำหรับรายการที่เหมาะสม (ฉันไม่ทราบจริงๆว่าทำไมคุณถึงต้องการแม้ว่าจะไม่ได้เป็นผลลัพธ์มาตรฐานสำหรับ EMA): คำถามที่สองเป็นเพียงเรื่องของการรับรายการวันสุดท้ายออกจาก SMVList ซึ่งจะเป็น SMVListSMVList. Count - 1 Im แน่ใจว่าคุณสามารถคิดออกว่าจะได้รับและวางไว้ในตารางที่สองที่ (EMA Analysis) Bonnie DeWitt C MVP วันเสาร์ที่ 13 ธันวาคม 2014 เวลา 10:17 น. ขออภัยฉันโพสต์บางสิ่งไม่ถูกต้องในโพสต์ก่อนหน้านี้ เนื่องจาก SMVList อยู่ในลำดับเหตุการณ์ย้อนหลังรายการวันสุดท้ายจะเป็นรายการแรกในรายการดังนั้นคุณต้องดูเป็น SMVList0 ฉันยังต้องการเพิ่มความคิดเห็นของฉันเกี่ยวกับศูนย์ที่ไม่มีอยู่ในการคำนวณ EMA ดูเหมือนว่าจะมีความหมายกับการคำนวณ SMA ที่คุณเคยทำไว้ก่อนหน้านี้ แต่ฉันก็ยังไม่เห็นด้วยกับการคำนวณ EMA (อีกครั้งเป็นไปตามลิงก์ Dummies book เนื่องจากฉันเองไม่มีอะไรรู้เกี่ยวกับ EMA) Bonnie DeWitt C MVP อาทิตย์ 14 ธันวาคม 2014 2:42 น. วิธีการเกี่ยวกับเรื่องนี้อย่างใดอย่างหนึ่ง 2- โดยทุกรายการ (จะได้รับเหตุการณ์ล่าสุดของระเบียน) เป็นกระแสรับเหตุการณ์สุดท้ายสำหรับรายการทั้งหมดข้างต้นเป็นฉันทดสอบ แต่เท่าที่คุณเห็น แก้ไขโดย newandold อาทิตย์ 14 ธันวาคม 2014 4:02 น. วันอาทิตย์ที่ 14 ธันวาคม 2014 3:51 น. ใช่ดีฉันเห็นได้ชัดว่าพวกเขาทั้งสองข้างหลังไม่ได้ฉันขอโทษ แต่คุณอาจจะสามารถที่จะคิดออกนี้ ด้วยตัวคุณเอง แต่ฉันเพียงต้องการชี้ให้เห็นว่าสกรูนี้ขึ้นทั้งหมดคำนวณอื่น ๆ เนื่องจากสูตรขึ้นอยู่กับการคำนวณ EMA วันก่อนหน้า (ซึ่งไม่ควรเป็นศูนย์ แต่ก็คือเมื่อคุณใส่ในการเปลี่ยนแปลงนี้) ฉันไม่คิดแบบนี้จริงๆ คุณได้ดูลิงก์ที่ฉันโพสต์ไว้ในบทความ Dummies Plug ในค่าจากตารางจากลิงก์นั้นลงในไฟล์ข้อความของคุณแล้วคุณจะเห็นว่ารหัสต้นฉบับตรงกับที่เขาแสดงในตาราง แต่ถ้าคุณยืนยันในการทำให้เป็นศูนย์แล้วฉันคิดว่าเราจะได้รับรอบโดยเสมอทำให้วันก่อนหน้า EMA ทำแบบนี้แทน: ฉันยังไม่เห็นด้วยกับมัน แต่ แต่สิ่งที่ฉันรู้ Bonnie DeWitt C MVP วันอาทิตย์ที่ 14 ธันวาคม 2014 5:47 น. ขอบคุณสำหรับความพยายามของคุณผลที่ตามมาไม่ได้ตามที่ฉันต้องการหรือถูกต้อง แต่สำหรับรหัสมันเป็นเรื่องดีมากสำหรับความเร็วในการโหลด datagradview 1 - มีค่าเฉลี่ยเคลื่อนที่เฉลี่ย 2 - สร้างรายการ (ค่าเฉลี่ยเคลื่อนที่ง่าย) ให้เราใช้ EMA3 - จะใช้ค่าของ sma สุดท้ายเป็นค่าแรกของ ema ในการคำนวณ แต่ทั้งสองมีช่วงเวลาเดียวกันกับ 3 ฉันเพิ่ม pic to explain it more ฉันกำลังพยายามที่จะทำโดยใช้รหัสของคุณแก้ไขโดย newandold จันทร์ 15 ธันวาคม 2014 7:56 PM ขออภัยที่ฉันไม่สามารถใช้เวลาใด ๆ เพิ่มเติมเกี่ยวกับเรื่องนี้ตอนนี้ คุณคงเปลี่ยนสิ่งที่คุณต้องการหรืออย่างน้อยก็ดูเหมือนว่าวิธีการที่ให้ฉัน สิ่งที่ดีที่สุดที่ฉันสามารถพูดได้คือการเพิ่มคุณสมบัติ SMA ในชั้นข้อมูลนั้น ฉันเรียกว่าชั้น EmaData แต่เป็นเพราะฉันคิดว่าคุณกำลังคำนวณค่า EMA เท่านั้น แต่คุณสามารถเพิ่มคุณสมบัติ SMA ได้เช่นกัน จากนั้นปรับเปลี่ยนวิธีการของคุณเพื่อใช้ ListltEmaDatagt เดียวกันเพื่อคำนวณ SMA แรกและจากนั้น EMA (คุณอาจต้องใช้ลูปหลายรายการผ่านรายการ) ฉันไม่คิดว่ามันจะยากเกินไปที่จะทำฉันลาดเทยุ่งกับมันตอนนี้ แต่ฉันคิดว่าคุณจะสามารถคิดออก Bonnie DeWitt C MVP วันอังคาร, 16 ธันวาคม 2014 12:25 น. คุณสามารถเปลี่ยนสิ่งที่คุณต้องการหรืออย่างน้อยก็ดูเหมือนว่าวิธีการที่ฉันจากโพสต์เก่าของฉัน EMA แรก (วันก่อนหน้า) ปิดราคาล่าสุดหรือ (ผลรวมของสาม (ปิดราคา) 3) จากโพสต์เก่าสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ EMA ถ้าคุณต้องการให้ฉันทำเครื่องหมายโพสต์ของคุณเป็นคำตอบฉันจะทำ แต่สำหรับ whos อื่น ๆ ที่กำลังมองหา EMA จะได้รับผลผิดแก้ไขโดย newandold อังคาร 16 ธันวาคม 2014 5 : 24 น. ดูเหมือนว่าฉันชอบการใช้ EMA เมื่อวานนี้ในวันแรก (และไม่มีข้อมูลในวันนี้) อาจขึ้นอยู่กับข้อมูลที่แตกต่างกันขึ้นอยู่กับบทความที่คุณอ่าน ฉันไม่ใช่ผู้เชี่ยวชาญด้านสต็อกดังนั้นฉันเพิ่งกำลังอ่านอยู่ ฉันอ่านบทความ Dummies ที่ฉันเชื่อมโยงไปซึ่งสามารถทำได้ในแบบที่ฉันได้แสดงให้คุณเห็นและนั่นคือการเริ่มต้นด้วยวันแรกของการปิดราคาเป็นวันอังคารที่ EMAquot คุณยังสามารถใช้ค่าเฉลี่ยของวันที่ปิดในช่วง (SMA ฉันสมมติ) แต่ดูเหมือนกับผมเช่นเดียวกับที่ใช้สำหรับค่าแรกที่คำนวณ (และใช้เป็น EMAquot ในวันคูปองในสูตร) ​​ไม่ใช่วิธีที่คุณได้ทำ ดังนั้นในภาพหน้าจอของคุณจากโพสต์ก่อนหน้าของคุณค่า SMA3 ที่ 1020, 27.733 จะไม่ถูกวางไว้ในคอลัมน์ EMA3 ในปี 1020 แต่จะใช้ในการคำนวณ EMA3 ในวันที่ 1018 เป็นวันอังคารที่ EMAquot ดังนั้นในขณะที่ SMA3 มีศูนย์เป็น 1018 และ 1019 EMA3 จะไม่มีเลขศูนย์อยู่ EMA3 สำหรับ 2 วันดังกล่าวควรเป็น 28.017 และ 27.909 ดังนั้นในรหัสของฉันที่ฉันผิดนัด EMA ก่อนหน้านี้เพื่อ SMV ปิดเราสามารถเปลี่ยนได้ดังนี้: อีกครั้งนี้จะขึ้นอยู่กับสิ่งที่ฉันอ่านและในบทความ Dummies มันแสดงให้เห็นว่าวิธีการที่มากเกินไป ฉันคิดว่านี่คือสิ่งที่คุณต้องการจริงๆ Bonnie DeWitt C MVP ทำเครื่องหมายว่าเป็นคำตอบโดย newandold วันอาทิตย์ที่ 21 ธันวาคม 2014 เวลา 5:33 น. วันพฤหัสบดีที่ 18 ธันวาคม 2014 เวลา 16:52 น. ขอขอบคุณทุกท่านที่เป็นคนเก่งในการอธิบายเรื่องนี้แก้ไขโดย newandold วันศุกร์ที่ 19 ธันวาคม 2014 เวลา 2:00 น. วันศุกร์ที่ 19 ธันวาคม พ. ศ. 2553 เวลา 21:54 น. วันศุกร์ที่ 19 ธันวาคม พ. ศ. 2553 เวลา 10:54 น. วันศุกร์ที่ 19 ธันวาคม พ. ศ. 2553 เวลา 10.9 น. ) เป็นจุดเริ่มต้นของการคำนวณ EMA เนื่องจากภาพด้านล่างไม่ค่อยดีนักเนื่องจากวิธีการเขียนโค้ดของคุณจะไม่เร็วเหมือนรหัสของคุณ แต่เธอจะต้องระบุจุดเริ่มต้นของการคำนวณ EMA (ตอนแรกวิธีใช้แถว) (ตอนแรก (ema3prev)) ema3 คณิตศาสตร์ Round ((แถว. SMVClose k3) 43, (3) MidpointRounding AwayFromZero) วันศุกร์, 19 ธันวาคม 2014 10:23 PM นี้จะง่ายขึ้นมากถ้าคุณเปลี่ยนรหัสของคุณเพื่อใช้ ListltEmaDatagt ตามที่ฉันได้กล่าวถึงในการตอบกลับก่อนหน้านี้ Heres สิ่งที่ฉันได้แนะนำก่อนหน้านี้: gtgtadd คุณสมบัติ SMA กับชั้นข้อมูลที่ฉันเรียกว่า EmaDa ชั้น แต่เพราะฉันคิดว่าคุณกำลังคำนวณค่า EMA แต่คุณสามารถเพิ่มคุณสมบัติ SMA ได้เช่นกัน จากนั้นปรับเปลี่ยนวิธีการของคุณเพื่อใช้ ListltEmaDatagt เดียวกันในการคำนวณ SMA แรกและจากนั้น EMA (คุณอาจต้องใช้ลูปหลายรายการ) ltlt ดังนั้นเมื่อคุณวนลูปผ่านรายการและคำนวณค่า SMA แล้วใช้ค่า SMA ที่ถูกต้องสำหรับ EMA เริ่มต้นของคุณจะง่ายกว่ามาก เพียงใช้รหัสลูปเดียวกันที่ฉันแสดงในการตอบกลับก่อนหน้านี้เพื่อคำนวณ EMA (แต่ใช้ EMA เริ่มต้นที่แตกต่างกันตาม SMA แทนวิธีที่ฉันใช้) Bonnie DeWitt C MVP ทำเครื่องหมายว่าเป็นคำตอบโดย newandold วันอาทิตย์ที่ 21 ธันวาคม 2014 เวลา 5:33 น. วันศุกร์ที่ 19 ธันวาคม 2014 เวลา 11:28 น. สิ่งที่ฉันทำและกำลังทำงานอยู่ฉันพยายามเพิ่ม EMA5 EMA9 EMA10 และอื่น ๆ ในโค้ดนี้ นานมากจะมีวิธีการสั้นและเป็นมืออาชีพที่ฉันต้องการสัมผัสของคุณรหัสที่ในจริงเป็นรหัสของคุณฉันขอบคุณสำหรับความช่วยเหลือของคุณเสาร์ 20 ธันวาคม 2014 3:43 PM เมื่อใดก็ตามที่คุณพบว่าตัวเองต้องง่ายรหัสมักจะคิดเกี่ยวกับ สร้างวิธีใหม่ในการใส่รหัสบางส่วนลงไปสิ่งที่ฉันได้ใส่รหัสซ้ำเป็นวิธีใหม่: ดังนั้นแทนที่จะทำทั้งหมดที่อยู่ในลูปเดิมของคุณ youd เพียงแค่เรียกวิธีการใหม่แทน: Isnt ว่าสะอาดมาก Bonnie DeWitt C MVP ทำเครื่องหมายว่าเป็นคำตอบโดย newandold อาทิตย์ 21 ธันวาคม 2014 5:33 น. วันเสาร์ 20 ธันวาคม 2014 5:44 น. ฉันจะเป็นดัชนีทั้งหมดที่ได้รับเหตุการณ์ล่าสุดสำหรับรายการทั้งหมดข้างต้นเมื่อฉันลอง ฉันได้รับบันทึกทั้งหมดของทั้งสอง (DATATWO และ ONEDATA) ขอขอบคุณสำหรับการสนับสนุนของคุณและฉันทดสอบการปรับเปลี่ยนรหัสของคุณใน l ข้อมูล arge สำหรับรายการ singal และได้เร็วพอเสาร์ธันวาคม 20, 2014 10:23 PM เมื่อคุณต้องการได้รับข้อมูลสำหรับทั้งสองรายการคุณสามารถใช้พจนานุกรมเพื่อเก็บรายการหลายรายการ คุณจะต้องเปลี่ยนเมธอด MAByItem () ของคุณเพื่อส่งคืน ListltEmaDatagt ดังนั้นจะมีลักษณะดังนี้: จากนั้นคุณจะเรียกเมธอดนี้แตกต่างจากที่คุณเคยเรียกใช้มาก่อนเล็กน้อย: คุณอาจจำเป็นต้องเปลี่ยนบางสิ่งอื่น ๆ ใน MAbyitem ของคุณ () เนื่องจากฉันไม่ทราบวิธีที่คุณต้องการแสดงตารางอื่น ๆ ที่เราเคยทำงานด้วย บางทีอาจเรียกเมธอด AddDataToGrid () ที่นี่แทนในเมธอด MAbyitem () และอาจผ่านตารางที่คุณต้องการเป็นพารามิเตอร์ของ AddDataToGrid () method แต่อย่างไรก็ตามคุณควรจะสามารถที่จะคิดออกส่วนที่เหลือของมันฉันหวังว่า Bonnie DeWitt C MVP วันอาทิตย์ที่ 21 ธันวาคม 2014 เวลา 12:28 น. ฉันพยายามใช้รหัส แต่ฉันมีรายการมากกว่า 300 รายการ แต่ไม่ได้แก้ไขโดย newandold อาทิตย์ 21 ธันวาคม 2014 12:10 น. อาทิตย์ 21 ธันวาคม 2014 11 : 43 ฉันได้กล่าว youd ต้องเปลี่ยนรหัสของคุณอีกเล็กน้อยจุดหลักของการตอบล่าสุดของฉันเกี่ยวกับการใช้พจนานุกรมเพื่อเก็บรายการสำหรับทั้งสองรายการ ฉันไม่ทราบเกี่ยวกับ AllItems () ของคุณวิธี แต่เห็นได้ชัดจะต้องมีบิตแตกต่างจากวิธีการ MAbyitem () ของคุณ กลับไปใช้พจนานุกรมตามที่แสดงในการตอบกลับก่อนหน้านี้ แต่ใช้ในวิธี AllItems () ของคุณเช่น: Bonnie DeWitt C MVP วันอาทิตย์ที่ 21 ธันวาคม 2014 เวลา 4:34 น. ฉันเพิ่มโค้ดด้านล่างนี้เป็นข้อผิดพลาด สิ่งที่เป็นวิธีการยกเว้นที่เกิดขึ้นใน I dont เข้าใจว่าทำไมคุณไม่ใช้รหัสของฉันส่วนที่คำนวณทั้งหมดจะถูกห่อหุ้มในวิธีการ CalcEmaX () วิธีการที่เรียกว่าจาก CalcEma () method ฉันคิดว่าคุณตกลงกันว่าทำงานได้ดีดังนั้นคุณจึงใช้รหัสอื่นที่แตกต่างกัน svmTmpInt200 Thats อะไรใหม่ ๆ ขึ้นอยู่กับอนุสัญญาการตั้งชื่อของคุณที่จะดูเหมือนจะระบุว่ามีค่า 200. ฉันคิดว่าปัญหาคือ SMVList. Count - svmTmpInt200 เป็นลบ (เนื่องจาก Count ของคุณน้อยกว่า 200) ดังนั้นตั้งแต่ youre วนรอบย้อนกลับฉันเป็น เสมอไปจะมากขึ้นกว่าค่านั้นและทำให้ห่วงไม่ได้หยุดจุดและฉันช่วย decrementing จนกว่าจะลบเกินไปแล้วคุณจะได้รับการยกเว้น กรุณาโพสต์โค้ดที่เกี่ยวข้อง ฉันเพิ่งเพิ่มระยะเวลามากขึ้นและรหัสทั้งหมดอยู่ที่นี่จึงทำงานสำหรับรายการสัญญาณสำหรับ (i gt SMVList. Count - svmTmpInt200) ฉันพยายามแทนที่ด้วยแตกต่างกัน เพื่อที่จะไม่ จำกัด เฉพาะช่วงเวลาใช่ฉันกำลังทดสอบอีกวิธีหนึ่งเพื่อให้โค้ดของคุณเป็นข้อมูลอ้างอิงแก้ไขโดย newandold วันอาทิตย์ที่ 21 ธันวาคม 2014 เวลา 9:44 น. วันอาทิตย์ที่ 21 ธันวาคม 2014 เวลา 21:28 น. ในโค้ดเก่าที่ทำงานช้า ฉันใช้ส่วนหัวของ datagridview อาทิตย์ 21 ธันวาคม 2014 10:16 PM คุณได้พยายามรหัสของฉันแล้ว คุณบอกว่ามันทำงานได้ดีและรวดเร็ว และยังคุณไม่ได้ใช้มัน Ive เขียนมัน Youd ดีมากขึ้นโดยใช้ CalcEmaX () และ AddDataToGrid () วิธีการที่มีทั้งหมดที่ซ้ำซ้อนรหัส (ส่วนใหญ่ทั้งหมด ifs) รหัสของคุณยุ่งมากเกินไป (และคุณต้องการหลีกเลี่ยงปัญหานั้น) แต่ thats ไม่ที่ปัญหาปัจจุบันของคุณเพราะปัญหาอยู่ที่ youre พยายามคำนวณ SMA เพื่อใช้เป็นจุดเริ่มต้น emaX ของคุณ ฉันคิดว่าคุณสามารถสร้าง CalcSmaX () วิธีการเพื่อให้รหัสการคำนวณ SMA สะอาดเพียงเล็กน้อย แต่อีกครั้งไม่ thats ปัญหา ปัญหาคือคุณ dont มี 200 แถวในรายการของคุณและยัง youve มีห่วงที่สมมติว่าคุณคุณต้องตรวจสอบข้อ จำกัด ของคุณ: เปลี่ยนนี้: for (int i SMVList. Count - 1 i gt SMVList. Count - svmTmpInt200 i -) ไปนี้: int max SMVList. Count - svmTmpInt200 if (max lt 0) max 0 for (int i SMVList. Count - 1 i gt max i--) Bonnie DeWitt C MVP วันจันทร์ที่ 22 ธันวาคม 2014 12: 11:00 ขอบคุณสำหรับความช่วยเหลือของคุณใช่รหัสไม่ดี แต่ฉันจะเริ่มต้นใหม่อีกครั้งจันทร์ 22 ธันวาคม 2014 8:35 PM Youre ยินดีต้อนรับฉันหวังว่าคุณจะได้รับการทำงานนี้เร็ว ๆ นี้ 0) Bonnie DeWitt C MVP อังคาร 23 ธันวาคม, 2014 4:42 PM Microsoft กำลังดำเนินการสำรวจออนไลน์เพื่อทำความเข้าใจกับความคิดเห็นของคุณเกี่ยวกับไซต์ Msdn Web หากคุณเลือกที่จะเข้าร่วมการสำรวจออนไลน์จะนำเสนอแก่คุณเมื่อคุณออกจากเว็บไซต์ Msdn Web คุณต้องการเข้าร่วมช่วยเราปรับปรุง MSDN หรือไม่ เยี่ยมชมหน้า UserVoice ของเราเพื่อส่งและออกเสียงลงคะแนนเกี่ยวกับความคิดศูนย์ Dev แหล่งข้อมูลการเรียนรู้หากประสิทธิภาพของรหัสนี้เป็นสิ่งสำคัญก็ควรทำให้รู้สึกเพื่อหลีกเลี่ยงการจัดสรรฮีปสำหรับ Candle s ฉันคิดว่าวิธีที่เหมาะสมที่สุดที่จะทำที่จะทำให้เทียนลง struct. แม้ว่าประเภทของค่าที่เปลี่ยนแปลงได้นั้นชั่วร้าย ดังนั้นฉันยัง refactor Candle จะไม่เปลี่ยนรูป นอกจากนี้ยังหมายถึงการใช้งานล่าสุดของ Candle จะต้องมีการเปลี่ยนแปลงอาจเป็นคู่ของฟิลด์คู่ (หรืออีกทางหนึ่งอาจแยกชั้นและชั้นที่กำหนดใหม่ได้) ฉันไม่เห็นปัญหาเรื่องประสิทธิภาพการทำงานอื่น ๆ ในโค้ดของคุณ แต่เมื่อพูดถึงประสิทธิภาพคุณควรพึ่งพาการทำโปรไฟล์ไม่ใช่สัญชาตญาณของคุณ (หรือคนอื่น) นอกจากนี้ฉันไม่ชอบชื่อของวิธีการของคุณ โดยเฉพาะ: ValueUpdated ชื่อเมธอดมักจะอยู่ในรูปแบบทำอะไรบางอย่างไม่ใช่สิ่งที่เกิดขึ้น ดังนั้นฉันคิดว่าชื่อที่ดีกว่าคือ UpdateValue เพิ่ม. แก้ไข นี่คือการดำเนินงานพื้นฐานสองประการของ MovingAverage ของคุณและฉันคิดว่าชื่อเหล่านี้ไม่ได้แสดงถึงความหมายที่ดี ฉันจะเรียกพวกเขาว่า MoveAndSetCurrent และ SetCurrent ตามลำดับ แม้ว่าการตั้งชื่อดังกล่าวระบุว่าการดำเนินการขั้นพื้นฐานควรเป็น Move และ SetCurrent

No comments:

Post a Comment