เขียน EA โดยใช้ FXPRO Quant ( Forex )

หลังจากเรื่องหลักการ เราจะมาพูดถึงเรื่องของการเขียน EA ในสมัยนี้มีเครื่องมือมากมายที่ทำให้การเขียน EA นั้นสามารถทำได้ง่าย และสามารถทำได้โดยไม่ต้องมีความรู้เรื่อง Coding ตั้งแต่ผมใช้ เครื่องมือมา Fxpro quant นั้นดีเพียงพอที่จะสร้าง EA ของตัวเอง และยังสามารถสร้าง EA ได้ง่าย ไม่ต้องใช้พื้นฐานทางคอมพิวเตอร์ใด ๆ ก็สามารถเขียนได้ โดยบทความนี้ผมก็จะพูดถึงการเขียน EA เป็นหลัก โดยผมจะยังไม่พูดถึงระบบ แต่จะพูดถึงวิธีการและการทำความรู้จักเครื่องมือก่อน ก่อนที่จะเจาะลึกไปที่การเขียน ภายหลัง ซึ่งชุดบทความนี้อาจจะต้องใช้เวลาสักหน่อย แต่ก็จะทำให้คุณมีพื้นฐานที่ดีในการเทรดนั่นเอง

อย่างไรก็ตาม การที่จะมานั่งแนะนำว่า ไอ้นี่ทำงานอย่างไร หรือว่า ไอ้นี่คืออะไร มันก็จะทำให้น่าเบื่อ วิธีการเรียนรู้ที่ดีคือการเรียนรู้ผ่านตัวอย่าง ผมจะเขียนตัวอย่างของการเขียน EA ไว้ ซึ่งจะเป็นรายกรณีไปเท่านั้นครับ ท่านสามารถนำไปใช้ได้และหัดทำตามได้เลย  โดยเราจะมาเริ่มทำความรู้จักกับ Fxpro Quant กันเลยครับ

fxpro quant

Fxpro Quant คืออะไร?

Fxpro Quant เป็น platform พัฒนา Algorithm สำหรับเทรด Forex ต้องย้ำนะครับว่า มันไม่ใช่ AI เป็นแค่ชุดคำสั่งที่มีเงื่อนไขตายตัว เมื่อมันใช้กับสถานการณ์ที่นอกเหนือจากเงื่อนไข มันจะเผชิญกับข้อจำกัด ทำให้เกิดผลที่ไม่ได้คาดหวังได้ครับ เราต้องทำความเข้าใจและรู้จักใด้ดีก่อน เมื่อก่อนการจะเขียน EA ได้ต้องใช้ ภาษา MQL เท่านั้น แต่ตอนนี้หลังจากที่มี FXpro Quant เราสามารถใช้การลากเส้นธรรมดาเท่านั้นก็สามารถเขียน EA ได้แล้ว

ข้อดีของมันคือ ง่ายและสามารถเข้าใจได้ทันที ทำให้เขียน EA ที่มีความซับซ้อนสูงได้ง่าย เพราะว่า มันคล้ายคลึงกับการออกแบบ Algorithm อย่างนั้นเอง

ข้อเสียของมันคือ  บางรูปของการเขียนอาจจะต้องเผชิญข้อจำกัดอยู่บ้าง อย่างไรก็ตาม รูปแบบ Algorithm ส่วนใหญ่ก็สามารถเขียน EA ได้อย่างง่ายดาย

โดยเราจะมาดูตัวอย่างการทำงานกันครับดังนี้

(( เทรดเดอร์ท่านใดยังไม่มีบัญชีกับทาง FxPro ก็ต้องเปิดบัญชีก่อนนะครับ … คลิ๊ก เพื่อเปิดบัญชี ))

การเข้า โปรแกรมไปที่ ลิงค์นี้ครับ https://quant.fxpro.co.uk/app/  โดยเราสามารถลงทะเบียน หรือไม่ลงทะเบียนเข้าใช้ก็ได้ ถ้าลงทะเบียน จะทำให้เราสามารถ Save รูปแบบ Algorithm ที่เราเขียนขึ้นมาได้

