kaq-quant-common 0.1.84__tar.gz → 0.1.86__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 (66) hide show
  1. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/PKG-INFO +1 -1
  2. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/rest/instruction/instruction_client.py +13 -25
  3. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/rest/instruction/instruction_server_base.py +24 -23
  4. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/rest/instruction/models/order.py +25 -0
  5. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/resources/kaq_ddb_stream_write_resources.py +2 -0
  6. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/resources/kaq_mysql_resources.py +8 -3
  7. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/pyproject.toml +1 -1
  8. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/README.md +0 -0
  9. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/__init__.py +0 -0
  10. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/__init__.py +0 -0
  11. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/common/__init__.py +0 -0
  12. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/common/api_interface.py +0 -0
  13. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/common/auth.py +0 -0
  14. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/rest/__init__.py +0 -0
  15. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/rest/api_client_base.py +0 -0
  16. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/rest/api_server_base.py +0 -0
  17. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/rest/instruction/helper/order_helper.py +0 -0
  18. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/rest/instruction/models/__init__.py +0 -0
  19. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/rest/instruction/models/account.py +0 -0
  20. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/rest/instruction/models/position.py +0 -0
  21. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/rest/instruction/models/transfer.py +0 -0
  22. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/ws/__init__.py +0 -0
  23. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/ws/exchange/models.py +0 -0
  24. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/ws/exchange/ws_exchange_client.py +0 -0
  25. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/ws/exchange/ws_exchange_server.py +0 -0
  26. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/ws/instruction/__init__.py +0 -0
  27. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/ws/instruction/ws_instruction_client.py +0 -0
  28. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/ws/instruction/ws_instruction_server_base.py +0 -0
  29. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/ws/models.py +0 -0
  30. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/ws/ws_client_base.py +0 -0
  31. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/api/ws/ws_server_base.py +0 -0
  32. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/__init__.py +0 -0
  33. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/ddb_table_monitor.py +0 -0
  34. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/http_monitor.py +0 -0
  35. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/modules/limit_order_helper.py +0 -0
  36. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/modules/limit_order_symbol_monitor.py +0 -0
  37. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/modules/limit_order_symbol_monitor_group.py +0 -0
  38. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/monitor_base.py +0 -0
  39. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/monitor_group.py +0 -0
  40. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/redis_table_monitor.py +0 -0
  41. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/statistics/funding_rate_history_statistics.py +0 -0
  42. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/statistics/kline_history_statistics.py +0 -0
  43. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/common/ws_wrapper.py +0 -0
  44. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/config/config.yaml +0 -0
  45. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/resources/__init__.py +0 -0
  46. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/resources/kaq_ddb_pool_stream_read_resources.py +0 -0
  47. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/resources/kaq_ddb_stream_init_resources.py +0 -0
  48. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/resources/kaq_ddb_stream_read_resources.py +0 -0
  49. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/resources/kaq_mysql_init_resources.py +0 -0
  50. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/resources/kaq_postgresql_resources.py +0 -0
  51. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/resources/kaq_quant_hive_resources.py +0 -0
  52. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/resources/kaq_redis_resources.py +0 -0
  53. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/__init__.py +0 -0
  54. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/dagster_job_check_utils.py +0 -0
  55. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/dagster_utils.py +0 -0
  56. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/date_util.py +0 -0
  57. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/enums_utils.py +0 -0
  58. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/error_utils.py +0 -0
  59. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/hash_utils.py +0 -0
  60. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/log_time_utils.py +0 -0
  61. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/logger_utils.py +0 -0
  62. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/mytt_utils.py +0 -0
  63. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/signal_utils.py +0 -0
  64. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/sqlite_utils.py +0 -0
  65. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/kaq_quant_common/utils/uuid_utils.py +0 -0
  66. {kaq_quant_common-0.1.84 → kaq_quant_common-0.1.86}/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.84
3
+ Version: 0.1.86
4
4
  Summary:
5
5
  Author: kevinfuture
6
6
  Author-email: liuenbofuture@foxmail.com
@@ -4,35 +4,19 @@ from typing import Type, TypeVar
4
4
 
5
5
  from kaq_quant_common.api.rest.api_client_base import ApiClientBase
