github.com/vmpartner/bitmex@v1.1.0/swagger/position_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 "encoding/json" 19 ) 20 21 // Linger please 22 var ( 23 _ context.Context 24 ) 25 26 type PositionApiService service 27 28 /* PositionApiService Get your positions. 29 See <a href=\"http://www.onixs.biz/fix-dictionary/5.0.SP2/msgType_AP_6580.html\">the FIX Spec</a> for explanations of these fields. 30 * @param ctx context.Context Authentication Context 31 @param optional (nil or map[string]interface{}) with one or more of: 32 @param "filter" (string) Table filter. For example, send {\"symbol\": \"XBTUSD\"}. 33 @param "columns" (string) Which columns to fetch. For example, send [\"columnName\"]. 34 @param "count" (float32) Number of rows to fetch. 35 @return []Position*/ 36 func (a *PositionApiService) PositionGet(ctx context.Context, localVarOptionals map[string]interface{}) ([]Position, *http.Response, error) { 37 var ( 38 localVarHttpMethod = strings.ToUpper("Get") 39 localVarPostBody interface{} 40 localVarFileName string 41 localVarFileBytes []byte 42 successPayload []Position 43 ) 44 45 // create path and map variables 46 localVarPath := a.client.cfg.BasePath + "/position" 47 48 localVarHeaderParams := make(map[string]string) 49 localVarQueryParams := url.Values{} 50 localVarFormParams := url.Values{} 51 52 if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil { 53 return successPayload, nil, err 54 } 55 if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil { 56 return successPayload, nil, err 57 } 58 if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil { 59 return successPayload, nil, err 60 } 61 62 if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk { 63 localVarQueryParams.Add("filter", parameterToString(localVarTempParam, "")) 64 } 65 if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk { 66 localVarQueryParams.Add("columns", parameterToString(localVarTempParam, "")) 67 } 68 if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk { 69 localVarQueryParams.Add("count", parameterToString(localVarTempParam, "")) 70 } 71 // to determine the Content-Type header 72 localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",} 73 74 // set Content-Type header 75 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 76 if localVarHttpContentType != "" { 77 localVarHeaderParams["Content-Type"] = localVarHttpContentType 78 } 79 80 // to determine the Accept header 81 localVarHttpHeaderAccepts := []string{ 82 "application/json", 83 "application/xml", 84 "text/xml", 85 "application/javascript", 86 "text/javascript", 87 } 88 89 // set Accept header 90 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 91 if localVarHttpHeaderAccept != "" { 92 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 93 } 94 if ctx != nil { 95 // API Key Authentication 96 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 97 var key string 98 if auth.Prefix != "" { 99 key = auth.Prefix + " " + auth.Key 100 } else { 101 key = auth.Key 102 } 103 localVarHeaderParams["api-key"] = key 104 } 105 } 106 if ctx != nil { 107 // API Key Authentication 108 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 109 var key string 110 if auth.Prefix != "" { 111 key = auth.Prefix + " " + auth.Key 112 } else { 113 key = auth.Key 114 } 115 localVarHeaderParams["api-nonce"] = key 116 } 117 } 118 if ctx != nil { 119 // API Key Authentication 120 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 121 var key string 122 if auth.Prefix != "" { 123 key = auth.Prefix + " " + auth.Key 124 } else { 125 key = auth.Key 126 } 127 localVarHeaderParams["api-signature"] = key 128 } 129 } 130 r, err := a.client.prepareRequest(ctx, 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 /* PositionApiService Enable isolated margin or cross margin per-position. 152 Users can switch isolate margin per-position. This function allows switching margin isolation (aka fixed margin) on and off. 153 * @param ctx context.Context Authentication Context 154 @param symbol Position symbol to isolate. 155 @param optional (nil or map[string]interface{}) with one or more of: 156 @param "enabled" (bool) True for isolated margin, false for cross margin. 157 @return Position*/ 158 func (a *PositionApiService) PositionIsolateMargin(ctx context.Context, symbol string, localVarOptionals map[string]interface{}) (Position, *http.Response, error) { 159 var ( 160 localVarHttpMethod = strings.ToUpper("Post") 161 localVarPostBody interface{} 162 localVarFileName string 163 localVarFileBytes []byte 164 successPayload Position 165 ) 166 167 // create path and map variables 168 localVarPath := a.client.cfg.BasePath + "/position/isolate" 169 170 localVarHeaderParams := make(map[string]string) 171 localVarQueryParams := url.Values{} 172 localVarFormParams := url.Values{} 173 174 if err := typeCheckParameter(localVarOptionals["enabled"], "bool", "enabled"); err != nil { 175 return successPayload, nil, err 176 } 177 178 // to determine the Content-Type header 179 localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",} 180 181 // set Content-Type header 182 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 183 if localVarHttpContentType != "" { 184 localVarHeaderParams["Content-Type"] = localVarHttpContentType 185 } 186 187 // to determine the Accept header 188 localVarHttpHeaderAccepts := []string{ 189 "application/json", 190 "application/xml", 191 "text/xml", 192 "application/javascript", 193 "text/javascript", 194 } 195 196 // set Accept header 197 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 198 if localVarHttpHeaderAccept != "" { 199 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 200 } 201 localVarFormParams.Add("symbol", parameterToString(symbol, "")) 202 if localVarTempParam, localVarOk := localVarOptionals["enabled"].(bool); localVarOk { 203 localVarFormParams.Add("enabled", parameterToString(localVarTempParam, "")) 204 } 205 if ctx != nil { 206 // API Key Authentication 207 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 208 var key string 209 if auth.Prefix != "" { 210 key = auth.Prefix + " " + auth.Key 211 } else { 212 key = auth.Key 213 } 214 localVarHeaderParams["api-key"] = key 215 } 216 } 217 if ctx != nil { 218 // API Key Authentication 219 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 220 var key string 221 if auth.Prefix != "" { 222 key = auth.Prefix + " " + auth.Key 223 } else { 224 key = auth.Key 225 } 226 localVarHeaderParams["api-nonce"] = key 227 } 228 } 229 if ctx != nil { 230 // API Key Authentication 231 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 232 var key string 233 if auth.Prefix != "" { 234 key = auth.Prefix + " " + auth.Key 235 } else { 236 key = auth.Key 237 } 238 localVarHeaderParams["api-signature"] = key 239 } 240 } 241 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 242 if err != nil { 243 return successPayload, nil, err 244 } 245 246 localVarHttpResponse, err := a.client.callAPI(r) 247 if err != nil || localVarHttpResponse == nil { 248 return successPayload, localVarHttpResponse, err 249 } 250 defer localVarHttpResponse.Body.Close() 251 if localVarHttpResponse.StatusCode >= 300 { 252 return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status) 253 } 254 255 if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil { 256 return successPayload, localVarHttpResponse, err 257 } 258 259 return successPayload, localVarHttpResponse, err 260 } 261 262 /* PositionApiService Transfer equity in or out of a position. 263 When margin is isolated on a position, use this function to add or remove margin from the position. Note that you cannot remove margin below the initial margin threshold. 264 * @param ctx context.Context Authentication Context 265 @param symbol Symbol of position to isolate. 266 @param amount Amount to transfer, in Satoshis. May be negative. 267 @return Position*/ 268 func (a *PositionApiService) PositionTransferIsolatedMargin(ctx context.Context, symbol string, amount float32) (Position, *http.Response, error) { 269 var ( 270 localVarHttpMethod = strings.ToUpper("Post") 271 localVarPostBody interface{} 272 localVarFileName string 273 localVarFileBytes []byte 274 successPayload Position 275 ) 276 277 // create path and map variables 278 localVarPath := a.client.cfg.BasePath + "/position/transferMargin" 279 280 localVarHeaderParams := make(map[string]string) 281 localVarQueryParams := url.Values{} 282 localVarFormParams := url.Values{} 283 284 // to determine the Content-Type header 285 localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",} 286 287 // set Content-Type header 288 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 289 if localVarHttpContentType != "" { 290 localVarHeaderParams["Content-Type"] = localVarHttpContentType 291 } 292 293 // to determine the Accept header 294 localVarHttpHeaderAccepts := []string{ 295 "application/json", 296 "application/xml", 297 "text/xml", 298 "application/javascript", 299 "text/javascript", 300 } 301 302 // set Accept header 303 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 304 if localVarHttpHeaderAccept != "" { 305 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 306 } 307 localVarFormParams.Add("symbol", parameterToString(symbol, "")) 308 localVarFormParams.Add("amount", parameterToString(amount, "")) 309 if ctx != nil { 310 // API Key Authentication 311 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 312 var key string 313 if auth.Prefix != "" { 314 key = auth.Prefix + " " + auth.Key 315 } else { 316 key = auth.Key 317 } 318 localVarHeaderParams["api-key"] = key 319 } 320 } 321 if ctx != nil { 322 // API Key Authentication 323 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 324 var key string 325 if auth.Prefix != "" { 326 key = auth.Prefix + " " + auth.Key 327 } else { 328 key = auth.Key 329 } 330 localVarHeaderParams["api-nonce"] = key 331 } 332 } 333 if ctx != nil { 334 // API Key Authentication 335 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 336 var key string 337 if auth.Prefix != "" { 338 key = auth.Prefix + " " + auth.Key 339 } else { 340 key = auth.Key 341 } 342 localVarHeaderParams["api-signature"] = key 343 } 344 } 345 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 346 if err != nil { 347 return successPayload, nil, err 348 } 349 350 localVarHttpResponse, err := a.client.callAPI(r) 351 if err != nil || localVarHttpResponse == nil { 352 return successPayload, localVarHttpResponse, err 353 } 354 defer localVarHttpResponse.Body.Close() 355 if localVarHttpResponse.StatusCode >= 300 { 356 return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status) 357 } 358 359 if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil { 360 return successPayload, localVarHttpResponse, err 361 } 362 363 return successPayload, localVarHttpResponse, err 364 } 365 366 /* PositionApiService Choose leverage for a position. 367 Users can choose an isolated leverage. This will automatically enable isolated margin. 368 * @param ctx context.Context Authentication Context 369 @param symbol Symbol of position to adjust. 370 @param leverage Leverage value. Send a number between 0.01 and 100 to enable isolated margin with a fixed leverage. Send 0 to enable cross margin. 371 @return Position*/ 372 func (a *PositionApiService) PositionUpdateLeverage(ctx context.Context, symbol string, leverage float64) (Position, *http.Response, error) { 373 var ( 374 localVarHttpMethod = strings.ToUpper("Post") 375 localVarPostBody interface{} 376 localVarFileName string 377 localVarFileBytes []byte 378 successPayload Position 379 ) 380 381 // create path and map variables 382 localVarPath := a.client.cfg.BasePath + "/position/leverage" 383 384 localVarHeaderParams := make(map[string]string) 385 localVarQueryParams := url.Values{} 386 localVarFormParams := url.Values{} 387 388 // to determine the Content-Type header 389 localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",} 390 391 // set Content-Type header 392 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 393 if localVarHttpContentType != "" { 394 localVarHeaderParams["Content-Type"] = localVarHttpContentType 395 } 396 397 // to determine the Accept header 398 localVarHttpHeaderAccepts := []string{ 399 "application/json", 400 "application/xml", 401 "text/xml", 402 "application/javascript", 403 "text/javascript", 404 } 405 406 // set Accept header 407 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 408 if localVarHttpHeaderAccept != "" { 409 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 410 } 411 localVarFormParams.Add("symbol", parameterToString(symbol, "")) 412 localVarFormParams.Add("leverage", parameterToString(leverage, "")) 413 if ctx != nil { 414 // API Key Authentication 415 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 416 var key string 417 if auth.Prefix != "" { 418 key = auth.Prefix + " " + auth.Key 419 } else { 420 key = auth.Key 421 } 422 localVarHeaderParams["api-key"] = key 423 } 424 } 425 if ctx != nil { 426 // API Key Authentication 427 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 428 var key string 429 if auth.Prefix != "" { 430 key = auth.Prefix + " " + auth.Key 431 } else { 432 key = auth.Key 433 } 434 localVarHeaderParams["api-nonce"] = key 435 } 436 } 437 if ctx != nil { 438 // API Key Authentication 439 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 440 var key string 441 if auth.Prefix != "" { 442 key = auth.Prefix + " " + auth.Key 443 } else { 444 key = auth.Key 445 } 446 localVarHeaderParams["api-signature"] = key 447 } 448 } 449 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 450 if err != nil { 451 return successPayload, nil, err 452 } 453 454 localVarHttpResponse, err := a.client.callAPI(r) 455 if err != nil || localVarHttpResponse == nil { 456 return successPayload, localVarHttpResponse, err 457 } 458 defer localVarHttpResponse.Body.Close() 459 if localVarHttpResponse.StatusCode >= 300 { 460 return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status) 461 } 462 463 if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil { 464 return successPayload, localVarHttpResponse, err 465 } 466 467 return successPayload, localVarHttpResponse, err 468 } 469 470 /* PositionApiService Update your risk limit. 471 Risk Limits limit the size of positions you can trade at various margin levels. Larger positions require more margin. Please see the Risk Limit documentation for more details. 472 * @param ctx context.Context Authentication Context 473 @param symbol Symbol of position to isolate. 474 @param riskLimit New Risk Limit, in Satoshis. 475 @return Position*/ 476 func (a *PositionApiService) PositionUpdateRiskLimit(ctx context.Context, symbol string, riskLimit float32) (Position, *http.Response, error) { 477 var ( 478 localVarHttpMethod = strings.ToUpper("Post") 479 localVarPostBody interface{} 480 localVarFileName string 481 localVarFileBytes []byte 482 successPayload Position 483 ) 484 485 // create path and map variables 486 localVarPath := a.client.cfg.BasePath + "/position/riskLimit" 487 488 localVarHeaderParams := make(map[string]string) 489 localVarQueryParams := url.Values{} 490 localVarFormParams := url.Values{} 491 492 // to determine the Content-Type header 493 localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",} 494 495 // set Content-Type header 496 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 497 if localVarHttpContentType != "" { 498 localVarHeaderParams["Content-Type"] = localVarHttpContentType 499 } 500 501 // to determine the Accept header 502 localVarHttpHeaderAccepts := []string{ 503 "application/json", 504 "application/xml", 505 "text/xml", 506 "application/javascript", 507 "text/javascript", 508 } 509 510 // set Accept header 511 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 512 if localVarHttpHeaderAccept != "" { 513 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 514 } 515 localVarFormParams.Add("symbol", parameterToString(symbol, "")) 516 localVarFormParams.Add("riskLimit", parameterToString(riskLimit, "")) 517 if ctx != nil { 518 // API Key Authentication 519 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 520 var key string 521 if auth.Prefix != "" { 522 key = auth.Prefix + " " + auth.Key 523 } else { 524 key = auth.Key 525 } 526 localVarHeaderParams["api-key"] = key 527 } 528 } 529 if ctx != nil { 530 // API Key Authentication 531 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 532 var key string 533 if auth.Prefix != "" { 534 key = auth.Prefix + " " + auth.Key 535 } else { 536 key = auth.Key 537 } 538 localVarHeaderParams["api-nonce"] = key 539 } 540 } 541 if ctx != nil { 542 // API Key Authentication 543 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 544 var key string 545 if auth.Prefix != "" { 546 key = auth.Prefix + " " + auth.Key 547 } else { 548 key = auth.Key 549 } 550 localVarHeaderParams["api-signature"] = key 551 } 552 } 553 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 554 if err != nil { 555 return successPayload, nil, err 556 } 557 558 localVarHttpResponse, err := a.client.callAPI(r) 559 if err != nil || localVarHttpResponse == nil { 560 return successPayload, localVarHttpResponse, err 561 } 562 defer localVarHttpResponse.Body.Close() 563 if localVarHttpResponse.StatusCode >= 300 { 564 return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status) 565 } 566 567 if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil { 568 return successPayload, localVarHttpResponse, err 569 } 570 571 return successPayload, localVarHttpResponse, err 572 }