HomeCoding-ProgramingMQL4 Basic - การสร้าง Object ด้วย ObjectCreate

MQL4 Basic – การสร้าง Object ด้วย ObjectCreate

-

Object ใน MT4 ไม่ว่าจะเป็น trendline เส้นแนวตั้ง แนวนอน แนว Fibo รวมถึง Text ข้อความแบบต่างๆ เหล่านั้น เราสามารถเขียนโปรแกรมให้สร้าง object เหล่านั้นได้ด้วยฟังค์ชัน ObjectCreate รูปแบบการเรียกใช้ฟังค์ชั่นเป็นดังนี้ครับ

bool ObjectCreate(string name, int type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0)
  • name – ชื่อของ Object
  • type – ชนิดของ Object ที่ต้องการสร้าง เช่น OBJ_HLINE เป็นการสร้างเส้นแนวนอน สามารถดูรายละเอียด Object Type อื่นได้ตามลิงค์นี้ครับ
  • window – กำหนดให้ Object ถูกสร้างขึ้นที่หน้าต่างไหน โดยหน้าต่างหลักที่แสดงราคาคู่เงิน จะเป็น 0
  • time1 – ตำแหน่งบนแกนเวลา (แกน X) ของพิกัดที่ 1
  • price1 – ตำแหน่งบนแกนราคา (แกน Y) ของพิกัดที่ 1
  • time2 – ตำแหน่งบนแกนเวลา (แกน X) ของพิกัดที่ 2
  • price2 – ตำแหน่งบนแกนราคา (แกน Y) ของพิกัดที่ 2
  • time3 – ตำแหน่งบนแกนเวลา (แกน X) ของพิกัดที่ 3
  • price3 – ตำแหน่งบนแกนราคา (แกน Y) ของพิกัดที่ 3

ยกตัวอย่างเช่น หากเราต้องการสร้างเส้นแนวนอน (Horizontal Line) ที่ราคา High ของแท่งราคาที่ 6 เราสามารถเขียนได้ดังนี้

ObjectCreate("MyHLine",OBJ_HLINE,0,0,High[5]) ; 

ความหมายคือ สร้าง Object โดยตั้งชื่อ objectนี้ ว่า MyHLine , Object นี้เป็นแบบ OBJ_HLINE (เส้นแนวนอน) สร้างในหน้าต่างที่ 0 (หน้าต่างราคาหลัก) , พิกัดแกวเวลา เป็น 0 เพราะเป็นเส้นแนวนอนขีดตลอดทุกช่วงเวลา พิกัดแกนราคา เป็น ค่า High ของแท่งเทียนที่ 6 (เรียก High[5] เพราะแท่งเทียนปัจจุบันเป็นแท่งที่ 0) ผลลัพธ์ของโค๊ดนี้จะได้ ตามรูปครับ (เส้นแนวนอน สีแดง ที่ระดับราคา High ของแท่งเทียนที่ 6)

อีกตัวอย่างนะครับ ถ้าเราต้องการสร้าง Trendline ที่ลากจากจุด Low แท่งที่ 14 ไปยัง Low ของแท่งที่ 2 เราสามารถเขียนโค๊ดได้แบบนี้ครับ

ObjectCreate("MyTrend",OBJ_TREND,0,Time[13],Low[13],Time[1],Low[1]) ; 

ความหมายคือ สร้าง Object ที่ชื่อว่า MyTrend โดยเป็น object ประเภท OBJ_TREND (เส้น Trendline) สร้างในหน้าต่าง 0 (หน้าต่างราคาหลัก ) โดยจุดเริ่มต้น Trendline อยู่ที่พิกัดที่1 แกน X เป็น Time[13] (วันเวลาของแท่งที่14) แกน Y เป็น Low[13] (ราคา low ของแท่ง 14) ลากผ่านพิกัดที่ 2 แกน X เป็น Time[1] แกน Y เป็น Low[1] จะได้ผลลัพธ์ตามรูปครับ

ด้านล่างนี้เป็น Object Type แบบอื่นๆที่เราสามารถ create ขึ้นมาได้ครับ

