快速開始
請先參考事前準備完成風險預告書申請與憑證下載。
若您還未安裝 SDK 套件,可至SDK 下載頁面下載後,找到存放路徑,使用以下指令安裝:
套件安裝
- Python
- Node.js
- C#
pip install fubon_neo-<version>-cp37-abi3-win_amd64.whl
首先先建立一個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
官網下載回來的檔案會像是 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
並將憑證放置您的資料夾結構應該像是:
.
└── XXXXXXXXXX.pfx
- Python
- Node.js
- C#
若您未曾使用 SDK 進行過登入,或更換了 SDK 執行環境,請在資料夾新增一個 index.py
檔案,貼上以下內容並執行:
from fubon_neo.sdk import FubonSDK, FutOptOrder
from fubon_neo.constant import TimeInForce, FutOptOrderType, FutOptPriceType, FutOptMarketType, CallPut, BSAction
sdk = FubonSDK()
accounts = sdk.login("您的身分證字號", "您的登入密碼", "您的憑證位置", "您的憑證密碼") #若有歸戶,則會回傳多筆帳號資訊
## accounts = sdk.login("您的身分證號", "您的登入密碼", "您的憑證路徑位置") # 若憑證選用"預設密碼", SDK v1.3.2與較新版本適用
acc = accounts.data[0]
若您未曾使用 SDK 進行過登入,或更換了 SDK 執行環境,請在資料夾新增一個 index.js
檔案,貼上以下內容並執行:
const { FubonSDK, TimeInForce, FutOptOrderType, FutOptPriceType, FutOptMarketType, CallPut, BSAction } = require('fubon-neo');
const sdk = new FubonSDK();
const accounts = sdk.login("您的身分證字號", "您的登入密碼", "您的憑證路徑" ,"您的憑證密碼");
// const accounts = sdk.login("您的身分證號", "您的登入密碼", "您的憑證路徑位置"); // 若憑證選用"預設密碼", SDK v1.3.2與較新版本適用
const acc = accounts.data[0];
若您未曾使用 SDK 進行過登入,或更換了 SDK 執行環境,請在資料夾新增一個 index.cs
檔案,貼上以下內容並執行:
using FubonNeo.Sdk;
var sdk = new FubonSDK();
var accounts = sdk.Login("您的身分證字號", "您的登入密碼", "您的憑證路徑", "您的憑證密碼"); // 若有歸戶,則會回傳多筆帳號資訊
/*
// 若憑證選用"預設密碼", SDK v1.3.2 與較新版本適用
var acc_obj = sdk.Login("您的身分證號", "您的登入密碼", "您的憑證路徑");
*/
var acc = accounts.data[0];
送出委託,買入股票
再將以下範例程式碼補上, 將示範如何使用富邦API送出一張以跌停價買入 富邦金(2881)的限價委託:
- Python
- Node.js
- C#
order = FutOptOrder(
buy_sell = BSAction.Sell,
symbol = "TXFD4",
price = "20800",
lot = 3,
market_type = FutOptMarketType.Future,
price_type = FutOptPriceType.Limit,
time_in_force = TimeInForce.ROD,
order_type = FutOptOrderType.Auto,
user_def = "Python" # optional field
)
sdk.futopt.place_order(acc, order)
const order = {
buySell: BSAction.Buy,
symbol: "TXFD4",
price: "20800",
lot: 3,
marketType: FutOptMarketType.Future,
priceType: FutOptPriceType.Limit,
timeInForce: TimeInForce.ROD,
orderType: FutOptOrderType.Auto,
userDef: "from Js"
};
sdk.futopt.placeOrder(acc,order);
var order = new FutOptOrder(
BsAction.Buy,
"TXFD4",
null, // 複式單第二隻腳 買賣別
null, // 複式單第二隻腳 商品
"20800",
3,
FutOptMarketType.Future,
FutOptPriceType.Limit,
TimeInForce.Rod,
FutOptOrderType.Auto,
"From C#"
);
sdk.FutOpt.PlaceOrder(acc, order);