Batch Modify Order Price
BatchModifyPrice
First use MakeModifyPriceObj to create a ModifyPriceObj object
| Parameter | Type | Description |
|---|---|---|
| orderResult | OrderResult | The order to be modified |
| price | *string | The modified price |
| priceType | *PriceType | The 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
| Parameter | Type | Description |
|---|---|---|
| account | Account | Account |
| modifyPriceObjs | []ModifyPriceObj | List of price 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 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
},
}