6
6
  from kaq_quant_common.api.rest.instruction.models import (
7
- InstructionRequestBase,
8
- InstructionResponseBase,
9
- )
7
+ InstructionRequestBase, InstructionResponseBase)
10
8
  from kaq_quant_common.api.rest.instruction.models.account import (
11
- ContractBalanceRequest,
12
- ContractBalanceResponse,
13
- )
9
+ ContractBalanceRequest, ContractBalanceResponse)
14
10
  from kaq_quant_common.api.rest.instruction.models.order import (
15
- AllOpenOrdersRequest,
16
- AllOpenOrdersResponse,
17
- CancelOrderRequest,
18
- CancelOrderResponse,
19
- ChangeLeverageRequest,
20
- ChangeLeverageResponse,
21
- ModifyOrderRequest,
22
- ModifyOrderResponse,
23
- OrderRequest,
24
- OrderResponse,
25
- QuerySymbolConfigRequest,
26
- QuerySymbolConfigResponse,
27
- )
11
+ AllOpenOrdersRequest, AllOpenOrdersResponse, CancelOrderRequest,
12
+ CancelOrderResponse, ChangeLeverageRequest, ChangeLeverageResponse,
13
+ LimitOrderBookRequest, LimitOrderBookResponse, ModifyOrderRequest,
14
+ ModifyOrderResponse, OrderRequest, OrderResponse, QuerySymbolConfigRequest,
15
+ QuerySymbolConfigResponse)
28
16
  from kaq_quant_common.api.rest.instruction.models.position import (
29
- QueryPositionRequest,
30
- QueryPositionResponse,
31
- )
17
+ QueryPositionRequest, QueryPositionResponse)
32
18
  from kaq_quant_common.api.rest.instruction.models.transfer import (
33
- TransferRequest,
34
- TransferResponse,
35
- )
19
+ TransferRequest, TransferResponse)
36
20
  from kaq_quant_common.utils import uuid_utils
37
21
 
38
22
  R = TypeVar("R", bound=InstructionResponseBase)
@@ -86,3 +70,7 @@ class InstructionClient(ApiClientBase):
86
70
  # 查询合约账户余额
87
71
  def contract_balance(self, request: ContractBalanceRequest) -> ContractBalanceResponse:
88
72
  return self._make_request("contract_balance", request, ContractBalanceResponse)
73
+
74
+ # 查询5档深度
75
+ def get_limit_order(self, request: LimitOrderBookRequest) -> LimitOrderBookResponse:
76
+ return self._make_request("get_limit_order", request, LimitOrderBookResponse)
@@ -4,32 +4,24 @@ from abc import ABC, abstractmethod
4
4
 
5
5
  from kaq_quant_common.api.common.api_interface import ApiInterface, api_method
6
6
  from kaq_quant_common.api.rest.api_server_base import ApiServerBase
7
- from kaq_quant_common.api.rest.instruction.helper.order_helper import OrderHelper
8
- from kaq_quant_common.api.rest.instruction.models import InstructionResponseBase
7
+ from kaq_quant_common.api.rest.instruction.helper.order_helper import \
8
+ OrderHelper
9
+ from kaq_quant_common.api.rest.instruction.models import \
10
+ InstructionResponseBase
9
11
  from kaq_quant_common.api.rest.instruction.models.account import (
10
- ContractBalanceRequest,
11
- ContractBalanceResponse,
12
- )
12
+ ContractBalanceRequest, ContractBalanceResponse)
13
13
  from kaq_quant_common.api.rest.instruction.models.order import (
14
- AllOpenOrdersRequest,
15
- AllOpenOrdersResponse,
16
- CancelOrderRequest,
17
- CancelOrderResponse,
18
- ChangeLeverageRequest,
19
- ChangeLeverageResponse,
20
- ModifyOrderRequest,
21
- ModifyOrderResponse,
22
- OrderRequest,
23
- OrderResponse,
24
- QuerySymbolConfigRequest,
25
- QuerySymbolConfigResponse,
26
- )
14
+ AllOpenOrdersRequest, AllOpenOrdersResponse, CancelOrderRequest,
15
+ CancelOrderResponse, ChangeLeverageRequest, ChangeLeverageResponse,
16
+ LimitOrderBookRequest, LimitOrderBookResponse, ModifyOrderRequest,
17
+ ModifyOrderResponse, OrderRequest, OrderResponse, QuerySymbolConfigRequest,
18
+ QuerySymbolConfigResponse)
27
19
  from kaq_quant_common.api.rest.instruction.models.transfer import (
28
- TransferRequest,
29
- TransferResponse,
30
- )
31
- from kaq_quant_common.resources.kaq_mysql_resources import KaqQuantMysqlRepository
32
- from kaq_quant_common.resources.kaq_redis_resources import KaqQuantRedisRepository
20
+ TransferRequest, TransferResponse)
21
+ from kaq_quant_common.resources.kaq_mysql_resources import \
22
+ KaqQuantMysqlRepository
23
+ from kaq_quant_common.resources.kaq_redis_resources import \
24
+ KaqQuantRedisRepository
33
25
 
