Skip to main content

Batch Modify Order Price

BatchModifyPrice

First use MakeModifyPriceObj to create a ModifyPriceObj object

ParameterTypeDescription
orderResultOrderResultThe order to be modified
price*stringThe modified price
priceType*PriceTypeThe modified price flag
caution

When the price field has a value, priceType must be nil. When priceType has a value, price must be nil.

Pass the returned object into the BatchModifyPrice method.

Input Parameters

ParameterTypeDescription
accountAccountAccount
modifyPriceObjs[]ModifyPriceObjList of price 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 price 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 {
price1 := "41.1"
price2 := "41.2"

modifyObjs := []fubon.ModifyPrice{
sdk.Stock.MakeModifyPriceObj((*batchDetail.Data)[0], &price1, nil),
sdk.Stock.MakeModifyPriceObj((*batchDetail.Data)[1], &price2, nil),
}

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

if batchPrice.IsSuccess && batchPrice.Data != nil {
fmt.Printf("✅ Modified %d orders\n", len(*batchPrice.Data))
}
}
}

// Method 2: Modify price using different single orders
ordResult, _ := sdk.Stock.OrderResults(account)
if ordResult.Data != nil && len(*ordResult.Data) >= 2 {
price1 := "41.1"
price2 := "41.2"

modifyObjs := []fubon.ModifyPrice{
sdk.Stock.MakeModifyPriceObj((*ordResult.Data)[0], &price1, nil),
sdk.Stock.MakeModifyPriceObj((*ordResult.Data)[1], &price2, nil),
}

batchPrice, _ := sdk.Stock.BatchModifyPrice(account, modifyObjs)
// ... Handle result
}
}

Response Example

Result{
IsSuccess: true,
Message: nil,
Data: &[]OrderResult{
{
FunctionType: 15, // Function Type (15=Change Price)
Date: "2023/11/22", // Transaction Date
SeqNo: "00000322356", // Order Sequence Number
OrderNo: "x0018", // Order Number
StockNo: "1101", // Stock Symbol
BeforePrice: "41.3", // Effective Price Before Change
AfterPrice: "41.1", // Effective Price (After modification)
// ... Other fields
},
// ... More modification results
},
}