เทรดหุ้นไทยผ่าน Settrade Open API ทำยังไง ?

Investic
investic
Published in
2 min readAug 1, 2022

วันนี้จะมาแนะนำวิธีการใช้งานเบื้องต้นกันบ้างว่าใช้ยังไง เผื่อแต่ละท่านที่ยังไม่รู้จักจะได้นำไปลองสร้าง Order ผ่าน Settrade กัน

Settrade คือตัวกลางที่เราใช้เชื่อมต่อกับ Broker ที่ให้บริการในไทยจะมี Broker ที่ต่อกับ Settrade ได้ช่วงปีที่แล้วจะมีประมาณ 4 เจ้าคือ Globlex, Classic Ausiris, Yuanta และ Country Group แต่วันนี้ตัว Broker ที่ใช้ API ได้มีเพิ่มขึ้นมาเยอะมากแล้วครับ สำหรับใครที่อาจจะไม่ได้ตามลองเข้าไปดูในในเว็บไซต์เดี๋ยวเราทิ้งลิ้งไว้ให้หลังบทความ โดยในแต่ละ Broker ก็จะมีข้อดีข้อเสียแตกต่างกันไป ใครมีโบรคไหนอยู่แล้วก็ลองเล่นตัว API กันดูได้ หรือหากใครยังไม่มีโบรคเหล่านี้ก็ลองเล่นตัว Sandbox ที่ทาง SET ให้มาก่อนก็ได้

และพิเศษไปกว่านั้นตอนนี้ทาง Settrade มีข้อมูล Realtime ให้ใช้งานแล้วนะครับ เรื่องการใช้งานข้อมูลเหล่านี้ต้องลองติดต่อกับ Broker ที่สมัครดูครับ

โดย SET ก็มี SDK ให้ทั้ง VBA, Amibroker และ Python ซึ่งเราจะเน้นไปที่ Python เป็นหลัก

ตัว API จะแยกเป็น Derivative(TFEX) และ Equity(หุ้น) ซึ่งวิธีการเรียกใช้ Code ก็แตกต่างกันไป

สิ่งที่ Settrade Open API สามารถทำได้มี 3 Part หลักๆคือ

1. ดึงข้อมูล

2. ส่งคำสั่งซื้อขาย

3. ยกเลิกหรือเปลี่ยนคำสั่ง

#ดึงข้อมูล

ดูข้อมูลของ Port ทั้ง Equity และ TFEX ที่เชื่อมต่อได้ว่ามี Cash Balance ,Line Available หรือ Equity Balance อยู่เท่าไหร่

เช็คจำนวนและรายละเอียดของ Order ได้ ว่าตอนนี้เมี Order อะไรค้างอยู่บ้าง มี Order ที่ Match ไปแล้วหรือรอ Match อยู่ได้กี่ Order เวลาที่ซื้อ-ขาย รวมทั้งจำนวนและราคาด้วย

และยังสามารถดึง Market Historical Data ได้จะมีข้อมูล OHLCV ย้อนหลักให้และเลือก Interval ได้ถึงระดับ 1m เพื่อมาสร้างเป็น Candle Stick Chart ทำ Backtest หาจุดเข้าออกก็ทำได้ โดยใช้คำสั่ง get_candlestick(..) อีกทั้งยังดึง Market Realtime Data ได้ด้วยดึง Bid Offer ได้มากสุด 5 ช่อง

#ส่งคำสั่งซื้อขาย

ยิงคำสั่ง Order ได้ โดยใช้คำสั่ง Place Order เพื่อส่งคำสั่งซื้อหรือขายหุ้นที่ต้องการ สามารถเลือก Type ของการส่งคำสั่งได้ด้วยทั้ง Limit, ATO, ATC และอื่นๆ (Equity กับ Derivative ชนิดการส่งคำสั่งจะแตกต่างกัน)

#ยกเลิกหรือเปลี่ยนคำสั่ง

API ของ Settrade จะมีรูปแบบการยกเลิกโดยใช้คำสั่ง Cancel Order เพื่อยกเลิกคำสั่ง และ Change Order เพื่อเปลี่ยนที่ส่งไปก่อนหน้านี้ โดยทั้งการ Cancel และ Change จะต้องเป็นคำสั่งที่ยังไม่ Match เท่านั้น

ก่อนที่จะเริ่มดึงข้อมูลหรือส่งคำสั่งซื้อเราจะต้องสร้าง Object ที่เป็น User ของเราไว้ก่อน

investor = Investor(  app_id=’Your App ID’,  app_secret =’Your App Secret’,  broker_id = ‘Your Broker ID’,  app_code = ‘Your App Code’,  is_auto_queue = False)

เพื่อตัว API จะได้รู้รายละเอียดของบัญชีของเราก่อนซึ่งข้อมูลพวก App Secret App ID ก็สามารถขอได้จากโบรคโดยตรงเลยนะ

ที่มารูป : https://developer.settrade.com/open-api/

รายชื่อโบรค : https://developer.settrade.com/open-api/document/broker-list

Investic

--

--