กดที่ Create New จะขึ้นหน้าจอว่างให้เรา พร้อมกับแถบด้านซ้าย ซึ่งจะมีเครื่องมือ ให้เลือก อย่าพึ่งไปสนใจเพราะว่า จำนวนมันเยอะและจะลายตาเปล่า ๆ การเขียน EA ที่ดีเริ่มจากการที่เราหัดเขียน ตาม Algorithm ที่เราต้องการ โดยในตัวอย่างนี้ผมจะเขียน Algorithm สำหรับส่งคำสั่งอย่างง่าย ก่อน โดยเงื่อนไขที่เราจะใช้มีธรรมดาดังนี้

เงื่อนไข

  1. ส่งคำสั่งเฉพาะ Buy เท่านั้น
  2. ส่ง Lot เท่ากับ 1 เท่านั้น
  3. ส่งคำสั่งอย่างง่าย โดยการ ส่งเมื่อราคา Ask มากกว่า ราคา Bid
  4. ส่งคำสั่งเมื่อ มีการเคลื่อนไหว Tick แรกของ แท่งใน Time Frame ที่เราเลือก
  5. ผมเลือกกราฟ 1 ชั่วโมง ซึ่งมันจะส่ง Buy ที่ Tick แรกของ กราฟ 1 ชั่วโมง

ขั้นตอนการเขียน

  1. กด Create New จะได้หน้าจอนี้มา แล้วไปที่ Library

แล้วเลื่อนลงหาคำว่า Buy แล้วลากมาใส่ที่ว่าง เมื่อลากมาวางแล้ว เราต้องหาเงื่อนไขของเราก่อน เงื่อนไขของเราบอกว่า Ask มากกว่า Bid ซึ่งเงื่อนไขนั้นเป็นจริง ทุกเวลาเพราะ Ask มันมากกว่า Bid อยู่แล้ว โดยเงื่อนไขที่ 2 คือ First tick มีแค่ 2 เงื่อนไข ซึ่งต้องไปทำทีละเงื่อนไขโดยไปที่  Market Data ที่นี่จะมีเงื่อนไขของเราอยู่ครับ

ในภาพจะเห็นว่า ผมลาก Buy จาก Library มาเตรียมไว้แล้ว และยังไม่มีปุ่มอื่น ใน Market Data เราจะพบ ปุ่ม Bid  Ask และ First Tick อยู่ที่นี่พร้อมหมดแล้ว เราก็จะทำการลากมา ดังต่อไปนี้

ในรูปนี้ผมได้ลาก Bid Ask และ First Tick ไว้แล้ว ขั้นต่อไปเราต้องทำการเปรียบเทียบว่า Ask มากกว่า Bid โดยไปที่ Logic เราก็จะเห็นตุ่ม Compare ซึ่งใช้เปรียบเทียบเงื่อนไข เช่น Ask > Bid นั่นคือ ราคา Ask มากกว่า ราคา Bid และ And คือ และ เราใช้สำหรับ ทำ 2 เงื่อนไข นั่นคือ นอกจากเราจะบอกว่า Ask > Bid แล้วต้องทำเงื่อนไขที่ 2 คือ First Tick ด้วย ถึงจะให้ทำการส่งคำสั่งเทรด

 

จะเห็นว่า มันลากได้และมีเส้นออกมา เมื่อเราคลิ๊ตรงขอบ ให้เราเอาไปเชื่อมกับ Compare แล้วปล่อย มันก็จะเชื่อมกันไว้เหมือนภาพที่ผมอธิบายข้างบนนี้ แล้วเมื่อเราเลือกคลิ๊กที่ Compare เราจะเห็นว่า มี Value 1 คือ Ask นั่นคือ ค่า Ask และ Type เป็นคำสั่งเปรียบเทียบ คำว่า Greater Than แปลว่ามากกว่า นั่นก็คือ ถ้า Ask มากกว่า Bid นั่นเอง เราก็จะทำการลากเงื่อนไข And ลงมาอีก

