ตัวชี้วัดนี้จะแสดงขนาดของแท่งเทียน โดยคำนวณจากสูตร "minuend" ลบ "deduction" ซึ่ง "minuend" และ "deduction" สามารถเป็นค่าใดก็ได้จากสี่ค่า (เปิด, สูงสุด, ต่ำสุด หรือ ปิด)
จำนวนแท่งเทียนที่แสดงขนาดจะถูกจำกัดในพารามิเตอร์การตั้งค่า (InpNumberOfBars) จำนวนนี้จะไม่เปลี่ยนแปลงแม้จะมีแท่งเทียนใหม่เปิดขึ้น:
เกี่ยวกับการซิงค์แท่งเทียนและวัตถุกราฟิก
การจัดการวัตถุกราฟิก
ชื่อของวัตถุต่าง ๆ จะถูกเก็บในอาร์เรย์ m_arr_names[] ซึ่งขนาดจะเท่ากับ InpNumberOfBars ที่ตั้งไว้ ทำไมถึงใช้เป็นอาร์เรย์แทนตัวแปรสตริงธรรมดา? นี่เป็นการเตรียมพร้อมสำหรับอนาคต
การตั้งชื่อวัตถุ
ชื่อของวัตถุที่สอดคล้องกับแท่งเทียนที่ 'index' จะถูกสร้างขึ้นจากสูตรต่อไปนี้:
name[index] = m_prefix + ("high_" หรือ "low_") + TimeToString(time[index])
เมื่อคุณต้องการลบวัตถุทั้งหมด
ตัวชี้วัดจะถูกโหลดใหม่ในกรณีต่อไปนี้:
- การลบตัวชี้วัดออกจากกราฟ;
- การปิดเทอร์มินัล (หากตัวชี้วัดกำลังทำงานบนกราฟ);
- การโหลดเทมเพลต หากตัวชี้วัดทำงานอยู่บนกราฟนี้;
- การปิดกราฟที่ตัวชี้วัดทำงาน;
- การเปลี่ยนโปรไฟล์ หากตัวชี้วัดทำงานอยู่บนกราฟใดกราฟหนึ่งของโปรไฟล์ก่อนหน้า;
- การเปลี่ยนสัญลักษณ์และ/หรือช่วงเวลา ของกราฟที่ตัวชี้วัดทำงาน;
- การเปลี่ยนการตั้งค่าของตัวชี้วัด.
ดังนั้นเราจึงทำการลบวัตถุกราฟิกที่สร้างขึ้นทั้งหมด:
- ใน OnDeinit()
- ใน OnInit() (เพื่อป้องกันกรณีที่มีวัตถุที่ยังไม่ได้ลบ)
- ใน OnCalculate(), เมื่อ prev_calculated==0.
นอกจากนี้เรายังทำการล้างอาร์เรย์ m_arr_names[]:
- ใน OnCalculate(), เมื่อ prev_calculated==0 หรือเมื่อ prev_calculated!=rates_total
การรักษาจำนวนวัตถุกราฟิกให้คงที่:
เมื่อแท่งเทียนใหม่ปรากฏขึ้น เงื่อนไข prev_calculated!=rates_total จะถูกกระตุ้น ในกรณีนี้จะทำการลบวัตถุทั้งหมด และอาร์เรย์ m_arr_names[] จะถูกล้าง.
โพสต์ที่เกี่ยวข้อง
- ค้นหา Pin Bar: เครื่องมือวิเคราะห์สำหรับ MetaTrader 5
- เครื่องมือ Open Range Breakout สำหรับ MetaTrader 5
- FX Multi-Meter II: เครื่องมือช่วยเทรดที่ครบครันสำหรับนักลงทุน
- เครื่องมือ MetaCOT 2 CFTC ToolBox - ชุดตัวชี้วัดสำหรับการวิเคราะห์ใน MetaTrader 4
- เครื่องมือ Master Tools - อินดิเคเตอร์สำหรับ MetaTrader 4