rust-pyfunc 0.43.0__cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl → 0.44.1__cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
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.
- rust_pyfunc/rust_pyfunc.cpython-38-s390x-linux-gnu.so +0 -0
- rust_pyfunc/statistical_analysis.pyi +106 -0
- {rust_pyfunc-0.43.0.dist-info → rust_pyfunc-0.44.1.dist-info}/METADATA +1 -1
- {rust_pyfunc-0.43.0.dist-info → rust_pyfunc-0.44.1.dist-info}/RECORD +5 -5
- {rust_pyfunc-0.43.0.dist-info → rust_pyfunc-0.44.1.dist-info}/WHEEL +0 -0
Binary file
|
@@ -1000,4 +1000,110 @@ def hmm_trend_prediction(
|
|
1000
1000
|
... columns=['更新后下跌概率', '更新后震荡概率', '更新后上涨概率']
|
1001
1001
|
... )
|
1002
1002
|
"""
|
1003
|
+
...
|
1004
|
+
|
1005
|
+
def distances_to_frontier(
|
1006
|
+
r: NDArray[np.float64],
|
1007
|
+
group_size: int,
|
1008
|
+
drop_last: bool = True,
|
1009
|
+
ddof: int = 1,
|
1010
|
+
ridge: float = 1e-6
|
1011
|
+
) -> NDArray[np.float64]:
|
1012
|
+
"""计算收益序列中每个聚合块到马科维茨有效前沿的距离。
|
1013
|
+
|
1014
|
+
基于马科维茨投资组合理论的有效前沿距离计算功能。给定单日3秒频率收益序列,
|
1015
|
+
按指定块大小聚合后计算每个资产点到有效前沿的最短距离。
|
1016
|
+
|
1017
|
+
算法步骤:
|
1018
|
+
1. 数据分块聚合:将收益序列按指定大小分块,计算每块均值
|
1019
|
+
2. 协方差矩阵计算:计算块间样本协方差矩阵(带岭化保证正定性)
|
1020
|
+
3. 有效前沿构造:使用马科维茨无约束闭式解构造有效前沿
|
1021
|
+
4. 距离计算:使用KKT-λ四次方程法计算每个资产点到前沿的最短欧氏距离
|
1022
|
+
|
1023
|
+
参数说明:
|
1024
|
+
----------
|
1025
|
+
r : NDArray[np.float64]
|
1026
|
+
1D float64数组,单日3秒频率收益序列
|
1027
|
+
group_size : int
|
1028
|
+
每多少行聚合成一块(x),必须大于0
|
1029
|
+
drop_last : bool, default=True
|
1030
|
+
尾部不足group_size行时是否丢弃,True丢弃,False则报错
|
1031
|
+
ddof : int, default=1
|
1032
|
+
协方差/方差的自由度调整,0或1,默认1(样本协方差)
|
1033
|
+
ridge : float, default=1e-6
|
1034
|
+
岭化强度系数,用于保证协方差矩阵正定
|
1035
|
+
|
1036
|
+
返回值:
|
1037
|
+
-------
|
1038
|
+
NDArray[np.float64]
|
1039
|
+
shape=(m,)的1D数组,包含每个资产点到有效前沿的距离
|
1040
|
+
其中m = floor(len(r) / group_size)(如果drop_last=True)
|
1041
|
+
|
1042
|
+
异常:
|
1043
|
+
-----
|
1044
|
+
ValueError
|
1045
|
+
当输入参数无效时抛出:
|
1046
|
+
- group_size <= 0
|
1047
|
+
- 输入序列为空
|
1048
|
+
- drop_last=False且序列长度不能被group_size整除
|
1049
|
+
- 块大小 <= 自由度调整
|
1050
|
+
- 协方差矩阵不正定(可尝试增大ridge)
|
1051
|
+
- 有效前沿参数计算失败(Δ <= 0)
|
1052
|
+
|
1053
|
+
数值提示:
|
1054
|
+
--------
|
1055
|
+
- 当 m >> group_size 时,协方差矩阵可能秩亏,需要通过增大ridge参数保证可逆性
|
1056
|
+
- 如果出现数值不稳定错误,建议将ridge增大10倍或100倍
|
1057
|
+
- 默认使用样本协方差(ddof=1),符合统计学习习惯
|
1058
|
+
|
1059
|
+
性能特点:
|
1060
|
+
--------
|
1061
|
+
- 使用Rust实现,计算性能优异
|
1062
|
+
- 采用Cholesky分解避免显式矩阵求逆,数值稳定性好
|
1063
|
+
- 支持大规模数据处理,内存使用优化
|
1064
|
+
- 多项式求根采用高效算法,避免数值迭代
|
1065
|
+
|
1066
|
+
应用场景:
|
1067
|
+
--------
|
1068
|
+
- 投资组合绩效评估:评估各时间段表现相对有效前沿的距离
|
1069
|
+
- 市场效率分析:通过距离分布判断市场效率变化
|
1070
|
+
- 风险管理:识别偏离有效前沿的异常时期
|
1071
|
+
- 资产配置优化:为动态调整提供量化依据
|
1072
|
+
|
1073
|
+
示例:
|
1074
|
+
-----
|
1075
|
+
>>> import numpy as np
|
1076
|
+
>>> from rust_pyfunc import distances_to_frontier
|
1077
|
+
>>>
|
1078
|
+
>>> # 生成测试数据
|
1079
|
+
>>> np.random.seed(0)
|
1080
|
+
>>> r = 1e-4 * np.random.randn(4800).astype(np.float64)
|
1081
|
+
>>>
|
1082
|
+
>>> # 每1分钟聚合(20个3秒间隔)
|
1083
|
+
>>> distances = distances_to_frontier(r, group_size=20)
|
1084
|
+
>>> print(f"距离数组形状: {distances.shape}") # (240,)
|
1085
|
+
>>> print(f"平均距离: {np.mean(distances):.6e}")
|
1086
|
+
>>>
|
1087
|
+
>>> # 每2分半聚合(50个3秒间隔)
|
1088
|
+
>>> distances2 = distances_to_frontier(r, group_size=50)
|
1089
|
+
>>> print(f"距离数组形状: {distances2.shape}") # (96,)
|
1090
|
+
>>>
|
1091
|
+
>>> # 增大岭化系数处理病态数据
|
1092
|
+
>>> distances3 = distances_to_frontier(r, group_size=100, ridge=1e-4)
|
1093
|
+
>>> print(f"距离数组形状: {distances3.shape}") # (48,)
|
1094
|
+
>>>
|
1095
|
+
>>> # 分析距离分布
|
1096
|
+
>>> import matplotlib.pyplot as plt
|
1097
|
+
>>> plt.hist(distances, bins=30, alpha=0.7)
|
1098
|
+
>>> plt.xlabel('到有效前沿的距离')
|
1099
|
+
>>> plt.ylabel('频次')
|
1100
|
+
>>> plt.title('距离分布直方图')
|
1101
|
+
>>> plt.show()
|
1102
|
+
|
1103
|
+
注意:
|
1104
|
+
-----
|
1105
|
+
- 函数保证返回的距离值非负且有限
|
1106
|
+
- 在极少数情况下如果多项式求根失败,对应距离会设为0并发出警告
|
1107
|
+
- 所有计算都使用双精度浮点数,确保数值精度
|
1108
|
+
"""
|
1003
1109
|
...
|
@@ -1,5 +1,5 @@
|
|
1
|
-
rust_pyfunc-0.
|
2
|
-
rust_pyfunc-0.
|
1
|
+
rust_pyfunc-0.44.1.dist-info/METADATA,sha256=CO4eFbA2PTmGYbIgyxshTzOk4EA2Y89cu55-8aE4Z1E,261
|
2
|
+
rust_pyfunc-0.44.1.dist-info/WHEEL,sha256=o50U_6IxXMtExlx01b2vldRErh4J9P5S4Zl8Oa6OWYo,125
|
3
3
|
rust_pyfunc/__init__.py,sha256=HoJzaO5idfsAe_nGE9sxRm8VNwsdhuot-ll2GVMV7Ts,589
|
4
4
|
rust_pyfunc/__init__.pyi,sha256=8gmVJ42Lgp-r6r0e7nq0Iu6Hy6i-Qnj1E1EwhxRWOMA,4505
|
5
5
|
rust_pyfunc/core_functions.pyi,sha256=Ru0hOn0bn91cn23PnUHgpVGKpE8FZv4CbhwX2-0TLN0,53429
|
@@ -12,8 +12,8 @@ rust_pyfunc/pandas_rank.py,sha256=-Cep-EN5XFcO8iy_waFzv46sLeV-9u9s0ieq_Rb7uQM,57
|
|
12
12
|
rust_pyfunc/parallel_computing.pyi,sha256=gbBytTxMxikvn0O5Bu2wEyTFbMx9vzdkdS3YEnRZJKs,85369
|
13
13
|
rust_pyfunc/rolling_future.py,sha256=P9KBMih2QzNWnGcj5-vQ4JVS97T1xrbh8XXpFSKF8iQ,13773
|
14
14
|
rust_pyfunc/rolling_past.py,sha256=DypONf5T1aR5MTvL0NokxM5qmd9bmxjDSzEapfXwH7s,13485
|
15
|
-
rust_pyfunc/rust_pyfunc.cpython-38-s390x-linux-gnu.so,sha256=
|
16
|
-
rust_pyfunc/statistical_analysis.pyi,sha256=
|
15
|
+
rust_pyfunc/rust_pyfunc.cpython-38-s390x-linux-gnu.so,sha256=xuCfkNGg8wxC6O5ctjxPQpOpxY8jx5gG6kzANQ4baLo,13659312
|
16
|
+
rust_pyfunc/statistical_analysis.pyi,sha256=W_xQR9ckiR7R2HITqcptZg82zBwo-ZB_lUag91RxpNM,40974
|
17
17
|
rust_pyfunc/text_analysis.pyi,sha256=7YW07RZhU7sLcCLEzODlPCHUQ66WkzXJj23trGOTdVE,5078
|
18
18
|
rust_pyfunc/time_series.pyi,sha256=h2ngtC6sh9BYORTKMLUaydcfuoaNKzHE6KMEKH_rouo,30460
|
19
19
|
rust_pyfunc/trading_analysis.pyi,sha256=NEsKnGcmEgWLceqOifN8N4kWq5edKNRFk-AEze2BI2c,69512
|
@@ -21,4 +21,4 @@ rust_pyfunc/tree_structures.pyi,sha256=AF2kr4g9FY3feCaL75nQ-7lgaiALO3zaqzY93QUr5
|
|
21
21
|
rust_pyfunc/treevisual.py,sha256=BgQvJ6gtxSOwOTE7umDEQ17RRqa_G3Uaxidpt4l9WWI,1951
|
22
22
|
rust_pyfunc/web_manager.py,sha256=mr0nLLEpfwEU9POxw8VooVGF66WwVnxlGEouwmLbm3w,22338
|
23
23
|
rust_pyfunc/web_manager.pyi,sha256=LcxwB-SKHMN60QdAFiVgGBfxE6kWUscDV3_EvY8OAaQ,2469
|
24
|
-
rust_pyfunc-0.
|
24
|
+
rust_pyfunc-0.44.1.dist-info/RECORD,,
|
File without changes
|