Skip to main content

Batch Modify Order Quantity

BatchModifyQuantity

First use MakeModifyQuantityObj to create a ModifyQuantityObj object

ParameterTypeDescription
orderResultOrderResultThe order to be modified
quantityint64The modified quantity (Quantity after modification includes the filled part of this order)

Pass the returned object into the BatchModifyQuantity method.

Input Parameters

ParameterTypeDescription
accountAccountAccount
modifyQuantityObjs[]ModifyQuantityObjList of quantity modification objects

Result Return

ParameterTypeDescription
IsSuccessboolWhether successful
Data*[]OrderResultReturns modification information list
Message*stringReturns error message when IsSuccess = false

Request Example

package main

import (
"fmt"
"fubon"
)

func main() {
sdk := fubon.NewSDK()
// ... Login, connection, and other initialization steps ...

// Method 1: Modify quantity using content returned by batch detail
batchList, _ := sdk.Stock.BatchOrderLists(account)
if batchList.Data != nil && len(*batchList.Data) > 0 {
batchRes := (*batchList.Data)[0]
batchDetail, _ := sdk.Stock.BatchOrderDetail(account, batchRes)

if batchDetail.Data != nil && len(*batchDetail.Data) >= 2 {
modifyObjs := []fubon.ModifyQuantity{
sdk.Stock.MakeModifyQuantityObj((*batchDetail.Data)[0], 1000),
sdk.Stock.MakeModifyQuantityObj((*batchDetail.Data)[1], 1000),
}

batchQty, err := sdk.Stock.BatchModifyQuantity(account, modifyObjs)
if err != nil {
fmt.Printf("❌ Batch Modify Quantity Format/Parse Error: %v\n", err)
return
}

if batchQty.IsSuccess && batchQty.Data != nil {
fmt.Printf("✅ Modified %d orders quantity\n", len(*batchQty.Data))
for i, result := range *batchQty.Data {
fmt.Printf("Order %d: BeforeQty=%d, AfterQty=%d\n",
i+1, *result.BeforeQty, *result.AfterQty)
}
}
}
}

// Method 2: Modify quantity using different single orders
ordResult, _ := sdk.Stock.OrderResults(account)
if ordResult.Data != nil && len(*ordResult.Data) >= 2 {
modifyObjs := []fubon.ModifyQuantity{
sdk.Stock.MakeModifyQuantityObj((*ordResult.Data)[0], 1000),
sdk.Stock.MakeModifyQuantityObj((*ordResult.Data)[1], 1000),
}

batchQty, _ := sdk.Stock.BatchModifyQuantity(account, modifyObjs)
// ... Handle result
}
}

Response Example

Result{
IsSuccess: true,
Message: nil,
Data: &[]OrderResult{
{
FunctionType: 20, // Function Type (20=Change Qty)
Date: "2024/03/08", // Transaction Date
SeqNo: "00000000042", // Order Sequence Number
OrderNo: "x0026", // Order Number
StockNo: "2881", // Stock Symbol
BeforeQty: 2000, // Effective Qty Before Change
AfterQty: 1000, // Effective Order Quantity (After modification)
UserDef: "batch 2", // User Defined Field
// ... Other fields
},
// ... More modification results
},
}