หลังจากที่ตลาดหลักทรัพย์แห่งประเทศไทยได้เปิดให้ใช้งานระบบ Settrade OpenAPI มาประมาณ 3 ปี ในช่วงเดือนมีนาคม 2566 จะมีการปรับปรุงระบบครั้งใหญ่ ซึ่งจะมีการอัพเกรดจากปัจจุบันเวอร์ชัน 0.5 ไปสู่เวอร์ชัน 2.0 ในการอัพเกรดครั้งนี้จะแตกต่างจากช่วงแรกที่ยังสามารถรองรับคำสั่งชุดก่อนหน้านั้นได้ ดังนั้นหลังจากเดือนมีนาคม 2566 การใช้งาน Settrade OpenAPI จะต้องเป็นชุดคำสั่งตั้งแต่เวอร์ชัน 2 ขึ้นไป รายละเอียด
การติดตั้ง และใช้งาน OpenAPI เวอร์ชัน 2
การทดสอบโปรแกรมปัจจุบันต้องทำผ่านระบบ Sandbox
ตัวอย่างที่ใช้ในการทดสอบโปรแกรมเวอร์ชัน 2
import time
from settrade_v2 import Investor
def my_message(result):
data = result['data']
hi_price = data['high']
low_price = data['low']
last_price = data['last']
place_order = deri.place_order(
pin="000000",
symbol=code,
side=side,
position="Auto",
price_type="Limit",
price=last_price,
volume=volume,
)
order_no = place_order["orderNo"]
print("Place order",code,"side =",side,"order no. =",order_no,"volume =",volume)
print("Stock info",code,"Hi = ",hi_price,"Low =",low_price,"Last =",last_price)
volume = 1
side = "Long"
code = "S50Z22"
investor = Investor(
app_id="xxx",
app_secret="xxx",
broker_id="SANDBOX",
app_code="SANDBOX",
is_auto_queue=False)
deri = investor.Derivatives(account_no="xxx")
realtime = investor.RealtimeDataConnection()
sub = realtime.subscribe_price_info(code, on_message=my_message)
sub.start()
while True:
time.sleep(1)
break
หมายเหตุ xxx – ข้อมูลบัญชีในระบบ Sandbox OpenAPI
เมื่อรันทดสอบการทำงานของโปรแกรมจะเป็นการเปิดออเดอร์ Long ทีเฟค S50Z22 จำนวน 1 สัญญา ที่ราคาล่าสุดบนกระดาน ออเดอร์ดังกล่าวก็จะไปปรากฏบนโปรแกรม Straming Sandbox