MultiZigZag เป็นตัวแปรที่พัฒนาขึ้นจากอัลกอริธึม ZigZag ที่ถูกนำเสนอพร้อมกับ MetaTrader 4 ในช่วงปี 2005-2006
อัลกอริธึมนี้มีประสิทธิภาพมากและถูกใช้ในหลายๆ อินดิเคเตอร์ที่ปรับแต่งเอง โดยเริ่มแรกได้ถูกแปลงเป็น MQL4 โดย Rosh ขอบคุณเขามากๆ สำหรับการทำงานนี้ ถ้าใครรู้ว่าใครเป็นคนคิดค้นอัลกอริธึมนี้ กรุณาเขียนชื่อ (หรือนามแฝง) ของผู้ประดิษฐ์ในคอมเมนต์ด้วยนะครับ ผมยังอยากรู้ว่ามันถูกเขียนในภาษาไหนและใช้ในแพลตฟอร์มการเทรดไหน
ข้อเสียหลักของเวอร์ชันเริ่มต้นในช่วงปี 2005-2006:
- 1) การโหลดโปรเซสเซอร์สูงเนื่องจากต้องคำนวณ ZigZag ใหม่ทั้งหมดในทุกๆ ทีค (tick)
- 2) การวาดที่ไม่ถูกต้อง เส้น ZigZag มักจะห้อยอยู่ในอากาศโดยไม่มีการเชื่อมโยงกับจุดสูงสุด (ต่ำสุด) ของแท่ง
- 3) ZigZag จะเริ่มลอยถ้าคุณพยายามเลื่อนกลับไปดูประวัติและจะถูกวาดโดยไม่มีการเชื่อมโยงทางสายตากับกราฟ
แต่เวอร์ชันนี้ของ ZigZag ได้รับการปรับปรุงให้ไม่มีข้อเสียดังกล่าว โดยจะคำนวณเฉพาะสามเส้นสุดท้ายเท่านั้น และการคำนวณจะเกิดขึ้นเมื่อราคาผ่านออกจากส่วนที่คำนวณของแท่งศูนย์ (zero bar)
ทุก ZigZag ใช้บัฟเฟอร์สองตัว หนึ่งสำหรับจุดสูงสุดและอีกหนึ่งสำหรับจุดต่ำสุด ซึ่งช่วยให้แสดงจุดสูงสุดและจุดต่ำสุดบนแท่งเดียวได้ นอกจากนี้ยังมีบัฟเฟอร์ว่างอีกสองตัว สำหรับผู้ที่ต้องการสามารถเขียนโค้ดเพิ่มเติมและแทรกโค้ดชุดที่สี่ ซึ่งเป็นการเรียนรู้ที่ดีสำหรับผู้ที่ฝึกเขียน MQL4 หรืออาจใช้บัฟเฟอร์ว่างในการทำงานอื่นๆ หากต้องการนำ ZigZag ไปใช้ในระบบที่พัฒนา
การคำนวณและการวาด ZigZag จากกราฟเวลาที่ใหญ่กว่าถูกดำเนินการโดยไม่ใช้ฟังก์ชัน icustom() เพื่อจุดประสงค์ในการอัตโนมัติ เราสามารถละเว้นบัฟเฟอร์ของอินดิเคเตอร์ได้ ซึ่งจะทำให้สามารถคำนวณ ZigZag สำหรับทุกกรอบเวลาพร้อมกันและสำหรับสัญลักษณ์ใดๆ ได้ หากมีหน่วยความจำ RAM เพียงพอ
การดำเนินการคำนวณโดยไม่ใช้ฟังก์ชัน icustom() ช่วยให้เราสามารถค้นหารูปแบบ (Gartley หรืออื่นๆ) ไม่เพียงแต่ในกรอบเวลาปัจจุบัน แต่ยังสามารถเลือกกรอบเวลาอื่นได้และทำได้หลายกรอบเวลาในเวลาเดียวกัน
พารามิเตอร์
พารามิเตอร์ภายนอกส่วนใหญ่เป็นตัวแปรสตริง
พารามิเตอร์จะถูกแยกด้วยเครื่องหมายนับ (comma) ในแต่ละตัวแปรสตริงสำหรับ ZigZag แต่ละตัว โดยที่เลขตัวแรกคือสำหรับ ZigZag ตัวแรก ตัวที่สองสำหรับตัวที่สอง และตัวที่สามสำหรับตัวที่สาม
ตัวแปร ExtDepth, ExtDeviation และ ExtBackstep เป็นพารามิเตอร์มาตรฐานสำหรับ ZigZag หากตั้งค่า ExtDepth=0 จะไม่แสดง ZigZag ที่เกี่ยวข้อง
ExtMaxBar - จำนวนแท่งที่ ZigZag จะถูกคำนวณ หากตั้งค่า 0 จะคำนวณบนกรอบเวลาปัจจุบัน
คุณสามารถกำหนดค่าดังต่อไปนี้: 0-1-5-15-30-60-240-1440-10080-43200
ExtReCalculate - จำนวนจุดสุดยอดของ ZigZag ที่จะถูกคำนวณใหม่ในโหมดเรียลไทม์ แนะนำไม่ให้เปลี่ยนพารามิเตอร์นี้
ZigZag จะแสดงตั้งแต่ H1-H4-D1 โดยค่าเริ่มต้น จะเริ่มแสดงตั้งแต่กรอบเวลา 1 นาทีถึงกรอบเวลารายวัน
ตัวอย่างในภาพ: ZigZag จาก H1 ถูกวาดด้วยสี Aqua, H4 - สีแดง และ D1 - สีเหลือง

โพสต์ที่เกี่ยวข้อง
- เครื่องมือ Open Range Breakout สำหรับ MetaTrader 5
- เครื่องมือ Master Tools - อินดิเคเตอร์สำหรับ MetaTrader 4
- FX Multi-Meter II: เครื่องมือช่วยเทรดที่ครบครันสำหรับนักลงทุน
- Volume Profile + Range v6.0: เครื่องมือวิเคราะห์การซื้อขายใน MetaTrader 5
- สัญญาณข้ามค่าเฉลี่ยเคลื่อนที่ครั้งเดียว - เครื่องมือช่วยเทรดใน MetaTrader 4