siat 3.10.132__py3-none-any.whl → 3.11.1__py3-none-any.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.
Files changed (221) hide show
  1. siat/__init__.py +0 -0
  2. siat/allin.py +8 -0
  3. siat/assets_liquidity.py +0 -0
  4. siat/beta_adjustment.py +0 -0
  5. siat/beta_adjustment_china.py +0 -0
  6. siat/blockchain.py +0 -0
  7. siat/bond.py +0 -0
  8. siat/bond_base.py +0 -0
  9. siat/bond_china.py +0 -0
  10. siat/bond_zh_sina.py +0 -0
  11. siat/capm_beta.py +0 -0
  12. siat/capm_beta2.py +4 -4
  13. siat/common.py +9 -6
  14. siat/compare_cross.py +0 -0
  15. siat/copyrights.py +0 -0
  16. siat/cryptocurrency.py +0 -0
  17. siat/economy.py +0 -0
  18. siat/economy2.py +0 -0
  19. siat/esg.py +0 -0
  20. siat/event_study.py +0 -0
  21. siat/exchange_bond_china.pickle +0 -0
  22. siat/fama_french.py +0 -0
  23. siat/fin_stmt2_yahoo.py +0 -0
  24. siat/financial_base.py +0 -0
  25. siat/financial_statements.py +0 -0
  26. siat/financials.py +0 -0
  27. siat/financials2.py +0 -0
  28. siat/financials_china.py +0 -0
  29. siat/financials_china2.py +0 -0
  30. siat/fund.py +0 -0
  31. siat/fund_china.pickle +0 -0
  32. siat/fund_china.py +0 -0
  33. siat/future_china.py +0 -0
  34. siat/google_authenticator.py +0 -0
  35. siat/grafix.py +55 -4
  36. siat/holding_risk.py +0 -0
  37. siat/luchy_draw.py +0 -0
  38. siat/market_china.py +0 -0
  39. siat/markowitz.py +0 -0
  40. siat/markowitz2.py +1 -0
  41. siat/markowitz2_20250704.py +0 -0
  42. siat/markowitz2_20250705.py +0 -0
  43. siat/markowitz_simple.py +0 -0
  44. siat/ml_cases.py +0 -0
  45. siat/ml_cases_example.py +0 -0
  46. siat/option_china.py +0 -0
  47. siat/option_pricing.py +0 -0
  48. siat/other_indexes.py +0 -0
  49. siat/risk_adjusted_return.py +0 -0
  50. siat/risk_adjusted_return2.py +8 -4
  51. siat/risk_evaluation.py +0 -0
  52. siat/risk_free_rate.py +0 -0
  53. siat/save2docx.py +345 -0
  54. siat/save2pdf.py +145 -0
  55. siat/sector_china.py +0 -0
  56. siat/security_price2.py +0 -0
  57. siat/security_prices.py +168 -6
  58. siat/security_trend.py +0 -0
  59. siat/security_trend2.py +2 -2
  60. siat/stock.py +11 -1
  61. siat/stock_advice_linear.py +0 -0
  62. siat/stock_base.py +0 -0
  63. siat/stock_china.py +0 -0
  64. siat/stock_info.pickle +0 -0
  65. siat/stock_prices_kneighbors.py +0 -0
  66. siat/stock_prices_linear.py +0 -0
  67. siat/stock_profile.py +0 -0
  68. siat/stock_technical.py +0 -0
  69. siat/stooq.py +0 -0
  70. siat/transaction.py +0 -0
  71. siat/translate.py +0 -0
  72. siat/valuation.py +0 -0
  73. siat/valuation_china.py +0 -0
  74. siat/var_model_validation.py +0 -0
  75. siat/yf_name.py +0 -0
  76. {siat-3.10.132.dist-info/licenses → siat-3.11.1.dist-info}/LICENSE +0 -0
  77. {siat-3.10.132.dist-info → siat-3.11.1.dist-info}/METADATA +234 -235
  78. siat-3.11.1.dist-info/RECORD +80 -0
  79. {siat-3.10.132.dist-info → siat-3.11.1.dist-info}/WHEEL +1 -1
  80. {siat-3.10.132.dist-info → siat-3.11.1.dist-info}/top_level.txt +0 -1
  81. build/lib/build/lib/siat/__init__.py +0 -75
  82. build/lib/build/lib/siat/allin.py +0 -137
  83. build/lib/build/lib/siat/assets_liquidity.py +0 -915
  84. build/lib/build/lib/siat/beta_adjustment.py +0 -1058
  85. build/lib/build/lib/siat/beta_adjustment_china.py +0 -548
  86. build/lib/build/lib/siat/blockchain.py +0 -143
  87. build/lib/build/lib/siat/bond.py +0 -2900
  88. build/lib/build/lib/siat/bond_base.py +0 -992
  89. build/lib/build/lib/siat/bond_china.py +0 -100
  90. build/lib/build/lib/siat/bond_zh_sina.py +0 -143
  91. build/lib/build/lib/siat/capm_beta.py +0 -783
  92. build/lib/build/lib/siat/capm_beta2.py +0 -887
  93. build/lib/build/lib/siat/common.py +0 -5360
  94. build/lib/build/lib/siat/compare_cross.py +0 -642
  95. build/lib/build/lib/siat/copyrights.py +0 -18
  96. build/lib/build/lib/siat/cryptocurrency.py +0 -667
  97. build/lib/build/lib/siat/economy.py +0 -1471
  98. build/lib/build/lib/siat/economy2.py +0 -1853
  99. build/lib/build/lib/siat/esg.py +0 -536
  100. build/lib/build/lib/siat/event_study.py +0 -815
  101. build/lib/build/lib/siat/fama_french.py +0 -1521
  102. build/lib/build/lib/siat/fin_stmt2_yahoo.py +0 -982
  103. build/lib/build/lib/siat/financial_base.py +0 -1160
  104. build/lib/build/lib/siat/financial_statements.py +0 -598
  105. build/lib/build/lib/siat/financials.py +0 -2339
  106. build/lib/build/lib/siat/financials2.py +0 -1278
  107. build/lib/build/lib/siat/financials_china.py +0 -4433
  108. build/lib/build/lib/siat/financials_china2.py +0 -2212
  109. build/lib/build/lib/siat/fund.py +0 -629
  110. build/lib/build/lib/siat/fund_china.py +0 -3307
  111. build/lib/build/lib/siat/future_china.py +0 -551
  112. build/lib/build/lib/siat/google_authenticator.py +0 -47
  113. build/lib/build/lib/siat/grafix.py +0 -3636
  114. build/lib/build/lib/siat/holding_risk.py +0 -867
  115. build/lib/build/lib/siat/luchy_draw.py +0 -638
  116. build/lib/build/lib/siat/market_china.py +0 -1168
  117. build/lib/build/lib/siat/markowitz.py +0 -2363
  118. build/lib/build/lib/siat/markowitz2.py +0 -3150
  119. build/lib/build/lib/siat/markowitz2_20250704.py +0 -2969
  120. build/lib/build/lib/siat/markowitz2_20250705.py +0 -3158
  121. build/lib/build/lib/siat/markowitz_simple.py +0 -373
  122. build/lib/build/lib/siat/ml_cases.py +0 -2291
  123. build/lib/build/lib/siat/ml_cases_example.py +0 -60
  124. build/lib/build/lib/siat/option_china.py +0 -3069
  125. build/lib/build/lib/siat/option_pricing.py +0 -1925
  126. build/lib/build/lib/siat/other_indexes.py +0 -409
  127. build/lib/build/lib/siat/risk_adjusted_return.py +0 -1576
  128. build/lib/build/lib/siat/risk_adjusted_return2.py +0 -1900
  129. build/lib/build/lib/siat/risk_evaluation.py +0 -2218
  130. build/lib/build/lib/siat/risk_free_rate.py +0 -351
  131. build/lib/build/lib/siat/sector_china.py +0 -4140
  132. build/lib/build/lib/siat/security_price2.py +0 -727
  133. build/lib/build/lib/siat/security_prices.py +0 -3408
  134. build/lib/build/lib/siat/security_trend.py +0 -402
  135. build/lib/build/lib/siat/security_trend2.py +0 -646
  136. build/lib/build/lib/siat/stock.py +0 -4284
  137. build/lib/build/lib/siat/stock_advice_linear.py +0 -934
  138. build/lib/build/lib/siat/stock_base.py +0 -26
  139. build/lib/build/lib/siat/stock_china.py +0 -2095
  140. build/lib/build/lib/siat/stock_prices_kneighbors.py +0 -910
  141. build/lib/build/lib/siat/stock_prices_linear.py +0 -386
  142. build/lib/build/lib/siat/stock_profile.py +0 -707
  143. build/lib/build/lib/siat/stock_technical.py +0 -3305
  144. build/lib/build/lib/siat/stooq.py +0 -74
  145. build/lib/build/lib/siat/transaction.py +0 -347
  146. build/lib/build/lib/siat/translate.py +0 -5183
  147. build/lib/build/lib/siat/valuation.py +0 -1378
  148. build/lib/build/lib/siat/valuation_china.py +0 -2076
  149. build/lib/build/lib/siat/var_model_validation.py +0 -444
  150. build/lib/build/lib/siat/yf_name.py +0 -811
  151. build/lib/siat/__init__.py +0 -75
  152. build/lib/siat/allin.py +0 -137
  153. build/lib/siat/assets_liquidity.py +0 -915
  154. build/lib/siat/beta_adjustment.py +0 -1058
  155. build/lib/siat/beta_adjustment_china.py +0 -548
  156. build/lib/siat/blockchain.py +0 -143
  157. build/lib/siat/bond.py +0 -2900
  158. build/lib/siat/bond_base.py +0 -992
  159. build/lib/siat/bond_china.py +0 -100
  160. build/lib/siat/bond_zh_sina.py +0 -143
  161. build/lib/siat/capm_beta.py +0 -783
  162. build/lib/siat/capm_beta2.py +0 -887
  163. build/lib/siat/common.py +0 -5360
  164. build/lib/siat/compare_cross.py +0 -642
  165. build/lib/siat/copyrights.py +0 -18
  166. build/lib/siat/cryptocurrency.py +0 -667
  167. build/lib/siat/economy.py +0 -1471
  168. build/lib/siat/economy2.py +0 -1853
  169. build/lib/siat/esg.py +0 -536
  170. build/lib/siat/event_study.py +0 -815
  171. build/lib/siat/fama_french.py +0 -1521
  172. build/lib/siat/fin_stmt2_yahoo.py +0 -982
  173. build/lib/siat/financial_base.py +0 -1160
  174. build/lib/siat/financial_statements.py +0 -598
  175. build/lib/siat/financials.py +0 -2339
  176. build/lib/siat/financials2.py +0 -1278
  177. build/lib/siat/financials_china.py +0 -4433
  178. build/lib/siat/financials_china2.py +0 -2212
  179. build/lib/siat/fund.py +0 -629
  180. build/lib/siat/fund_china.py +0 -3307
  181. build/lib/siat/future_china.py +0 -551
  182. build/lib/siat/google_authenticator.py +0 -47
  183. build/lib/siat/grafix.py +0 -3636
  184. build/lib/siat/holding_risk.py +0 -867
  185. build/lib/siat/luchy_draw.py +0 -638
  186. build/lib/siat/market_china.py +0 -1168
  187. build/lib/siat/markowitz.py +0 -2363
  188. build/lib/siat/markowitz2.py +0 -3150
  189. build/lib/siat/markowitz2_20250704.py +0 -2969
  190. build/lib/siat/markowitz2_20250705.py +0 -3158
  191. build/lib/siat/markowitz_simple.py +0 -373
  192. build/lib/siat/ml_cases.py +0 -2291
  193. build/lib/siat/ml_cases_example.py +0 -60
  194. build/lib/siat/option_china.py +0 -3069
  195. build/lib/siat/option_pricing.py +0 -1925
  196. build/lib/siat/other_indexes.py +0 -409
  197. build/lib/siat/risk_adjusted_return.py +0 -1576
  198. build/lib/siat/risk_adjusted_return2.py +0 -1900
  199. build/lib/siat/risk_evaluation.py +0 -2218
  200. build/lib/siat/risk_free_rate.py +0 -351
  201. build/lib/siat/sector_china.py +0 -4140
  202. build/lib/siat/security_price2.py +0 -727
  203. build/lib/siat/security_prices.py +0 -3408
  204. build/lib/siat/security_trend.py +0 -402
  205. build/lib/siat/security_trend2.py +0 -646
  206. build/lib/siat/stock.py +0 -4284
  207. build/lib/siat/stock_advice_linear.py +0 -934
  208. build/lib/siat/stock_base.py +0 -26
  209. build/lib/siat/stock_china.py +0 -2095
  210. build/lib/siat/stock_prices_kneighbors.py +0 -910
  211. build/lib/siat/stock_prices_linear.py +0 -386
  212. build/lib/siat/stock_profile.py +0 -707
  213. build/lib/siat/stock_technical.py +0 -3305
  214. build/lib/siat/stooq.py +0 -74
  215. build/lib/siat/transaction.py +0 -347
  216. build/lib/siat/translate.py +0 -5183
  217. build/lib/siat/valuation.py +0 -1378
  218. build/lib/siat/valuation_china.py +0 -2076
  219. build/lib/siat/var_model_validation.py +0 -444
  220. build/lib/siat/yf_name.py +0 -811
  221. siat-3.10.132.dist-info/RECORD +0 -218
