Batch Modify Order Quantity
BatchModifyQuantity
First use MakeModifyQuantityObj to create a ModifyQuantityObj object
| Parameter | Type | Description |
|---|---|---|
| orderResult | OrderResult | The order to be modified |
| quantity | int64 | The modified quantity (Quantity after modification includes the filled part of this order) |
Pass the returned object into the BatchModifyQuantity method.
Input Parameters
| Parameter | Type | Description |
|---|---|---|
| account | Account | Account |
| modifyQuantityObjs | []ModifyQuantityObj | List of quantity modification objects |
Result Return
| Parameter | Type | Description |
|---|---|---|
| IsSuccess | bool | Whether successful |
| Data | *[]OrderResult | Returns modification information list |
| Message | *string | Returns 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
},
}