34
26
 
35
27
  class InstructionServerBase(ApiServerBase, ApiInterface, ABC):
@@ -96,6 +88,11 @@ class InstructionServerBase(ApiServerBase, ApiInterface, ABC):
96
88
  @api_method(ContractBalanceRequest, ContractBalanceResponse)
97
89
  def contract_balance(self, request: ContractBalanceRequest) -> ContractBalanceResponse:
98
90
  return self._on_contract_balance(request)
91
+
92
+ # 查询5档深度
93
+ @api_method(LimitOrderBookRequest, LimitOrderBookResponse)
94
+ def get_limit_order(self, request: LimitOrderBookRequest) -> LimitOrderBookResponse:
95
+ return self._on_get_limit_order(request)
99
96
 
100
97
  # ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ abstract methods
101
98
 
@@ -130,3 +127,7 @@ class InstructionServerBase(ApiServerBase, ApiInterface, ABC):
130
127
  @abstractmethod
131
128
  def _on_contract_balance(self, request: ContractBalanceRequest) -> ContractBalanceResponse:
132
129
  pass
130
+
131
+ @abstractmethod
132
+ def _on_get_limit_order(self, request: LimitOrderBookRequest) -> LimitOrderBookResponse:
133
+ pass
@@ -1,6 +1,7 @@
1
1
  from enum import Enum
2
2
  from typing import Optional
3
3
 
4
+ import pandas as pd
4
5
  from pydantic import BaseModel
5
6
 
6
7
  from kaq_quant_common.utils import uuid_utils
@@ -221,3 +222,27 @@ class ChangeMarginModeRequest(InstructionRequestBase):
221
222
  class ChangeMarginModeResponse(InstructionResponseBase):
222
223
  # 是否联合
223
224
  is_margin: bool
225
+
226
+
227
+ # ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 5档深度
228
+ class LimitOrderBookInfo(BaseModel):
229
+ # 价格
230
+ price: float
231
+ # 数量
232
+ vol: float
233
+
234
+
235
+ class LimitOrderBookRequest(InstructionRequestBase):
236
+ # 交易对
237
+ symbol: str
238
+
239
+
240
+ class LimitOrderBookResponse(InstructionResponseBase):
241
+ # 交易对
242
+ symbol: str
243
+ # 接口返回的ts
244
+ event_time: int
245
+ # 买单数据
246
+ bids: list[LimitOrderBookInfo]
247
+ # 卖单数据
248
+ asks: list[LimitOrderBookInfo]
@@ -48,6 +48,8 @@ class KaqQuantDdbStreamWriteRepository:
48
48
  self.logger.error(f'KaqQuantDdbStreamWriteRepository.save2stream is occured error: tableName is {ddb_table_name} - {str(e)} - {str(traceback.format_exc())}')
49
49
 
50
50
  def build_insert_values_fast(self, df):
51
+ if df.empty:
52
+ return []
51
53
  dtypes = df.dtypes.tolist()
52
54
  # 提前确定哪些列需要加引号
53
55
  str_idx = {i for i, dt in enumerate(dtypes) if dt == object or dt == 'object' or dt == 'str'}
@@ -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.84"
3
+ version = "0.1.86"
4
4
  description = ""
5
5
  authors = [
6
6
  {name = "kevinfuture",email = "liuenbofuture@foxmail.com"}