akshare 1.12.99__py3-none-any.whl → 1.15.72__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.

Potentially problematic release.


This version of akshare might be problematic. Click here for more details.

Files changed (236) hide show
  1. akshare/__init__.py +441 -138
  2. akshare/air/air_hebei.py +79 -53
  3. akshare/air/air_zhenqi.py +29 -43
  4. akshare/air/sunrise_tad.py +32 -17
  5. akshare/bank/bank_cbirc_2020.py +12 -9
  6. akshare/bond/bond_cb_ths.py +17 -9
  7. akshare/bond/bond_china.py +38 -39
  8. akshare/bond/bond_china_money.py +75 -48
  9. akshare/bond/bond_info_cm.py +28 -8
  10. akshare/bond/bond_issue_cninfo.py +73 -30
  11. akshare/bond/bond_zh_cov.py +1 -1
  12. akshare/bond/bond_zh_sina.py +57 -51
  13. akshare/cal/__init__.py +0 -0
  14. akshare/cal/rv.py +170 -0
  15. akshare/cost/cost_living.py +7 -5
  16. akshare/currency/currency_safe.py +7 -6
  17. akshare/data/cninfo.js +15 -0
  18. akshare/datasets.py +10 -21
  19. akshare/economic/macro_bank.py +95 -653
  20. akshare/economic/macro_china.py +772 -1024
  21. akshare/economic/macro_china_hk.py +65 -243
  22. akshare/economic/macro_china_nbs.py +24 -7
  23. akshare/economic/macro_constitute.py +17 -12
  24. akshare/economic/macro_euro.py +13 -6
  25. akshare/economic/macro_finance_ths.py +133 -0
  26. akshare/economic/macro_info_ws.py +100 -0
  27. akshare/economic/macro_japan.py +5 -4
  28. akshare/economic/macro_other.py +12 -9
  29. akshare/economic/macro_usa.py +376 -1940
  30. akshare/economic/marco_cnbs.py +11 -6
  31. akshare/energy/energy_carbon.py +94 -125
  32. akshare/event/migration.py +3 -2
  33. akshare/exceptions.py +43 -0
  34. akshare/file_fold/calendar.json +245 -2
  35. akshare/fortune/fortune_500.py +15 -48
  36. akshare/fund/fund_amac.py +157 -75
  37. akshare/fund/fund_em.py +191 -184
  38. akshare/fund/fund_etf_em.py +16 -15
  39. akshare/fund/fund_etf_sina.py +71 -23
  40. akshare/fund/fund_etf_ths.py +93 -0
  41. akshare/fund/fund_fee_em.py +98 -0
  42. akshare/fund/fund_portfolio_em.py +60 -50
  43. akshare/fund/fund_rank_em.py +91 -82
  44. akshare/fund/fund_report_cninfo.py +63 -48
  45. akshare/fund/fund_scale_sina.py +20 -10
  46. akshare/fund/fund_xq.py +139 -109
  47. akshare/futures/cons.py +8 -31
  48. akshare/futures/cot.py +185 -137
  49. akshare/futures/futures_basis.py +97 -32
  50. akshare/futures/futures_comm_ctp.py +37 -0
  51. akshare/futures/futures_comm_qihuo.py +74 -45
  52. akshare/futures/futures_daily_bar.py +121 -184
  53. akshare/futures/futures_hf_em.py +66 -61
  54. akshare/futures/futures_hq_sina.py +79 -61
  55. akshare/futures/futures_index_ccidx.py +6 -3
  56. akshare/futures/futures_inventory_99.py +61 -272
  57. akshare/futures/futures_news_shmet.py +4 -2
  58. akshare/futures/futures_roll_yield.py +12 -25
  59. akshare/futures/futures_spot_stock_em.py +19 -13
  60. akshare/futures/futures_stock_js.py +14 -12
  61. akshare/futures/futures_to_spot.py +38 -33
  62. akshare/futures/futures_warehouse_receipt.py +75 -71
  63. akshare/futures/futures_zh_sina.py +5 -5
  64. akshare/futures/symbol_var.py +18 -13
  65. akshare/futures_derivative/futures_contract_info_czce.py +60 -52
  66. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  67. akshare/futures_derivative/futures_contract_info_shfe.py +46 -35
  68. akshare/futures_derivative/futures_cot_sina.py +26 -19
  69. akshare/futures_derivative/futures_spot_sys.py +21 -8
  70. akshare/fx/currency_investing.py +19 -285
  71. akshare/index/index_cflp.py +29 -26
  72. akshare/index/index_cni.py +86 -88
  73. akshare/index/index_cons.py +26 -10
  74. akshare/index/index_cx.py +248 -47
  75. akshare/index/index_drewry.py +17 -16
  76. akshare/index/index_option_qvix.py +329 -0
  77. akshare/index/index_research_fund_sw.py +134 -0
  78. akshare/index/{index_sw_research.py → index_research_sw.py} +122 -58
  79. akshare/index/index_spot.py +9 -5
  80. akshare/index/index_stock_hk.py +35 -16
  81. akshare/index/index_stock_us_sina.py +1 -1
  82. akshare/index/index_stock_zh.py +180 -89
  83. akshare/index/index_stock_zh_csindex.py +15 -369
  84. akshare/index/index_sw.py +62 -34
  85. akshare/index/index_yw.py +46 -23
  86. akshare/index/index_zh_a_scope.py +48 -0
  87. akshare/index/index_zh_em.py +6 -4
  88. akshare/interest_rate/interbank_rate_em.py +14 -9
  89. akshare/movie/artist_yien.py +32 -5
  90. akshare/movie/movie_yien.py +92 -18
  91. akshare/movie/video_yien.py +28 -5
  92. akshare/news/news_baidu.py +78 -44
  93. akshare/news/news_cctv.py +38 -38
  94. akshare/news/news_stock.py +6 -3
  95. akshare/nlp/nlp_interface.py +7 -8
  96. akshare/option/cons.py +11 -11
  97. akshare/option/option_comm_qihuo.py +86 -0
  98. akshare/option/option_commodity.py +178 -51
  99. akshare/option/option_daily_stats_sse_szse.py +146 -0
  100. akshare/option/option_em.py +147 -138
  101. akshare/option/option_finance_sina.py +160 -137
  102. akshare/option/option_lhb_em.py +62 -56
  103. akshare/option/option_risk_indicator_sse.py +17 -14
  104. akshare/other/other_car_cpca.py +934 -0
  105. akshare/other/{other_car.py → other_car_gasgoo.py} +15 -54
  106. akshare/qdii/__init__.py +0 -0
  107. akshare/qdii/qdii_jsl.py +233 -0
  108. akshare/request.py +117 -0
  109. akshare/spot/spot_hog_soozhu.py +232 -0
  110. akshare/spot/spot_price_qh.py +121 -0
  111. akshare/spot/spot_sge.py +63 -10
  112. akshare/stock/stock_allotment_cninfo.py +10 -9
  113. akshare/stock/stock_board_concept_em.py +23 -14
  114. akshare/stock/stock_board_industry_em.py +40 -34
  115. akshare/stock/stock_cg_equity_mortgage.py +15 -11
  116. akshare/stock/stock_cg_guarantee.py +41 -51
  117. akshare/stock/stock_cg_lawsuit.py +36 -35
  118. akshare/stock/stock_dividend_cninfo.py +12 -6
  119. akshare/stock/stock_dzjy_em.py +347 -260
  120. akshare/stock/stock_fund_em.py +332 -84
  121. akshare/stock/stock_hk_famous.py +108 -0
  122. akshare/stock/stock_hk_sina.py +8 -7
  123. akshare/stock/stock_hold_control_cninfo.py +100 -15
  124. akshare/stock/stock_hold_control_em.py +4 -3
  125. akshare/stock/stock_hold_num_cninfo.py +18 -12
  126. akshare/stock/stock_hot_rank_em.py +2 -1
  127. akshare/stock/stock_hot_search_baidu.py +5 -2
  128. akshare/stock/stock_industry_cninfo.py +24 -18
  129. akshare/stock/stock_industry_pe_cninfo.py +45 -31
  130. akshare/stock/stock_industry_sw.py +9 -10
  131. akshare/stock/stock_info.py +25 -15
  132. akshare/stock/stock_info_em.py +5 -2
  133. akshare/stock/stock_intraday_em.py +5 -2
  134. akshare/stock/stock_intraday_sina.py +22 -18
  135. akshare/stock/stock_ipo_summary_cninfo.py +25 -10
  136. akshare/stock/stock_new_cninfo.py +32 -19
  137. akshare/stock/stock_news_cx.py +39 -0
  138. akshare/stock/stock_profile_cninfo.py +9 -8
  139. akshare/stock/stock_rank_forecast.py +8 -6
  140. akshare/stock/stock_share_changes_cninfo.py +18 -14
  141. akshare/stock/stock_share_hold.py +24 -19
  142. akshare/stock/stock_summary.py +54 -26
  143. akshare/stock/stock_us_famous.py +15 -6
  144. akshare/stock/stock_us_pink.py +7 -5
  145. akshare/stock/stock_us_sina.py +15 -12
  146. akshare/stock/stock_xq.py +38 -12
  147. akshare/stock/stock_zh_a_sina.py +53 -78
  148. akshare/stock/stock_zh_b_sina.py +32 -55
  149. akshare/stock/stock_zh_kcb_report.py +11 -9
  150. akshare/stock/stock_zh_kcb_sina.py +67 -64
  151. akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
  152. akshare/stock_feature/stock_a_high_low.py +5 -2
  153. akshare/stock_feature/stock_a_indicator.py +12 -9
  154. akshare/stock_feature/stock_a_pe_and_pb.py +27 -6
  155. akshare/stock_feature/stock_account_em.py +58 -40
  156. akshare/stock_feature/stock_analyst_em.py +36 -27
  157. akshare/stock_feature/stock_board_industry_ths.py +136 -400
  158. akshare/stock_feature/stock_comment_em.py +118 -85
  159. akshare/stock_feature/stock_concept_futu.py +183 -0
  160. akshare/stock_feature/stock_cyq_em.py +58 -54
  161. akshare/stock_feature/stock_disclosure_cninfo.py +147 -102
  162. akshare/stock_feature/stock_esg_sina.py +216 -11
  163. akshare/stock_feature/stock_fhps_em.py +60 -25
  164. akshare/stock_feature/stock_fhps_ths.py +25 -6
  165. akshare/stock_feature/stock_fund_flow.py +38 -25
  166. akshare/stock_feature/stock_gdfx_em.py +180 -95
  167. akshare/stock_feature/stock_gdhs.py +73 -49
  168. akshare/stock_feature/stock_gpzy_em.py +78 -46
  169. akshare/stock_feature/stock_hist_em.py +55 -23
  170. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  171. akshare/stock_feature/stock_hsgt_em.py +184 -452
  172. akshare/stock_feature/stock_info.py +52 -29
  173. akshare/stock_feature/stock_inner_trade_xq.py +39 -31
  174. akshare/stock_feature/stock_irm_cninfo.py +32 -9
  175. akshare/stock_feature/stock_jgdy_em.py +41 -38
  176. akshare/stock_feature/stock_lh_yybpm.py +36 -37
  177. akshare/stock_feature/stock_lhb_em.py +135 -71
  178. akshare/stock_feature/stock_lhb_sina.py +93 -46
  179. akshare/stock_feature/stock_margin_em.py +102 -0
  180. akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -15
  181. akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +23 -19
  182. akshare/stock_feature/stock_market_legu.py +13 -8
  183. akshare/stock_feature/stock_pankou_em.py +72 -34
  184. akshare/stock_feature/stock_report_em.py +244 -54
  185. akshare/stock_feature/stock_research_report_em.py +48 -19
  186. akshare/stock_feature/stock_sns_sseinfo.py +15 -12
  187. akshare/stock_feature/stock_sy_em.py +86 -33
  188. akshare/stock_feature/stock_technology_ths.py +152 -120
  189. akshare/stock_feature/stock_tfp_em.py +35 -13
  190. akshare/stock_feature/stock_three_report_em.py +119 -77
  191. akshare/stock_feature/stock_ttm_lyr.py +4 -7
  192. akshare/stock_feature/stock_value_em.py +83 -0
  193. akshare/stock_feature/stock_wencai.py +21 -9
  194. akshare/stock_feature/stock_yjyg_em.py +63 -28
  195. akshare/stock_feature/stock_zf_pg.py +61 -38
  196. akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
  197. akshare/stock_feature/stock_ztb_em.py +62 -40
  198. akshare/stock_fundamental/stock_finance.py +150 -58
  199. akshare/stock_fundamental/stock_finance_ths.py +116 -31
  200. akshare/stock_fundamental/stock_mda_ym.py +5 -3
  201. akshare/stock_fundamental/stock_notice.py +29 -15
  202. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  203. akshare/stock_fundamental/stock_profit_forecast_ths.py +19 -10
  204. akshare/stock_fundamental/stock_register_em.py +448 -0
  205. akshare/stock_fundamental/stock_restricted_em.py +79 -32
  206. akshare/stock_fundamental/stock_zygc.py +10 -8
  207. akshare/stock_fundamental/stock_zyjs_ths.py +5 -3
  208. akshare/tool/trade_date_hist.py +4 -3
  209. akshare/utils/cons.py +10 -0
  210. akshare/utils/context.py +43 -0
  211. akshare/utils/demjson.py +2 -2
  212. akshare/utils/func.py +26 -0
  213. akshare/utils/tqdm.py +13 -3
  214. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/METADATA +52 -69
  215. akshare-1.15.72.dist-info/RECORD +385 -0
  216. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/WHEEL +1 -1
  217. tests/test_func.py +3 -5
  218. akshare/bond/bond_futures.py +0 -50
  219. akshare/bond/bond_investing.py +0 -139
  220. akshare/crypto/crypto_hist_investing.py +0 -249
  221. akshare/fortune/fortune_it_juzi.py +0 -123
  222. akshare/futures/futures_international.py +0 -170
  223. akshare/futures/futures_news_baidu.py +0 -54
  224. akshare/futures/inventory_data.py +0 -100
  225. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  226. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  227. akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
  228. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  229. akshare/index/index_fear_greed_funddb.py +0 -71
  230. akshare/index/index_investing.py +0 -232
  231. akshare/sport/sport_olympic_winter.py +0 -39
  232. akshare/stock_feature/stock_board_concept_ths.py +0 -422
  233. akshare/stock_fundamental/stock_register.py +0 -292
  234. akshare-1.12.99.dist-info/RECORD +0 -374
  235. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/LICENSE +0 -0
  236. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,13 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2022/1/23 10:58
