快速開始
確認環境
請參考 事前準備 完成相關檔案下載及連線測試,並確認您的資料夾內已經有準備好正式環境的憑證及設定檔。
您的資料夾結構應該像是:
.
├── config.ini
└── XXXXXXXXXX_XXXXXXXX.p12
若您尚未安裝 SDK 套件,可使用以下指令安裝:
- Python
- Node.js
pip install fugle-trade -U
目前支援 Python 3.7, 3.8, 3.9, 3.10 等版本。
npm install --save @fugle/trade
目前支援 Node.js 16 以上版本。
- Python
- Node.js
若您未曾使用 SDK 進行過登入,或更換了 SDK 執行環境,請在資料夾新增一個 index.py
檔案,貼上以下內容並執行:
from configparser import ConfigParser
from fugle_trade.sdk import SDK
# 讀取設定檔
config = ConfigParser()
config.read('./config.ini')
# 將設定檔內容寫至 SDK 中,並確認是否已設定密碼
sdk = SDK(config)
程式會跳出提示,請您輸入玉山證券富果帳戶的登入密碼以及憑證密碼:
# 執行程式
$ python index.py
Enter esun account password: # 請輸入您玉山證券富果帳戶的登入密碼
Enter cert password: # 請輸入您的憑證密碼
若您未曾使用 SDK 進行過登入,或更換了 SDK 執行環境,請在資料夾新增一個 index.js
檔案,貼上以下內容並執行:
import { FugleTrade, Order } from '@fugle/trade';
// 以 config.ini 設定檔初始化新的 SDK 物件
const fugle = new FugleTrade({
configPath: './config.ini',
});
// 登入
await fugle.login();
程式會跳出提示,請您輸入玉山證券富果帳戶的登入密碼以及憑證密碼:
# 執行程式
$ node index.js
Enter esun account password # 請輸入您玉山證券富果帳戶的登入密碼
Enter cert password # 請輸入您的憑證密碼
info
因資安要求,SDK 暫不提供於設定檔中直接使用明文設定密碼的功能。
送出第一筆正式委託
caution
提醒您,取得正式環境的使用權限前,您必須至少在模擬環境送出過一筆委託。
以下範例程式碼將示範如何使用富果交易 API 送出一張以跌停價買入 玉山金 (2884) 的限價委託單:
- Python
- Node.js
from configparser import ConfigParser
from fugle_trade.sdk import SDK
from fugle_trade.order import OrderObject
from fugle_trade.constant import (APCode, Trade, PriceFlag, BSFlag, Action)
# 讀取設定檔
config = ConfigParser()
config.read('./config.ini')
sdk = SDK(config)
# 登入
sdk.login()
# 建立委託物件
order = OrderObject(
buy_sell = Action.Buy,
price_flag = PriceFlag.LimitDown,
price = None,
stock_no = "2884",
quantity = 2,
ap_code = APCode.Common
)
sdk.place_order(order)
# 執行程式
$ python index.py
import { FugleTrade, Order } from '@fugle/trade';
// 環境設定
const fugle = new FugleTrade({
configPath: './config.simulation.ini',
});
// 登入
await fugle.login();
// 建立委託物件
const order = new Order({
buySell: Order.Side.Buy,
price: '',
stockNo: '2884',
quantity: 1,
apCode: Order.ApCode.Common,
priceFlag: Order.PriceFlag.LimitDown,
bsFlag: Order.BsFlag.ROD,
trade: Order.Trade.Cash,
});
// 送出委託
await fugle.placeOrder(order);
# 執行程式
$ node index.js
caution
在執行任何 API 呼叫之前,必須先進行一次登入。
恭喜你!你已經成功用交易 API 完成了第一筆委託!您可以開始撰寫自己的交易演算法,或到 實例應用 參考更多的範例程式碼。