|
31 | 31 | TransactionType, |
32 | 32 | MinuteUnit, |
33 | 33 | RequestGroup, |
34 | | - RemainingReq, |
| 34 | + RemainingReq, OpenOrderState, ClosedOrderState, |
35 | 35 | ) |
36 | 36 |
|
37 | 37 |
|
@@ -412,7 +412,7 @@ def get_orders(self, |
412 | 412 | limit: int = 100, |
413 | 413 | order_by: OrderBy = 'desc', |
414 | 414 | **kwargs) -> Response: |
415 | | - """주문 리스트 조회 |
| 415 | + """주문 리스트 조회 - Deprecated (2024.06~) |
416 | 416 |
|
417 | 417 | API 요청 및 응답에 대한 자세한 정보는 공식 문서 참고: |
418 | 418 | `Upbit API Doc <https://docs.upbit.com/reference/%EC%A3%BC%EB%AC%B8-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EC%A1%B0%ED%9A%8C>`_ |
@@ -471,6 +471,201 @@ def get_orders(self, |
471 | 471 |
|
472 | 472 | return self._request('get', url, headers=headers, params=params, **kwargs) |
473 | 473 |
|
| 474 | + def get_orders_by_id(self, |
| 475 | + *, |
| 476 | + market: Optional[str] = None, |
| 477 | + uuids: Optional[list[str]] = None, |
| 478 | + identifiers: Optional[list[str]] = None, |
| 479 | + order_by: OrderBy = 'desc', |
| 480 | + **kwargs) -> Response: |
| 481 | + """id로 주문리스트 조회 |
| 482 | +
|
| 483 | + API 요청 및 응답에 대한 자세한 정보는 공식 문서 참고: |
| 484 | + `Upbit API Doc <https://docs.upbit.com/reference/id%EB%A1%9C-%EC%A3%BC%EB%AC%B8-%EC%A1%B0%ED%9A%8C>`_ |
| 485 | +
|
| 486 | + :param market: 마켓 코드 (ex. KRW-BTC) |
| 487 | + :param uuids: 주문 UUID 리스트 |
| 488 | + :param identifiers: 주문 identifier 리스트 |
| 489 | + :param order_by: 정렬 방식 |
| 490 | + :param kwargs: `requests.Session.request` 호출에 사용할 파라미터 |
| 491 | +
|
| 492 | + :raises upbit.exceptions.ApiKeyError: 인증 정보 없이 호출시 발생. |
| 493 | +
|
| 494 | + :return: API 서버 응답 |
| 495 | +
|
| 496 | + Usage:: |
| 497 | +
|
| 498 | + access_key = os.environ.get('UPBIT_OPEN_API_ACCESS_KEY') |
| 499 | + secret_key = os.environ.get('UPBIT_OPEN_API_SECRET_KEY') |
| 500 | + upbit = Upbit(access_key, secret_key) |
| 501 | + res = upbit.get_orders_by_id(uuids=['xxxxxxxx']) |
| 502 | + print(res.json()) |
| 503 | +
|
| 504 | + [{ |
| 505 | + "uuid": "d098ceaf-6811-4df8-97f2-b7e01aefc03f", |
| 506 | + "side": "bid", |
| 507 | + "ord_type": "limit", |
| 508 | + "price": "104812000", |
| 509 | + "state": "wait", |
| 510 | + "market": "KRW-BTC", |
| 511 | + "created_at": "2024-06-13T10:26:21+09:00", |
| 512 | + "volume": "0.00101749", |
| 513 | + "remaining_volume": "0.00006266", |
| 514 | + "reserved_fee": "53.32258094", |
| 515 | + "remaining_fee": "3.28375996", |
| 516 | + "paid_fee": "50.03882098", |
| 517 | + "locked": "6570.80367996", |
| 518 | + "executed_volume": "0.00095483", |
| 519 | + "executed_funds": "100077.64196", |
| 520 | + "trades_count": 1 |
| 521 | + }, ...] |
| 522 | + """ |
| 523 | + url = self._endpoint + "/orders/uuids" |
| 524 | + params = { |
| 525 | + "market": market, |
| 526 | + "uuids[]": uuids, |
| 527 | + "identifiers[]": identifiers, |
| 528 | + "order_by": order_by, |
| 529 | + } |
| 530 | + headers = self._get_request_headers(params, headers=kwargs.pop('headers', None)) |
| 531 | + |
| 532 | + return self._request('get', url, headers=headers, params=params, **kwargs) |
| 533 | + |
| 534 | + def get_open_orders(self, |
| 535 | + *, |
| 536 | + market: Optional[str] = None, |
| 537 | + state: OpenOrderState = 'wait', |
| 538 | + states: Optional[list[OpenOrderState]] = None, |
| 539 | + page: int = 1, |
| 540 | + limit: int = 100, |
| 541 | + order_by: OrderBy = 'desc', |
| 542 | + **kwargs) -> Response: |
| 543 | + """체결 대기 주문 (Open Order) 조회 |
| 544 | +
|
| 545 | + API 요청 및 응답에 대한 자세한 정보는 공식 문서 참고: |
| 546 | + `Upbit API Doc <https://docs.upbit.com/reference/%EB%8C%80%EA%B8%B0-%EC%A3%BC%EB%AC%B8-%EC%A1%B0%ED%9A%8C>`_ |
| 547 | +
|
| 548 | + :param market: 마켓 코드 (ex. KRW-BTC) |
| 549 | + :param state: 주문 상태 |
| 550 | + :param states: 주문 상태 리스트 |
| 551 | + :param page: 페이지 수 |
| 552 | + :param limit: 요청 개수 |
| 553 | + :param order_by: 정렬 방식 |
| 554 | + :param kwargs: `requests.Session.request` 호출에 사용할 파라미터 |
| 555 | +
|
| 556 | + :raises upbit.exceptions.ApiKeyError: 인증 정보 없이 호출시 발생. |
| 557 | +
|
| 558 | + :return: API 서버 응답 |
| 559 | +
|
| 560 | + Usage:: |
| 561 | +
|
| 562 | + access_key = os.environ.get('UPBIT_OPEN_API_ACCESS_KEY') |
| 563 | + secret_key = os.environ.get('UPBIT_OPEN_API_SECRET_KEY') |
| 564 | + upbit = Upbit(access_key, secret_key) |
| 565 | + res = upbit.get_open_orders(market='KRW-BTC', state='wait') |
| 566 | + print(res.json()) |
| 567 | +
|
| 568 | + [{ |
| 569 | + "uuid": "d098ceaf-6811-4df8-97f2-b7e01aefc03f", |
| 570 | + "side": "bid", |
| 571 | + "ord_type": "limit", |
| 572 | + "price": "104812000", |
| 573 | + "state": "wait", |
| 574 | + "market": "KRW-BTC", |
| 575 | + "created_at": "2024-06-13T10:26:21+09:00", |
| 576 | + "volume": "0.00101749", |
| 577 | + "remaining_volume": "0.00006266", |
| 578 | + "reserved_fee": "53.32258094", |
| 579 | + "remaining_fee": "3.28375996", |
| 580 | + "paid_fee": "50.03882098", |
| 581 | + "locked": "6570.80367996", |
| 582 | + "executed_volume": "0.00095483", |
| 583 | + "executed_funds": "100077.64196", |
| 584 | + "trades_count": 1 |
| 585 | + }, ...] |
| 586 | + """ |
| 587 | + url = self._endpoint + "/orders/open" |
| 588 | + params = { |
| 589 | + "market": market, |
| 590 | + "state": state, |
| 591 | + "states[]": states, |
| 592 | + "page": page, |
| 593 | + "limit": limit, |
| 594 | + "order_by": order_by, |
| 595 | + } |
| 596 | + headers = self._get_request_headers(params, headers=kwargs.pop('headers', None)) |
| 597 | + |
| 598 | + return self._request('get', url, headers=headers, params=params, **kwargs) |
| 599 | + |
| 600 | + def get_closed_orders(self, |
| 601 | + *, |
| 602 | + market: Optional[str] = None, |
| 603 | + state: ClosedOrderState = 'done', |
| 604 | + states: Optional[list[ClosedOrderState]] = None, |
| 605 | + start_time: str | None = None, |
| 606 | + end_time: str | None = None, |
| 607 | + limit: int = 100, |
| 608 | + order_by: OrderBy = 'desc', |
| 609 | + **kwargs) -> Response: |
| 610 | + """종료된 주문 (Closed Order) 조회 |
| 611 | +
|
| 612 | + API 요청 및 응답에 대한 자세한 정보는 공식 문서 참고: |
| 613 | + `Upbit API Doc <https://docs.upbit.com/reference/%EC%A2%85%EB%A3%8C-%EC%A3%BC%EB%AC%B8-%EC%A1%B0%ED%9A%8C>`_ |
| 614 | +
|
| 615 | + :param market: 마켓 코드 (ex. KRW-BTC) |
| 616 | + :param state: 주문 상태 |
| 617 | + :param states: 주문 상태 리스트 |
| 618 | + :param start_time: 조회 시작 시간 (주문 생성시간 기준) |
| 619 | + :param end_time: 조회 종료 시간 (주문 생성시간 기준) |
| 620 | + :param limit: 요청 개수 |
| 621 | + :param order_by: 정렬 방식 |
| 622 | + :param kwargs: `requests.Session.request` 호출에 사용할 파라미터 |
| 623 | +
|
| 624 | + :raises upbit.exceptions.ApiKeyError: 인증 정보 없이 호출시 발생. |
| 625 | +
|
| 626 | + :return: API 서버 응답 |
| 627 | +
|
| 628 | + Usage:: |
| 629 | +
|
| 630 | + access_key = os.environ.get('UPBIT_OPEN_API_ACCESS_KEY') |
| 631 | + secret_key = os.environ.get('UPBIT_OPEN_API_SECRET_KEY') |
| 632 | + upbit = Upbit(access_key, secret_key) |
| 633 | + res = upbit.get_closed_orders(market='KRW-BTC', state='done') |
| 634 | + print(res.json()) |
| 635 | +
|
| 636 | + [{ |
| 637 | + "uuid": "e5715c44-2d1a-41e6-91d8-afa579e28731", |
| 638 | + "side": "ask", |
| 639 | + "ord_type": "limit", |
| 640 | + "price": "103813000", |
| 641 | + "state": "done", |
| 642 | + "market": "KRW-BTC", |
| 643 | + "created_at": "2024-06-13T10:28:36+09:00", |
| 644 | + "volume": "0.00039132", |
| 645 | + "remaining_volume": "0", |
| 646 | + "reserved_fee": "0", |
| 647 | + "remaining_fee": "0", |
| 648 | + "paid_fee": "20.44627434", |
| 649 | + "locked": "0", |
| 650 | + "executed_volume": "0.00039132", |
| 651 | + "executed_funds": "40892.54868", |
| 652 | + "trades_count": 2 |
| 653 | + }, ...] |
| 654 | + """ |
| 655 | + url = self._endpoint + "/orders/closed" |
| 656 | + params = { |
| 657 | + "market": market, |
| 658 | + "state": state, |
| 659 | + "states[]": states, |
| 660 | + "start_time": start_time, |
| 661 | + "end_time": end_time, |
| 662 | + "limit": limit, |
| 663 | + "order_by": order_by, |
| 664 | + } |
| 665 | + headers = self._get_request_headers(params, headers=kwargs.pop('headers', None)) |
| 666 | + |
| 667 | + return self._request('get', url, headers=headers, params=params, **kwargs) |
| 668 | + |
474 | 669 | def delete_order(self, |
475 | 670 | *, |
476 | 671 | uuid: Optional[str] = None, |
|
0 commit comments