kaq-quant-common 0.2.1__tar.gz → 0.2.3__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.
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/PKG-INFO +1 -1
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/instruction/helper/order_helper.py +18 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/kaq_ddb_stream_write_resources.py +3 -1
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/pyproject.toml +1 -1
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/README.md +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/__init__.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/__init__.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/common/__init__.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/common/api_interface.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/common/auth.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/__init__.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/api_client_base.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/api_server_base.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/instruction/instruction_client.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/instruction/instruction_server_base.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/instruction/models/__init__.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/instruction/models/account.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/instruction/models/order.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/instruction/models/position.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/instruction/models/transfer.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/__init__.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/exchange/models.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/exchange/ws_exchange_client.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/exchange/ws_exchange_server.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/instruction/__init__.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/instruction/ws_instruction_client.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/instruction/ws_instruction_server_base.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/models.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/ws_client_base.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/ws_server_base.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/__init__.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/ddb_table_monitor.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/http_monitor.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/modules/limit_order_helper.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/modules/limit_order_symbol_monitor.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/modules/limit_order_symbol_monitor_group.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/monitor_base.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/monitor_group.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/redis_table_monitor.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/statistics/funding_rate_history_statistics.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/statistics/kline_history_statistics.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/ws_wrapper.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/config/config.yaml +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/__init__.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/kaq_ddb_pool_stream_read_resources.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/kaq_ddb_stream_init_resources.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/kaq_ddb_stream_read_resources.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/kaq_mysql_init_resources.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/kaq_mysql_resources.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/kaq_postgresql_resources.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/kaq_quant_hive_resources.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/kaq_redis_resources.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/__init__.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/dagster_job_check_utils.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/dagster_utils.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/date_util.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/enums_utils.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/error_utils.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/hash_utils.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/log_time_utils.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/logger_utils.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/mytt_utils.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/signal_utils.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/sqlite_utils.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/uuid_utils.py +0 -0
- {kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/yml_utils.py +0 -0
|
@@ -88,6 +88,19 @@ class OrderHelper:
|
|
|
88
88
|
redis = self._server._redis
|
|
89
89
|
if redis is None:
|
|
90
90
|
return
|
|
91
|
+
|
|
92
|
+
# 先从 redis 读取现有的 position 数据,获取 funding_rate_records 字段
|
|
93
|
+
funding_rate_records = None
|
|
94
|
+
try:
|
|
95
|
+
existing_position_json = redis.client.hget(self._redis_key_position, position_id)
|
|
96
|
+
if existing_position_json:
|
|
97
|
+
existing_position = json.loads(existing_position_json)
|
|
98
|
+
if existing_position and "funding_rate_records" in existing_position:
|
|
99
|
+
funding_rate_records = existing_position.get("funding_rate_records")
|
|
100
|
+
except Exception as e:
|
|
101
|
+
# 读取失败不影响后续流程,记录日志
|
|
102
|
+
self._logger.warning(f"Failed to get funding_rate_records for position {position_id}: {e}")
|
|
103
|
+
|
|
91
104
|
data = {
|
|
92
105
|
"id": position_id,
|
|
93
106
|
"exchange": exchange,
|
|
@@ -107,6 +120,11 @@ class OrderHelper:
|
|
|
107
120
|
"close_time": close_time,
|
|
108
121
|
"status": PositionStatus.CLOSE.value,
|
|
109
122
|
}
|
|
123
|
+
|
|
124
|
+
# 如果存在 funding_rate_records,添加到 data 中
|
|
125
|
+
if funding_rate_records is not None:
|
|
126
|
+
data["funding_rate_records"] = funding_rate_records
|
|
127
|
+
|
|
110
128
|
redis.client.hdel(self._redis_key_position, position_id)
|
|
111
129
|
redis.client.rpush(self._redis_key_position_history, json.dumps(data))
|
|
112
130
|
|
|
@@ -94,7 +94,9 @@ class KaqQuantDdbStreamWriteRepository:
|
|
|
94
94
|
for row in arr:
|
|
95
95
|
parts = []
|
|
96
96
|
for i, v in enumerate(row):
|
|
97
|
-
if
|
|
97
|
+
if v is None or pd.isna(v):
|
|
98
|
+
parts.append("NULL")
|
|
99
|
+
elif i in str_idx:
|
|
98
100
|
parts.append(f"'{v}'") # 直接拼接最快
|
|
99
101
|
else:
|
|
100
102
|
parts.append(str(v))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/common/api_interface.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/api_client_base.py
RENAMED
|
File without changes
|
{kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/rest/api_server_base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/exchange/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/api/ws/instruction/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/ddb_table_monitor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/common/redis_table_monitor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/kaq_mysql_resources.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/resources/kaq_redis_resources.py
RENAMED
|
File without changes
|
|
File without changes
|
{kaq_quant_common-0.2.1 → kaq_quant_common-0.2.3}/kaq_quant_common/utils/dagster_job_check_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|