Object Type
Valueคำอธิบาย
OBJ_VLINE0เส้นแนวตั้ง ระบุแค่แกนเวลาในพิกัดแรกเท่านั้น แกนราคาไม่ต้องระบุ ใส่เป็น 0
OBJ_HLINE1เส้นแนวนอน ระบุแค่แกนราคาในพิกัดแรกเท่านั้น แกนเวลาไม่ต้องระบุใส่เป็น 0
OBJ_TREND2เส้นแนวโน้ม Trend line ต้องระบุ 2 พิกัด Time1 Price1 Time2 Price2
OBJ_TRENDBYANGLE3เส้น Trend line โดยระบุองศา ระบุข้อมูล 2 พิกัด หรือ อาจจะระบุเพียง 1พิกัด แล้วตั้งค่าองศาการเอียง โดยใช้ฟังค์ชั่น Objectset() แก้ไขค่า property องศาของ Object ที่ OBJPROP_ANGLE
OBJ_REGRESSION4 เส้น Regression Channel ระบุเพียง 2 พิกัด เฉพาะแกนเวลา Time 1 Time2 ส่วน แกนราคา ละเป็น 0
OBJ_CHANNEL5Equidistant channel ต้องระบุ ทั้ง 3 พิกัด
OBJ_STDDEVCHANNEL6Standard deviation channel ระบุเพียง 2 พิกัด เฉพาะแกนเวลา Time 1 Time2 ส่วน แกนราคา ละเป็น 0
OBJ_GANNLINE7Gann line. ระบุ 2 พิกัด แต่แกนราคาในพิกัดที่ 2 ไม่ต้องระบุ ใส่เป็น 0
OBJ_GANNFAN8Gann fan. Uses 2 coordinates, but price part of the second coordinate is ignored. To set the ratio between the price and time scales (OBJPROP_SCALE property) use ObjectSet() function.
OBJ_GANNGRID9Gann grid. Uses 2 coordinates, but price part of the second coordinate is ignored. To set the ratio between the price and time scales (OBJPROP_SCALE property) use ObjectSet() function.
OBJ_FIBO10Fibonacci retracement ระบุ 2 พิกัด ใช้ฟังค์ชั่น ObjectSet() ในการตั้งค่า property อื่นๆ เช่นจำนวน Level ที่ต้องการวาด (OBJPROP_FIBOLEVELS ) ค่าสัดส่วน Fibo แต่ละ level (OBJPROP_FIRSTLEVEL+n )
OBJ_FIBOTIMES11Fibonacci time zones ระบุ 2 พิกัด ใช้ฟังค์ชั่น ObjectSet() ในการตั้งค่า property อื่นๆ เช่นจำนวน Level ที่ต้องการวาด (OBJPROP_FIBOLEVELS ) ค่าสัดส่วน Fibo แต่ละ level (OBJPROP_FIRSTLEVEL+n )
OBJ_FIBOFAN12Fibonacci fan ระบุ 2 พิกัด ใช้ฟังค์ชั่น ObjectSet() ในการตั้งค่า property อื่นๆ เช่นจำนวน Level ที่ต้องการวาด (OBJPROP_FIBOLEVELS ) ค่าสัดส่วน Fibo แต่ละ level (OBJPROP_FIRSTLEVEL+n )
OBJ_FIBOARC13Fibonacci arcs ระบุ 2 พิกัด ใช้ฟังค์ชั่น ObjectSet() ในการตั้งค่า property อื่นๆ เช่นจำนวน Level ที่ต้องการวาด (OBJPROP_FIBOLEVELS ) ค่าสัดส่วน Fibo แต่ละ level (OBJPROP_FIRSTLEVEL+n )
OBJ_EXPANSION14Fibonacci expansions. ระบุ 3 พิกัด ใช้ฟังค์ชั่น ObjectSet() ในการตั้งค่า property อื่นๆ เช่นจำนวน Level ที่ต้องการวาด (OBJPROP_FIBOLEVELS ) ค่าสัดส่วน Fibo แต่ละ level (OBJPROP_FIRSTLEVEL+n )
OBJ_FIBOCHANNEL15Fibonacci channel. ระบุ 3 พิกัด ใช้ฟังค์ชั่น ObjectSet() ในการตั้งค่า property อื่นๆ เช่นจำนวน Level ที่ต้องการวาด (OBJPROP_FIBOLEVELS ) ค่าสัดส่วน Fibo แต่ละ level (OBJPROP_FIRSTLEVEL+n )
OBJ_RECTANGLE16สี่เหลี่ยม ระบุ 2 พิกัด
OBJ_TRIANGLE17สามเหลี่ยม ระบุ 3 พิกัด
OBJ_ELLIPSE18วงรี ระบุ 2 พิกัด
OBJ_PITCHFORK19Andrews pitchfork ระบุ 3 พิกัด
OBJ_CYCLES20Cycle Lines ระบุ 2 พิกัด
OBJ_TEXT21ข้อความ Text ระบุพิกัดเพียง 1 พิกัด ใช้ฟังค์ชั่น ObjectSetText() ในการแก้ไขข้อความใน Text
OBJ_ARROW22ลูกศร รวมถึงสัญลักษณ์ Symbol อื่นๆ ระบุเพียง 1 พิกัด ใช้ฟังค์ชั่น ObjectSet() ในการตั้งค่าเป็นสัญลักษณ์ Symbol แบบอื่นๆ ที่ค่าproperty OBJPROP_ARROWCODE
OBJ_LABEL23Text label. ระบุตำแหน่งของ Text Label โดยใช้ฟังค์ชั่น ObjectSet() แก้ไขค่า property ต่างๆ (OBJPROP_CORNER, OBJPROP_XDISTANCE, OBJPROP_YDISTANCE) ใช้ฟังค์ชั่น ObjectSetText() ในการแก้ไขข้อความใน Text Label

