ในการเทรด บางครั้งความคิดที่หนักอึ้งเกี่ยวกับการใช้งาน Oscillator ก็อาจทำให้เราเกิดความกังวลได้ โดยเฉพาะอย่างยิ่งเมื่อต้องทำการ Normalization ค่าของมัน ซึ่งหมายถึงการนำค่าการสั่นของ Indicator มาปรับให้อยู่ในช่วง [-1;1] การทำเช่นนี้จะเปิดโอกาสใหม่ๆ ในการควบคุมค่า Indicator โดยใช้ระดับที่เฉพาะเจาะจง (เช่น 0.5, 0.8 หรือค่าอื่นๆ) แทนที่จะอิงจากค่าประมาณที่ไม่แน่นอนตามสภาพตลาด หาก Indicator ของคุณได้รับการ Normalized แล้ว ก็ไม่ต้องกังวลกับเรื่องนี้ แต่ถ้าไม่... ก็ใช้มันเถอะนะ อย่าเพิ่งตัดสินฉันจากโค้ดที่ดิบๆ นี้เลย
พารามิเตอร์:
string Indicator - คือ Indicator ที่จะถูกส่งไปยังฟังก์ชัน icustom() ต้องขอโทษด้วยที่เครื่องมืออัตโนมัติของ MQL4 ยังไม่พอสำหรับการเพิ่ม Indicator มาตรฐานที่นี่ แต่ใครจะห้ามนักเขียนโค้ดอยากรู้อยากเห็นจากการเปลี่ยนแปลงการเข้ารหัสล่ะ?
int mode - หมายเลขของบรรทัดที่ต้องการจาก Indicator ต้นฉบับ...
int param1
int param2 - ... และพารามิเตอร์ต่างๆ ของมัน ขออภัยอีกครั้งที่จินตนาการของนักพัฒนา MQL มีแค่พอสำหรับการเขียนฟังก์ชันที่มีจำนวนพารามิเตอร์ที่เปลี่ยนแปลงได้ (เช่น Print) และการสนับสนุนการคำนวณที่อยู่ (ในความเห็นของฉัน สิ่งนี้ทำขึ้นเพื่อให้ผู้ใช้ทั่วไปรู้สึกด้อยกว่าเทพเจ้า :)))). ดังนั้นเรามาทำงานกันแบบ Manual ดีกว่า
ภาพ:

ความคิดเห็น:
การคำนวณจะถูกดำเนินการในสองขั้นตอน:
1. ในขั้นตอนการเริ่มต้น (ฟังก์ชัน init() ถ้าใครไม่รู้:) จะมีการวิเคราะห์อาร์เรย์ของข้อมูล Indicator ทั้งหมดเพื่อตรวจสอบช่วงที่โดดเด่น นั่นคือ ช่วงที่ค่าความถี่เฉลี่ยของ Indicator สามารถให้ข้อมูลเชิงลึกเกี่ยวกับค่าความถี่เฉลี่ย (MSV) แต่ในประวัติศาสตร์ทั้งหมด
ลองนึกภาพดูว่าถ้าเรามี Oscillator และเราได้คำนวณค่าความถี่เฉลี่ยของมันสำหรับหลายช่วงการสั่นต่อเนื่องกัน โดยเราจะตกลงกันว่าต้องมี เช่น 3 ช่วง (ซึ่งฉันมี - #define PERIODS_CHARACTERISTIC 3, แนะนำไม่ให้ใช้มากกว่านี้ มิฉะนั้นโปรเซสเซอร์จะทำงานหนักเกินไป)
หลักการคำนวณคือการกำหนดว่ามีบาร์เฉลี่ยนานหนึ่งช่วง (คือ 2*ช่วงเฉลี่ยระหว่างสองจุดศูนย์ของ Indicator) และการคูณค่าที่ได้ด้วย 3
2. จากนั้นเราจะคำนวณ MSV สำหรับบาร์แต่ละบาร์ (เช่น รากที่สองของการกระจาย) ในช่วงสามช่วงที่ได้มา เพื่อทำการ Normalization ค่าของ Indicator ของเรา และสุดท้ายให้นำทุกอย่างเข้าสู่ช่วงที่เคลื่อนไหว [-1;1] ด้วยการส่งผ่านมันไปยังฟังก์ชันคอมเพรสเซอร์ f(x)=tanh(x) (tangent ไฮเปอร์โบลิก ซึ่งฉันต้องเขียนฟังก์ชันนี้เอง :))
นี่คือตัวอย่างทางเทคนิค เส้นสีเขียวในภาพคือ Oscillator เก่าของฉันที่แสดงถึงความเคลื่อนไหวของตลาด (ในความเป็นจริงมันก็เหมือนกับ MACD แต่เป็นตามปริมาณ) เส้นสีน้ำเงินคือ Oscillator เช่นกัน แต่ผ่านการ -=Normalizator=- มาแล้ว ระดับ +-0.75, +-0.5, +-0.25 ชัดเจน และคุณสามารถเห็นว่าทุกจุดสูงสุดและต่ำสุด พื้นที่ที่เพิ่มขึ้นและลดลง และจุดที่ตัดกับระดับศูนย์ยังคงตำแหน่งเดิม
ก็เป็นอย่างนี้แหละ... ฉันก็ไม่ผิดถ้าบางคนไม่ชอบมันนะ
โพสต์ที่เกี่ยวข้อง
- เครื่องมือ Open Range Breakout สำหรับ MetaTrader 5
- เครื่องมือ Master Tools - อินดิเคเตอร์สำหรับ MetaTrader 4
- FX Multi-Meter II: เครื่องมือช่วยเทรดที่ครบครันสำหรับนักลงทุน
- Condition Scanner: เครื่องมือวิเคราะห์อัตโนมัติสำหรับ MetaTrader 4
- Volume Profile + Range v6.0: เครื่องมือวิเคราะห์การซื้อขายใน MetaTrader 5