เมื่อเราทำการเปรียบเทียบเงื่อนไขแรก คือ Ask > Bid แล้ว เราก็ต้องเชื่อมเงื่อนไข ด้วยการให้มันทำทั้ง 2 เงื่อนไข คือ First Tick และ Ask > Bid แล้วถึงส่งคำสั่ง Buy โดยเมื่อทำเสร็จเราก็ลากจากเส้น And มาที่ Buy เท่านี้ก็เสร็จเรียบร้อยครับ

เมื่อเราคลิ๊กที่ Buy เราจะเห็นว่า มันมีค่าต่าง ๆ โผล่มา ซึ่งก็ตรงไปตรงมา คือ Lot ก็คือขนาด Stop loss สามารถเลือกเป็น pip หรือเป็น point ได้ นอกจากนี้ยังสามารถเขียน Comment กำหนด magic No. ได้อีก ซึ่งทำให้เรสามารถส่งคำสั่งได้แล้ว วันพรุ่งนี้ เราจะมา Back Test algorithm นี้กัน เพื่อทำความรู้จักกับ Algorithm แรกง่าย ๆ นี้ครับ

การ Back Test EA ที่เขียน เพื่อทดสอบคำสั่ง

เมื่อวานเราได้ทำการเขียน EA อย่างง่าย โดยการใช้เงื่อนไข 2 คือ การส่งคำสั่งเมื่อ First Tick และ ราคา Ask มากกว่า Bid ซึ่งเป็นการฝึกเขียนคำสั่ง โดยมีเพียงโหนดไม่กี่โหนด แสดงดังภาพต่อไปนี้

ต่อไปเราจะทำการ Save ออกมาเป็น EA โดยคลิ๊กที่ Build และกด Download MT4 เราจะได้ EA ออกมาตามชื่อที่เราตั้งไว้ ซึ่งอันนี้คือ Strategy1  เราจะเอา EA ที่ได้นำไป Back Test หรือทดสอบการทำงานว่าตรงตามเงื่อนไขหรือไม่

โดยหลังจากนี้เราจะเริ่มกระบวนการ Back Test หลังจากนี้

Back Test

การ Back Test คือการทดสอบเงื่อนไขของราคา ระหว่างราคาในอดีตกับกลยุทธ์ที่เราวางไว้ ภายใต้เงื่อนไข ที่เรากำหนด การ Back Test นั้นจะใช้สภาพเงื่อนไขของ Broker เพราะฉะนั้น การ Back Test อาจจะไม่สะท้อนบางสถานการณ์ เช่น สถานการณ์การทำกำไรด้วยความเร็วสูง ซึ่งจริง ๆ แล้วอาจจะมี Spread สูง  ต้องบอกก่อนว่า การใช้ Fxpro Quant สามารถใช้ได้ทุกสถานการณ์ และสามารถเขียน EA ได้ทุกประเภท แต่ว่า การ Back Test กับการเทรดจริงนั้นสถานการณ์แตกต่างกัน เราจะมาเริ่มการ Back Test กันตามขั้นตอนต่อไปนี้

เมื่อปรากฏหน้าจอดังกล่าวแล้ว เราจะเอา EA ที่ได้มา เพื่อไปวางใน Folder ที่กำหนด เพื่อให้ เห็น EA ที่เราทำการทดสอบ โดยไปที่ File แล้วไปที่ Open Data Folder ดังรูปต่อไปนี้

หลังจากนั้นเราจะนำ EA ของเราไปวางใน Folder ต่อไปนี้

ไปที่ MQL 4 แล้วไปที่ Experts  และนำ EA ที่เราเขียน ไปวางไว้ใน Folder ที่กำหนดนี้ ดังรูป

หลังจากนั้นเราต้องทำการ ปิดและเปิด โปรแกรม MT4 ใหม่ เพื่อให้มันอ่านค่าใหม่ แล้วกดเลือก EA ในช่องชื่อ EA แล้วทำการกำหนดค่าเพื่อ Back Test ดังต่อไปนี้

