Skip to main content

Maintenance Ratio Query

Maintenance

Input Parameters

ParameterTypeDescription
accountAccountAccount

Result Return

ParameterTypeDescription
IsSuccessboolWhether successful
Data*MaintenanceDataReturns maintenance ratio info
Message*stringReturns error message when IsSuccess = false

Maintenance Data Fields

ParameterTypeDescription
Date*stringQuery Date
BranchNo*stringBranch Code
Account*stringAccount
MaintenanceSummary*MaintenanceSummaryAccount Maintenance Summary
>> MarginValue*int64Total Margin Value
>> ShortsellValue*int64Total Short Sell Value
>> ShortsellMargin*int64Total Short Sell Margin
>> Collateral*int64Collateral
>> MarginLoanAmt*int64Total Margin Loan Amount
>> MaintenanceRatio*stringMaintenance Ratio (%)
MaintenanceDetail*[]MaintenanceDetailStock Maintenance Details
>> StockNo*stringStock Symbol
>> OrderNo*stringOrder Number
>> OrderTypeOrderTypeOrder Type: OrderTypeStock Common, OrderTypeMargin Margin, OrderTypeShort Short Sell, OrderTypeDayTrade Day Trade, OrderTypeSbl SBL
>> Quantity*int64Held Quantity
>> Price*stringCalculation Price
>> CostPrice*stringCost Price
>> ShortsellMargin*int64Short Sell Margin
>> Collateral*int64Collateral
>> MarginLoanAmt*int64Margin Loan Amount
>> MaintenanceRatio*stringMaintenance Ratio (%)
>> CollateralInterest*stringCollateral Interest
>> MarginInterest*stringMargin Loan Interest
>> ShortsellInterest*stringShort Sell Margin Interest

Request Example

package main

import (
"fmt"
"fubon"
)

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

// Query Maintenance Ratio
maintenance, err := sdk.Accounting.Maintenance(account)
if err != nil {
fmt.Printf("❌ Maintenance Format/Parser Error: %v\n", err)
return
}

if maintenance.IsSuccess && maintenance.Data != nil {
fmt.Println("✅ Maintenance Data:")

// Account Summary
if maintenance.Data.MaintenanceSummary != nil {
summary := maintenance.Data.MaintenanceSummary
fmt.Printf("\nAccount Maintenance Ratio: %s%%\n", *summary.MaintenanceRatio)
fmt.Printf("Margin Value: %d\n", *summary.MarginValue)
fmt.Printf("Margin Loan Amount: %d\n", *summary.MarginLoanAmt)
fmt.Printf("Collateral: %d\n", *summary.Collateral)
}

// Stock Details
if maintenance.Data.MaintenanceDetail != nil {
fmt.Printf("\nStock Details (%d items):\n", len(*maintenance.Data.MaintenanceDetail))
for i, detail := range *maintenance.Data.MaintenanceDetail {
fmt.Printf("\n[%d] %s\n", i+1, *detail.StockNo)
fmt.Printf(" Held: %d shares\n", *detail.Quantity)
fmt.Printf(" Cost: %s, Calc Price: %s\n", *detail.CostPrice, *detail.Price)
fmt.Printf(" Maintenance Ratio: %s%%\n", *detail.MaintenanceRatio)
}
}
}
}

Response Example

Result{
IsSuccess: true,
Message: nil,
Data: &MaintenanceData{
Date: "2024/02/27",
BranchNo: "6460",
Account: "26",
MaintenanceSummary: &MaintenanceSummary{
MarginValue: 3135000,
ShortsellValue: 0,
ShortsellMargin: 0,
Collateral: 0,
MarginLoanAmt: 1494000,
MaintenanceRatio: "209.83",
},
MaintenanceDetail: &[]MaintenanceDetail{
{
StockNo: "2603",
OrderNo: "x4580",
OrderType: OrderTypeStock,
Quantity: 10000,
Price: "152.5",
CostPrice: "119",
ShortsellMargin: 0,
Collateral: 0,
MarginLoanAmt: 0,
MaintenanceRatio: "213.58",
CollateralInterest: "0",
MarginInterest: "20818",
ShortsellInterest: "0",
},
},
},
}