ฉบับย่อ
- VR Smart Grid Lite Algorithm (VSG) คือ ขั้นตอนวิธีการทำงานที่ถูกกำหนดไว้อย่างชัดเจนเพื่อแก้ไขปัญหาหรือทำงานที่กำหนดไว้เป็นลำดับ
- บทความนี้สอนการใช้งาน Meta Editor เพื่อแก้ไข Code VSG (เบื้องต้น)
- นอกจากนี้เราจะอธิบายถึงการงานของ Code MQL4 ของ VSG EA อย่างละเอียดอีกด้วย
- Download EA Free
การใช้งานโปรแกรม Meta Editor
VR Smart Grid Lite Algorithm (VSG) คือ ขั้นตอนวิธีการทำงานที่ถูกกำหนดไว้อย่างชัดเจนเพื่อแก้ไขปัญหาหรือทำงานที่กำหนดไว้เป็นลำดับ โดยในบทนี้ผมจะอธิบายแบ่งออกเป็นสองส่วนด้วยกัน คือ
- ส่วนของการใช้งานโปรแกรม Meta editor เพื่อแก้ไขปรับปรุง EA Forex เบื้องต้น
- การอธิบายโค้ดการทำงานภาษา MQL4 ของ VR Smart Grid Lite EA Forex
“ความสำเร็จของ EA Forex ไม่ได้อยู่ที่ความฉลาดของโค้ดแต่อยู่ที่การปรับปรุง EA Forex อย่างต่อเนื่อง”
การแก้ไขปรับปรุง EA Forex ด้วย Meta Editor เป็นกระบวนการที่มีความซับซ้อน แต่อย่างไรก็ตามหากเรามีความรู้พื้นฐานอยู่แล้วสามารถทำได้ดังนี้
- เปิดโปรแกรม Meta Editor โดยการคลิ๊กที่ปุ่ม “Meta Editor” ในเมนูของ MetaTrader 4
- การเลือกไฟล์ที่ต้องการแก้ไข โดยคลิ๊กที่ File แล้วเลือก Open จากนั้นเลือกชื่อไฟล์ “VR Smart Grid Lite EA Forex” ซึ่งใน Folder ที่เราเก็บข้อมูลไว้
- การดู Source Code ของ EA Forex เมื่อไฟล์ถูกเปิดขึ้นมาแล้วให้คลิ๊กที่ Tabs “Code Base”เพื่อดูSource Code และ Function ต่าง ๆ ที่ใช้งานใน EA Forex
- การ Edit Source Code ทำการแก้ไข Code Source โดยใช้ภาษา MQL4
- การ Complie EA Forex Source Code หลังจากที่แก้ไขเสร็จเรียบร้อย ให้คลิ๊กที่ “Complier” เพื่อทำการคอมไพล์โค้ด
- EA Forex Complete File หากไม่มีข้อผิดพลาดเกิดขึ้น จะได้ไฟล์ EX4 กับ MQL4 ที่ถูกสร้างขึ้นมาและสามารถนำไฟล์นี้ ไปใช้งานกับ Meta Trader 4 ได้ทันที
การทำงานภาษา MQL4 ของ VSG Part 1
- EA Forex Information
- ส่วนประกาศตัวแปรของ EA Forex ตัวแปรประเภท enum (enumeration) จากรูปก่อนหน้านี้ ประกาศตัวแปรชื่อ ENUM_ST ประกอบไปด้วยสมาชิก 2 ตัว คือ Awerage กับ PartClose
- ตัวแปรประเภท Global Variable
- iTakeProfit : ระบุ Take Profit มีหน่วยเป็น Points
- iStartLots : ระบุ Lot เริ่มต้น
- iMaximalLots : ระบุ Lot สูงสุดที่สามารถใช้ได้
- iCloseOrder : ระบุประเภทการปิดการซื้อขาย
- iPointOrderStep : ระบุระยะห่างระหว่างคำสั่งการซื้อขายมีหน่วยเป็น Points
- iMinimalProfit : ระบุกำไรขั้นต่ำที่ใช้ในการปิดคำสั่งการซื้อขายมีหน่วยเป็น Points
- iMagicNumber : ระบุเลข Magic Number ในรูปแบบตัวเลข
- iSlipage : ระบุ Slippage ในหน่วย Points
- OnInit ( ) Function : โค้ดดังกล่าวเป็นฟังก์ชั่น OnInit() ในภาษา MQL4 ที่ใช้สำหรับการเริ่มต้นการทำงาน ของ EA โดยฟังก์ชั่นนี้จะต้องส่งค่ากลับเป็น INIT_SUCCEEDED เมื่อเรียกใช้งานได้สำเร็จซึ่งจะแสดงว่าการเริ่มต้นการทำงานเสร็จสมบูรณ์แล้ว
การทำงานภาษา MQL4 ของ VSG Part 2
- OnTick () Function : ฟังก์ชั่นนี้จะถูกเรียกใช้งานโดยอัตโนมัติทุก ๆ ครั้งที่มีการเปลี่ยนแปลงราคาของสินทรัพย์ที่กำลังซื้อขายอยู่ในตลาดเพราะฉะนั้นการเขียนโปรแกรมไว้ในฟังก์ชั่นนี้จะช่วยให้ EA สามารถตรวจสอบและดำเนินการตามราคาที่เกิดขึ้นในตลาดได้อย่างถูกต้องและรวดเร็ว
- Source Code บรรทัดที่ 51-55
- BuyPriceMax, BuyPriceMin, BuyPriceMaxLot, BuyPriceMinLot, SelPriceMin, SelPriceMax, SelPriceMinLot และ SelPriceMaxLot เป็นตัวแปร double ที่ใช้เก็บราคาซื้อ-ขายสูงสุดและต่ำสุด รวมถึงปริมาณที่ซื้อ-ขายสูงสุดและต่ำสุดของการเทรด
- Source Code บรรทัดที่ 56-58
- BuyPriceMaxTic, BuyPriceMinTic, SelPriceMaxTic และSelPriceMinTic เป็นตัวแปร int ที่ใช้เก็บเลขที่ใบสั่งซื้อ-ขายที่มีราคาซื้อ-ขายสูงสุดและต่ำสุดของการเทรด
- Source Code บรรทัดที่ 58-60
- op, lt และ tp เป็นตัวแปร double ที่ใช้เก็บราคาเปิดการเทรด ปริมาณการเทรด และราคาที่เป้าหมายของการเทรด
- Source Code บรรทัดที่ 62-64
- tk เป็นตัวแปร int ที่ใช้เก็บเลขที่ใบสั่งซื้อ-ขายของการเทรด, b: จำนวนรายการที่เป็นการซื้อ และ s: จำนวนรายการที่เป็นการขาย
- Source Code บรรทัดที่ 65-107
- โค้ดนี้จะวนลูปผ่านรายการซื้อ-ขาย และนับจำนวนรายการการซื้อและการขาย นอกจากนี้ยังหาค่าต่ำสุดและสูงสุดของราคาซื้อและราคาขาย รวมถึงจำนวน Lot ที่ซื้อ-ขายได้มากที่สุดและน้อยที่สุด
- และเก็บ Tickets ของรายการที่ได้รับราคาสูงสุดและต่ำสุดเอาไว้เพื่อใช้ในการบริหารการเงินในภายหลัง
การทำงานภาษา MQL4 ของ VSG Part 3
- Source Code บรรทัดที่ 108-118
- เงื่อนไข if จะเช็คว่า iCloseOrder เท่ากับ Awerage หรือไม่ ถ้าใช่จะทำการคำนวณค่า AwerageBuyPrice และ AwerageSelPrice ตามสูตรที่กำหนด ในการคำนวณ โดยจะเพิ่มหรือลดค่า iMinimalProfit โดยค่า iMinimalProfit นั้นจะถูกกำหนดค่าโดยผู้ใช้งาน
- Source Code บรรทัดที่ 119-128
- เงื่อนไข if ถ้า iCloseOrder เท่ากับ PartClose ให้ดำเนินการต่อไป โดยในกรณีที่ b (สัญญาณซื้อ) มีค่ามากกว่าหรือเท่ากับ 2 จะทำการคำนวณ AwerageBuyPrice และในกรณีที่ s (สัญญาณขาย) มีค่ามากกว่าหรือเท่ากับ 2 จะทำการคำนวณ AwerageSelPrice
- Source Code บรรทัดที่ 130-138
- กำหนดค่าของตัวแปร BuyLot และ SelLot โดยจะให้ค่าเริ่มต้นเท่ากับ iStartLots ในกรณีที่ BuyPriceMinLot หรือ SelPriceMaxLot เป็น 0
- แต่ถ้าหากไม่ใช่ จะกำหนดค่า BuyLot เท่ากับค่า BuyPriceMinLot คูณด้วย 2 และกำหนดค่า SelLot เท่ากับค่า SelPriceMaxLot คูณด้วย 2
- Source Code บรรทัดที่ 140-148
-
- ถ้า iMaximalLots มีค่ามากว่า 0 ให้ดำเนินการต่อ
- ถ้า BuyLot มีค่ามากกว่า iMaximalLots ให้กำหนด BuyLot เป็น iMaximalLots
- ถ้า SelLot มีค่ามากกว่า iMaximalLots ให้กำหนดค่า SelLot เป็น iMaximalLots
- Source Code บรรทัดที่ 150-154
- ถ้าราคาปิดของแท่งเทียนก่อนหน้า (Close[1]) มากกว่าราคาเปิดของแท่งเทียนก่อนหน้า (Open[1]) ให้ดำเนินการต่อไป คือ ถ้าตัวแปร b เท่ากับ 0 หรือ b มีค่ามากกว่า 0 และ (BuyPriceMin – Ask) มากกว่า (iPointOrderStep * Point()) ให้ OrderSend()
- Source Code บรรทัดที่ 155-160
- ถ้าราคาปิดของแท่งเทียนก่อนหน้า (Close[1]) น้อยว่าราคาเปิดของแท่งเทียนก่อนหน้า (Open[1]) ให้ดำเนินการต่อไป คือ ถ้าตัวแปร s เท่ากับ 0 หรือ s มีค่ามากกว่า 0 และ (Bid – SelPriceMax) มากกว่า (iPointOrderStep * Point()) ให้ OrderSend()
การทำงานภาษา MQL4 ของ VSG Part 4
- Source Code บรรทัดที่ 162-182
- เป็นการค้นหาคำสั่งซื้อหรือขาย (trade orders) ของบัญชีการเทรด โดยจะเลือกด้วยตำแหน่ง (position) และเช็คว่าคำสั่งนั้นมีเลข magic number และ Symbol() ที่กำหนดไว้ในโปรแกรม ถ้าข้อมูลเป็นTrue จะทำการแก้ไขคำสั่งโดยกำหนด take profit ใหม่โดยใช้ OrderModify()
- Source Code บรรทัดที่ 184-210
- เป็นโค้ดที่มีเงื่อนไขคือถ้า iCloseOrder เท่ากับ Awerage EA Forex จะทำการเรียกใช้ฟังก์ชั่น OrderModify โดยการใส่ Take Profit ทุก Order ให้โดยอัตโนมัติ
- Check Volume Value Function
- Source Code บรรทัดที่ 242-262 เป็นฟังก์ชัน CheckVolumeValue ใช้สำหรับตรวจสอบว่าปริมาณการซื้อขายที่ระบุเข้ามามีค่าอยู่ในช่วงประเภทการซื้อขายที่ถูกต้องหรือไม่
บทสรุป
หลังจากที่ท่านอ่านบทความนี้จบผู้เขียนหวังเป็นอย่างยิ่งที่จะทำให้ท่านได้เข้าใจ Concept ในการเขียน EA Forex ของคุณ Vladimir Pastushak ซึ่งจะเป็นประโยชน์อย่างยิ่งในการนำ Source Code ชุดนี้มา Modified ในบทความบทต่อ ๆ ไป
ทีมงาน eaforexcenter.com
"เริ่มต้นอย่างช้าๆ แต่ชัดเจน"
ให้เราได้ดูแลคุณ...
eaforexcenter.com