ในรูปข้างต้น ผมทำการ Highlight จุดสำคัญ ที่เราต้องตั้งค่า  ค่าเงินที่เราเลือก ต้องตรงกันกับประเภทบัญชีของแต่ละ Broker เพราะถ้าไม่ตรงมันจะไม่รัน หรือบางครั้งขนาด Lot ก็ไม่สามารถเทรดได้เนื่องจาก Lot มันใหญ่เกินไป ในกราฟ ผมเลือก EA ชื่อ Strategy Test 1 ซึ่งเป็น EA ที่เขียนมาจากโปรแกรม FXPro Quant ค่าเงินที่ใช้ในการเทรด คือ ค่าเงิน EURUSD ซึ่งเป็นบัญชีแบบ Micro ดังนั้น ค่าเงิน EURUSDm จะมีตัว m ต่อท้าย  สำหรับ Date คือการกำหนดเวลาที่จะทำการ Back Test ผมได้กำหนดไว้ที่วันที่ 1 มกราคม 2019 จนถึงวันนี้ คือวันที่ 10 เดือนมิถุนายน ต้องไม่ลืมว่า พ.ศ. ของตัวเลขในนี้ต้องเป็น คริตศักราชเท่านั้น ถ้าหากคุณเป็น พ.ศ. ไทย จะไม่สามารถทำการ Back Test ได้ คุณต้องไปแก้ไขใน Control Panel และเข้าไปแก้ไข Language and Region  และ Time Frame ที่ผมเลือกใช้ (Period) คือ H1 หรือกราฟ 1 ชั่วโมง เราจะเลือกกดติ๊กถูก Visual Mode และเลื่อน สเกลให้สุดเพื่อความเร็วของการทำ Back Test

ข้อควรระลึกไว้เสมอสำหรับการ Back Test คือ เรามีวัตถุประสงค์อะไร เพราะการเทรดไม่ได้ต้องการกำไรทุกครั้ง เราต้องการทดสอบระบบ โดยครั้งนี้ก็เป็นการทดสอบระบบ เพื่อทดสอบการส่งคำสั่งผ่าน Fxpro Quant ในการเขียน EA

ความคาดหวังก่อน Back Test

สิ่งที่เราตั้งเงื่อนไขไว้คือ การส่ง ทุก First Tick ของแท่ง 1 ชั่วโมง ซี่งมันจะต้องทำการเทรดทุกแท่ง โดยใช้คำสั่ง Buy Lot 0.1 ซึ่งตั้งมาเป็นค่า Default และจะไม่มีการปิด ออเดอร์ เพื่อดูว่าส่งออเดอร์ตามเงื่อนไขที่เรากำหนดหรือไม่นั่นเอง เมือ่พร้อมแล้วก็กด Start และเริ่ม Back Test ได้ทันที

เมื่อเรากด Back Test ใน Visual Mode มันจะโผล่กราฟหน้าจอ พร้อมกับการ Back Test ทำงาน โดยมีแท่งลูกศรสีน้ำเงินโผล่ขึ้นมาและมีออเดอร์ Buy ส่ง เมื่อมันส่ง Buy ก็แสดงว่า เงื่อนไขที่เราตั้งใน FXpro quant นั้นใช้ได้ นอกจากนี้จะเห็นว่า ลูกศรสีน้ำเงินนั้น เกิดตอนต้นทุก ๆ แท่ง นั่นหมายความว่า เงื่อนไข First Tick นั้นทำงานได้

เมื่อเราต้องการให้มันหยุดเทรดก็เพียงกด Stop เท่านั้น ซึ่งเท่านี้ก็ถือว่าสิ้นสุดการ Back Test ทดสอบ EA ที่เขียนจาก FXPro Quant ในครั้งหน้าเราจะมาเขียน EA โยเพิ่มคำสั่งปิดออเดอร์ เพื่อดูว่าการปิดออเดอร์นั้นจะทำให้เราได้กำไรหรือขาดทุน  ซึ่งเราจะทำการแก้ไขออเดอร์ไปเรื่อย ๆ ตามขั้นตอนการเขียน EA ตามที่เรากำหนดไว้

เส้น

ขอบคุณครับ