github.com/vmpartner/bitmex@v1.1.0/swagger/trade_api.go (about)

     1  /* 
     2   * BitMEX API
     3   *
     4   * ## REST API for the BitMEX Trading Platform  [View Changelog](/app/apiChangelog)    #### Getting Started   ##### Fetching Data  All REST endpoints are documented below. You can try out any query right from this interface.  Most table queries accept `count`, `start`, and `reverse` params. Set `reverse=true` to get rows newest-first.  Additional documentation regarding filters, timestamps, and authentication is available in [the main API documentation](https://www.bitmex.com/app/restAPI).  *All* table data is available via the [Websocket](/app/wsAPI). We highly recommend using the socket if you want to have the quickest possible data without being subject to ratelimits.  ##### Return Types  By default, all data is returned as JSON. Send `?_format=csv` to get CSV data or `?_format=xml` to get XML data.  ##### Trade Data Queries  *This is only a small subset of what is available, to get you started.*  Fill in the parameters and click the `Try it out!` button to try any of these queries.  * [Pricing Data](#!/Quote/Quote_get)  * [Trade Data](#!/Trade/Trade_get)  * [OrderBook Data](#!/OrderBook/OrderBook_getL2)  * [Settlement Data](#!/Settlement/Settlement_get)  * [Exchange Statistics](#!/Stats/Stats_history)  Every function of the BitMEX.com platform is exposed here and documented. Many more functions are available.  ##### Swagger Specification  [⇩ Download Swagger JSON](swagger.json)    ## All API Endpoints  Click to expand a section. 
     5   *
     6   * OpenAPI spec version: 1.2.0
     7   * Contact: support@bitmex.com
     8   * Generated by: https://github.com/swagger-api/swagger-codegen.git
     9   */
    10  
    11  package swagger
    12  
    13  import (
    14  	"net/url"
    15  	"net/http"
    16  	"strings"
    17  	"golang.org/x/net/context"
    18  	"time"
    19  	"encoding/json"
    20  )
    21  
    22  // Linger please
    23  var (
    24  	_ context.Context
    25  )
    26  
    27  type TradeApiService service
    28  
    29  /* TradeApiService Get Trades.
    30   Please note that indices (symbols starting with `.`) post trades at intervals to the trade feed. These have a `size` of 0 and are used only to indicate a changing price.  See [the FIX Spec](http://www.onixs.biz/fix-dictionary/5.0.SP2/msgType_AE_6569.html) for explanations of these fields.
    31  
    32   @param optional (nil or map[string]interface{}) with one or more of:
    33       @param "symbol" (string) Instrument symbol. Send a bare series (e.g. XBU) to get data for the nearest expiring contract in that series.  You can also send a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`, `quarterly`, and `biquarterly`.
    34       @param "filter" (string) Generic table filter. Send JSON key/value pairs, such as `{\"key\": \"value\"}`. You can key on individual fields, and do more advanced querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters) for more details.
    35       @param "columns" (string) Array of column names to fetch. If omitted, will return all columns.  Note that this method will always return item keys, even when not specified, so you may receive more columns that you expect.
    36       @param "count" (float32) Number of results to fetch.
    37       @param "start" (float32) Starting point for results.
    38       @param "reverse" (bool) If true, will sort results newest first.
    39       @param "startTime" (time.Time) Starting date filter for results.
    40       @param "endTime" (time.Time) Ending date filter for results.
    41   @return []Trade*/
    42  func (a *TradeApiService) TradeGet(localVarOptionals map[string]interface{}) ([]Trade, *http.Response, error) {
    43  	var (
    44  		localVarHttpMethod = strings.ToUpper("Get")
    45  		localVarPostBody   interface{}
    46  		localVarFileName   string
    47  		localVarFileBytes  []byte
    48  		successPayload     []Trade
    49  	)
    50  
    51  	// create path and map variables
    52  	localVarPath := a.client.cfg.BasePath + "/trade"
    53  
    54  	localVarHeaderParams := make(map[string]string)
    55  	localVarQueryParams := url.Values{}
    56  	localVarFormParams := url.Values{}
    57  
    58  	if err := typeCheckParameter(localVarOptionals["symbol"], "string", "symbol"); err != nil {
    59  		return successPayload, nil, err
    60  	}
    61  	if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil {
    62  		return successPayload, nil, err
    63  	}
    64  	if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil {
    65  		return successPayload, nil, err
    66  	}
    67  	if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil {
    68  		return successPayload, nil, err
    69  	}
    70  	if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil {
    71  		return successPayload, nil, err
    72  	}
    73  	if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil {
    74  		return successPayload, nil, err
    75  	}
    76  	if err := typeCheckParameter(localVarOptionals["startTime"], "time.Time", "startTime"); err != nil {
    77  		return successPayload, nil, err
    78  	}
    79  	if err := typeCheckParameter(localVarOptionals["endTime"], "time.Time", "endTime"); err != nil {
    80  		return successPayload, nil, err
    81  	}
    82  
    83  	if localVarTempParam, localVarOk := localVarOptionals["symbol"].(string); localVarOk {
    84  		localVarQueryParams.Add("symbol", parameterToString(localVarTempParam, ""))
    85  	}
    86  	if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk {
    87  		localVarQueryParams.Add("filter", parameterToString(localVarTempParam, ""))
    88  	}
    89  	if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk {
    90  		localVarQueryParams.Add("columns", parameterToString(localVarTempParam, ""))
    91  	}
    92  	if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk {
    93  		localVarQueryParams.Add("count", parameterToString(localVarTempParam, ""))
    94  	}
    95  	if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk {
    96  		localVarQueryParams.Add("start", parameterToString(localVarTempParam, ""))
    97  	}
    98  	if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk {
    99  		localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, ""))
   100  	}
   101  	if localVarTempParam, localVarOk := localVarOptionals["startTime"].(time.Time); localVarOk {
   102  		localVarQueryParams.Add("startTime", parameterToString(localVarTempParam, ""))
   103  	}
   104  	if localVarTempParam, localVarOk := localVarOptionals["endTime"].(time.Time); localVarOk {
   105  		localVarQueryParams.Add("endTime", parameterToString(localVarTempParam, ""))
   106  	}
   107  	// to determine the Content-Type header
   108  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   109  
   110  	// set Content-Type header
   111  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   112  	if localVarHttpContentType != "" {
   113  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   114  	}
   115  
   116  	// to determine the Accept header
   117  	localVarHttpHeaderAccepts := []string{
   118  		"application/json",
   119  		"application/xml",
   120  		"text/xml",
   121  		"application/javascript",
   122  		"text/javascript",
   123  	}
   124  
   125  	// set Accept header
   126  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   127  	if localVarHttpHeaderAccept != "" {
   128  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   129  	}
   130  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   131  	if err != nil {
   132  		return successPayload, nil, err
   133  	}
   134  
   135  	localVarHttpResponse, err := a.client.callAPI(r)
   136  	if err != nil || localVarHttpResponse == nil {
   137  		return successPayload, localVarHttpResponse, err
   138  	}
   139  	defer localVarHttpResponse.Body.Close()
   140  	if localVarHttpResponse.StatusCode >= 300 {
   141  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   142  	}
   143  
   144  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   145  		return successPayload, localVarHttpResponse, err
   146  	}
   147  
   148  	return successPayload, localVarHttpResponse, err
   149  }
   150  
   151  /* TradeApiService Get previous trades in time buckets.
   152  
   153   @param optional (nil or map[string]interface{}) with one or more of:
   154       @param "binSize" (string) Time interval to bucket by. Available options: [1m,5m,1h,1d].
   155       @param "partial" (bool) If true, will send in-progress (incomplete) bins for the current time period.
   156       @param "symbol" (string) Instrument symbol. Send a bare series (e.g. XBU) to get data for the nearest expiring contract in that series.  You can also send a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`, `quarterly`, and `biquarterly`.
   157       @param "filter" (string) Generic table filter. Send JSON key/value pairs, such as `{\"key\": \"value\"}`. You can key on individual fields, and do more advanced querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters) for more details.
   158       @param "columns" (string) Array of column names to fetch. If omitted, will return all columns.  Note that this method will always return item keys, even when not specified, so you may receive more columns that you expect.
   159       @param "count" (float32) Number of results to fetch.
   160       @param "start" (float32) Starting point for results.
   161       @param "reverse" (bool) If true, will sort results newest first.
   162       @param "startTime" (time.Time) Starting date filter for results.
   163       @param "endTime" (time.Time) Ending date filter for results.
   164   @return []TradeBin*/
   165  func (a *TradeApiService) TradeGetBucketed(localVarOptionals map[string]interface{}) ([]TradeBin, *http.Response, error) {
   166  	var (
   167  		localVarHttpMethod = strings.ToUpper("Get")
   168  		localVarPostBody   interface{}
   169  		localVarFileName   string
   170  		localVarFileBytes  []byte
   171  		successPayload     []TradeBin
   172  	)
   173  
   174  	// create path and map variables
   175  	localVarPath := a.client.cfg.BasePath + "/trade/bucketed"
   176  
   177  	localVarHeaderParams := make(map[string]string)
   178  	localVarQueryParams := url.Values{}
   179  	localVarFormParams := url.Values{}
   180  
   181  	if err := typeCheckParameter(localVarOptionals["binSize"], "string", "binSize"); err != nil {
   182  		return successPayload, nil, err
   183  	}
   184  	if err := typeCheckParameter(localVarOptionals["partial"], "bool", "partial"); err != nil {
   185  		return successPayload, nil, err
   186  	}
   187  	if err := typeCheckParameter(localVarOptionals["symbol"], "string", "symbol"); err != nil {
   188  		return successPayload, nil, err
   189  	}
   190  	if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil {
   191  		return successPayload, nil, err
   192  	}
   193  	if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil {
   194  		return successPayload, nil, err
   195  	}
   196  	if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil {
   197  		return successPayload, nil, err
   198  	}
   199  	if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil {
   200  		return successPayload, nil, err
   201  	}
   202  	if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil {
   203  		return successPayload, nil, err
   204  	}
   205  	if err := typeCheckParameter(localVarOptionals["startTime"], "time.Time", "startTime"); err != nil {
   206  		return successPayload, nil, err
   207  	}
   208  	if err := typeCheckParameter(localVarOptionals["endTime"], "time.Time", "endTime"); err != nil {
   209  		return successPayload, nil, err
   210  	}
   211  
   212  	if localVarTempParam, localVarOk := localVarOptionals["binSize"].(string); localVarOk {
   213  		localVarQueryParams.Add("binSize", parameterToString(localVarTempParam, ""))
   214  	}
   215  	if localVarTempParam, localVarOk := localVarOptionals["partial"].(bool); localVarOk {
   216  		localVarQueryParams.Add("partial", parameterToString(localVarTempParam, ""))
   217  	}
   218  	if localVarTempParam, localVarOk := localVarOptionals["symbol"].(string); localVarOk {
   219  		localVarQueryParams.Add("symbol", parameterToString(localVarTempParam, ""))
   220  	}
   221  	if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk {
   222  		localVarQueryParams.Add("filter", parameterToString(localVarTempParam, ""))
   223  	}
   224  	if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk {
   225  		localVarQueryParams.Add("columns", parameterToString(localVarTempParam, ""))
   226  	}
   227  	if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk {
   228  		localVarQueryParams.Add("count", parameterToString(localVarTempParam, ""))
   229  	}
   230  	if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk {
   231  		localVarQueryParams.Add("start", parameterToString(localVarTempParam, ""))
   232  	}
   233  	if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk {
   234  		localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, ""))
   235  	}
   236  	if localVarTempParam, localVarOk := localVarOptionals["startTime"].(time.Time); localVarOk {
   237  		localVarQueryParams.Add("startTime", parameterToString(localVarTempParam, ""))
   238  	}
   239  	if localVarTempParam, localVarOk := localVarOptionals["endTime"].(time.Time); localVarOk {
   240  		localVarQueryParams.Add("endTime", parameterToString(localVarTempParam, ""))
   241  	}
   242  	// to determine the Content-Type header
   243  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   244  
   245  	// set Content-Type header
   246  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   247  	if localVarHttpContentType != "" {
   248  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   249  	}
   250  
   251  	// to determine the Accept header
   252  	localVarHttpHeaderAccepts := []string{
   253  		"application/json",
   254  		"application/xml",
   255  		"text/xml",
   256  		"application/javascript",
   257  		"text/javascript",
   258  	}
   259  
   260  	// set Accept header
   261  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   262  	if localVarHttpHeaderAccept != "" {
   263  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   264  	}
   265  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   266  	if err != nil {
   267  		return successPayload, nil, err
   268  	}
   269  
   270  	localVarHttpResponse, err := a.client.callAPI(r)
   271  	if err != nil || localVarHttpResponse == nil {
   272  		return successPayload, localVarHttpResponse, err
   273  	}
   274  	defer localVarHttpResponse.Body.Close()
   275  	if localVarHttpResponse.StatusCode >= 300 {
   276  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   277  	}
   278  
   279  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   280  		return successPayload, localVarHttpResponse, err
   281  	}
   282  
   283  	return successPayload, localVarHttpResponse, err
   284  }