akshare 1.12.95__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 (240) hide show
  1. akshare/__init__.py +446 -139
  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_convert.py +40 -16
  10. akshare/bond/bond_info_cm.py +28 -8
  11. akshare/bond/bond_issue_cninfo.py +73 -30
  12. akshare/bond/{bond_zh_cov_sina.py → bond_zh_cov.py} +41 -17
  13. akshare/bond/bond_zh_sina.py +57 -51
  14. akshare/cal/__init__.py +0 -0
  15. akshare/cal/rv.py +170 -0
  16. akshare/cost/cost_living.py +7 -5
  17. akshare/currency/currency_safe.py +7 -6
  18. akshare/data/cninfo.js +15 -0
  19. akshare/datasets.py +10 -21
  20. akshare/economic/macro_bank.py +95 -653
  21. akshare/economic/macro_china.py +772 -1024
  22. akshare/economic/macro_china_hk.py +65 -243
  23. akshare/economic/macro_china_nbs.py +24 -7
  24. akshare/economic/macro_constitute.py +17 -12
  25. akshare/economic/macro_euro.py +13 -6
  26. akshare/economic/macro_finance_ths.py +133 -0
  27. akshare/economic/macro_info_ws.py +100 -0
  28. akshare/economic/macro_japan.py +5 -4
  29. akshare/economic/macro_other.py +12 -9
  30. akshare/economic/macro_usa.py +376 -1940
  31. akshare/economic/marco_cnbs.py +11 -6
  32. akshare/energy/energy_carbon.py +94 -125
  33. akshare/event/migration.py +3 -2
  34. akshare/exceptions.py +43 -0
  35. akshare/file_fold/calendar.json +245 -2
  36. akshare/fortune/fortune_500.py +15 -48
  37. akshare/fund/fund_amac.py +157 -75
  38. akshare/fund/fund_em.py +191 -184
  39. akshare/fund/fund_etf_em.py +20 -19
  40. akshare/fund/fund_etf_sina.py +71 -23
  41. akshare/fund/fund_etf_ths.py +93 -0
  42. akshare/fund/fund_fee_em.py +98 -0
  43. akshare/fund/fund_lof_em.py +10 -8
  44. akshare/fund/fund_portfolio_em.py +60 -50
  45. akshare/fund/fund_rank_em.py +91 -82
  46. akshare/fund/fund_report_cninfo.py +63 -48
  47. akshare/fund/fund_scale_sina.py +20 -10
  48. akshare/fund/fund_xq.py +139 -109
  49. akshare/futures/cons.py +8 -31
  50. akshare/futures/cot.py +185 -137
  51. akshare/futures/futures_basis.py +97 -32
  52. akshare/futures/futures_comm_ctp.py +37 -0
  53. akshare/futures/futures_comm_qihuo.py +74 -45
  54. akshare/futures/futures_daily_bar.py +121 -184
  55. akshare/futures/futures_hf_em.py +66 -61
  56. akshare/futures/futures_hq_sina.py +79 -61
  57. akshare/futures/futures_index_ccidx.py +6 -3
  58. akshare/futures/futures_inventory_99.py +61 -272
  59. akshare/futures/futures_news_shmet.py +4 -2
  60. akshare/futures/futures_roll_yield.py +12 -25
  61. akshare/futures/futures_spot_stock_em.py +19 -13
  62. akshare/futures/futures_stock_js.py +14 -12
  63. akshare/futures/futures_to_spot.py +38 -33
  64. akshare/futures/futures_warehouse_receipt.py +75 -71
  65. akshare/futures/futures_zh_sina.py +73 -50
  66. akshare/futures/symbol_var.py +18 -13
  67. akshare/futures_derivative/futures_contract_info_czce.py +60 -52
  68. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  69. akshare/futures_derivative/futures_contract_info_shfe.py +46 -35
  70. akshare/futures_derivative/futures_cot_sina.py +26 -19
  71. akshare/futures_derivative/futures_spot_sys.py +21 -8
  72. akshare/fx/currency_investing.py +19 -285
  73. akshare/index/index_cflp.py +29 -26
  74. akshare/index/index_cni.py +86 -88
  75. akshare/index/index_cons.py +26 -10
  76. akshare/index/index_cx.py +248 -47
  77. akshare/index/index_drewry.py +17 -16
  78. akshare/index/index_hog.py +27 -26
  79. akshare/index/index_option_qvix.py +329 -0
  80. akshare/index/index_research_fund_sw.py +134 -0
  81. akshare/index/{index_sw_research.py → index_research_sw.py} +122 -58
  82. akshare/index/index_spot.py +9 -5
  83. akshare/index/index_stock_hk.py +35 -16
  84. akshare/index/index_stock_us_sina.py +1 -1
  85. akshare/index/index_stock_zh.py +180 -89
  86. akshare/index/index_stock_zh_csindex.py +15 -369
  87. akshare/index/index_sw.py +62 -34
  88. akshare/index/index_yw.py +46 -23
  89. akshare/index/index_zh_a_scope.py +48 -0
  90. akshare/index/index_zh_em.py +17 -14
  91. akshare/interest_rate/interbank_rate_em.py +14 -9
  92. akshare/movie/artist_yien.py +32 -5
  93. akshare/movie/movie_yien.py +92 -18
  94. akshare/movie/video_yien.py +28 -5
  95. akshare/news/news_baidu.py +78 -44
  96. akshare/news/news_cctv.py +38 -38
  97. akshare/news/news_stock.py +6 -3
  98. akshare/nlp/nlp_interface.py +7 -8
  99. akshare/option/cons.py +11 -11
  100. akshare/option/option_comm_qihuo.py +86 -0
  101. akshare/option/option_commodity.py +178 -51
  102. akshare/option/option_daily_stats_sse_szse.py +146 -0
  103. akshare/option/option_em.py +147 -138
  104. akshare/option/option_finance_sina.py +160 -137
  105. akshare/option/option_lhb_em.py +62 -56
  106. akshare/option/option_risk_indicator_sse.py +17 -14
  107. akshare/other/other_car_cpca.py +934 -0
  108. akshare/other/{other_car.py → other_car_gasgoo.py} +15 -54
  109. akshare/qdii/__init__.py +0 -0
  110. akshare/qdii/qdii_jsl.py +233 -0
  111. akshare/request.py +117 -0
  112. akshare/spot/spot_hog_soozhu.py +232 -0
  113. akshare/spot/spot_price_qh.py +121 -0
  114. akshare/spot/spot_sge.py +63 -10
  115. akshare/stock/stock_allotment_cninfo.py +10 -9
  116. akshare/stock/stock_ask_bid_em.py +27 -3
  117. akshare/stock/stock_board_concept_em.py +23 -14
  118. akshare/stock/stock_board_industry_em.py +40 -34
  119. akshare/stock/stock_cg_equity_mortgage.py +15 -11
  120. akshare/stock/stock_cg_guarantee.py +41 -51
  121. akshare/stock/stock_cg_lawsuit.py +36 -35
  122. akshare/stock/stock_dividend_cninfo.py +12 -6
  123. akshare/stock/stock_dzjy_em.py +347 -260
  124. akshare/stock/stock_fund_em.py +332 -84
  125. akshare/stock/stock_hk_famous.py +108 -0
  126. akshare/stock/stock_hk_sina.py +8 -7
  127. akshare/stock/stock_hold_control_cninfo.py +100 -15
  128. akshare/stock/stock_hold_control_em.py +4 -3
  129. akshare/stock/stock_hold_num_cninfo.py +18 -12
  130. akshare/stock/stock_hot_rank_em.py +2 -1
  131. akshare/stock/stock_hot_search_baidu.py +5 -2
  132. akshare/stock/stock_industry_cninfo.py +24 -18
  133. akshare/stock/stock_industry_pe_cninfo.py +45 -31
  134. akshare/stock/stock_industry_sw.py +9 -10
  135. akshare/stock/stock_info.py +25 -15
  136. akshare/stock/stock_info_em.py +5 -2
  137. akshare/stock/stock_intraday_em.py +5 -2
  138. akshare/stock/stock_intraday_sina.py +22 -18
  139. akshare/stock/stock_ipo_summary_cninfo.py +25 -10
  140. akshare/stock/stock_new_cninfo.py +32 -19
  141. akshare/stock/stock_news_cx.py +39 -0
  142. akshare/stock/stock_profile_cninfo.py +9 -8
  143. akshare/stock/stock_rank_forecast.py +8 -6
  144. akshare/stock/stock_share_changes_cninfo.py +18 -14
  145. akshare/stock/stock_share_hold.py +24 -19
  146. akshare/stock/stock_summary.py +54 -26
  147. akshare/stock/stock_us_famous.py +15 -6
  148. akshare/stock/stock_us_pink.py +7 -5
  149. akshare/stock/stock_us_sina.py +15 -12
  150. akshare/stock/stock_xq.py +38 -12
  151. akshare/stock/stock_zh_a_sina.py +53 -78
  152. akshare/stock/stock_zh_b_sina.py +32 -55
  153. akshare/stock/stock_zh_kcb_report.py +11 -9
  154. akshare/stock/stock_zh_kcb_sina.py +67 -64
  155. akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
  156. akshare/stock_feature/stock_a_high_low.py +5 -2
  157. akshare/stock_feature/stock_a_indicator.py +12 -9
  158. akshare/stock_feature/stock_a_pe_and_pb.py +27 -6
  159. akshare/stock_feature/stock_account_em.py +58 -40
  160. akshare/stock_feature/stock_analyst_em.py +36 -27
  161. akshare/stock_feature/stock_board_industry_ths.py +136 -400
  162. akshare/stock_feature/stock_comment_em.py +118 -85
  163. akshare/stock_feature/stock_concept_futu.py +183 -0
  164. akshare/stock_feature/stock_cyq_em.py +58 -54
  165. akshare/stock_feature/stock_disclosure_cninfo.py +147 -102
  166. akshare/stock_feature/stock_esg_sina.py +216 -11
  167. akshare/stock_feature/stock_fhps_em.py +60 -25
  168. akshare/stock_feature/stock_fhps_ths.py +25 -6
  169. akshare/stock_feature/stock_fund_flow.py +38 -25
  170. akshare/stock_feature/stock_gdfx_em.py +180 -95
  171. akshare/stock_feature/stock_gdhs.py +73 -49
  172. akshare/stock_feature/stock_gpzy_em.py +78 -46
  173. akshare/stock_feature/stock_hist_em.py +164 -111
  174. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  175. akshare/stock_feature/stock_hsgt_em.py +184 -452
  176. akshare/stock_feature/stock_info.py +52 -29
  177. akshare/stock_feature/stock_inner_trade_xq.py +39 -31
  178. akshare/stock_feature/stock_irm_cninfo.py +32 -9
  179. akshare/stock_feature/stock_jgdy_em.py +41 -38
  180. akshare/stock_feature/stock_lh_yybpm.py +36 -37
  181. akshare/stock_feature/stock_lhb_em.py +135 -71
  182. akshare/stock_feature/stock_lhb_sina.py +93 -46
  183. akshare/stock_feature/stock_margin_em.py +102 -0
  184. akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -15
  185. akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +23 -19
  186. akshare/stock_feature/stock_market_legu.py +13 -8
  187. akshare/stock_feature/stock_pankou_em.py +72 -34
  188. akshare/stock_feature/stock_report_em.py +244 -54
  189. akshare/stock_feature/stock_research_report_em.py +48 -19
  190. akshare/stock_feature/stock_sns_sseinfo.py +15 -12
  191. akshare/stock_feature/stock_sy_em.py +86 -33
  192. akshare/stock_feature/stock_technology_ths.py +152 -120
  193. akshare/stock_feature/stock_tfp_em.py +35 -13
  194. akshare/stock_feature/stock_three_report_em.py +119 -77
  195. akshare/stock_feature/stock_ttm_lyr.py +4 -7
  196. akshare/stock_feature/stock_value_em.py +83 -0
  197. akshare/stock_feature/stock_wencai.py +21 -9
  198. akshare/stock_feature/stock_yjyg_em.py +63 -28
  199. akshare/stock_feature/stock_zf_pg.py +61 -38
  200. akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
  201. akshare/stock_feature/stock_ztb_em.py +62 -40
  202. akshare/stock_fundamental/stock_finance.py +150 -58
  203. akshare/stock_fundamental/stock_finance_ths.py +116 -31
  204. akshare/stock_fundamental/stock_mda_ym.py +5 -3
  205. akshare/stock_fundamental/stock_notice.py +29 -15
  206. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  207. akshare/stock_fundamental/stock_profit_forecast_ths.py +19 -10
  208. akshare/stock_fundamental/stock_register_em.py +448 -0
  209. akshare/stock_fundamental/stock_restricted_em.py +79 -32
  210. akshare/stock_fundamental/stock_zygc.py +10 -8
  211. akshare/stock_fundamental/stock_zyjs_ths.py +5 -3
  212. akshare/tool/trade_date_hist.py +4 -3
  213. akshare/utils/cons.py +10 -0
  214. akshare/utils/context.py +43 -0
  215. akshare/utils/demjson.py +2 -2
  216. akshare/utils/func.py +26 -0
  217. akshare/utils/tqdm.py +13 -3
  218. {akshare-1.12.95.dist-info → akshare-1.15.72.dist-info}/METADATA +52 -69
  219. akshare-1.15.72.dist-info/RECORD +385 -0
  220. {akshare-1.12.95.dist-info → akshare-1.15.72.dist-info}/WHEEL +1 -1
  221. tests/test_func.py +3 -5
  222. akshare/bond/bond_futures.py +0 -50
  223. akshare/bond/bond_investing.py +0 -139
  224. akshare/crypto/crypto_hist_investing.py +0 -249
  225. akshare/fortune/fortune_it_juzi.py +0 -123
  226. akshare/futures/futures_international.py +0 -170
  227. akshare/futures/futures_news_baidu.py +0 -54
  228. akshare/futures/inventory_data.py +0 -100
  229. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  230. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  231. akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
  232. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  233. akshare/index/index_fear_greed_funddb.py +0 -71
  234. akshare/index/index_investing.py +0 -232
  235. akshare/sport/sport_olympic_winter.py +0 -39
  236. akshare/stock_feature/stock_board_concept_ths.py +0 -422
  237. akshare/stock_fundamental/stock_register.py +0 -292
  238. akshare-1.12.95.dist-info/RECORD +0 -374
  239. {akshare-1.12.95.dist-info → akshare-1.15.72.dist-info}/LICENSE +0 -0
  240. {akshare-1.12.95.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)