kaq-quant-common 0.1.85__tar.gz → 0.1.87__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/PKG-INFO +1 -1
  2. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/rest/instruction/instruction_server_base.py +22 -1
  3. kaq_quant_common-0.1.87/kaq_quant_common/api/rest/instruction/models/account.py +49 -0
  4. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/rest/instruction/models/position.py +14 -0
  5. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/resources/kaq_mysql_resources.py +8 -3
  6. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/pyproject.toml +1 -1
  7. kaq_quant_common-0.1.85/kaq_quant_common/api/rest/instruction/models/account.py +0 -24
  8. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/README.md +0 -0
  9. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/__init__.py +0 -0
  10. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/__init__.py +0 -0
  11. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/common/__init__.py +0 -0
  12. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/common/api_interface.py +0 -0
  13. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/common/auth.py +0 -0
  14. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/rest/__init__.py +0 -0
  15. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/rest/api_client_base.py +0 -0
  16. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/rest/api_server_base.py +0 -0
  17. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/rest/instruction/helper/order_helper.py +0 -0
  18. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/rest/instruction/instruction_client.py +0 -0
  19. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/rest/instruction/models/__init__.py +0 -0
  20. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/rest/instruction/models/order.py +0 -0
  21. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/rest/instruction/models/transfer.py +0 -0
  22. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/ws/__init__.py +0 -0
  23. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/ws/exchange/models.py +0 -0
  24. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/ws/exchange/ws_exchange_client.py +0 -0
  25. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/ws/exchange/ws_exchange_server.py +0 -0
  26. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/ws/instruction/__init__.py +0 -0
  27. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/ws/instruction/ws_instruction_client.py +0 -0
  28. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/ws/instruction/ws_instruction_server_base.py +0 -0
  29. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/ws/models.py +0 -0
  30. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/ws/ws_client_base.py +0 -0
  31. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/api/ws/ws_server_base.py +0 -0
  32. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/__init__.py +0 -0
  33. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/ddb_table_monitor.py +0 -0
  34. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/http_monitor.py +0 -0
  35. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/modules/limit_order_helper.py +0 -0
  36. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/modules/limit_order_symbol_monitor.py +0 -0
  37. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/modules/limit_order_symbol_monitor_group.py +0 -0
  38. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/monitor_base.py +0 -0
  39. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/monitor_group.py +0 -0
  40. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/redis_table_monitor.py +0 -0
  41. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/statistics/funding_rate_history_statistics.py +0 -0
  42. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/statistics/kline_history_statistics.py +0 -0
  43. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/common/ws_wrapper.py +0 -0
  44. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/config/config.yaml +0 -0
  45. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/resources/__init__.py +0 -0
  46. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/resources/kaq_ddb_pool_stream_read_resources.py +0 -0
  47. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/resources/kaq_ddb_stream_init_resources.py +0 -0
  48. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/resources/kaq_ddb_stream_read_resources.py +0 -0
  49. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/resources/kaq_ddb_stream_write_resources.py +0 -0
  50. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/resources/kaq_mysql_init_resources.py +0 -0
  51. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/resources/kaq_postgresql_resources.py +0 -0
  52. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/resources/kaq_quant_hive_resources.py +0 -0
  53. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/resources/kaq_redis_resources.py +0 -0
  54. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/__init__.py +0 -0
  55. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/dagster_job_check_utils.py +0 -0
  56. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/dagster_utils.py +0 -0
  57. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/date_util.py +0 -0
  58. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/enums_utils.py +0 -0
  59. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/error_utils.py +0 -0
  60. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/hash_utils.py +0 -0
  61. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/log_time_utils.py +0 -0
  62. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/logger_utils.py +0 -0
  63. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/mytt_utils.py +0 -0
  64. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/signal_utils.py +0 -0
  65. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/sqlite_utils.py +0 -0
  66. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/uuid_utils.py +0 -0
  67. {kaq_quant_common-0.1.85 → kaq_quant_common-0.1.87}/kaq_quant_common/utils/yml_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kaq_quant_common
3
- Version: 0.1.85
3
+ Version: 0.1.87
4
4
  Summary:
5
5
  Author: kevinfuture
6
6
  Author-email: liuenbofuture@foxmail.com
@@ -9,13 +9,16 @@ from kaq_quant_common.api.rest.instruction.helper.order_helper import \
9
9
  from kaq_quant_common.api.rest.instruction.models import \
10
10
  InstructionResponseBase
11
11
  from kaq_quant_common.api.rest.instruction.models.account import (
12
- ContractBalanceRequest, ContractBalanceResponse)
12
+ AccountIncomeRequest, AccountIncomeResponse, ContractBalanceRequest,
13
+ ContractBalanceResponse)
13
14
  from kaq_quant_common.api.rest.instruction.models.order import (
14
15
  AllOpenOrdersRequest, AllOpenOrdersResponse, CancelOrderRequest,
15
16
  CancelOrderResponse, ChangeLeverageRequest, ChangeLeverageResponse,
16
17
  LimitOrderBookRequest, LimitOrderBookResponse, ModifyOrderRequest,
17
18
  ModifyOrderResponse, OrderRequest, OrderResponse, QuerySymbolConfigRequest,
18
19
  QuerySymbolConfigResponse)
20
+ from kaq_quant_common.api.rest.instruction.models.position import (
21
+ QueryOpenInterestRequest, QueryOpenInterestResponse)
19
22
  from kaq_quant_common.api.rest.instruction.models.transfer import (
20
23
  TransferRequest, TransferResponse)
21
24
  from kaq_quant_common.resources.kaq_mysql_resources import \
@@ -93,6 +96,16 @@ class InstructionServerBase(ApiServerBase, ApiInterface, ABC):
93
96
  @api_method(LimitOrderBookRequest, LimitOrderBookResponse)