4
+ Date: 2024/7/30 17:00
5
5
  Desc: 东方财富网-数据中心-特色数据-期权龙虎榜单
6
6
  https://data.eastmoney.com/other/qqlhb.html
7
7
  """
8
- import requests
8
+
9
9
  import pandas as pd
10
+ import requests
10
11
 
11
12
 
12
13
  def option_lhb_em(
@@ -15,7 +16,7 @@ def option_lhb_em(
15
16
  trade_date: str = "20220121",
16
17
  ) -> pd.DataFrame:
17
18
  """
18
- 东方财富网-数据中心-特色数据-期权龙虎榜单
19
+ 东方财富网-数据中心-期货期权-期权龙虎榜单
19
20
  https://data.eastmoney.com/other/qqlhb.html
20
21
  :param symbol: 期权代码; choice of {"510050", "510300", "159919"}
21
22
  :type symbol: str
@@ -30,7 +31,8 @@ def option_lhb_em(
30
31
  params = {
31
32
  "type": "RPT_IF_BILLBOARD_TD",
32
33
  "sty": "ALL",
33
- "filter": f"""(SECURITY_CODE="{symbol}")(TRADE_DATE='{'-'.join([trade_date[:4], trade_date[4:6], trade_date[6:]])}')""",
34
+ "filter": f"""(SECURITY_CODE="{symbol}")(TRADE_DATE='{'-'.join([trade_date[:4],
35
+ trade_date[4:6], trade_date[6:]])}')""",
34
36
  "p": "1",
35
37
  "pss": "200",
36
38
  "source": "IFBILLBOARD",
@@ -84,12 +86,16 @@ def option_lhb_em(
84
86
  "占总交易量比例",
85
87
  ]
86
88
  ]
87
- temp_df["交易日期"] = pd.to_datetime(temp_df["交易日期"]).dt.date
88
- temp_df["名次"] = pd.to_numeric(temp_df["名次"])
89
- temp_df["交易量"] = pd.to_numeric(temp_df["交易量"])
90
- temp_df["增减"] = pd.to_numeric(temp_df["增减"])
91
- temp_df["净认沽量"] = pd.to_numeric(temp_df["净认沽量"])
92
- temp_df["占总交易量比例"] = pd.to_numeric(temp_df["占总交易量比例"])
89
+ temp_df["交易日期"] = pd.to_datetime(
90
+ temp_df["交易日期"], errors="coerce"
91
+ ).dt.date
92
+ temp_df["名次"] = pd.to_numeric(temp_df["名次"], errors="coerce")
93
+ temp_df["交易量"] = pd.to_numeric(temp_df["交易量"], errors="coerce")
94
+ temp_df["增减"] = pd.to_numeric(temp_df["增减"], errors="coerce")
95
+ temp_df["净认沽量"] = pd.to_numeric(temp_df["净认沽量"], errors="coerce")
96
+ temp_df["占总交易量比例"] = pd.to_numeric(
97
+ temp_df["占总交易量比例"], errors="coerce"
98
+ )
93
99
  temp_df.reset_index(drop=True, inplace=True)
94
100
  return temp_df
95
101
  elif indicator == "期权持仓情况-认沽持仓量":
@@ -135,12 +141,16 @@ def option_lhb_em(
135
141
  "占总交易量比例",
136
142
  ]
137
143
  ]
