71 lines
2.0 KiB
Go
71 lines
2.0 KiB
Go
|
package okexapi
|
||
|
|
||
|
import "github.com/c9s/requestgen"
|
||
|
|
||
|
type TradeMode string
|
||
|
|
||
|
const (
|
||
|
TradeModeCash TradeMode = "cash"
|
||
|
TradeModeIsolated TradeMode = "isolated"
|
||
|
TradeModeCross TradeMode = "cross"
|
||
|
)
|
||
|
|
||
|
type TargetCurrency string
|
||
|
|
||
|
const (
|
||
|
TargetCurrencyBase TargetCurrency = "base_ccy"
|
||
|
TargetCurrencyQuote TargetCurrency = "quote_ccy"
|
||
|
)
|
||
|
|
||
|
//go:generate -command GetRequest requestgen -method GET -responseType .APIResponse -responseDataField Data
|
||
|
//go:generate -command PostRequest requestgen -method POST -responseType .APIResponse -responseDataField Data
|
||
|
|
||
|
type OrderResponse struct {
|
||
|
OrderID string `json:"ordId"`
|
||
|
ClientOrderID string `json:"clOrdId"`
|
||
|
Tag string `json:"tag"`
|
||
|
Code string `json:"sCode"`
|
||
|
Message string `json:"sMsg"`
|
||
|
}
|
||
|
|
||
|
//go:generate PostRequest -url "/api/v5/trade/order" -type PlaceOrderRequest -responseDataType []OrderResponse
|
||
|
type PlaceOrderRequest struct {
|
||
|
client requestgen.AuthenticatedAPIClient
|
||
|
|
||
|
instrumentID string `param:"instId"`
|
||
|
|
||
|
// tdMode
|
||
|
// margin mode: "cross", "isolated"
|
||
|
// non-margin mode cash
|
||
|
tradeMode TradeMode `param:"tdMode" validValues:"cross,isolated,cash"`
|
||
|
|
||
|
// A combination of case-sensitive alphanumerics, all numbers, or all letters of up to 32 characters.
|
||
|
clientOrderID *string `param:"clOrdId"`
|
||
|
|
||
|
// A combination of case-sensitive alphanumerics, all numbers, or all letters of up to 8 characters.
|
||
|
tag *string `param:"tag"`
|
||
|
|
||
|
// "buy" or "sell"
|
||
|
side SideType `param:"side" validValues:"buy,sell"`
|
||
|
|
||
|
orderType OrderType `param:"ordType"`
|
||
|
|
||
|
size string `param:"sz"`
|
||
|
|
||
|
// price
|
||
|
price *string `param:"px"`
|
||
|
|
||
|
// Whether the target currency uses the quote or base currency.
|
||
|
// base_ccy: Base currency ,quote_ccy: Quote currency
|
||
|
// Only applicable to SPOT Market Orders
|
||
|
// Default is quote_ccy for buy, base_ccy for sell
|
||
|
targetCurrency *TargetCurrency `param:"tgtCcy" validValues:"quote_ccy,base_ccy"`
|
||
|
}
|
||
|
|
||
|
func (c *RestClient) NewPlaceOrderRequest() *PlaceOrderRequest {
|
||
|
return &PlaceOrderRequest{
|
||
|
client: c,
|
||
|
tradeMode: TradeModeCash,
|
||
|
}
|
||
|
}
|