github.com/frankrap/okex-api@v1.0.4/margin_results.go (about)

     1  package okex
     2  
     3  import (
     4  	sjson "encoding/json"
     5  	"time"
     6  )
     7  
     8  type MarginCurrency struct {
     9  	Available   string `json:"available"`
    10  	Balance     string `json:"balance"`
    11  	Borrowed    string `json:"borrowed"`
    12  	CanWithdraw string `json:"can_withdraw"`
    13  	Frozen      string `json:"frozen"`
    14  	Hold        string `json:"hold"`
    15  	Holds       string `json:"holds"`
    16  	LendingFee  string `json:"lending_fee"`
    17  }
    18  
    19  type GetMarginAccountsItem struct {
    20  	CurrencyBTC      MarginCurrency `json:"currency:BTC,omitempty"`
    21  	CurrencyUSDT     MarginCurrency `json:"currency:USDT,omitempty"`
    22  	InstrumentID     string         `json:"instrument_id"`
    23  	LiquidationPrice string         `json:"liquidation_price"`
    24  	MarginRatio      string         `json:"margin_ratio"`
    25  	ProductID        string         `json:"product_id"`
    26  	RiskRate         string         `json:"risk_rate"`
    27  	CurrencyLTC      MarginCurrency `json:"currency:LTC,omitempty"`
    28  	CurrencyETH      MarginCurrency `json:"currency:ETH,omitempty"`
    29  	CurrencyETC      MarginCurrency `json:"currency:ETC,omitempty"`
    30  	CurrencyBCH      MarginCurrency `json:"currency:BCH,omitempty"`
    31  	CurrencyEOS      MarginCurrency `json:"currency:EOS,omitempty"`
    32  	CurrencyXRP      MarginCurrency `json:"currency:XRP,omitempty"`
    33  	CurrencyTRX      MarginCurrency `json:"currency:TRX,omitempty"`
    34  	CurrencyBSV      MarginCurrency `json:"currency:BSV,omitempty"`
    35  	CurrencyDASH     MarginCurrency `json:"currency:DASH,omitempty"`
    36  	CurrencyNEO      MarginCurrency `json:"currency:NEO,omitempty"`
    37  	CurrencyQTUM     MarginCurrency `json:"currency:QTUM,omitempty"`
    38  	CurrencyIOST     MarginCurrency `json:"currency:IOST,omitempty"`
    39  }
    40  
    41  type GetMarginAccountsResult []GetMarginAccountsItem
    42  
    43  type MarginNewOrderResult struct {
    44  	ClientOid    string `json:"client_oid"`
    45  	ErrorCode    string `json:"error_code"`
    46  	ErrorMessage string `json:"error_message"`
    47  	OrderID      string `json:"order_id"`
    48  	Result       bool   `json:"result"`
    49  }
    50  
    51  type MarginGetOrderResult struct {
    52  	ClientOid      string       `json:"client_oid"`
    53  	CreatedAt      time.Time    `json:"created_at"`
    54  	FilledNotional sjson.Number `json:"filled_notional"`
    55  	FilledSize     sjson.Number `json:"filled_size"`
    56  	Funds          string       `json:"funds"`
    57  	InstrumentID   string       `json:"instrument_id"`
    58  	Notional       string       `json:"notional"`
    59  	OrderID        string       `json:"order_id"`
    60  	OrderType      sjson.Number `json:"order_type"` /*int*/
    61  	Price          sjson.Number `json:"price"`
    62  	PriceAvg       sjson.Number `json:"price_avg"`
    63  	ProductID      string       `json:"product_id"`
    64  	Side           string       `json:"side"`
    65  	Size           sjson.Number `json:"size"`
    66  	Status         string       `json:"status"` // status为state旧版参数,会短期兼容,建议尽早切换state
    67  	State          sjson.Number `json:"state"`  /*int*/ // -2:失败 -1:撤单成功 0:等待成交 1:部分成交 2:完全成交 3:下单中 4:撤单中
    68  	Timestamp      time.Time    `json:"timestamp"`
    69  	Type           string       `json:"type"`
    70  }
    71  
    72  type FillItem struct {
    73  	CreatedAt    string  `json:"created_at"`
    74  	ExecType     string  `json:"exec_type"`
    75  	Fee          float64 `json:"fee,string"`
    76  	InstrumentID string  `json:"instrument_id"`
    77  	LedgerID     string  `json:"ledger_id"`
    78  	Liquidity    string  `json:"liquidity"`
    79  	OrderID      string  `json:"order_id"`
    80  	Price        string  `json:"price"`
    81  	ProductID    string  `json:"product_id"`
    82  	Side         string  `json:"side"`
    83  	Size         float64 `json:"size,string"`
    84  	Timestamp    string  `json:"timestamp"`
    85  }
    86  
    87  func (r *MarginGetOrderResult) GetState() int64 {
    88  	i, _ := r.State.Int64()
    89  	return i
    90  }