หัวข้อ
- #บัญชี ISA ไม่สามารถใช้ซื้อขายหุ้นต่างประเทศได้ (ISA 계좌는 해외주식 안됨)
- #รองรับ Websockets (websockets 대응)
- #เพิ่ม/ลบข้อมูลแบบเรียลไทม์ (실시간 데이터 추가/삭제)
- #API ของบริษัทหลักทรัพย์ Korea Investment & Securities (한국투자증권 API)
สร้าง: 2024-04-23
สร้าง: 2024-04-23 00:00
เกี่ยวกับการพัฒนา API ของบริษัทหลักทรัพย์ Korea Investment & Securities (한국투자증권) ผมได้เขียนเนื้อหาไปค่อนข้างมากแล้วครับ เนื้อหาที่เขียนก่อนหน้านี้เป็นเนื้อหาทั่วไปและพื้นฐาน แต่เนื้อหาที่กำลังจะเขียนนี้จะเกี่ยวกับปัญหาและอุปสรรคที่ผมเจอระหว่างพัฒนา รวมถึงวิธีแก้ไขปัญหาเหล่านั้นครับ เริ่มจากปัญหาที่เจอก่อนดีกว่าไหมครับ?
การซื้อขายหุ้นยากอยู่แล้ว แต่การสร้างโปรแกรมที่ทำการซื้อขายอัตโนมัติมันยากกว่าเยอะเลย...
ปัญหาแรกที่ผมเจอหลังจากตัดสินใจพัฒนาอาจจะเป็นปัญหาเฉพาะของผมเองก็ได้ครับ ㅠ_ㅠ นั่นคือการเปิดบัญชีหลักทรัพย์ Korea Investment & Securities (한국투자증권) ประมาณ 2 สัปดาห์ก่อนหน้านี้ ผมเพิ่งเปิดบัญชีหลักทรัพย์ Hana Financial Investment (하나증권) ด้วยเหตุผลที่คล้ายกัน ทำให้ไม่สามารถเปิดบัญชีแบบไม่ต้องไปสาขาได้ทันที ผมลืมไปว่ามีข้อจำกัด 20 วัน แต่ผมก็ต้องเปิดบัญชีอยู่ดี เลยลองหาสาขาของ Korea Investment & Securities (한국투자증권) ดูว่ามีอยู่ใกล้ๆ ไหม โชคดีที่พบว่ามีสาขาอยู่ห่างออกไปประมาณ 40 นาที(?) เลยไปเปิดบัญชีที่สาขาเลยครับ
จริงๆ แล้วผมลองเปิดบัญชีแบบไม่ต้องไปสาขาก่อนครับ ระบบบอกว่าถ้าเราโยกย้ายบัญชี ISA ที่เปิดไว้กับธนาคารอื่นมา มันจะเหมือนกับว่าเราสามารถเปิดบัญชีได้เลย ผมน่าจะศึกษาข้อมูลให้ดีก่อน แต่ตอนนั้นรีบเปิดบัญชีเลยกดอนุญาตไปซะงั้น พอเปิดบัญชีได้ก็ขอใช้ API แล้วก็ทดสอบ API ภายในประเทศดู ปรากฏว่าใช้งานได้ดีมาก ผมดีใจมากเลยครับ แต่ว่า...
ผมก็เพิ่งรู้ว่าการซื้อขายหุ้นต่างประเทศต้องสมัครแยกต่างหากครับ ผมคิดว่าถ้าเปิดบัญชีได้แล้วก็ต้องทำได้ทุกอย่างสิ ㅋㅋㅋㅋ ปรากฏว่าบัญชี ISA ซื้อขายหุ้นต่างประเทศไม่ได้ครับ เนื่องจากลักษณะเฉพาะของบัญชี ISA ซึ่งผมไม่รู้จักบัญชี ISA ดีพอ และตอนนี้ก็ยังไม่รู้จักดีอยู่ดีครับ ผมเพิ่งรู้จริงๆ ว่าบัญชี ISA ซื้อขายหุ้นต่างประเทศไม่ได้
สุดท้ายก็ต้องไปสาขาเพื่อเปิดบัญชีใหม่ แล้วก็ย้ายบัญชี ISA กลับไปธนาคารเดิม (ธนาคารเดิม? โทรมาบอกว่าถ้าไม่อนุญาตก็จะย้ายกลับไปเองครับ เอาเป็นว่าบัญชี ISA เป็นบัญชีพิเศษ เลยมีขั้นตอนเยอะหน่อย)
เอาเป็นว่าการซื้อขายหุ้นนั้นง่ายเสมอ แต่ขั้นตอนการเปิดบัญชี การติดตั้งและตั้งค่า HTS และ MTS ก่อนจะเริ่มซื้อขายนั้นยากจริงๆ ครับ แต่ก็ดีใจที่เปิดบัญชีได้แล้ว และสามารถเริ่มพัฒนาได้แล้วครับ
REST API มีตัวอย่างจาก postman ให้ใช้ ทำให้ใช้งานได้ง่ายมากๆ ครับ เพราะเราสามารถขอข้อมูลและรับข้อมูลกลับมาดูได้ทันที และแปลงโค้ด python จาก postman ได้เลย แต่ฟีเจอร์ที่ไม่รองรับการจำลองการลงทุนนั้นมีค่อนข้างเยอะครับ ฟีเจอร์เหล่านี้ไม่ใช่ฟีเจอร์ที่สำคัญอะไรมาก แต่การตรวจสอบนั้นต้องใช้บัญชีจริงในการลงทุน ซึ่งค่อนข้างยุ่งยากครับ การใช้บัญชีจริงในการลงทุนนั้นก็ไม่มีปัญหาอะไรถ้าเราไม่ซื้อขายจริง แต่ผมรู้สึกกังวลและไม่สะดวกสบายใจอยู่ดี หวังว่า Korea Investment & Securities (한국투자증권) จะปรับปรุงส่วนนี้ในอนาคตครับ
ส่วนที่ยากอีกอย่างคือการรับข้อมูลแบบเรียลไทม์ผ่าน websockets ครับ
ในส่วนนี้ ลอจิกการรับข้อมูลทำงานอยู่ตลอดเวลา แต่ผมไม่รู้วิธีแก้ไขให้มันไม่ส่งผลกระทบต่อการทำงาน และสามารถส่งคำสั่งเพิ่มเติมได้ ผมคิดว่าตัวเองเข้าใจ websockets ไม่ดีพอ และความรู้ด้านภาษาโปรแกรมโดยรวมก็ยังไม่เพียงพอ ถ้าหาทางแก้ไขได้เมื่อไหร่ ผมจะมาอัพเดตใหม่อีกครั้งครับ
ไม่เข้าใจ Websockets เลย... มันไม่ใช่ลูปแบบไม่มีที่สิ้นสุดเหรอ... ต้องเชื่อมต่อ Event อย่างไร... แล้ว Thread ล่ะ... อ๊าย...!
สุดท้ายคือการทำความเข้าใจวิธีการซื้อขายที่ผู้ใช้ต้องการ วิธีการซื้อขายที่ผมใช้คือวิธีการซื้อขายแบบกริด (Grid Trading) ซึ่งไม่มีเทคนิคการซื้อหรือขาย เพราะผมกำหนดค่าไว้แล้วว่าจะซื้อหรือขายเมื่อไหร่ แต่โดยทั่วไปวิธีการซื้อขายส่วนใหญ่จะถูกออกแบบมาให้ปรับเปลี่ยนไปตามสถานการณ์ต่างๆ ทำให้ต้องตัดสินใจซื้อหรือขายตามเงื่อนไขต่างๆ เราต้องรวบรวมข้อมูลรายชั่วโมง แล้วก็วาดเส้นค่าเฉลี่ยเคลื่อนที่ (Moving Average) แล้วก็ใช้ค่าช่วงของ Bollinger Bands เป็นต้นในการตัดสินใจซื้อหรือขาย การคำนวณเงื่อนไขทางเทคนิคนั้นทำได้ไม่ยากเพราะมีสูตรตายตัวอยู่แล้ว แต่ผมสงสัยว่าทำไมต้องซื้อขายด้วยวิธีนี้ และยังหาคำตอบไม่ได้เลยครับ การเรียนรู้เกี่ยวกับหุ้นยิ่งเรียนรู้ก็ยิ่งยากขึ้นเรื่อยๆ ครับ ^^;; (หุ้นขึ้นลงก็ 50/50 แต่ทำไมผมถึงได้แต่ลงตลอดเลยเนี่ย?!!!)
ไม่รู้เลย... ทำไมถึงขึ้นลง... ต้องซื้อขายเมื่อไหร่...
นอกจากนี้ยังมีปัญหาอื่นๆ อีกมากมายที่ผมเจอระหว่างพัฒนา แต่ชีวิตก็คือการล้มลุกคลุกคลานและหาทางแก้ไขปัญหาใช่ไหมครับ? ต่อไปผมจะเขียนถึงขั้นตอนการแก้ไขปัญหาและทางเลือกต่างๆ ที่ผมได้ลองใช้ครับ สู้ๆ!!
ความคิดเห็น0