side project เพิ่งเริ่มทำเพื่อที่ใครที่ scan QR code เข้ามาดูจะได้เห็นหน้าตาผลงานอื่นบ้างนอกจากข้อความกับรูป จึงคิดเริ่มทำ side project ขึ้นมาและ deploy เข้าดูได้ในวันที่ 2025-05-05 ไม่มี feature อะไรก็แค่แสดงราคาทองคำที่ส่งมาจาก Trade Server ที่มีข้อมูลราคาจาก Program MT5 อยู่แล้ว จึงคิดหาจุดร่วมว่าอะไรที่ project หลักต้องการและ side project ได้ผลประโยชน์ พบว่าการทำ program เล็กๆ ที่เป็นเหมือน data pipeline ค่อยส่งข้อมูลและ save ข้อมูลโดยมีชื่อ project ว่า EchoGrid ที่ทำการดึงข้อมูลจากเว็บและ api data ที่ให้บริการฟรี มา save ลงฐานข้อมูล จึงเกิดความคิดทำ Side Project ขึ้นมานั้นเองโดยตัว side project ชื่อว่า Asset Pluse หรือคลื่นชีพจร asset ชื่อนี้ได้มาจากการคุยกับ chat gpt
ตัว Asset Pluse จะแบ่งเป็น 3 ส่วนที่ deploy บน render.com
Backend : FastApi จะทำหน้าที่ให้บริการ Rest api รับและส่งข้อมูล โดยรับข้อมูลราคาใหม่จาก EchoGrid แล้วทำการบันทึกราคาลงฐานข้อมูล และอีกหน้าที่คือบริการให้ข้อมูลราคาซึ่งตัว Frontend จะเป็นตัว request มา
Frontend: ใช้ Tailwind admin dashboard template ซึ่งเป็น React.js นำมาแก้และใช้งาน และ request api ไปยัง backend
DataBase: บน render.com แผนฟรีนั้นไม่มี Mysql ให้ใช้งานมีแต่ PostgreSQL ให้ฟรีเลยต้องปรับไปใช้ PostgreSQL แต่ดีที่ fastapi มีการใช้ sqlachemy ซึ่งเป็น ORM ไม่ต้องเปลี่ยนโค้ดเปลี่ยนแค่ connection string เท่านั้น
*** ถ้าราคาไม่ขึ้นแสดงว่า backend เกิดการ sleep เพราะ free plane บน render.com ถ้าเป็น web service ที่ไม่ใช่ static web จะมีการ sleep หากไม่มีการใช้งานนานเกิน 15 นาทีอาจจะต้องรอ wake up 3 นาทีแต่ถ้าวันปกติโอกาศ backend จะ sleep เกิดขึ้นน้อยเพราะมีตัว EchoGrid ค่อยส่งข้อมูลให้ตลอด
Update Project
หลังจากนั่งงม fastapi มาสักพักก็ได้ทำหน้า page สรุป AUM หรือ Asset under management ขึ้นมาโดยข้อมูลจะทำการ snapshot ทุกวันเสาร์เนื่องจาก ตลาดปิดนั้นเอง เพราะตอนนี้มี account อยู่ 6 account ซึ่งเริ่มทำมือไม่ไหว เลยคิดว่าต้องเข้าระบบเพราะจะได้ monitor ได้
ซึ่งจะแสดง 3 ค่าหลักคือ balance, equity, drawdown และแต่ละ account จะมี currency account ที่ต่างกันจึงต้องมีข้อมูล exchange rate เพื่อแปลงกับเป็นค่าเงินบาทไทยในแต่ละช่วงเวลาที่ snapshot โดยจะเก็บเป็นตาราง exchange rate และหาค่า rate ที่วันที่ใกล้เคียงกับวันที่ timestamp ของข้อมูล account
นอกจากนี้ยังมีค่า peak equity เพื่อทำการวัดว่า ณ ช่วงข้อมูลที่มีค่า ผลรวม equity จากทุก account ที่มีค่าสูงสุด เทียบกับ equity ล่าสุดเกิด drawdown เท่าไหร่ จะได้ประเมินสถาการณ์ถูก
หน้า dashboard แสดงข้อมูลแต่ละ account เพื่อจะได้ link เข้าไปดูรายละเอียดแต่ละ account และ link ไปดู AUM
เพิ่ม menu asset
แสดงกราฟราคา 2000 bar ราคาสุดที่ import ข้อมูลเข้ามาได้ โดยใช้ราคาปิด และมี EMA 20, EMA200 เพื่อใช้ดูแนวโน้มราคา