Execution Process > SET/TFEX Bot

อธิบายการทำงานของกลไกหลัก:

  1. execution robot จะทำงานแบบ infinite loop (วนลูปไปเรื่อยๆ) ซึ่งแต่ละลูปจะหยุดทำงานชั่วคราว (wait) N วินาทีตามที่เซ็ตค่าไว้ เช่น หยุดทำงานลูปละ 3 วินาที เมื่อแต่ละลูปเริ่มทำงานจะตรวจสอบว่าตลาดเปิดทำงานอยู่หรือไม่ หากตลาดเปิดทำการจะตรวจสอบต่อว่าเริ่มต้นแท่งราคาแท่งใหม่หรือยัง? (ขึ้นกับไทม์เฟรมที่ใช้) หากเริ่มแล้วจะทำด้าน prediction (predict entry signal) เช่น หากเซ็ตค่าไทม์เฟรมคือ M5 (5 นาทึ) ก็จะทำ prediction ทุก 5 นาที โดยจะเริ่มรันเมื่อแท่งราคาก่อนหน้าจบลง แล้วขึ้นแท่งใหม่ ก็จะเริ่มรันทันที
  2. เมื่อ execution robot เริ่มรัน จะดึงข้อมูล account info, positions, orders (ออร์เดอร์ที่ค้างในคิวที่ยังไม่ match) และข้อมูลประกอบ ได้แก่ วันเวลา, correlation ID (หมายเลขอ้างอิงของการรันของแท่งราคานั้น เทียบเท่ากับ global transaction ID) ซึ่งค่า correlation ID ถูก generate โดย execution robot ค่านี้เอาไว้ใช้ประโยชน์หลายอย่าง เช่น ใช้ตรวจสอบ health check, ใช้ตรวจสอบข้อผิดพลาด
  3. execution robot จะส่งข้อมูลข้างต้นโดยใช้ฟอร์แมตข้อมูลเป็นชนิด dictionary แล้วเรียกใช้ trade model ฝั่ง Python พร้อมส่งข้อมูลนั้นไปด้วย
  4. ในการเรียก trade model แต่ละครั้ง ฝั่ง trade model จะนำข้อมูล account info, positions, วันเวลา, correlation ID ไปใช้
  5. เมื่อ trade model ถูกเรียก และรับข้อมูลมาแล้ว จะเรียก DQFeed (ระบบ data feed) ผ่าน REST API เพื่อดึงราคาล่าสุดจำนวน N แท่งราคา ขึ้นกับค่าที่ระบุในไฟล์ robot_config_xxx.yml เช่น 5,000 แท่ง จากนั้นก็จะได้ราค่าล่าสุดของ symbol นั้นกลับมา N แท่ง
  6. trade model จะไปเรียก trade model proxy เพื่อให้เป็นตัวกลางในการเรียกอ็อบเจ็คต์ trade model ให้ โดย trade model proxy จะสร้างอ็อบเจ็คต์ trade model ที่เป็น Python แล้วส่งข้อมูลทั้งหมดไปให้ เพื่อให้ trade model predict trade action
  7. trade model จะ predict signal ด้วย rule based หรือ ML หรือ RL
  8. หากเป็นกรณียังไม่มี position และ predict เป็น open buy หรือ open sell ซึ่งเป็นการเปิด position ใหม่ จากนั้น trade model จะ predict SL (stop loss), TP (target profit), position size ด้วย rule based หรือ RL
  9. หากเป็นกรณีที่มี position อยู่ จะ predict trade management ด้วย rule based หรือ RL สิ่งที่ได้คือ trade management action เช่น hold, scale out, modify SL/TP, close
  10. ในการ predict signal ด้วย ML หรือ RL และในการ predict ส่วนอื่นด้วย RL จะเป็นการเรียก ML/RL model ผ่าน ML-Serve REST API
  11. เมื่อ trade model predict ทุกจุดเสร็จแล้ว จะสรุป (inference) แล้วสร้าง trade action ที่เหมาะสม แล้วส่งเป็นผลลัพธ์กลับไปให้ trade model REST API เพื่อส่ง trade action กลับไปให้ execution robot
  12. execution robot รับ trade action กลับมา แล้ว execute trade ซึ่งอาจเป็นการ wait / hold / open order / close order
  13. *กรณีที่แท่งราคายังไม่จบ execution robot จะตรวจสอบราคาทุก N วินาที เพื่อตรวจสอบว่าราคาชน SL หรือ TP หรือไม่ หากชน จะทริกเกอร์ โดยส่ง close order ออกไป เพื่อทำการปิด position เนื่องจากระบบ DQ-Bot จะไม่ส่ง SL, TP ไปที่โบรกฯ แต่ใช้การตรวจสอบราคาตลอดเวลาแล้วส่ง close order ออกไปแทน

    Leave a Reply

    Discover more from

    Subscribe now to keep reading and get access to the full archive.

    Continue reading