ยังไงเพื่อนๆลองฝึกเขียน object อื่นๆเล่นดูนะครับ ได้ผลยังไง ติดปัญหาตรงไหนพูดคุยแลกเปลี่ยนกันได้นะครับ.. Happy Coding ครับ

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.

LATEST POSTS

เขียน EA ส่งแจ้งเตือนเข้า Line | Send Line Notify in MT4/MT5 EA

https://youtu.be/X9N2aaS-alQ Download LineNotify MQL4 Script ==== Chapters ====00:00 เกริ่น01:15 ฟังค์ชั่น LineNotify ใน MQL4 script02:44 การขอ Access Token จาก Line notify04:15 ตัวอย่างการเรียกใช้ฟังค์ชั่น LineNotify ใน EA06:43 ฟังค์ชั่น LineNotify นี้ทำงานยังไง?07:53...

เขียนโค๊ด MQL4 ปิดออเดอร์ทั้งหมดใน MT4 | Close All Orders MQL4 Coding

https://youtu.be/b2P7PW6lqP0 ในคลิปนี้เรามาดูวิธีเขียน code script mql4 ที่จะช่วยเราปิดออเดอร์ทั้งหมดใน MT4บางคนอาจจะเคยเขียนแล้ว ทั้งๆที่ไม่มี error อะไรเลย แต่ก็ปิดออเดอร์ได้ไม่หมด เพราะอะไรยังไงลองดูเป็นแนวทางเพิ่มเติมละกันนะครับ เพื่อนๆสามารถนำ code นี้ไปปรับแต่งสร้างเป็นฟังค์ชั่นที่ใช้ภายใน EA ของเพื่อนๆได้นะครับ ลิงค์เว็บที่ได้กล่าวถึงในคลิป https://www.mql5.com/en/forum/139654 สำหรับเพื่อนๆที่เพิ่งได้ดูคลิปนี้เป็นคลิปแรกแนะนำดูคลิปเก่าๆที่ผมได้ปูพื้นฐานเกี่ยวกับการเขียน EA ด้วย MQL4 ตาม Playlist ด้านล่างนี้ได้นะครับhttps://www.youtube.com/playlist?list=PLC5FDftkfAqyeg6ipIo0Hqm7NqpT7EkxHดูแล้วไม่เข้าใจยังไง comment มาพูดคุยกันได้นะครับ=======...

สอนเขียน MQL4 Indicator หาราคาต้นทุนเฉลี่ยเพื่อ Breakeven

ในคลิปนี้ เรามาฝึกการเขียน Code MQL4 กันโดยจะมาลองสร้าง MT4 indicator ที่ช่วยแสดงราคาต้นทุนเฉลี่ยรวมของทุกออร์เดอร์ฝั่ง buy หรือ ฝั่ง sell ในคู่เงินนั้นๆกันนะครับ https://www.youtube.com/watch?v=HVbAhl7m4_4 ราคาต้นทุนเฉลี่ยรวมนี้ จะเป็นระดับราคาที่ทำให้ Order ฝั่งนั้นๆ ( buy หรือ sell) สามารถปิดออร์เดอร์แล้วจะไม่กำไรหรือขาดทุน (Breakeven price) เมื่อเรารู้ราคา Breakeven...

สอนเขียน EA MQL4 เทรดด้วย 3 EMA + Fractal Trading System

https://youtu.be/5EI9xOs-3_Y ===== Chapters ===== 00:00 เกริ่น01:32 เงื่อนไขระบบเทรด 3 EMA+Fractal04:01 ตัวอย่างการทำงานของ EA07:00 Flowchart การทำงาน EA09:50 Mql4 Code : ส่วนของการรับค่า input11:17 Mql4 Code : อธิบายการทำงานหลักใน OnTick13:22 เขียน function เช็ค...

Follow us

0FansLike
9,070SubscribersSubscribe

Most Popular