เผยแพร่เมื่อ วันพุธที่ 23 ธันวาคม พ.ศ. 2563
Settrade เปิดโอกาสให้สามารถส่งคำสั่งด้วย Algorithm ได้แล้วโดยผ่าน SDK ของทาง Settrade โดยสามารถส่งคำสั่งได้หลายรูปแบบ เช่น Python, Excel VBA และ Amibroker
สำหรับนักลงทุนที่อยากจะทำการทดลองทาง Settrade ได้เพิ่มเติมระบบ Sandbox ซึ่งเป็นบัญชีที่จำลองเป็นสภาพแวดล้อม สำหรับผู้ที่ต้องการทดลองส่งคำสั่ง หรือนักลงทุนมือใหม่ที่ต้องการทดลองใช้งาน Algorithm ของตนเอง โดยไม่จำเป็นต้องเปิดบัญชีจริงและสามารถทดลองใช้งานได้ฟรีไม่มีค่าใช้จ่าย
หมดสมัยที่ต้องคีย์คำสั่งด้วยมือแล้ว มาสู่ยุคของ Algorithm Trading ถ้านักลงทุนท่านใดมีความต้องการใช้ Settrade API และมีบัญชีกับโบรคเกอร์อยู่แล้วโปรดติดต่อผู้แนะนำการลงทุนของท่าน แต่ท่านใดยังไม่มีก็สามารถทดลองเล่น Sandbox ดูก่อนได้
การ Generate Key เพื่อการส่งคำสั่งผ่าน Settrade API
ในการใช้งาน Settrade API ในการส่งคำสั่งจริงไม่ว่าจะใช้งานด้วย Platform ไหน ผู้ใช้งานจำเป็นที่ต้องสร้าง Key ขึ้นมา เพื่อให้สามารถเข้าถึงบัญชีและใช้งาน Settrade API ด้วย Key นี้จะอนุญาตให้เข้าถึงบัญชี ตรวจดูสถานะ และส่งคำสั่งซื้อขายได้
ฉะนั้นเพื่อความปลอดภัย “โปรดเก็บกุญแจของคุณเป็นความลับ”
ขั้นตอนต่อไปนี้เป็นวิธีการ Generate Key สำหรับผู้ที่เปิดบัญชีจริง
ก่อนอื่นเข้าไปยัง Login Streaming ของ Websiteโบรกเกอร์ Classic Ausiris
เมื่อใช้งานครั้งแรกจะมีหน้า ข้อตกลงและเงื่อนไขการใช้งาน Streaming ปรากฎขึ้นมา
กดยอมรับข้อตกลง
ทางเลือก [Optional] = Auto Position คือการส่งคำสั่งโดยไม่ต้องกำหนด Position ให้เป็น Open หรือ Close ในการส่งคำสั่งจะหักลบกับสถานะเดิมในลักษณะ Net Position
ท่านสามารถติดต่อผู้แนะนำการลงทุนของท่านให้เปิดการใช้ Auto Position ได้
เพียงเท่านี้ก็จะได้ App Secret และ App ID สำหรับการใช้งาน Settrade API สามารถสร้าง Key ใหม่ได้ทุกครั้ง โดยเมื่อสร้าง Key ใหม่ Key เดิมจะใช้งานไม่ได้
ส่วนของ Client Proxy เป็นโปรแกรมสำหรับเชื่อมต่อกับ Amibroker ถ้าไม่ได้ใช้ Amibroker ก็ไม่มีความจำเป็นที่ต้องติดตั้ง
Sandbox คือสถานที่จำลองซึ่งเหล่านักลงทุนจะได้ทดลองสร้างและทดสอบ Algorithm ในสภาวะเสมือนจริงในการลงทุน ไม่ว่าจะเป็นผู้ที่เริ่มต้นหรือผู้เชี่ยวชาญก็สามารถทดลองสรรค์สร้าง Algorithm ของตนเองตามจินตนาการได้อย่างไม่มีขีดจำกัด
ไม่ว่าใครก็สามารถสร้าง Algorithm Trading ได้หากเงินทุนของท่านยังไม่พร้อม หรือว่ากำลังรอฤกษ์งามยามดี ยังไม่อยากเปิดบัญชีก็สามารถใช้ Sandbox ได้โดยไม่ต้องเปิดบัญชีซื้อขายจริง เพราะ Sandbox เป็นที่ฝึกฝนและทดลองสร้าง Algorithm Trading ให้ Sandbox เป็นที่เริ่มต้นก้าวแรกของการสร้าง Algorithm ขั้นตอนต่อไปนี้เป็นวิธีการ Generate key สำหรับผู้ที่ใช้งาน Sandbox
การสมัครเข้าใช้งาน
สามารถเข้าไปสมัครใช้งานได้ที่ https://developer.settrade.com/open-api/
หลังจากเข้าสู่ระบบแล้วขั้นตอนต่อมาคือการสร้าง Application ID และ Application Secret สำหรับใช้ใน SDK ของ Settrade API
คลิก “ข้อมูลของฉัน” ในส่วนของ Dropdown มุมขวาบนของจอ
คลิก “สร้าง Application Id”เพียงเท่านี้เราจะได้ Application ID และ Application Secret สำหรับใช้ใน Sandbox ของ Settrade API แล้วส่วนของ Client Proxy เป็นโปรแกรมสำหรับเชื่อมต่อกับ Amibroker ถ้าไม่ได้ใช้ Amibroker ก็ไม่มีความจำเป็นที่ต้องติดตั้ง
ในแถบด้านบนจะมีโปรแกรม Streaming เพื่อดูผลลัพธ์ของการส่งคำสั่งและฟีดข้อมูล
ถึงแม้ราคาไม่ได้อิงจากราคาตลาดจริง แต่ก็สามารถทดลองส่งคำสั่งได้
ส่วนที่สำคัญในที่นี้คือชื่อ Account ที่จะนำไปใช้ใน API ของ Sandbox โดยจะปรากฎที่ส่วนนี้ โดยมีรูปแบบดังนี้
บัญชีหุ้น Account จะเป็น “username-E”
บัญชี TFEX Account จะเป็น “username-D”
(เป็นรูปแบบบัญชีเฉพาะของ Sandbox)
มาถึงจุดนี้เราก็มีความพร้อมสำหรับการเริ่มจากการเขียนโปรแกรมเชื่อมต่อ Settrade API แล้ว
ซึ่งต่อจากนี้ก็ขึ้นกับความถนัดของแต่ละท่าน โดยสามารถดูอ้างอิงได้จากเว็บไซต์ของ Settrade
https://developer.settrade.com/open-api/api-reference/getting-start
ข้ามขีดจำกัดของการส่งคำสั่งด้วย Excel เพียงแค่ใช้ Microsoft Excel เป็นก็สามารถสร้าง Algorithm ของตนเองได้ “Settrade Excel VBA SDK” เป็นส่วนเสริมของ Microsoft Excel ช่วยให้นักลงทุนสามารถสร้าง Algorithm และส่งคำสั่งได้ด้วยตนเองโดยใช้โปรแกรม Microsoft Excel
การติดตั้ง
สามารถ Download ส่วนเสริมและศึกษาการใช้งานได้จาก developer.settrade.com
1) เลือกแถบ Navigation Bar ในส่วนของ API Reference
2) เลือกแถบด้านข้างในหัวข้อ Download
3) เลือก Plugin ที่รองรับกับ version ของ Excel
4) แตกไฟล์ .rar และทำการติดตั้งโปรแกรม
ถ้าโปรแกรมหา dll ไม่เจอให้ติดตั้ง Microsoft Visual C++
https://support.microsoft.com/th-th/help/2977003/the-latest-supported-visual-c-downloads
ถ้าติดตั้งโปรแกรมเรียบร้อยใน Excel จะมีแถบ Settrade เพิ่มขึ้นมา
ในการใช้งานจำเป็นที่จะต้องใส่ Attribute ดังนี้
Broker ID = คือรหัสของโบรคเกอร์ถ้าใช้ Sandbox ใส่เป็น “SANDBOX”
App Code = บัญชีจริงใส่ค่าเป็น “ALGO” ถ้าใช้ Sandbox ใส่เป็น “SANDBOX”
App ID = ได้รับจากการ Generate Key
App Secret = ได้รับจากการ Generate Key
Excel VBA
Excel VBA ถ้าพูดให้เข้าใจง่ายคือ ภาษาที่ใช้ควบคุมการทำงานของโปรแกรม Excel ในการใช้งาน Excel VBA SDK จำเป็นต้องมีความรู้ความเข้าใจการทำงานเล็กน้อย เพียงเพื่อนำมาใช้สร้าง Template สำหรับการใช้งานใน Excel ในการใช้ Excel VBA อันดับแรกต้องเปิดใช้งานแถบ Developer ใน Excel ก่อน ถ้ายังไม่มีแถบ Developer สามารถเปิดแถบดังกล่าวได้ดังนี้
อันดับต่อมาคือการเปิดการอนุญาตใช้ Marcros
เมื่อเปิด Visual basic ในแถบ Developer จะพบกับหน้าปล่าวๆ ใช้ในการเขียน Code เราสามารถควบคุมการทำงานทั้งหมดของ Excel จากการเขียน Code ที่นี่
ในการบันทึก Excel ร่วมกับ VBA code จะบันทึกสเปรตชีตทั่วไปเหมือน Excel ธรรมดา แต่
ใน Dropdown ในส่วน Save as type จะเลือกเป็นแบบ Excel Macro
การดึงข้อมูลบัญชี
Code ชุดแรก Setup() ใช้สร้าง object โดยกำหนดตัวแปร deriv เป็น Public
Code ชุดที่สอง DerivAccount() เป็นชุดหลักในการทำงาน ใช้ในการดึงข้อมูลจาก Settrade โดยใช้ Attribute เป็นหมายเลขบัญชี โดยทำการรัน code ชุดแรกก่อนจึงจะสามารถรันชุดนี้ได้ผ่านคำสั่ง Call setup
ในที่นี้ทำการดึงข้อมูลมาเก็บใน Cell C13 – C18
Worksheets เป็นตัวกำหนดตำแหน่งของ sheet Range ใช้กำหนดตำแหน่ง Cell ในการใส่ข้อมูล
การดึงข้อมูลราคา
ส่วนการดูราคา สามารถเรียกได้จากการใส้สูตรใน Excel ได้โดยตรง
ในส่วน A1 คือชื่อ Symbol “S50Z20”
ในส่วน A2 คือ Attribute หรือคุณลักษณะ
ยกตัวอย่างเช่น
“last” = Last Price
“bid_price1” = ราคา bid ช่องที่ 1
“ask_price1” = ราคา ask ช่องที่ 1
“bid_volume1” = volume bid ช่องที่ 1
“ask_volume1” = volume ask ช่องที่ 1
การส่งคำสั่ง
เมื่อกำหนดตัวแปรที่จำเป็นสำหรับการส่งคำสั่งดังนี้
เมื่อนำคำสั่งทุกอย่างมายำรวมไว้ด้วยกัน Algorithm จะมีการทำงานดังนี้
คำสั่งที่นำมาแสดงเป็นตัวอย่างข้างต้นเพียงไม่กี่คำสั่งเท่านั้น
ทั้งนี้สามารถดูคำสั่งเพิ่มเติมจากเว็บไซต์ของ Settrade API : https://developer.settrade.com/open-api/api-reference/getting-start
Python SDK
Install
ติดตั้ง python Settrade Python SDK library โดยใช้ Command Line
โดยพิมพ์คำสั่ง “pip install settrade”
ในส่วน Python editor ทำการ import library settrade.openapi
ถ้าโปรแกรมหา dll ไม่เจอให้ติดตั้ง Microsoft Visual C++
สามารถดาวน์โหลดได้จากเว็บไซต์
https://support.microsoft.com/th-th/help/2977003/the-latest-supported-visual-c-downloads
Create investor objects
ในขั้นแรกต้องสร้าง object ของ investor ขึ้นมาใช้งานก่อน
Attributes ที่จำเป็นต้องใส่
Sandbox
การส่งคำสั่งจริง
Create account objects
ขั้นต่อมาสร้าง objects ของบัญชีเทรดต้องการ Attribute account_no สามารถเลือกบัญชีได้ดังนี้
ถ้าเป็นบัญชีจริงสามารถใช้เลข Account ของบัญชีได้เลย
เมื่อเรียกใช้ method get_account_info() จะแสดงสถานะของ portfolio
Get data
ในการ feed data ก่อนอื่นสร้าง object จาก MQTTWebsocket() เพื่อใช้ในการ subscribe ข้อมูล
ในตัวอย่างนี้จะสร้าง Object ชื่อว่า mqtt ขึ้นมา
Subscribe Bid Offer
หลังจากที่ได้ Object mqtt มาแล้วในการ feed ข้อมูลเราจะมาสร้าง callback function เพื่อ execute จาก MQTTWebsocket ในที่นี้ ( callback function ชื่อว่า returnSub() )
ใช้ method subscribe_bid_offer ในการรับค่า Bid Offer
ค่าดิบๆที่ได้มาจะอยู่ในรูป dictionary เมื่อปรับปรุงให้สวยงามและ Print ค่าที่ออกมาจะเป็นดังนี้
Subscribe last price
วิธีการคล้ายๆกับการ Subscribe Bid Offer เพียงแต่ใช้ method subscribe_price_info ในการรับค่าราคาปัจจุบัน
ค่าดิบๆที่ได้มาจะอยู่ในรูป dictionary เมื่อปรับปรุงให้สวยงามและ Print ค่าที่ออกมาจะเป็นดังนี้
PlaceOrder
คำสั่ง PlaceOrder เป็นคำสั่งที่ใช้ในการส่งคำสั่งซื้อขาย
Symbol = คือชื่อหลักทรัพย์ที่ต้องการซื้อขาย
Price = คือราคาที่ต้องการซื้อขาย
Volume = คือปริมาณที่ต้องการในการซื้อขาย
Side = คือสถานะของ Order ว่าจะเป็น "LONG" หรือ "SHORT"
Position =
- คือรูปแบบของสถานะแบ่งเป็น เปิดสถานะ Open Position "OPEN",
- ปิดสถานะ Close Position "CLOSE"
- หรือ Auto Position "AUTO" ไม่สนใจว่าเป็นสถานะใดแต่จะใช้หลักการ net position
Pin = รหัสในการส่งคำสั่ง sandbox คือ pin="000000"
price_type = เป็น Optional กำหนดรูปแบบคำสั่ง "LIMIT", "ATO", "MP", "MP-MTL", "MP-MKT"
*ในตัวอย่างเป็น derivative account
*ทั้งนี้ Settrade API ยังสามารถส่งคำสั่งลักษณะอื่นๆได้อีก สามารถศึกษาได้จาก api-reference ของ Settrade
คำสั่งที่นำมาแสดงเป็นตัวอย่างข้างต้นเพียงไม่กี่คำสั่งเท่านั้น ทั้งนี้สามารถดูคำสั่งเพิ่มเติมจากเว็บไซต์ของ Settrade API:https://developer.settrade.com/open-api/api-reference/getting-start
Array ( )
Array ( [sesCAFXXSLAT] => 1746062833 [CAFXSI18NX] => th [_csrf] => 72260f353aa4d2c0efeca207764b2ccf [CAFXSFEREF] => https://www.caf.co.th/article/settrade-api.html?PageSpeed=noscript )
Array ( [content] => settrade-api )
Array ( )