138
- temp_df["交易日期"] = pd.to_datetime(temp_df["交易日期"]).dt.date
139
- temp_df["名次"] = pd.to_numeric(temp_df["名次"])
140
- temp_df["持仓量"] = pd.to_numeric(temp_df["持仓量"])
141
- temp_df["增减"] = pd.to_numeric(temp_df["增减"])
142
- temp_df["净持仓量"] = pd.to_numeric(temp_df["净持仓量"])
143
- temp_df["占总交易量比例"] = pd.to_numeric(temp_df["占总交易量比例"])
144
+ temp_df["交易日期"] = pd.to_datetime(
145
+ temp_df["交易日期"], errors="coerce"
146
+ ).dt.date
147
+ temp_df["名次"] = pd.to_numeric(temp_df["名次"], errors="coerce")
148
+ temp_df["持仓量"] = pd.to_numeric(temp_df["持仓量"], errors="coerce")
149
+ temp_df["增减"] = pd.to_numeric(temp_df["增减"], errors="coerce")
150
+ temp_df["净持仓量"] = pd.to_numeric(temp_df["净持仓量"], errors="coerce")
151
+ temp_df["占总交易量比例"] = pd.to_numeric(
152
+ temp_df["占总交易量比例"], errors="coerce"
153
+ )
144
154
  temp_df.reset_index(drop=True, inplace=True)
