Skip to main content

未實現損益查詢

UnrealizedGainsAndLoses

輸入參數

參數類別說明
accountAccount帳號

Result 回傳

參數類別說明
IsSuccessbool是否成功
Data*[]UnrealizedData回傳未實現損益列表
Message*string當 IsSuccess = false 回傳錯誤訊息

未實現 UnrealizedData 欄位

參數類別說明
Date*string庫存建立日
BranchNo*string分公司代號
StockNo*string股票代號
BuySellBsAction買賣別 : BsActionBuy 買 、 BsActionSell
OrderTypeOrderType委託單類型 : OrderTypeStock 現股 、 OrderTypeMargin 融資 、 OrderTypeShort 融券 、 OrderTypeDayTrade 現股當沖、OrderTypeSbl 借券
CostPrice*string成本價
TradableQty*int64可交易餘額
TodayQty*int64今日餘額
UnrealizedProfit*int64未實現獲利
UnrealizedLoss*int64未實現虧損
info

現股交易 buy_sell 皆為 Buy,以餘額正負號顯示淨買賣部位;若為信用交易,則 buy_sell 為 BuySell,顯示買賣類別

請求範例

package main

import (
"fmt"
"fubon"
)

func main() {
sdk := fubon.NewSDK()
// ... 登入、連線等初始化步驟 ...

// 查詢未實現損益
unreal, err := sdk.Accounting.UnrealizedGainsAndLoses(account)
if err != nil {
fmt.Printf("❌ Unrealized P&L Format/Parser Error: %v\n", err)
return
}

if unreal.IsSuccess && unreal.Data != nil {
fmt.Printf("✅ Found %d positions\n", len(*unreal.Data))

totalProfit := int64(0)
totalLoss := int64(0)

for _, u := range *unreal.Data {
fmt.Printf("\n股票: %s\n", *u.StockNo)
fmt.Printf("成本價: %s\n", *u.CostPrice)
fmt.Printf("今日餘額: %d\n", *u.TodayQty)
fmt.Printf("未實現獲利: %d\n", *u.UnrealizedProfit)
fmt.Printf("未實現虧損: %d\n", *u.UnrealizedLoss)

totalProfit += *u.UnrealizedProfit
totalLoss += *u.UnrealizedLoss
}

netPnL := totalProfit - totalLoss
fmt.Printf("\n總未實現損益: %d\n", netPnL)
}
}

回傳範例

Result{
IsSuccess: true,
Message: nil,
Data: &[]UnrealizedData{
{
Date: "2021/08/09", // 庫存建立日
Account: "26", // 帳號
BranchNo: "6460", // 分公司代號
StockNo: "2303", // 股票代號
BuySell: Buy, // 買賣別
OrderType: Short, // 委託單類型
CostPrice: "50.0", // 成本價格
TradableQty: 1000, // 可交易餘額
TodayQty: 1000, // 今日餘額
UnrealizedProfit: 45200, // 未實現獲利
UnrealizedLoss: 0, // 未實現虧損
},
},
}