เรื่องที่หลายคนลืมคิด ! เวลาสร้างบอทเทรด

Investic
investic
Published in
Aug 8, 2022

จริงอยู่สิ่งสำคัญในการสร้างบอทเทรดคือกลยุทธ์ แต่สิ่งที่สำคัญไม่แพ้กันคือเรื่องเวลาของการส่งคำสั่ง

การทำบอทแบบง่ายๆเช่นการใช้ While Loop และใส่เงื่อนไข เช่นถ้าเส้น EMA ตัดขึ้นให้ส่งคำสั่งซื้อและตัดลงให้ส่งคำสั่งขาย โดยให้บอทรันทุกๆหนึ่งนาที เมื่อเราเริ่มรัน เราจะอยู่ได้ยังไงว่าตอนนี้ 16.00 พอดี ? นี่คือจุดหนึ่งที่ทำให้การซื้อ-ขาย บางครั้งมีการเหลื่อมของเวลา ทำให้การส่งคำสั่งไม่เป็นไปตามที่ตั้งกลยุทธ์ไว้ตั้งแต่แรก

ดังนั้นวันนี้เราจะมาแนะนำเรื่องการจัดการเวลาที่มันอาจจะขาดๆเกินๆตรงนี้ด้วย

time

โดยปกติเวลาเราต้องการจะรู้เวลาว่าตอนนี้กี่โมงแล้วใน Python เราแค่เพียงใช้ time.time() มันก็จะคืนค่าเวลาในตอนนี้มาให้เรา

แต่ตัวข้อมูลมันจะออกมาในรูปแบบของ timestamp แต่นั้นไม่ใช่ประเด็น ทีนี้เราจะแก้ปัญหาเรื่องการเหลื่อมของเวลาอยากได้บอกไปตั้งแต่ต้นบทความยังไง

เราก็แค่เอาเวลาที่ต้องการลบด้วย เศษของเวลาที่เหลือนั่นเอง

พูดเป็นคำอาจจะงงเดี๋ยวลองมาดูในตัวอย่าง

ยกตัวอย่างเราต้องการส่งคำสั่งทุก 1 นาที ตอนนี้ 15.59 ซึ่งเมื่อเวลาเริ่มที่ 16.00 แทนที่ปกติเราจะใช้ time.sleep(60) ก็เปลี่ยนเป็นใช้

time.sleep(60-time.time()%60 )

มันก็คือเอาเวลาทั้งหมดลบด้วยเศษเวลาที่เหลือ

เท่านี้ Loop ที่เรารันมันก็จะเป็น 1 นาทีที่ตรงแล้ว (อาจจะมีเศษที่เล็กกว่าวินาทีนิดหน่อย อันนี้อาจจะใช้วิธีการแก้ที่ยากขึ้นมาหน่อย )

ส่วนนี้คือส่วนเล็กๆแต่สำคัญมากในการทำบอทเทรดและสร้างกลยุทธ์สำหรับมือใหม่ที่กำลังเรียนรู้อย่าละเลยส่วนนี้นะ

Investic

--

--