145
155
  return temp_df
146
156
  elif indicator == "期权交易情况-认购交易量":
@@ -186,43 +196,35 @@ def option_lhb_em(
186
196
  "占总交易量比例",
187
197
  ]
188
198
  ]
189
- temp_df["交易日期"] = pd.to_datetime(temp_df["交易日期"]).dt.date
190
- temp_df["名次"] = pd.to_numeric(temp_df["名次"])
191
- temp_df["交易量"] = pd.to_numeric(temp_df["交易量"])
192
- temp_df["增减"] = pd.to_numeric(temp_df["增减"])
193
- temp_df["净交易量"] = pd.to_numeric(temp_df["净交易量"])
194
- temp_df["占总交易量比例"] = pd.to_numeric(temp_df["占总交易量比例"])
199
+ temp_df["交易日期"] = pd.to_datetime(
200
+ temp_df["交易日期"], errors="coerce"
201
+ ).dt.date
202
+ temp_df["名次"] = pd.to_numeric(temp_df["名次"], errors="coerce")
203
+ temp_df["交易量"] = pd.to_numeric(temp_df["交易量"], errors="coerce")
204
+ temp_df["增减"] = pd.to_numeric(temp_df["增减"], errors="coerce")
205
+ temp_df["净交易量"] = pd.to_numeric(temp_df["净交易量"], errors="coerce")
206
+ temp_df["占总交易量比例"] = pd.to_numeric(
207
+ temp_df["占总交易量比例"], errors="coerce"
208
+ )
195
209
  temp_df.reset_index(drop=True, inplace=True)
