การใช้คำสั่ง Loop for Trade ในโปรแกรม fxDreema เป็นเครื่องมือสำคัญสำหรับการจัดการคำต่าง ๆ ผ่านการดึงข้อมูลไม้เทรด หรือ pending order ครับ โดยฟังก์ชันนี้ช่วยให้เพื่อน ๆ สามารถดึงข้อมูลคำสั่งต่าง ๆ พร้อมตรวจสอบรายละเอียด และปรับแต่งคำสั่งเหล่านั้นได้อย่างมีประสิทธิภาพ ซึ่งด้วยความยืดหยุ่นในการตั้งค่า Loop for Trade จึงเหมาะกับนักพัฒนา EA ทั้งระดับเริ่มต้นและมืออาชีพครับ
ความสำคัญของ Loop for Trade ในการเทรด
Loop for Trade ช่วยให้เราสามารถทำอะไรหลายอย่างมากขึ้น ซึ่งมันดีต่อการปรับแต่งกลยุทธ์ของ EA เรามาก ๆ ครับ โดยผู้เขียนจะยกตัวอย่างประโยชน์ของการใช้ function ดังนี้
- ตรวจสอบข้อมูลคำสั่งซื้อขายแบบเรียลไทม์
- คัดเลือกคำสั่งซื้อขายตามเงื่อนไขที่กำหนด
- ปรับแต่งคำสั่ง เช่น Stop Loss และ Take Profit
- สร้างระบบการกำหนด Lot แบบ martingale ที่ปรับ manual ได้
- ลดความผิดพลาดและเพิ่มความแม่นยำในการเทรด
โครงสร้างการทำงานของ Loop
ในเบื้องต้นนั้น Loop จะประกอบด้วย 3 ขั้นตอนสำคัญ ๆ ได้แก่
- การดึงข้อมูลคำสั่งซื้อขาย: ใช้ดึงข้อมูลคำสั่งซื้อขายที่เปิดอยู่ รอดำเนินการ หรือปิดไปแล้ว
- การตรวจสอบข้อมูล: ตรวจสอบคำสั่งเพื่อหาค่าที่เฉพาะเจาะจง
- การแก้ไขหรือจัดการคำสั่ง: นำข้อมูลที่ได้มาปรับใช้กับกลยุทธ์หรือคำสั่งซื้อขาย
หมวดหมู่คำสั่งใน Loop
คำสั่งใน Loop for Trade แบ่งออกเป็น 3 หมวดหมู่หลักดังปรากฏในตารางที่ 1 ซึ่งในบทความนี้ผู้เขียนจะขอ Focus เฉพาะ หมวด A เท่านั้นเนื่องจากเป็นหมวดที่ใช้กันบ่อย ซึ่งหากเพื่อน ๆ ท่านใดต้องการเนื้อหาที่ลึกกว่านี้สามารถหาอ่านได้ที่ “หนังสือคู่มือ fxDreema ฉบับภาษาไทย เล่ม 1” หรือ “คอร์ส Basic fxDreema” ได้ครับ
ตารางที่ 1 สรุปคำอธิบายที่เกี่ยวกับ Loop for Trades & Order
หมวด | คำอธิบาย |
A | บล็อกที่ใช้เพื่อดึงข้อมูลออเดอร์/เพนดิ้งออเดอร์ หรือ ออร์เดอร์ที่ปิดไปแล้ว |
B | บล็อกที่จะใช้ในการค้นหา/ตรวจสอบ ออเดอร์ที่ดึงมาแบบเฉพาะเจาะจง |
C | บล็อกที่จะใช้ในการส่งให้ทำการแก้ไขหรือเปลี่ยนแปลงออเดอร์นั้นๆที่ดึงมา |
หมายเหตุ : คำว่า Trade บน (MQ4) = Position บน (MQ5)
วิธีใช้งานกลุ่ม Loop for Trades & Order หมวด A (สำคัญ)
จากรูปที่ 2 เป็นตัวอย่างค่าพารามิเตอร์ต่างๆภายในบล็อกในหมวด A ซึ่งจะมีความสามารถในการดึงข้อมูลออเดอร์ทั้งออเดอร์ที่กำลังเกิดขึ้น ณ ปัจจุบัน และ ออเดอร์ที่ปิดไปแล้วมาใช้ซึ่งแต่ละบล็อกจะมีความสามารถดังนี้
- For each position คือบล็อกที่มีความสามารถในการดึงค่าออเดอร์ที่กำลังเกิดขึ้น ณ ปัจจุบัน เช่น ออเดอร์ Buy / Sell หรือทั้งสองมาใช้งานในบล็อกถัดไปโดยภายในจะมีการตั้งค่า Filter ที่เหมือนๆกันดังนี้
- Filter by Group คือ ระบุเพื่อแยกกลุ่มในการทำงาน
- Filter by Symbol คือ ระบุเพื่อกำหนดคู่สกุลเงินที่ต้องการใช้
- Filter by Type คือ กำหนดประออเดอร์ที่ต้องการให้ดึงข้อมูลมาใช้ เช่น ออเดอร์ Buy, ออเดอร์ Sell หรือ ทั้งสอง
- Loop settings คือ การตั้งค่าการทำงานของ Loop แบ่งออกเป็น 4 ประเภทดังนี้
- Lood Didrection คือ ประการเรียงลำดับการในดึงข้อมูลมาใช้ แบ่งออกได้ 4 ประเภทดังนี้
- Newest to oldest คือ เรียงจากใหม่สุด ไป เก่าสุด
- Oldest to newest คือ เรียงจากเก่าสุด ไป ใหม่สุด
- Profitable first คือ เรียงจากกำไรมากสุด ไป กำไรน้อยที่สุด
- Profitable last คือเรียงจากกำไรน้อยที่สุด ไป กำไรมากสุด
- Skip “n” trades คือ ข้ามออเดอร์ทุกๆ “n” ออเดอร์
- Every “n” trades คือ ทำงานทุกๆ “n” ออเดอร์
- Not more than “n” trades คือ ไม่ต้องการให้ทำงานเกิน “n” ออเดอร์
- Lood Didrection คือ ประการเรียงลำดับการในดึงข้อมูลมาใช้ แบ่งออกได้ 4 ประเภทดังนี้
- Second output คือ ให้จบการทำงานของบล็อกก็ต่อเมื่อ…
- After loop, always คือ จบการทำงานเมื่อตรวจสอบทุกออเดอร์แล้ว (ปกติจะใช้ค่านี้)
- After non-empty loop คือ เมื่อยังมีออเดอร์ค้างอยู่ในระบบ
- After empty loop คือ เมื่อไม่มีออเดอร์อยู่ในระบบแล้ว
- For each Pending Order คือบล็อกที่มีความสามารถในการดึงค่าออเดอร์ที่กำลังเกิดขึ้น ณ ปัจจุบัน ที่เป็นออเดอร์ประเภทเพนดิ้ง มาใช้งานในบล็อกถัดไปสามารถตั้งค่าได้เหมือนกับ For each position ทุกประการ
- For each Closed Position คือบล็อกที่มีความสามารถในการดึงค่าออเดอร์ที่ได้มีการปิดออเดอร์ไปแล้ว มาใช้งานในบล็อกถัดไป สามารถตั้งค่าได้เหมือนกับ For each position ทุกประการ
การทำงาน on Tick เฉพาะหมวด A
การทำงานของ on Tick ของบล็อก A นั้นค่อนข้างจะพิเศษและแตกต่างต่างบล็อกอื่น ๆ บนโปรแกรม fxDreema โดยปกติการไหลของ Tick มักจะมีการไหลผ่านบล็อกเพียงครั้งเดียวต่อบล็อกหรือต่อการทำงานของคำสั่งชุดนั้นๆ แต่ในบล็อกของ For each …. จะมีการไหลเข้าบล็อกตามจำนวนออเดอร์ที่มีอยู่ให้ครบก่อนถึงจะจบการทำงานของคำสั่งชุดนั้นดังตัวอย่างรูปภาพด้านล่าง ซึ่งจะเป็นการแสดง ตัวอย่างสมมุติ การไหลผ่าน 1 Tick
เราจะเห็นได้ว่าฝั่งที่มี For each Position หลังจากที่จบสายพานแล้วแทนที่จะกลับไปเริ่มที่บล็อกแรก แต่กลับไป วนเข้า For each Position ใหม่ซึ่งจะไหลเข้าตามจำนวนออเดอร์ที่มีอยู่ ณ ขณะนั้น (ดังตัวอย่างจะวนการไหลให้ดูเพียง 2 ครั้งเท่านั้น)
ดังนั้นหากมีการ วนเข้า For each Position ครบตามจำนวนออเดอร์แล้ว Tick ก็จะไหลกลับไปยังบล็อก No Position ใหม่คือการจบ 1 Tick ดังนั้นจึงเป็นที่มาของบล็อก Loop for Trades & Order คือมีการไหลเป็น Loop ก่อนที่จะไปเริ่มทำงานใหม่อีกรอบนั่นเอง
สรุป
Loop for Trade เป็นฟังก์ชันที่ช่วยเพิ่มประสิทธิภาพในการจัดการคำสั่งซื้อขายในตลาด Forex โดยเฉพาะอย่างยิ่งในโปรแกรม fxDreema ที่รองรับการปรับแต่งและตั้งค่าต่าง ๆ อย่างละเอียด สำหรับเพื่อน ๆ ที่ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ Loop และเทคนิคการใช้งาน สามารถศึกษาเพิ่มเติมได้จาก “หนังสือคู่มือ fxDreema ฉบับภาษาไทย เล่ม 1” หรือ “คอร์ส Basic fxDreema”
กลับสู่สารบัญเพื่อเลือกเรียนบทอื่น ๆ
"เริ่มต้นอย่างช้าๆ แต่ชัดเจน"
ให้เราได้ดูแลคุณ...
eaforexcenter.com