Maintenance Ratio Query
Maintenance
Input Parameters
| Parameter | Type | Description |
|---|---|---|
| account | Account | Account |
Result Return
| Parameter | Type | Description |
|---|---|---|
| IsSuccess | bool | Whether successful |
| Data | *MaintenanceData | Returns maintenance ratio info |
| Message | *string | Returns error message when IsSuccess = false |
Maintenance Data Fields
| Parameter | Type | Description |
|---|---|---|
| Date | *string | Query Date |
| BranchNo | *string | Branch Code |
| Account | *string | Account |
| MaintenanceSummary | *MaintenanceSummary | Account Maintenance Summary |
| >> MarginValue | *int64 | Total Margin Value |
| >> ShortsellValue | *int64 | Total Short Sell Value |
| >> ShortsellMargin | *int64 | Total Short Sell Margin |
| >> Collateral | *int64 | Collateral |
| >> MarginLoanAmt | *int64 | Total Margin Loan Amount |
| >> MaintenanceRatio | *string | Maintenance Ratio (%) |
| MaintenanceDetail | *[]MaintenanceDetail | Stock Maintenance Details |
| >> StockNo | *string | Stock Symbol |
| >> OrderNo | *string | Order Number |
| >> OrderType | OrderType | Order Type: OrderTypeStock Common, OrderTypeMargin Margin, OrderTypeShort Short Sell, OrderTypeDayTrade Day Trade, OrderTypeSbl SBL |
| >> Quantity | *int64 | Held Quantity |
| >> Price | *string | Calculation Price |
| >> CostPrice | *string | Cost Price |
| >> ShortsellMargin | *int64 | Short Sell Margin |
| >> Collateral | *int64 | Collateral |
| >> MarginLoanAmt | *int64 | Margin Loan Amount |
| >> MaintenanceRatio | *string | Maintenance Ratio (%) |
| >> CollateralInterest | *string | Collateral Interest |
| >> MarginInterest | *string | Margin Loan Interest |
| >> ShortsellInterest | *string | Short 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",
},
},
},
}