196
210
  return temp_df
197
211
  elif indicator == "期权持仓情况-认购持仓量":
198
212
  temp_df = temp_df.iloc[21:, :]
199
- temp_df.columns = [
200
- "交易类型",
201
- "交易日期",
202
- "证券代码",
203
- "标的名称",
204
- "-",
205
- "-",
206
- "机构",
207
- "名次",
208
- "-",
209
- "-",
210
- "-" "-",
211
- "-",
212
- "-",
213
- "-",
214
- "-",
215
- "-",
216
- "-",
217
- "-",
218
- "-",
219
- "-",
220
- "-",
221
- "持仓量",
222
- "增减",
223
- "净持仓量",
224
- "占总交易量比例",
225
- ]
213
+ temp_df.rename(
214
+ columns={
215
+ "MEMBER_RANK": "名次",
216
+ "MEMBER_NAME_ABBR": "机构",
217
+ "BUY_POSITION": "持仓量",
218
+ "BUY_POSITION_CHANGE": "增减",
219
+ "NET_BUY_POSITION": "净持仓量",
220
+ "BUY_POSITION_RATIO": "占总交易量比例",
221
+ "TRADE_TYPE": "交易类型",
222
+ "TRADE_DATE": "交易日期",
223
+ "SECURITY_CODE": "证券代码",
224
+ "TARGET_NAME": "标的名称",
225
+ },
226
+ inplace=True,
227
+ )
226
228
  temp_df = temp_df[
227
229
  [
228
230
  "交易类型",
@@ -237,12 +239,16 @@ def option_lhb_em(
237
239
  "占总交易量比例",
238
240
  ]
239
241
  ]
240
- temp_df["交易日期"] = pd.to_datetime(temp_df["交易日期"]).dt.date
241
- temp_df["名次"] = pd.to_numeric(temp_df["名次"])
242
- temp_df["持仓量"] = pd.to_numeric(temp_df["持仓量"])
243
- temp_df["增减"] = pd.to_numeric(temp_df["增减"])
244
- temp_df["净持仓量"] = pd.to_numeric(temp_df["净持仓量"])
245
- temp_df["占总交易量比例"] = pd.to_numeric(temp_df["占总交易量比例"])
242
+ temp_df["交易日期"] = pd.to_datetime(
243
+ temp_df["交易日期"], errors="coerce"
244
+ ).dt.date
245
+ temp_df["名次"] = pd.to_numeric(temp_df["名次"], errors="coerce")
246
+ temp_df["持仓量"] = pd.to_numeric(temp_df["持仓量"], errors="coerce")
247
+ temp_df["增减"] = pd.to_numeric(temp_df["增减"], errors="coerce")
248
+ temp_df["净持仓量"] = pd.to_numeric(temp_df["净持仓量"], errors="coerce")
249
+ temp_df["占总交易量比例"] = pd.to_numeric(
250
+ temp_df["占总交易量比例"], errors="coerce"
251
+ )
246
252
  temp_df.reset_index(drop=True, inplace=True)
247
253
  return temp_df
248
254
 
@@ -259,7 +265,7 @@ if __name__ == "__main__":
259
265
  print(option_lhb_em_df)
260
266
 
261
267
  option_lhb_em_df = option_lhb_em(
262
- symbol="510300", indicator="期权持仓情况-认购持仓量", trade_date="20220124"
268
+ symbol="159919", indicator="期权持仓情况-认购持仓量", trade_date="20240712"
263
269
  )
264
270
  print(option_lhb_em_df)
265
271
 
@@ -1,14 +1,15 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2022/5/18 20:40
4
+ Date: 2024/6/27 22:20
5
5
  Desc: 上海证券交易所-产品-股票期权-期权风险指标
6
6
  """
7
+
7
8
  import requests
8
9
  import pandas as pd
9
10
 
10
11
 
11
- def option_risk_indicator_sse(date: str = "20220516") -> pd.DataFrame:
12
+ def option_risk_indicator_sse(date: str = "20240626") -> pd.DataFrame:
12
13
  """
13
14
  上海证券交易所-产品-股票期权-期权风险指标
14
15
  http://www.sse.com.cn/assortment/options/risk/
@@ -34,7 +35,8 @@ def option_risk_indicator_sse(date: str = "20220516") -> pd.DataFrame:
34
35
  "Host": "query.sse.com.cn",
35
36
  "Pragma": "no-cache",
36
37
  "Referer": "http://www.sse.com.cn/",
37
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36",
38
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
39
+ "Chrome/101.0.4951.67 Safari/537.36",
38
40
  }