94
97
  def get_limit_order(self, request: LimitOrderBookRequest) -> LimitOrderBookResponse:
95
98
  return self._on_get_limit_order(request)
99
+
100
+ # 查询账户损益资金流水
101
+ @api_method(AccountIncomeRequest, AccountIncomeResponse)
102
+ def get_account_income(self, request: AccountIncomeRequest) -> AccountIncomeResponse:
103
+ return self._on_get_account_income(request)
104
+
105
+ # 查询未平仓合约数量
106
+ @api_method(QueryOpenInterestRequest, QueryOpenInterestResponse)
107
+ def query_open_interest(self, request: QueryOpenInterestRequest) -> QueryOpenInterestResponse:
108
+ return self._on_query_open_interest(request)
96
109
 
97
110
  # ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ abstract methods
98
111
 
@@ -130,4 +143,12 @@ class InstructionServerBase(ApiServerBase, ApiInterface, ABC):
130
143
 
131
144
  @abstractmethod
132
145
  def _on_get_limit_order(self, request: LimitOrderBookRequest) -> LimitOrderBookResponse:
146
+ pass
147
+
148
+ @abstractmethod
149
+ def _on_get_account_income(self, request: AccountIncomeRequest) -> AccountIncomeResponse:
150
+ pass
151
+
152
+ @abstractmethod
153
+ def _on_query_open_interest(self, request: QueryOpenInterestRequest) -> QueryOpenInterestResponse:
133
154
  pass
@@ -0,0 +1,49 @@
1
+ from enum import Enum
2
+ from typing import Optional
3
+
4
+ from pydantic import BaseModel
5
+
6
+ from . import InstructionRequestBase, InstructionResponseBase
7
+
8
+
9
+ # 资产信息
10
+ class AssetsInfo(BaseModel):
11
+ # 币种
12
+ coin: str
13
+ # 余额
14
+ balance: float
15
+
16
+
17
+ # ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 查询合约账户余额
18
+ class ContractBalanceRequest(InstructionRequestBase):
19
+ # 币种
20
+ coin: Optional[str] = None
21
+
22
+
23
+ class ContractBalanceResponse(InstructionResponseBase):
24
+ #
25
+ assets: list[AssetsInfo]
26
+
27
+
28
+ # ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 查询账户损益资金流水
29
+ class AccountIncomeInfo(BaseModel):
30
+ symbol: str
31
+ incomeType: int
32
+ income: float
33
+ time: int
34
+ subType: Optional[str] = None
35
+
36
+
37
+ class AccountIncomeRequest(InstructionRequestBase):
38
+ # 交易对
39
+ symbol: Optional[str] = None
40
+ # 收益类型
41
+ incomeType: Optional[int] = None
42
+ # 起始时间
43
+ startTime: Optional[int] = None
44
+ # 结束时间
45
+ endTime: Optional[int] = None
46
+
47
+
48
+ class AccountIncomeResponse(InstructionResponseBase):
49
+ income_list: list[AccountIncomeInfo]
@@ -54,3 +54,17 @@ class QueryPositionRequest(InstructionRequestBase):
54
54
  class QueryPositionResponse(InstructionResponseBase):
55
55
  #
56
56
  positions: list[PositionInfo]
57
+
58
+
59
+ # ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 查询未平仓合约数
60
+ class QueryOpenInterestRequest(InstructionRequestBase):
61
+ # 交易对
62
+ symbol: str
63
+
64
+ class QueryOpenInterestResponse(InstructionResponseBase):
65
+ # 交易对
66
+ symbol: str
67
+ # 未平仓合约数量(币)
68
+ open_interest: float
69
+ # 时间
70
+ time: int
@@ -2,7 +2,7 @@ import os
2
2
  import threading
3
3
  import time
4
4
  import traceback
5
- from datetime import datetime
5
+ import datetime
6
6
 
7
7
  import numpy as np
8
8
  import pandas as pd
@@ -102,8 +102,13 @@ class KaqQuantMysqlRepository:
102
102
  # 从连接池获取连接
103
103
  session = self.session_maker()
104
104
  try:
105
- time_str = time.strftime("%Y_%m_%d_%H_%M", time.localtime(time.time()))
106
- sql = f"RENAME TABLE {table_name} TO {table_name}_{time_str};"
105
+ # 1. 计算上周一的日期字符串
106
+ today = datetime.date.today()
107
+ # 2. 先计算本周一,再减去 7 天
108
+ last_monday = today - datetime.timedelta(days=today.weekday(), weeks=1)
109
+ # 3. 格式化
110
+ last_monday_str = last_monday.strftime('%Y%m%d')
111
+ sql = f"RENAME TABLE {table_name} TO {table_name}_{last_monday_str};"
107
112
  session.execute(text(sql))
108
113
  return True
109
114
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kaq_quant_common"
3
- version = "0.1.85"
3
+ version = "0.1.87"
4
4
  description = ""
5
5
  authors = [
6
6
  {name = "kevinfuture",email = "liuenbofuture@foxmail.com"}
@@ -1,24 +0,0 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel
4
-
5
- from . import InstructionRequestBase, InstructionResponseBase
6
-
7
-
8
- # 资产信息
9
- class AssetsInfo(BaseModel):
10
- # 币种
11
- coin: str
12
- # 余额
13
- balance: float
14
-
15
-
16
- # ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 查询合约账户余额
17
- class ContractBalanceRequest(InstructionRequestBase):
18
- # 币种
19
- coin: Optional[str] = None
20
-
21
-
22
- class ContractBalanceResponse(InstructionResponseBase):
23
- #
24
- assets: list[AssetsInfo]