ถ้าเราสร้างไฟล์ EA ขึ้นมาใหม่เราจะเห็นว่ามีฟังก์ที่สร้างมาให้อัตโนมัติ มาดูกันนะครับว่ามีอะไรบ้างแล้วแต่ละส่วนมีไว้ทำอะไร
/* ส่วนนี้เป็นการประกาศฟังก์ชัน ชื่อฟังก์ชันคือ init */
/* int (integer - เลขจำนวนเต็ม) หน้าชื่อฟังก์ชั่น คือชนิดของค่าที่ส่งกลับคืน หลังจากทำงานในฟังก์ชันนี้แล้ว */
int init () {
/* ฟังก์ชันนี้เป็นฟังก์ชั่นหลักของ EA ซึ่งจะทำงานเมื่อเริ่มต้น EA ครั้งแรก */
/* ถ้าเรามีตัวแปรไหนที่ต้องการให้มีการกำหนดค่าก่อนที่จะเริ่มการทำงานของ EA เราก็สามารถมากำหนดในฟังก์ชันนี้ได้ */
/* ส่งค่า 0 กลับคืน */
return(0);
}
/* ฟังก์ชันนี้ชื่อ deinit คืนค่ากลับเป็น int พอมองออกรึยังครับ */
int deinit () {
/* ฟังก์ชั่นจะทำงานอัตโนมัติเหมือนฟังก์ชั่น init แต่ต่างกันตรงที่จะทำงานตอนที่เราปิด EA ครับ */
/* ซึ่งเราจะใช้ฟังก์ชันนี้เพื่อเขียนคำสั่งลบสิ่งที่เราสร้างตอนที่ EA ทำงาน */
/* ส่งค่า 0 กลับคืน */
return(0);
}
/* ตามชื่อฟังก์ชันแหละครับ เมื่อเราเริ่มรัน EA หลังจากที่ทำงานฟังก์ชัน init เสร็จแล้ว ก็จะมาทำฟังก์ชันนี้ต่อ */
int start () {
/* ความรู้ในการเทรดที่เรามี เราจะเปลี่ยนมันให้เป็นโค๊ตแล้วเขียนมันให้ทำงานอัตโนมัติที่ตรงนี้แหละครับ */
/* จะทำให้ได้กำไรหรือว่าขาดทุนนั้นนอกจากมีกลยุทธ์ที่ดีแล้วก็ต้องอาศัยการเขียนโค๊ดที่มีประสิทธิภาพด้วย ถึงจะทำให้เราบรรลุวัตถุประสงค์ที่ตั้งไว้นะครับ ถ้าความคิดดีแต่เขียนโค๊ตไม่ดีก็อาจทำให้ขาดทุนได้หรือถึงขั้นล้างพอร์ตได้ครับ */
/* แต่ว่าหลังจากที่เรา EA เสร็จ อย่างน้อยเราก็ต้องทดสอบก่อนว่ามันสามารถทำงานได้ตามที่เราเขียน แล้วค่อยนำไปใช้งานจริง */
/* มาเริ่มกันเลยดีกว่าครับ */
/* ก่อนที่เราจะส่งคำสั่งซื้อขาย หรือว่าเปิด Order เราก็ต้องการวิเคราะห์ด้วยเครื่องมือต่าง ๆ ตามความถนัดของแต่และคน อาจจะใช้ RSI MA MACD STOCHASTICหรืออื่นๆ อีกมากมาย ซึ่งเราจะมาศึกษาวิธีการเขียนโค๊ตเพื่อ นำค่าจากเครื่องมือต่างๆ เหล่านี้ มาใช้ในการกำหนดเป็นเงื่อนไขซื้อขาย หรือปิด order */
/* แต่ตอนนี้ผมอยากให้เข้าใจคำสั่งในการซื้อขายก่อนครับ ซึงหลังจาก วิเคราะห์สัญญาณแล้ววก็ทำการเปิด Order ด้วยคำสั่งOrderSend */
int ticket = OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0,"EA Comment",255,0,CLR_NONE);
/* การส่งคำสั่งด้วยฟังก์ชั่นก์ OrderSend เมื่อฟังก์ชั้นนี้ทำงานเสร็จก็จะส่งค่ากลับมาเป็นชนิด int เราจึงประกาศตัวแปรชื่อ ticket เป็นชนิด int เพื่อรับค่าจากฟังก์ OrderSend */
/* ซึ่ง Parameter ที่ต้องส่งเข้าไปในฟังก์ชั่น OrderSend ได้แก่ */
/* Symbol() เป็นฟังก์ที่ใช้บอกชื่อคู่เงินที่เรากำลังจะเทรด */
/* OP_BUY เพื่อบอกว่าเราต้องการจะเปิด Order ซื้อ ถ้าเราจะเปิด Order ขายก็กำหนดเป็น OP_SELL */
/* 1.0 เป็นค่าของ Lot Size ที่เราจะเทรด ซึ่งค่านี้สามารถปรับเปลี่ยนตามความต้องการของผู้เทรด ซึ่งต่อไปเราจะเขียนเป็นตัวแปร แล้วสามารถรับค่าจากผู้เทรดได้ */
/* Ask ในการเปิดแบบ BUY เราต้องซื้อที่ราคา Ask ถ้าเปิดแบบ SELL ขายเราต้องซื้อที่ราคา Bid */
/* 3 หมายถึง slippage ก็คือราคาที่เรายอมให้มีเปลี่ยนแปลงได้สูงสุดกี่จุด จากราค่าขณะที่ส่งคำสั่งจนถึงเวลาที่ Server ประมวลผล */
/* 0 ตัวแรกหมายถึงจุด Stop Loss ถ้าใส่ 0 คือไม่กำหนด แต่ในการเทรดการเปิด Order ควรกำหนดจุด Stop Loss ด้วย ซึ่งวิธีการคำนวนจุด Stop Loss จะมาพูดในบทความต่อไป */
/* 0 ตัวที่สองคือค่าจุดเป้าหมายของกำไร ซึ่งเมื่อราคามาถึงจุดนี้ก็จะทำการปิด Order ให้อัตโนมัติ ถ้าใส่ 0 คือไม่ได้กำหนด ซึ่งผู้เทรดสามารถเขียนเงื่อนไขขึ้นมาเพื่อทำการส่งคำสั่งปิด Order เองได้จะกล่าวในบทความถัดไป */
/* "EA Comment" เป็นคอมเมนท์ ที่เราตั้งเพื่อความเข้าใจของเราเอง */
/* 255 เป็นตัวเลขที่ใช้ระบุหมายเลขคำสั่ง ที่เราเข้าใจเอง */
/* 0 เป็นการกำหนดระยะเวลาในการยกเลิก Order ใช้สำหรับคำสั่งที่ Pending เท่านั้น */
/* CLR_NONE เป็นการกำหนดสีของลูกศรเวลาเปิด Order ถ้าไม่ให้มีลูกศรก็หนดเป็น CLR_NONE */
/* ถ้าการส่งคำสั่งสำเร็จไม่มี Error เกิดขึ้น ตัวแปร ticket ก็จะได้รับค่าหมายเลข ticket จาก Server */
/* จบการทำงานคืนค่า 0 กลับไป หลังจากนั้นจะเข้ามาทำฟังก์ชันนี้อีกเมื่อมีการส่งข้อมูลมาจากโบรกเกอร์ของเรา */
/* ซึ่งถ้าตรงกลับช่วงที่ตลาดปิด เสาร์-อาทิตย์ หลายคนอาจสงสัยว่าเขียน EA เสร็จแล้ว ทดสอบรัน ปรากฏว่าไม่เห็นมีอะไรเกิดขึ้นเลย ไม่ต้องสงสัยแแล้วนะครับ */
return(0);
}