Get Batch Order Detail
BatchOrderDetail
Input Parameters
| Parameter | Type | Description |
|---|---|---|
| account | Account | Account |
| batchResult | BatchResult | Batch Order List Item |
Result Return
| Parameter | Type | Description |
|---|---|---|
| IsSuccess | bool | Whether successful |
| Data | *[]OrderResult | Returns order information list |
| Message | *string | Returns error message when IsSuccess = false |
Order Information OrderResult Fields
Return type : Object
| Parameter | Type | Description |
|---|---|---|
| FunctionType | *int64 | Function Type: 0 New Order, 10 Execute New Order, 15 Change Price, 20 Change Qty, 30 Cancel Order, 90 Fail |
| Date | *string | Transaction Date |
| SeqNo | *string | Order Sequence Number |
| BranchNo | *string | Branch Code |
| Account | *string | Account |
| OrderNo | *string | Order Number |
| AssetType | *int64 | Asset Type: 0 Securities |
| Market | *string | Market: TAIEX Listed Stocks, TAISDAQ OTC Stocks, TAIEMG Emerging Stocks |
| MarketType | MarketType | Market Type Category: MarketTypeCommon Regular Stock, MarketTypeFixing Fixing, MarketTypeIntradayOdd Intraday Odd Lot, MarketTypeOdd Post-market Odd Lot, MarketTypeEmg Emerging, MarketTypeEmgOdd Emerging Odd Lot |
| StockNo | *string | Stock Symbol |
| BuySell | *BsAction | Buy/Sell Action: BsActionBuy Buy, BsActionSell Sell |
| PriceType | *PriceType | Effective Price Type: PriceTypeLimit Limit, PriceTypeLimitUp Limit Up, PriceTypeLimitDown Limit Down, PriceTypeMarket Market, PriceTypeReference Reference |
| Price | *string | Price |
| Quantity | *int64 | Original Order Quantity |
| TimeInForce | *TimeInForce | Order Condition: TimeInForceRod ROD, TimeInForceFok FOK, TimeInForceIoc IOC |
| OrderType | *OrderType | Order Type: OrderTypeStock Common, OrderTypeMargin Margin, OrderTypeShort Short Sell, OrderTypeDayTrade Day Trade, OrderTypeSbl SBL |
| IsPreOrder | *bool | Is Pre-order |
| Status | *int64 | Order Status: 0 Pre-order, 4 Sending to Backend, 9 Connection Timeout, 10 Order Success, 30 Cancelled Unfilled, 40 Partial Fill/Rest Cancelled, 50 Fully Filled, 90 Fail |
| AfterPriceType | *PriceType | Effective Price Type: PriceTypeLimit Limit, PriceTypeLimitUp Limit Up, PriceTypeLimitDown Limit Down, PriceTypeMarket Market, PriceTypeReference Reference |
| AfterPrice | *string | Effective Order Price |
| Unit | *int64 | Unit |
| AfterQty | *int64 | Effective Order Quantity (including filled part) |
| FilledQty | *int64 | Filled Quantity |
| FilledMoney | *int64 | Filled Amount |
| BeforeQty | *int64 | Effective Qty Before Change |
| BeforePrice | *string | Effective Price Before Change |
| UserDef | *string | User Defined Field |
| LastTime | *string | Last Modified Time |
| Details | *string | Order History (Value exists only when querying OrderResultDetail or OrderHistory) |
| ErrorMessage | *string | Error Message |
caution
This function is only for querying the result of batch order submission. To get the latest status of orders, please use the single order query function.
Request Example
package main
import (
"fmt"
"fubon"
)
func main() {
// Initialize SDK and login
sdk := fubon.NewSDK()
// ... Login, connection, and other initialization steps ...
// Get batch order list first
batchList, err := sdk.Stock.BatchOrderLists(account)
if err != nil {
fmt.Printf("❌ Get Batch List Format/Parse Error: %v\n", err)
return
}
// Select the first batch to query details
if batchList.Data != nil && len(*batchList.Data) > 0 {
batchRes := (*batchList.Data)[0]
fmt.Printf("Querying batch detail for: %s\n", *batchRes.BatchSeqNo)
// Query Batch Order Detail
batchDetail, err := sdk.Stock.BatchOrderDetail(account, batchRes)
if err != nil {
fmt.Printf("❌ Batch Order Detail Format/Parse Error: %v (Type: %T)\n", err, err)
return
}
// Check Success
if !batchDetail.IsSuccess {
message := "No message"
if batchDetail.Message != nil {
message = *batchDetail.Message
}
fmt.Printf("Get order result failed. Message: %s\n", message)
return
}
// Output Batch Details
if batchDetail.Data != nil && len(*batchDetail.Data) > 0 {
fmt.Printf("✅ Batch contains %d orders\n", len(*batchDetail.Data))
for i, result := range *batchDetail.Data {
fmt.Printf("\n--- Order %d ---\n", i+1)
fmt.Printf("OrderNo: %s\n", *result.OrderNo)
fmt.Printf("StockNo: %s\n", *result.StockNo)
fmt.Printf("BuySell: %v\n", *result.BuySell)
fmt.Printf("Price: %s\n", *result.Price)
fmt.Printf("Quantity: %d\n", *result.Quantity)
fmt.Printf("Status: %d\n", *result.Status)
}
} else {
fmt.Println("Order result success but no data returned.")
}
} else {
fmt.Println("⚠️ No batch orders found")
}
}
Response Example
// BatchOrderDetail Return Structure
Result{
IsSuccess: true,
Message: nil,
Data: &[]OrderResult{
{
FunctionType: nil, // Function Type
Date: "2023/10/18", // Date
SeqNo: "00000000007", // Order Sequence Number
BranchNo: "6460", // Branch Code
Account: "26", // Account
OrderNo: "bA683", // Order Number
AssetType: 0, // Asset Type
Market: "TAIEX", // Market Type
MarketType: Common, // Market Type Category
StockNo: "2888", // Stock Symbol
BuySell: Buy, // Buy/Sell Action
PriceType: Limit, // Original Price Type
Price: "8.9", // Price
Quantity: 2000, // Original Order Quantity
TimeInForce: Rod, // Order Condition
OrderType: Stock, // Order Type
IsPreOrder: false, // Is Pre-order
Status: 10, // Order Status
AfterPriceType: Limit, // Effective Price Type
AfterPrice: "8.9", // Effective Price
Unit: 1000, // Unit
AfterQty: 2000, // Effective Order Quantity
FilledQty: 0, // Filled Quantity
FilledMoney: 0, // Filled Amount
BeforeQty: 0, // Effective Qty Before Change
BeforePrice: "8.9", // Effective Price Before Change
UserDef: "", // User Defined Field
LastTime: "14:41:32.647", // Last Modified Time
Details: nil, // Order History
ErrorMessage: "", // Error Message
},
// ... more orders
},
}