39
41
  r = requests.get(url, params=params, headers=headers)
40
42
  data_json = r.json()
@@ -53,19 +55,20 @@ def option_risk_indicator_sse(date: str = "20220516") -> pd.DataFrame:
53
55
  "IMPLC_VOLATLTY",
54
56
  ]
55
57
  ]
56
- temp_df["TRADE_DATE"] = pd.to_datetime(temp_df["TRADE_DATE"]).dt.date
57
- temp_df["DELTA_VALUE"] = pd.to_numeric(temp_df["DELTA_VALUE"])
58
- temp_df["THETA_VALUE"] = pd.to_numeric(temp_df["THETA_VALUE"])
59
- temp_df["GAMMA_VALUE"] = pd.to_numeric(temp_df["GAMMA_VALUE"])
60
- temp_df["VEGA_VALUE"] = pd.to_numeric(temp_df["VEGA_VALUE"])
61
- temp_df["RHO_VALUE"] = pd.to_numeric(temp_df["RHO_VALUE"])
62
- temp_df["IMPLC_VOLATLTY"] = pd.to_numeric(temp_df["IMPLC_VOLATLTY"])
58
+ temp_df["TRADE_DATE"] = pd.to_datetime(
59
+ temp_df["TRADE_DATE"], errors="coerce"
60
+ ).dt.date
61
+ temp_df["DELTA_VALUE"] = pd.to_numeric(temp_df["DELTA_VALUE"], errors="coerce")
62
+ temp_df["THETA_VALUE"] = pd.to_numeric(temp_df["THETA_VALUE"], errors="coerce")
63
+ temp_df["GAMMA_VALUE"] = pd.to_numeric(temp_df["GAMMA_VALUE"], errors="coerce")
64
+ temp_df["VEGA_VALUE"] = pd.to_numeric(temp_df["VEGA_VALUE"], errors="coerce")
65
+ temp_df["RHO_VALUE"] = pd.to_numeric(temp_df["RHO_VALUE"], errors="coerce")
66
+ temp_df["IMPLC_VOLATLTY"] = pd.to_numeric(
67
+ temp_df["IMPLC_VOLATLTY"], errors="coerce"
68
+ )
63
69
  return temp_df
64
70
 
65
71
 
66
72
  if __name__ == "__main__":
67
- option_risk_indicator_sse_df = option_risk_indicator_sse(date="20220516")
68
- print(option_risk_indicator_sse_df)
69
-
70
- option_risk_indicator_sse_df = option_risk_indicator_sse(date="20220623")
73
+ option_risk_indicator_sse_df = option_risk_indicator_sse(date="20240626")
71
74
  print(option_risk_indicator_sse_df)