事前準備
準備好富邦證券帳戶
使用您的富邦證券帳戶
簽署API使用風險暨聲明書
依照下方連結範例簽署
線上簽署
完成簽署
恭喜您,已簽署完成使用風險暨聲明書
申請憑證
申請憑證
-
至憑證申請、展期下載CATools申請憑證
-
收取OTP
登入完成並且認證後,輸入手機或電子信箱收取OTP驗證 -
完成申請,憑證將存放於桌面,並以您的身份證字號為檔名
安裝套件
至官網下載相關套件
- Python
- Node.js
- C#
pip install fubon_neo-1.0.0-cp37-abi3-win_amd64.whl
目前支援 Python 3.7,3.8,3.9,3.10及3.11等版本。
首先先建立一個project資料夾,並利用下列指令初始化
npm init
官網下載回來的檔案會像是 fubon-neo-<version>.tgz,並且把它放入剛剛建立的資料夾中
把 node.js project 裡面的 package.json 增加一行
"dependencies": {
...
"fubon-neo": "file://<path-to-js-binary>/fubon-neo-<version>.tgz",
...
}
然後到命令行輸入以下指令
npm install
目前支援 Node.js 16 以上版本。
官網下載回來的檔案會像是 FubonNeo.<version>.nupkg
-
使用方法一 : Visual Studio Nuget 套件管理員安裝( 以.NET 7為例 ) :
將套件放置在新增的專案下方後,點擊
工具
->Nuget套件管理員
->套件管理員設定
跳出視窗後,
- 點擊右上角的
+
- 點擊下方的
...
選取套件存放位置 - 將名稱更名
- 點擊
更新
- 按下確定
點擊
工具
->Nuget套件管理員
->管理方案的Nuget套件
接者選取
- 套件來源,選取前一個步驟命名的套件名稱
- 點選瀏覽
- 點擊套件
- 選取專案
- 安裝版本
安裝完成! 即可使用新一代SDK。
- 點擊右上角的
-
使用方法二 : Visual Studio Nuget 套件管理員安裝( 以.NETFramework 4.7.2為例) :
將套件放置在新增的專案下方後,點擊工具
->Nuget套件管理員
->套件管理員設定
跳出視窗後,
- 點擊右上角的
+
- 點擊下方的
...
選取套件存放位置 - 將名稱更名
- 點擊
更新
- 按下確定
點擊右方方案總管中
在解決方案與可用檢視之間切換
(若找不到方案總管,可至上方檢視中開啟) , 開啟資料夾後,找到.csproj檔案csproj 檔案裡面增加 sdk 的 reference (Version 內容再依版號填入)
<ItemGroup>
...
<PackageReference Include="FubonNeo" Version="1.0.0" />
...
</ItemGroup>
...點擊檔案總管中的
.sln
, 於專案名稱中點選右鍵,重新載入專案caution目前套件僅支援 64 Bit,若您的開發環境預設為32 Bit,可照下方步驟調整
- 點擊上方專案
- 選取專案屬性
- 點選左方建置,將平台目標改為x64
- 點擊右上角的
-
若不使用 Visual Studio Nuget套件管理員,可使用 Command Line如下
在 project 資料夾下面新增 nuget.config 檔案:
cd /您的資料夾路徑/
cd .>nuget.config #新增nuget.config並將下列內容貼至nuget.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="local" value="./" />
</packageSources>
<config>
<add key="repositoryPath" value="./" />
</config>
<packageSourceMapping>
<!-- key value for <packageSource> should match key values from <packageSources> element -->
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
<packageSource key="local">
<package pattern="FubonNeo*" />
</packageSource>
</packageSourceMapping>
</configuration>接著在 project 的 csproj 檔案裡面增加 sdk 的 reference (Version 內容再依版號填入)
...
<ItemGroup>
<PackageReference Include="FubonNeo" Version="1.0.0" />
</ItemGroup>
...接著
dotnet restore
C# 使用.NET Standard 2.0開發,建議您使用 .netcoreapp 3.1 以上;如使用.NETFramework 建議您使用.NETFramework 4.7.2以上版本。
開始拓展程式交易之旅
- Python
- Node.js
- C#
from fubon_neo.sdk import FubonSDK, Order
from fubon_neo.constant import TimeInForce, OrderType, PriceType, MarketType, BSAction
#載入設定檔與登入
sdk = FubonSDK()
accounts = sdk.login("您的身分證號", "您的登入密碼", "您的憑證路徑位置" , "您的憑證密碼")
acc = accounts.data[0]
#建立委託物件
order = Order(
buy_sell = BSAction.Buy,
symbol = "2881",
quantity = 2000,
price = "66"
market_type = MarketType.Common,
price_type = PriceType.Limit,
time_in_force = TimeInForce.ROD,
order_type = OrderType.Stock,
user_def = "From Python" # optional field
)
order_res = sdk.stock.place_order(acc, order)
print(order_res)
恭喜您🎊,完成下單,即可看到系統回覆的結果
Result { is_success: True, message: None, data : OrderResult{ date: "2023/10/13", seq_no: "00000000015", branch_no: "6460", account: "26", order_no: "bA626", asset_type: 0, market: "TAIEX", market_type: Common, stock_no: "2881", buy_sell: Buy, price_type: Limit, price: 66.0, quantity: 2000, time_in_force: ROD, order_type: Stock, is_pre_order: false, status: 10, after_price_type: Limit, after_price: 66.0, unit: 1000, after_qty: 2000, filled_qty: 0, filled_money: 0, before_qty: 0, before_price: 66.0, user_def: "From Python", last_time: "16:48:09.247", error_message: None} }
const { FubonSDK, BSAction, TimeInForce, OrderType, PriceType, MarketType } = require('fubon-neo');
//
const sdk = new FubonSDK();
const accounts = sdk.login("您的身分證號", "您的登入密碼", "您的憑證路徑", "您的憑證密碼");
const acc = accounts.data[0];
//
const order = {
buySell: BSAction.Buy,
symbol: 2881,
price: "66",
quantity: 2000,
marketType: MarketType.Common,
priceType: PriceType.Limit,
timeInForce: TimeInForce.ROD,
orderType: OrderType.Stock,
userDef: "from Js"
};
//
sdk.stock.placeOrder(acc,order);
恭喜您🎊 ,完成下單,即可看到系統回覆的結果
{ isSuccess: true, data:{ date : '2023/10/13', seqNo : '00000000016', branchNo : '6460', account : '26', orderNo : 'bA627', assetType : 0, market : 'TAIEX', marketType : 'Common', stockNo : '2881', buySell : 'Buy', priceType : 'Limit', price : 66, quantity : 2000, timeInForce : 'ROD', orderType : 'Stock', isPreOrder : false, status : 10, afterPriceType : 'Limit', afterPrice : 66, unit : 1000, afterQty : 2000, filledQty : 0, filledMoney : 0, beforeQty : 0, beforePrice : 66, userDef : 'From JS', lastTime : '17:19:06.048' } }
using FubonNeo.Sdk;
//載入設定檔與登入
var sdk = new FubonSDK();
var acc_obj = sdk.Login("您的身分證號", "您的登入密碼", "您的憑證路徑" ,"您的憑證密碼");
var acc = acc_obj.data[0];
//建立委託物件
var order = new Order(
BsAction.Buy,
"2881",
"66",
2000,
MarketType.Common,
PriceType.Limit,
TimeInForce.ROD,
OrderType.DayTrade,
"From C#"
);
var order_res = sdk.Stock.PlaceOrder(acc, order);
Console.WriteLine(order_res);
恭喜您🎊,完成下單,即可看到系統回覆的結果
{ isSuccess = True, message = , data = { date = 2023/10/13, seqNo = 00000000016, branchNo = 6460, account = 26, orderNo = bA627, assetType = 0, market = TAIEX, marketType = Common, stockNo = 2881, buySell = Buy, priceType = Limit , price = 66, quantity = 2000, timeInForce = ROD, orderType = DayTrade, isPreOrder = False, status = 10, afterPriceType = Limit, afterPrice = 66, unit = 1000, afterQty = 2000, filledQty = 0, filledMoney = 0, beforeQty = 0, beforePrice = 66, userDef = From C#, lastTime = 17:19:06.048, errorMessage = } }