事前準備
caution
開始元富活躍新手 API 前,須完成以下步驟
- 完成線上開戶 線上開戶
- 申請憑證
- 簽署 API 使用風險暨聲明書
- 完成認證 (若先前已使用元富)
完成線上開戶
若您已有元富證券帳戶請跳過此步驟,若尚未開戶請點選 線上開戶
申請憑證
申請憑證
-
檢查憑證狀態
網頁會檢查是否有憑證,若無憑證則先申請一張 -
收取OTP 選擇輸入手機或電子信箱收取OTP驗證
-
匯出憑證 ( 若跳出輸入憑證密碼,預設為您的登入帳號 )
-
完成申請,憑證將存放於選取的位置,並以您的身份證字號為檔名並在結尾帶有
p12
字樣
簽署
依照下方連結範例簽署
線上簽署連結
caution
簽屬完畢後,需間隔一天才會生效
安裝套件
至SDK下載頁面下載相關套件
- Python
- Node.js
pip install masterlinksdk-<version>-cp37-abi3-win_amd64.whl
目前支援 3.7、3.8、3.9、3.10、3.11 與 3.12 。
首先先建立一個project資料夾,並利用下列指令初始化
npm init
官網下載回來的檔案會像是 masterlinksdk-<version>.tgz,並且把它放入剛剛建立的資料夾中
把 node.js project 裡面的 package.json 增加一行
"dependencies": {
...
"masterlink": "file://<path-to-js-binary>/masterlinksdk-<version>.tgz",
...
}
然後到命令行輸入以下指令
npm install
目前支援 Node.js 16 以上版本。
執行認證,開啟程式交易之旅
- Python
- Node.js
from masterlink_sdk import MasterlinkSDK, Order ,TimeInForce, OrderType, PriceType, MarketType, BSAction
#載入設定檔與登入
sdk = MasterlinkSDK()
accounts = sdk.login("您的身分證字號", "您的登入密碼", "您的憑證位置") # 若是使用技術文件申請,則憑證密碼為預設
#accounts = sdk.login("您的身分證字號", "您的登入密 碼", "您的憑證位置", "您的憑證密碼") # 若使用憑證 e 管家,則需輸入自設憑證密碼
acc = accounts[0]
sdk.register_api_auth(acc) # 未開通過元富 API 之用戶,第一次登入時,需加入此行程式認證,認證完畢後,即可移除此行
可先 單獨執行以上程式,
完成認證後,即可使用 SDK 各項功能
#建立委託物件
order = Order(
buy_sell = BSAction.Buy,
symbol = "2888",
quantity = 2000,
price = "15",
market_type = MarketType.Common,
price_type = PriceType.Limit,
time_in_force = TimeInForce.ROD,
order_type = OrderType.Stock,
)
order_res = sdk.stock.place_order(acc, order)
print(order_res)
太棒了🎊,完成下單任務,即可看到系統回覆的結果
PlaceOrderResponse {
order_date: "20241028",
order_time: "095945300",
work_date: "20241028",
is_pre_order: false,
order_no: "h0001"
}
const { MasterlinkSDK, BSAction, TimeInForce, OrderType, PriceType, MarketType } = require('masterlink');
//
const sdk = new MasterlinkSDK();
const accounts = sdk.login("您的身分證字號", "您的登入密碼", "您的憑證位置") // 若是使用技術文件申請,則憑證密碼為預設
//const accounts = sdk.login("您的身分證字號", "您的登入密碼", "您的憑證位置", "您的憑證密碼") // 若使用憑證 e 管家,則需輸入自設憑證密碼
const acc = accounts[0];
const register = sdk.registerApiAuth(acc) // 未開通過元富 API 之用戶,第一次登入時,需加入此行程式,認證認證完畢後,即可移除此行
可先單獨執行以上程式,
完成認證後,即可使用 SDK 各項功能
const order = {
buySell: BSAction.Buy,
symbol: "2888",
price: "15",
quantity: 2000,
marketType: MarketType.Common,
priceType: PriceType.Limit,
timeInForce: TimeInForce.ROD,
orderType: OrderType.Stock,
};
//
sdk.stock.placeOrder(acc,order);
太棒了🎊,完成下單任務,即可看到系統回覆的結果
{
orderDate: "20241028",
orderTime: "095945300",
workDate: "20241028",
isPreOrder: false,
orderNo: "h0001"
}