HomeCoding-ProgramingMQL4 Basic - โครงสร้างหลักๆของโปรแกรมต่างๆในภาษาMQL4

MQL4 Basic – โครงสร้างหลักๆของโปรแกรมต่างๆในภาษาMQL4

-

เราจะมาลองเปิดโค๊ดของ indicator,script หรือ EA ที่อยู่ใน MT4 แล้วดูโครงสร้างหลักของโค๊ดกันนะครับ ยกตัวอย่างโค๊ดของ indicator ที่ชื่อว่า Parabolic Zar (parabolic.mq4)

ตัวอย่างโค๊ด parabolic.mq4

การใส่ comment ใน mql4

กรอบสีฟ้าทั้งหมดนั้นคือส่วนที่เรียกว่า comment ซึ่งจะไม่มีผลใดๆต่อการทำงานของโปรแกรม เป็นเพียงการใส่ข้อมูล หรือ โน๊ตต่างๆ ไว้เพื่อง่ายต่อการเข้าใจว่าส่วนๆนั้นคืออะไร

การใส่ comment มี 2 แบบ คือ

1. ใช้เครื่องหมาย // ซึ่งหลังเครื่องหมายนี้ทั้งหมดในบรรทัดนั้น จะถือว่าเป็น comment

// ข้อความ comment พิมพ์ไว้เพื่อช่วยในการเขียนโค๊ดให้เข้าใจง่ายขึ้น



2. ใช้เครื่องหมายเปิดและปิดด้วย /* ……(ข้อความ comment)…… */ ข้อความที่อยู่ระหว่างสัญลักษณ์เปิด และ ปิดนี้ทั้งหมด จะถือเป็น comment – วิธีนี้เหมาะกับกรณีที่ต้องการใส่ comment ยาวๆ หลายบรรทัด

/* ข้อความทั้งหมดในสัญลักษณ์เปิด-ปิดนี้
จะไม่ถูกcompile ไม่มีผลต่อการทำงานของ
โปรแกรมใดๆทั้งสิ้น 
จริงๆนะ....
*/

คำสั่งต่างๆในกรอบสีชมพู เรียกว่าส่วนของ Preprocessor จะอยู่ด้านบนของโค๊ด มีไว้เพื่อบอก MQL4 Compiler เตรียมการ compile โค๊ดโปรแกรมนี้ ด้วยคุณสมบัติที่กำหนดไว้ ซึ่งสามารถประกาศ property ได้อีกหลายอย่างสามารถดูเพิ่มเติมได้ตามลิงค์นี้

จากตัวอย่างด้านบน เป็น property ที่ระบุถึง copyright , web link , คำอธิบายของ indicator ตัวนี้ และลักษณะอื่นๆ เช่น

#property indicator_chart_window – indicator ตัวนี้จะแสดงผลในหน้าต่างหลักหรือกราฟราคานั่นเอง
#property indicator_buffers 1 – จะมีการแสดงค่าของ indicator 1 ค่า
#property indicator_color1 Lime – แสดงผลออกมาด้วยเส้นสีเขียว Lime

ซึ่งเราจะเห็น Property เหล่านี้เวลาเรานำ indicator ตัวนี้ใส่ลงกราฟราคา จะขึ้นหน้าต่างดังรูป

มาที่คำสั่งในกรอบสีน้ำเงิน – เป็นการรับค่าตัวแปรภายนอกจากเทรดเดอร์ ทำให้เทรดเดอร์สามารถกำหนดการตั้งค่าของ indicator ตัวนี้ได้เอง ดังนั้นเวลาที่เราลง indicator ในกราฟ ก็จะมีแถบ input ให้เราใส่ค่าเองได้

ในกรอบสีเขียว เป็นการประกาศสร้างตัวแปรอื่นๆที่จะมีการเรียกใช้งานตลอดภายในโปรแกรมนี้ ขอยกตัวอย่างบางส่วนของรูปด้านบนนะครับ

double  ExtSarMaximum;  // ตัวแปรนี้ชื่อว่า ExSarMaximum เป็นตัวแปรประเภพ double
int     ExtLastReverse;  // ตัวแปรนี้ชื่อว่า ExLastReverse เป็นตัวแปรประเภพ int
bool    ExtDirectionLong; // ตัวแปรนี้ชื่อว่า ExDirectionLong เป็นตัวแปรประเภพ bool

สร้างตัวแปรที่ชื่อ ExSarMaximum ซึ่งตัวแปรนี้มีประเภทข้อมูลเป็นแบบ double (ตัวเลขที่มีจุดทศนิยม)
สร้างตัวแปรที่ชื่อ ExLastReverse ซึ่งตัวแปรนี้มีประเภทข้อมูลเป็นแบบ int (ตัวเลขจำนวนเต็ม ไม่มีจุดทศนิยม)
สร้างตัวแปรที่ชื่อ ExDirectionLong ซึ่งตัวแปรนี้มีประเภทข้อมูลเป็นแบบ bool (เก็บค่า True หรือ False)

* ถ้ายังไม่รู้จักประเภทตัวแปรต่างๆ ไม่ต้องกังวลนะครับ เดี๋ยวจะค่อยๆอธิบายให้นะครับ *

ในกรอบสีเหลือง คือ ฟังค์ชั่น OnInit() ซึ่งเป็นส่วนเริ่มต้นการทำงานของ indicator (รวมถึง EA ด้วย) ใช้ในการตรวจเช็คความพร้อม ความถูกต้องของตัวแปร การตั้งค่าการสร้าง object ต่างๆของ indicator ก่อนที่จะเข้าสู่ฟังค์ชั่นการคำนวณค่าต่างๆของ indicator จริงๆต่อไปใน ฟังค์ชั่น OnCalculate()

กรอบสีม่วง เป็นฟังค์ชั่น OnCalculate() เป็นชุดคำสั่งหลักในการคำนวณค่าของ indicator ตัวนั้นๆ แล้วแสดงผลออกมาเป็นกราฟฟิก เส้นสายต่างๆอย่างที่เราเห็นกันครับ

โดยสรุปจากตัวอย่างโค๊ดของ Indicator ด้านบนสามารถเขียนเป็น Flow โครงสร้างหลักๆได้ตามภาพด้านล่างครับ

ภาพ Code Flow นี้แสดงถึงFlow ของโค๊ดโปรแกรม EA และ Script ด้วยนะครับ ซึ่งจะเห็นว่ามีความแตกต่างกันเล็กน้อย ไว้จะมาอธิบายเพิ่มเติมในครั้งต่อๆไปนะครับ

หมายเหตุ…หากใครได้โหลด indicator หรือ EA จากเว็บอื่นๆมาแล้วเห็นว่าในโค๊ด ไม่มี function OnInit() OnCalculate() OnStart() OnTick() OnDeinit() แต่เจอฟังค์ชั่น init() start() และ deinit() แทน นั่นหมายความว่าโค๊ดโปรแกรม mql4 นั้นเขียนด้วยภาษา mql4 แบบเก่า ซึ่งบางอย่างอาจจะใช้งานได้ หรือไม่ได้กับ MT4 ป้จจุบันนะครับ

1 COMMENT

  1. พอจะรู้วิธีเขียน indicator ที่แสดง option ให้มี parameter tab และ apply to:เป็น drop down menu มีตัวเลือก previous first indicator’s data ได้อ่ะป่าวอ่ะคับ

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