@@ -1,100 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- """
4
- 本模块功能:债券,仅用于中国,目前针对交易所债券,仿照股票分析模式
5
- 所属工具包:证券投资分析工具SIAT
6
- SIAT:Security Investment Analysis Tool
7
- 创建日期:2023年5月25日
8
- 最新修订日期:2023年5月25日
9
- 作者:王德宏 (WANG Dehong, Peter)
10
- 作者单位:北京外国语大学国际商学院
11
- 版权所有:王德宏
12
- 用途限制:仅限研究与教学使用,不可商用!商用需要额外授权。
13
- 特别声明:作者不对使用本工具进行证券投资导致的任何损益负责!
14
-
15
- 注意:未完工,暂不使用!
16
- """
17
-
18
- #==============================================================================
19
- #关闭所有警告
20
- import warnings; warnings.filterwarnings('ignore')
21
- from siat.grafix import *
22
- from siat.common import *
23
- from siat.translate import *
24
- from siat.bond_base import *
25
- from siat.bond import *
26
- from siat.stock import *
27
- from siat.security_prices import *
28
- from siat.security_price2 import *
29
- #==============================================================================
30
- import matplotlib.pyplot as plt
31
- #plt.rcParams['figure.figsize']=(12.8,7.2)
32
- plt.rcParams['figure.figsize']=(12.8,6.4)
33
- plt.rcParams['figure.dpi']=300
34
- plt.rcParams['font.size'] = 13
35
- plt.rcParams['xtick.labelsize']=11 #横轴字体大小
36
- plt.rcParams['ytick.labelsize']=11 #纵轴字体大小
37
-
38
- title_txt_size=16
39
- ylabel_txt_size=14
40
- xlabel_txt_size=14
41
- legend_txt_size=14
42
-
43
- #处理绘图汉字乱码问题
44
- import sys; czxt=sys.platform
45
- if czxt in ['win32','win64']:
46
- plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置默认字体
47
- mpfrc={'font.family': 'SimHei'}
48
-
49
- if czxt in ['darwin']: #MacOSX
50
- plt.rcParams['font.family']= ['Heiti TC']
51
- mpfrc={'font.family': 'Heiti TC'}
52
-
53
- if czxt in ['linux']: #website Jupyter
54
- plt.rcParams['font.family']= ['Heiti TC']
55
- mpfrc={'font.family':'Heiti TC'}
56
-
57
- # 解决保存图像时'-'显示为方块的问题
58
- plt.rcParams['axes.unicode_minus'] = False
59
- #==============================================================================
60
- if __name__ =="__main__":
61
- ticker="010107.SS"
62
- ticker="102229.SZ"
63
- ticker2symbol(ticker)
64
-
65
- def ticker2symbol(ticker):
66
- """
67
- 功能:将xxxxxx.SS格式转换为shxxxxxx
68
- """
69
- ticker1=ticker.upper()
70
- exchTag=ticker1[-3:]
71
- bondCode=ticker1[:-3]
72
-
73
- exchList=['.SS','.SZ']
74
- if not (exchTag in exchList):
75
- print(" #Error(): unsupported type of exchange for bond",ticker)
76
- print(" Supported exchange bond suffix:",exchList)
77
- return None
78
-
79
- if exchTag=='.SS':
80
- symbol='sh'+bondCode
81
-
82
- if exchTag=='.SZ':
83
- symbol='sz'+bondCode
84
-
85
- return symbol
86
-
87
- #==============================================================================
88
- if __name__ =="__main__":
89
- ticker="010107.SS"
90
- fromdate="2023-1-1"
91
- todate="2023-5-20"
92
- rtype="Daily Ret%"
93
- datatag=False
94
- power=3
95
- retinfo=exchbond_ret(ticker,fromdate,todate,power=power)
96
-
97
-
98
-
99
-
100
-
@@ -1,143 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding:utf-8 -*-
3
- """
4
- Date: 2024/2/28 23:00
5
- Desc: 新浪财经-债券-沪深债券-实时行情数据和历史行情数据
6
- https://vip.stock.finance.sina.com.cn/mkt/#hs_z
7
- """
8
- import datetime
9
- import re
10
-
11
- import pandas as pd
12
- import requests
13
- from py_mini_racer import py_mini_racer
14
-
15
- from akshare.bond.cons import (
16
- zh_sina_bond_hs_count_url,
17
- zh_sina_bond_hs_payload,
18
- zh_sina_bond_hs_url,
19
- zh_sina_bond_hs_hist_url,
20
- )
21
- from akshare.stock.cons import hk_js_decode
22
- from akshare.utils import demjson
23
- from akshare.utils.tqdm import get_tqdm
24
-
25
-
26
- def get_zh_bond_hs_page_count() -> int:
27
- """
28
- 行情中心首页-债券-沪深债券的总页数
29
- https://vip.stock.finance.sina.com.cn/mkt/#hs_z
30
- :return: 总页数
31
- :rtype: int
32
- """
33
- params = {
34
- "node": "hs_z",
35
- }
36
- res = requests.get(zh_sina_bond_hs_count_url, params=params)
37
- page_count = int(re.findall(re.compile(r"\d+"), res.text)[0]) / 80
38
- if isinstance(page_count, int):
39
- return page_count
40
- else:
41
- return int(page_count) + 1
42
-
43
-
44
- def bond_zh_hs_spot() -> pd.DataFrame:
45
- """
46
- 新浪财经-债券-沪深债券-实时行情数据, 大量抓取容易封IP
47
- https://vip.stock.finance.sina.com.cn/mkt/#hs_z
48
- :return: 所有沪深债券在当前时刻的实时行情数据
49
- :rtype: pandas.DataFrame
50
- """
51
- page_count = get_zh_bond_hs_page_count()
52
- zh_sina_bond_hs_payload_copy = zh_sina_bond_hs_payload.copy()
53
- tqdm = get_tqdm()
54
- big_df = pd.DataFrame()
55
- for page in tqdm(range(1, page_count + 1), leave=False):
56
- zh_sina_bond_hs_payload_copy.update({"page": page})
57
- r = requests.get(zh_sina_bond_hs_url, params=zh_sina_bond_hs_payload_copy)
58
- data_json = demjson.decode(r.text)
59
- temp_df = pd.DataFrame(data_json)
60
- big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
61
- big_df.columns = [
62
- '代码',
63
- '-',
64
- '名称',
65
- '最新价',
66
- '涨跌额',
67
- '涨跌幅',
68
- '买入',
69
- '卖出',
70
- '昨收',
71
- '今开',
72
- '最高',
73
- '最低',
74
- '成交量',
75
- '成交额',
76
- '-',
77
- '-',
78
- '-',
79
- '-',
80
- '-',
81
- '-',
82
- ]
83
- big_df = big_df[[
84
- '代码',
85
- '名称',
86
- '最新价',
87
- '涨跌额',
88
- '涨跌幅',
89
- '买入',
90
- '卖出',
91
- '昨收',
92
- '今开',
93
- '最高',
94
- '最低',
95
- '成交量',
96
- '成交额',
97
- ]]
98
- big_df['买入'] = pd.to_numeric(big_df['买入'], errors="coerce")
99
- big_df['卖出'] = pd.to_numeric(big_df['卖出'], errors="coerce")
100
- big_df['昨收'] = pd.to_numeric(big_df['昨收'], errors="coerce")
101
- big_df['今开'] = pd.to_numeric(big_df['今开'], errors="coerce")
102
- big_df['最高'] = pd.to_numeric(big_df['最高'], errors="coerce")
103
- big_df['最低'] = pd.to_numeric(big_df['最低'], errors="coerce")
104
- big_df['最新价'] = pd.to_numeric(big_df['最新价'], errors="coerce")
105
- return big_df
106
-
107
-
108
- def bond_zh_hs_daily(symbol: str = "sh010107") -> pd.DataFrame:
109
- """
110
- 新浪财经-债券-沪深债券-历史行情数据, 大量抓取容易封 IP
111
- https://vip.stock.finance.sina.com.cn/mkt/#hs_z
112
- :param symbol: 沪深债券代码; e.g., sh010107
113
- :type symbol: str
114
- :return: 指定沪深债券代码的日 K 线数据
115
- :rtype: pandas.DataFrame
116
- """
117
- r = requests.get(
118
- zh_sina_bond_hs_hist_url.format(
119
- symbol, datetime.datetime.now().strftime("%Y_%m_%d")
120
- )
121
- )
122
- js_code = py_mini_racer.MiniRacer()
123
- js_code.eval(hk_js_decode)
124
- dict_list = js_code.call(
125
- "d", r.text.split("=")[1].split(";")[0].replace('"', "")
126
- ) # 执行 js 解密代码
127
- if len(dict_list) == 0: return None
128
-
129
- data_df = pd.DataFrame(dict_list)
130
- data_df["date"] = pd.to_datetime(data_df["date"], errors="coerce").dt.date
131
- data_df['open'] = pd.to_numeric(data_df['open'], errors="coerce")
132
- data_df['high'] = pd.to_numeric(data_df['high'], errors="coerce")
133
- data_df['low'] = pd.to_numeric(data_df['low'], errors="coerce")
134
- data_df['close'] = pd.to_numeric(data_df['close'], errors="coerce")
135
- return data_df
136
-
137
-
138
- if __name__ == "__main__":
139
- bond_zh_hs_spot_df = bond_zh_hs_spot()
140
- print(bond_zh_hs_spot_df)
141
-
142
- bond_zh_hs_daily_df = bond_zh_hs_daily(symbol="sh010107")
143
- print(bond_zh_hs_daily_df)