จริงอยู่สิ่งสำคัญในการสร้างบอทเทรดคือกลยุทธ์ แต่สิ่งที่สำคัญไม่แพ้กันคือเรื่องเวลาของการส่งคำสั่ง
การทำบอทแบบง่ายๆเช่นการใช้ 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