akshare 1.17.67__tar.gz → 1.17.69__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.

Potentially problematic release.


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

Files changed (414) hide show
  1. {akshare-1.17.67 → akshare-1.17.69}/PKG-INFO +1 -1
  2. {akshare-1.17.67 → akshare-1.17.69}/akshare/__init__.py +10 -7
  3. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_etf_sina.py +6 -5
  4. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_commodity.py +156 -169
  5. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_czce.py +5 -5
  6. {akshare-1.17.67 → akshare-1.17.69}/akshare.egg-info/PKG-INFO +1 -1
  7. {akshare-1.17.67 → akshare-1.17.69}/LICENSE +0 -0
  8. {akshare-1.17.67 → akshare-1.17.69}/README.md +0 -0
  9. {akshare-1.17.67 → akshare-1.17.69}/akshare/air/__init__.py +0 -0
  10. {akshare-1.17.67 → akshare-1.17.69}/akshare/air/air_hebei.py +0 -0
  11. {akshare-1.17.67 → akshare-1.17.69}/akshare/air/air_zhenqi.py +0 -0
  12. {akshare-1.17.67 → akshare-1.17.69}/akshare/air/cons.py +0 -0
  13. {akshare-1.17.67 → akshare-1.17.69}/akshare/air/crypto.js +0 -0
  14. {akshare-1.17.67 → akshare-1.17.69}/akshare/air/outcrypto.js +0 -0
  15. {akshare-1.17.67 → akshare-1.17.69}/akshare/air/sunrise_tad.py +0 -0
  16. {akshare-1.17.67 → akshare-1.17.69}/akshare/article/__init__.py +0 -0
  17. {akshare-1.17.67 → akshare-1.17.69}/akshare/article/cons.py +0 -0
  18. {akshare-1.17.67 → akshare-1.17.69}/akshare/article/epu_index.py +0 -0
  19. {akshare-1.17.67 → akshare-1.17.69}/akshare/article/ff_factor.py +0 -0
  20. {akshare-1.17.67 → akshare-1.17.69}/akshare/article/fred_md.py +0 -0
  21. {akshare-1.17.67 → akshare-1.17.69}/akshare/article/risk_rv.py +0 -0
  22. {akshare-1.17.67 → akshare-1.17.69}/akshare/bank/__init__.py +0 -0
  23. {akshare-1.17.67 → akshare-1.17.69}/akshare/bank/bank_cbirc_2020.py +0 -0
  24. {akshare-1.17.67 → akshare-1.17.69}/akshare/bank/cons.py +0 -0
  25. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/__init__.py +0 -0
  26. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_buy_back_em.py +0 -0
  27. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_cb_sina.py +0 -0
  28. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_cb_ths.py +0 -0
  29. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_cbond.py +0 -0
  30. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_china.py +0 -0
  31. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_china_money.py +0 -0
  32. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_convert.py +0 -0
  33. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_em.py +0 -0
  34. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_info_cm.py +0 -0
  35. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_issue_cninfo.py +0 -0
  36. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_nafmii.py +0 -0
  37. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_summary.py +0 -0
  38. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_zh_cov.py +0 -0
  39. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/bond_zh_sina.py +0 -0
  40. {akshare-1.17.67 → akshare-1.17.69}/akshare/bond/cons.py +0 -0
  41. {akshare-1.17.67 → akshare-1.17.69}/akshare/cal/__init__.py +0 -0
  42. {akshare-1.17.67 → akshare-1.17.69}/akshare/cal/rv.py +0 -0
  43. {akshare-1.17.67 → akshare-1.17.69}/akshare/cost/__init__.py +0 -0
  44. {akshare-1.17.67 → akshare-1.17.69}/akshare/cost/cost_living.py +0 -0
  45. {akshare-1.17.67 → akshare-1.17.69}/akshare/crypto/__init__.py +0 -0
  46. {akshare-1.17.67 → akshare-1.17.69}/akshare/crypto/crypto_bitcoin_cme.py +0 -0
  47. {akshare-1.17.67 → akshare-1.17.69}/akshare/crypto/crypto_hold.py +0 -0
  48. {akshare-1.17.67 → akshare-1.17.69}/akshare/currency/__init__.py +0 -0
  49. {akshare-1.17.67 → akshare-1.17.69}/akshare/currency/currency.py +0 -0
  50. {akshare-1.17.67 → akshare-1.17.69}/akshare/currency/currency_china_bank_sina.py +0 -0
  51. {akshare-1.17.67 → akshare-1.17.69}/akshare/currency/currency_safe.py +0 -0
  52. {akshare-1.17.67 → akshare-1.17.69}/akshare/data/__init__.py +0 -0
  53. {akshare-1.17.67 → akshare-1.17.69}/akshare/data/cninfo.js +0 -0
  54. {akshare-1.17.67 → akshare-1.17.69}/akshare/data/crypto_info.zip +0 -0
  55. {akshare-1.17.67 → akshare-1.17.69}/akshare/data/ths.js +0 -0
  56. {akshare-1.17.67 → akshare-1.17.69}/akshare/datasets.py +0 -0
  57. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/__init__.py +0 -0
  58. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/cons.py +0 -0
  59. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_australia.py +0 -0
  60. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_bank.py +0 -0
  61. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_canada.py +0 -0
  62. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_china.py +0 -0
  63. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_china_hk.py +0 -0
  64. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_china_nbs.py +0 -0
  65. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_constitute.py +0 -0
  66. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_euro.py +0 -0
  67. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_finance_ths.py +0 -0
  68. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_germany.py +0 -0
  69. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_info_ws.py +0 -0
  70. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_japan.py +0 -0
  71. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_other.py +0 -0
  72. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_swiss.py +0 -0
  73. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_uk.py +0 -0
  74. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/macro_usa.py +0 -0
  75. {akshare-1.17.67 → akshare-1.17.69}/akshare/economic/marco_cnbs.py +0 -0
  76. {akshare-1.17.67 → akshare-1.17.69}/akshare/energy/__init__.py +0 -0
  77. {akshare-1.17.67 → akshare-1.17.69}/akshare/energy/energy_carbon.py +0 -0
  78. {akshare-1.17.67 → akshare-1.17.69}/akshare/energy/energy_oil_em.py +0 -0
  79. {akshare-1.17.67 → akshare-1.17.69}/akshare/event/__init__.py +0 -0
  80. {akshare-1.17.67 → akshare-1.17.69}/akshare/event/cons.py +0 -0
  81. {akshare-1.17.67 → akshare-1.17.69}/akshare/event/migration.py +0 -0
  82. {akshare-1.17.67 → akshare-1.17.69}/akshare/exceptions.py +0 -0
  83. {akshare-1.17.67 → akshare-1.17.69}/akshare/file_fold/__init__.py +0 -0
  84. {akshare-1.17.67 → akshare-1.17.69}/akshare/file_fold/calendar.json +0 -0
  85. {akshare-1.17.67 → akshare-1.17.69}/akshare/forex/__init__.py +0 -0
  86. {akshare-1.17.67 → akshare-1.17.69}/akshare/forex/cons.py +0 -0
  87. {akshare-1.17.67 → akshare-1.17.69}/akshare/forex/forex_em.py +0 -0
  88. {akshare-1.17.67 → akshare-1.17.69}/akshare/fortune/__init__.py +0 -0
  89. {akshare-1.17.67 → akshare-1.17.69}/akshare/fortune/fortune_500.py +0 -0
  90. {akshare-1.17.67 → akshare-1.17.69}/akshare/fortune/fortune_bloomberg.py +0 -0
  91. {akshare-1.17.67 → akshare-1.17.69}/akshare/fortune/fortune_forbes_500.py +0 -0
  92. {akshare-1.17.67 → akshare-1.17.69}/akshare/fortune/fortune_hurun.py +0 -0
  93. {akshare-1.17.67 → akshare-1.17.69}/akshare/fortune/fortune_xincaifu_500.py +0 -0
  94. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/__init__.py +0 -0
  95. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_amac.py +0 -0
  96. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_announcement_em.py +0 -0
  97. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_aum_em.py +0 -0
  98. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_em.py +0 -0
  99. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_etf_em.py +0 -0
  100. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_etf_ths.py +0 -0
  101. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_fee_em.py +0 -0
  102. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_fhsp_em.py +0 -0
  103. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_init_em.py +0 -0
  104. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_lof_em.py +0 -0
  105. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_manager.py +0 -0
  106. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_overview_em.py +0 -0
  107. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_portfolio_em.py +0 -0
  108. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_position_lg.py +0 -0
  109. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_rank_em.py +0 -0
  110. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_rating.py +0 -0
  111. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_report_cninfo.py +0 -0
  112. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_scale_em.py +0 -0
  113. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_scale_sina.py +0 -0
  114. {akshare-1.17.67 → akshare-1.17.69}/akshare/fund/fund_xq.py +0 -0
  115. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/__init__.py +0 -0
  116. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/cons.py +0 -0
  117. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/cot.py +0 -0
  118. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_basis.py +0 -0
  119. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_comex_em.py +0 -0
  120. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_comm_ctp.py +0 -0
  121. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_comm_qihuo.py +0 -0
  122. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_contract_detail.py +0 -0
  123. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_daily_bar.py +0 -0
  124. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_foreign.py +0 -0
  125. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_hf_em.py +0 -0
  126. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_hist_em.py +0 -0
  127. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_hq_sina.py +0 -0
  128. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_index_ccidx.py +0 -0
  129. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_inventory_99.py +0 -0
  130. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_inventory_em.py +0 -0
  131. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_news_shmet.py +0 -0
  132. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_roll_yield.py +0 -0
  133. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_rule.py +0 -0
  134. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_rule_em.py +0 -0
  135. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_settlement_price_sgx.py +0 -0
  136. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_spot_stock_em.py +0 -0
  137. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_stock_js.py +0 -0
  138. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_to_spot.py +0 -0
  139. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_warehouse_receipt.py +0 -0
  140. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/futures_zh_sina.py +0 -0
  141. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/receipt.py +0 -0
  142. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/requests_fun.py +0 -0
  143. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures/symbol_var.py +0 -0
  144. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/__init__.py +0 -0
  145. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/cons.py +0 -0
  146. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/futures_contract_info_cffex.py +0 -0
  147. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/futures_contract_info_czce.py +0 -0
  148. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/futures_contract_info_dce.py +0 -0
  149. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/futures_contract_info_gfex.py +0 -0
  150. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/futures_contract_info_ine.py +0 -0
  151. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/futures_contract_info_shfe.py +0 -0
  152. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/futures_cot_sina.py +0 -0
  153. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/futures_hog.py +0 -0
  154. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/futures_index_sina.py +0 -0
  155. {akshare-1.17.67 → akshare-1.17.69}/akshare/futures_derivative/futures_spot_sys.py +0 -0
  156. {akshare-1.17.67 → akshare-1.17.69}/akshare/fx/__init__.py +0 -0
  157. {akshare-1.17.67 → akshare-1.17.69}/akshare/fx/cons.py +0 -0
  158. {akshare-1.17.67 → akshare-1.17.69}/akshare/fx/currency_investing.py +0 -0
  159. {akshare-1.17.67 → akshare-1.17.69}/akshare/fx/fx_c_swap_cm.py +0 -0
  160. {akshare-1.17.67 → akshare-1.17.69}/akshare/fx/fx_quote.py +0 -0
  161. {akshare-1.17.67 → akshare-1.17.69}/akshare/fx/fx_quote_baidu.py +0 -0
  162. {akshare-1.17.67 → akshare-1.17.69}/akshare/hf/__init__.py +0 -0
  163. {akshare-1.17.67 → akshare-1.17.69}/akshare/hf/hf_sp500.py +0 -0
  164. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/__init__.py +0 -0
  165. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/cons.py +0 -0
  166. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_cflp.py +0 -0
  167. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_cni.py +0 -0
  168. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_cons.py +0 -0
  169. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_csindex.py +0 -0
  170. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_cx.py +0 -0
  171. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_drewry.py +0 -0
  172. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_eri.py +0 -0
  173. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_global_em.py +0 -0
  174. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_global_sina.py +0 -0
  175. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_hog.py +0 -0
  176. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_kq_fz.py +0 -0
  177. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_kq_ss.py +0 -0
  178. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_option_qvix.py +0 -0
  179. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_research_fund_sw.py +0 -0
  180. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_research_sw.py +0 -0
  181. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_spot.py +0 -0
  182. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_stock_hk.py +0 -0
  183. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_stock_us_sina.py +0 -0
  184. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_stock_zh.py +0 -0
  185. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_stock_zh_csindex.py +0 -0
  186. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_sugar.py +0 -0
  187. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_sw.py +0 -0
  188. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_yw.py +0 -0
  189. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_zh_a_scope.py +0 -0
  190. {akshare-1.17.67 → akshare-1.17.69}/akshare/index/index_zh_em.py +0 -0
  191. {akshare-1.17.67 → akshare-1.17.69}/akshare/interest_rate/__init__.py +0 -0
  192. {akshare-1.17.67 → akshare-1.17.69}/akshare/interest_rate/interbank_rate_em.py +0 -0
  193. {akshare-1.17.67 → akshare-1.17.69}/akshare/movie/__init__.py +0 -0
  194. {akshare-1.17.67 → akshare-1.17.69}/akshare/movie/artist_yien.py +0 -0
  195. {akshare-1.17.67 → akshare-1.17.69}/akshare/movie/jm.js +0 -0
  196. {akshare-1.17.67 → akshare-1.17.69}/akshare/movie/movie_yien.py +0 -0
  197. {akshare-1.17.67 → akshare-1.17.69}/akshare/movie/video_yien.py +0 -0
  198. {akshare-1.17.67 → akshare-1.17.69}/akshare/news/__init__.py +0 -0
  199. {akshare-1.17.67 → akshare-1.17.69}/akshare/news/news_baidu.py +0 -0
  200. {akshare-1.17.67 → akshare-1.17.69}/akshare/news/news_cctv.py +0 -0
  201. {akshare-1.17.67 → akshare-1.17.69}/akshare/news/news_stock.py +0 -0
  202. {akshare-1.17.67 → akshare-1.17.69}/akshare/nlp/__init__.py +0 -0
  203. {akshare-1.17.67 → akshare-1.17.69}/akshare/nlp/nlp_interface.py +0 -0
  204. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/__init__.py +0 -0
  205. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/cons.py +0 -0
  206. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_comm_qihuo.py +0 -0
  207. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_commodity_sina.py +0 -0
  208. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_current_sse.py +0 -0
  209. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_current_szse.py +0 -0
  210. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_daily_stats_sse_szse.py +0 -0
  211. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_em.py +0 -0
  212. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_finance.py +0 -0
  213. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_finance_sina.py +0 -0
  214. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_lhb_em.py +0 -0
  215. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_margin.py +0 -0
  216. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_premium_analysis_em.py +0 -0
  217. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_risk_analysis_em.py +0 -0
  218. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_risk_indicator_sse.py +0 -0
  219. {akshare-1.17.67 → akshare-1.17.69}/akshare/option/option_value_analysis_em.py +0 -0
  220. {akshare-1.17.67 → akshare-1.17.69}/akshare/other/__init__.py +0 -0
  221. {akshare-1.17.67 → akshare-1.17.69}/akshare/other/other_car_cpca.py +0 -0
  222. {akshare-1.17.67 → akshare-1.17.69}/akshare/other/other_car_gasgoo.py +0 -0
  223. {akshare-1.17.67 → akshare-1.17.69}/akshare/pro/__init__.py +0 -0
  224. {akshare-1.17.67 → akshare-1.17.69}/akshare/pro/client.py +0 -0
  225. {akshare-1.17.67 → akshare-1.17.69}/akshare/pro/cons.py +0 -0
  226. {akshare-1.17.67 → akshare-1.17.69}/akshare/pro/data_pro.py +0 -0
  227. {akshare-1.17.67 → akshare-1.17.69}/akshare/qdii/__init__.py +0 -0
  228. {akshare-1.17.67 → akshare-1.17.69}/akshare/qdii/qdii_jsl.py +0 -0
  229. {akshare-1.17.67 → akshare-1.17.69}/akshare/qhkc/__init__.py +0 -0
  230. {akshare-1.17.67 → akshare-1.17.69}/akshare/qhkc/qhkc_api.py +0 -0
  231. {akshare-1.17.67 → akshare-1.17.69}/akshare/qhkc_web/__init__.py +0 -0
  232. {akshare-1.17.67 → akshare-1.17.69}/akshare/qhkc_web/qhkc_fund.py +0 -0
  233. {akshare-1.17.67 → akshare-1.17.69}/akshare/qhkc_web/qhkc_index.py +0 -0
  234. {akshare-1.17.67 → akshare-1.17.69}/akshare/qhkc_web/qhkc_tool.py +0 -0
  235. {akshare-1.17.67 → akshare-1.17.69}/akshare/rate/__init__.py +0 -0
  236. {akshare-1.17.67 → akshare-1.17.69}/akshare/rate/repo_rate.py +0 -0
  237. {akshare-1.17.67 → akshare-1.17.69}/akshare/reits/__init__.py +0 -0
  238. {akshare-1.17.67 → akshare-1.17.69}/akshare/reits/reits_basic.py +0 -0
  239. {akshare-1.17.67 → akshare-1.17.69}/akshare/request.py +0 -0
  240. {akshare-1.17.67 → akshare-1.17.69}/akshare/spot/__init__.py +0 -0
  241. {akshare-1.17.67 → akshare-1.17.69}/akshare/spot/spot_hog_soozhu.py +0 -0
  242. {akshare-1.17.67 → akshare-1.17.69}/akshare/spot/spot_price_qh.py +0 -0
  243. {akshare-1.17.67 → akshare-1.17.69}/akshare/spot/spot_sge.py +0 -0
  244. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/__init__.py +0 -0
  245. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/cons.py +0 -0
  246. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_allotment_cninfo.py +0 -0
  247. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_ask_bid_em.py +0 -0
  248. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_board_concept_em.py +0 -0
  249. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_board_industry_em.py +0 -0
  250. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_cg_equity_mortgage.py +0 -0
  251. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_cg_guarantee.py +0 -0
  252. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_cg_lawsuit.py +0 -0
  253. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_dividend_cninfo.py +0 -0
  254. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_dzjy_em.py +0 -0
  255. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_fund_em.py +0 -0
  256. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_fund_hold.py +0 -0
  257. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_gsrl_em.py +0 -0
  258. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hk_comparison_em.py +0 -0
  259. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hk_famous.py +0 -0
  260. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hk_fhpx_ths.py +0 -0
  261. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hk_hot_rank_em.py +0 -0
  262. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hk_sina.py +0 -0
  263. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hold_control_cninfo.py +0 -0
  264. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hold_control_em.py +0 -0
  265. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hold_num_cninfo.py +0 -0
  266. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hot_rank_em.py +0 -0
  267. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hot_search_baidu.py +0 -0
  268. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hot_up_em.py +0 -0
  269. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_hsgt_em.py +0 -0
  270. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_industry.py +0 -0
  271. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_industry_cninfo.py +0 -0
  272. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_industry_pe_cninfo.py +0 -0
  273. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_industry_sw.py +0 -0
  274. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_info.py +0 -0
  275. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_info_em.py +0 -0
  276. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_intraday_em.py +0 -0
  277. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_intraday_sina.py +0 -0
  278. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_ipo_summary_cninfo.py +0 -0
  279. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_new_cninfo.py +0 -0
  280. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_news_cx.py +0 -0
  281. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_profile_cninfo.py +0 -0
  282. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_profile_em.py +0 -0
  283. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_rank_forecast.py +0 -0
  284. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_repurchase_em.py +0 -0
  285. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_share_changes_cninfo.py +0 -0
  286. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_share_hold.py +0 -0
  287. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_stop.py +0 -0
  288. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_summary.py +0 -0
  289. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_us_famous.py +0 -0
  290. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_us_js.py +0 -0
  291. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_us_pink.py +0 -0
  292. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_us_sina.py +0 -0
  293. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_weibo_nlp.py +0 -0
  294. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_xq.py +0 -0
  295. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_zh_a_sina.py +0 -0
  296. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_zh_a_special.py +0 -0
  297. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_zh_a_tick_tx.py +0 -0
  298. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_zh_ah_tx.py +0 -0
  299. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_zh_b_sina.py +0 -0
  300. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_zh_comparison_em.py +0 -0
  301. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_zh_kcb_report.py +0 -0
  302. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock/stock_zh_kcb_sina.py +0 -0
  303. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_a/__init__.py +0 -0
  304. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_a/stock_board_concept_name_em.py +0 -0
  305. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_a/stock_individual_fund_flow_rank.py +0 -0
  306. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_a/stock_zh_a_spot.py +0 -0
  307. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/__init__.py +0 -0
  308. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/cons.py +0 -0
  309. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_a_below_net_asset_statistics.py +0 -0
  310. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_a_high_low.py +0 -0
  311. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_a_indicator.py +0 -0
  312. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_a_pe_and_pb.py +0 -0
  313. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_account_em.py +0 -0
  314. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_all_pb.py +0 -0
  315. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_analyst_em.py +0 -0
  316. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_board_concept_ths.py +0 -0
  317. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_board_industry_ths.py +0 -0
  318. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_buffett_index_lg.py +0 -0
  319. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_classify_sina.py +0 -0
  320. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_comment_em.py +0 -0
  321. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_concept_futu.py +0 -0
  322. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_congestion_lg.py +0 -0
  323. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_cyq_em.py +0 -0
  324. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_disclosure_cninfo.py +0 -0
  325. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_dxsyl_em.py +0 -0
  326. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_ebs_lg.py +0 -0
  327. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_esg_sina.py +0 -0
  328. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_fhps_em.py +0 -0
  329. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_fhps_ths.py +0 -0
  330. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_fund_flow.py +0 -0
  331. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_gddh_em.py +0 -0
  332. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_gdfx_em.py +0 -0
  333. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_gdhs.py +0 -0
  334. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_gdzjc_em.py +0 -0
  335. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_gpzy_em.py +0 -0
  336. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_gxl_lg.py +0 -0
  337. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_hist_em.py +0 -0
  338. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_hist_tx.py +0 -0
  339. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_hk_valuation_baidu.py +0 -0
  340. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_hot_xq.py +0 -0
  341. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_hsgt_em.py +0 -0
  342. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_hsgt_exchange_rate.py +0 -0
  343. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_hsgt_min_em.py +0 -0
  344. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_info.py +0 -0
  345. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_inner_trade_xq.py +0 -0
  346. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_irm_cninfo.py +0 -0
  347. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_jgdy_em.py +0 -0
  348. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_lh_yybpm.py +0 -0
  349. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_lhb_em.py +0 -0
  350. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_lhb_sina.py +0 -0
  351. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_margin_em.py +0 -0
  352. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_margin_sse.py +0 -0
  353. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_margin_szse.py +0 -0
  354. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_market_legu.py +0 -0
  355. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_pankou_em.py +0 -0
  356. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_qsjy_em.py +0 -0
  357. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_report_em.py +0 -0
  358. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_research_report_em.py +0 -0
  359. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_sns_sseinfo.py +0 -0
  360. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_sy_em.py +0 -0
  361. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_technology_ths.py +0 -0
  362. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_tfp_em.py +0 -0
  363. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_three_report_em.py +0 -0
  364. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_ttm_lyr.py +0 -0
  365. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_value_em.py +0 -0
  366. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_yjbb_em.py +0 -0
  367. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_yjyg_cninfo.py +0 -0
  368. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_yjyg_em.py +0 -0
  369. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_yzxdr_em.py +0 -0
  370. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_zdhtmx_em.py +0 -0
  371. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_zf_pg.py +0 -0
  372. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_zh_valuation_baidu.py +0 -0
  373. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_zh_vote_baidu.py +0 -0
  374. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/stock_ztb_em.py +0 -0
  375. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_feature/ths.js +0 -0
  376. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/__init__.py +0 -0
  377. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_basic_info_xq.py +0 -0
  378. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_finance_hk_em.py +0 -0
  379. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_finance_sina.py +0 -0
  380. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_finance_ths.py +0 -0
  381. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_finance_us_em.py +0 -0
  382. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_gbjg_em.py +0 -0
  383. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_hold.py +0 -0
  384. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_ipo_declare.py +0 -0
  385. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_kcb_detail_sse.py +0 -0
  386. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_kcb_sse.py +0 -0
  387. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_notice.py +0 -0
  388. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_profit_forecast_em.py +0 -0
  389. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +0 -0
  390. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_profit_forecast_ths.py +0 -0
  391. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_recommend.py +0 -0
  392. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_register_em.py +0 -0
  393. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_restricted_em.py +0 -0
  394. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_zygc.py +0 -0
  395. {akshare-1.17.67 → akshare-1.17.69}/akshare/stock_fundamental/stock_zyjs_ths.py +0 -0
  396. {akshare-1.17.67 → akshare-1.17.69}/akshare/tool/__init__.py +0 -0
  397. {akshare-1.17.67 → akshare-1.17.69}/akshare/tool/trade_date_hist.py +0 -0
  398. {akshare-1.17.67 → akshare-1.17.69}/akshare/utils/__init__.py +0 -0
  399. {akshare-1.17.67 → akshare-1.17.69}/akshare/utils/cons.py +0 -0
  400. {akshare-1.17.67 → akshare-1.17.69}/akshare/utils/context.py +0 -0
  401. {akshare-1.17.67 → akshare-1.17.69}/akshare/utils/demjson.py +0 -0
  402. {akshare-1.17.67 → akshare-1.17.69}/akshare/utils/func.py +0 -0
  403. {akshare-1.17.67 → akshare-1.17.69}/akshare/utils/multi_decrypt.py +0 -0
  404. {akshare-1.17.67 → akshare-1.17.69}/akshare/utils/token_process.py +0 -0
  405. {akshare-1.17.67 → akshare-1.17.69}/akshare/utils/tqdm.py +0 -0
  406. {akshare-1.17.67 → akshare-1.17.69}/akshare.egg-info/SOURCES.txt +0 -0
  407. {akshare-1.17.67 → akshare-1.17.69}/akshare.egg-info/dependency_links.txt +0 -0
  408. {akshare-1.17.67 → akshare-1.17.69}/akshare.egg-info/requires.txt +0 -0
  409. {akshare-1.17.67 → akshare-1.17.69}/akshare.egg-info/top_level.txt +0 -0
  410. {akshare-1.17.67 → akshare-1.17.69}/pyproject.toml +0 -0
  411. {akshare-1.17.67 → akshare-1.17.69}/setup.cfg +0 -0
  412. {akshare-1.17.67 → akshare-1.17.69}/setup.py +0 -0
  413. {akshare-1.17.67 → akshare-1.17.69}/tests/__init__.py +0 -0
  414. {akshare-1.17.67 → akshare-1.17.69}/tests/test_func.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: akshare
3
- Version: 1.17.67
3
+ Version: 1.17.69
4
4
  Summary: AKShare is an elegant and simple financial data interface library for Python, built for human beings!
5
5
  Home-page: https://github.com/akfamily/akshare
6
6
  Author: AKFamily
@@ -3174,9 +3174,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
3174
3174
  1.17.65 fix: fix futures_dce_warehouse_receipt interface
3175
3175
  1.17.66 fix: fix futures_delivery_czce interface
3176
3176
  1.17.67 fix: fix stock_zh_a_hist_tx interface
3177
+ 1.17.68 fix: fix option_hist_dce interface
3178
+ 1.17.69 fix: fix fund_etf_hist_sina interface
3177
3179
  """
3178
3180
 
3179
- __version__ = "1.17.67"
3181
+ __version__ = "1.17.69"
3180
3182
  __author__ = "AKFamily"
3181
3183
 
3182
3184
  import sys
@@ -5173,7 +5175,7 @@ from akshare.fx.currency_investing import (
5173
5175
  """
5174
5176
  商品期权-郑州商品交易所-期权-历史数据
5175
5177
  """
5176
- from akshare.option.option_czce import option_czce_hist
5178
+ from akshare.option.option_czce import option_hist_yearly_czce
5177
5179
 
5178
5180
  """
5179
5181
  宏观-经济数据-银行间拆借利率
@@ -5647,11 +5649,12 @@ from akshare.bond.bond_china import (
5647
5649
  商品期权
5648
5650
  """
5649
5651
  from akshare.option.option_commodity import (
5650
- option_dce_daily,
5651
- option_czce_daily,
5652
- option_shfe_daily,
5653
- option_gfex_vol_daily,
5654
- option_gfex_daily,
5652
+ option_hist_dce,
5653
+ option_hist_czce,
5654
+ option_hist_shfe,
5655
+ option_vol_gfex,
5656
+ option_hist_gfex,
5657
+ option_vol_shfe,
5655
5658
  )
5656
5659
 
5657
5660
  """
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2025/1/5 19:00
4
+ Date: 2025/10/18 19:00
5
5
  Desc: 新浪财经-基金行情
6
6
  https://vip.stock.finance.sina.com.cn/fund_center/index.html#jjhqetf
7
7
  """
@@ -42,7 +42,7 @@ def fund_etf_category_sina(symbol: str = "LOF基金") -> pd.DataFrame:
42
42
  }
43
43
  r = requests.get(url, params=params)
44
44
  data_text = r.text
45
- data_json = demjson.decode(data_text[data_text.find("([") + 1 : -2])
45
+ data_json = demjson.decode(data_text[data_text.find("([") + 1: -2])
46
46
  temp_df = pd.DataFrame(data_json)
47
47
  if symbol == "封闭式基金":
48
48
  temp_df.columns = [
@@ -180,6 +180,10 @@ def fund_etf_dividend_sina(symbol: str = "sh510050") -> pd.DataFrame:
180
180
  temp_df.columns = ["日期", "累计分红"]
181
181
  temp_df["日期"] = pd.to_datetime(temp_df["日期"], errors="coerce").dt.date
182
182
  return temp_df
183
+ else:
184
+ return pd.DataFrame()
185
+ else:
186
+ return pd.DataFrame()
183
187
 
184
188
 
185
189
  if __name__ == "__main__":
@@ -195,8 +199,5 @@ if __name__ == "__main__":
195
199
  fund_etf_hist_sina_df = fund_etf_hist_sina(symbol="sh510050")
196
200
  print(fund_etf_hist_sina_df)
197
201
 
198
- fund_etf_hist_sina_df = fund_etf_hist_sina(symbol="sh510300")
199
- print(fund_etf_hist_sina_df)
200
-
201
202
  fund_etf_dividend_sina_df = fund_etf_dividend_sina(symbol="sh510050")
202
203
  print(fund_etf_dividend_sina_df)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2025/1/24 23:00
4
+ Date: 2025/10/17 21:00
5
5
  Desc: 商品期权数据
6
6
  说明:
7
7
  (1) 价格:自2019年12月02日起,纤维板报价单位由元/张改为元/立方米
@@ -16,8 +16,7 @@ Desc: 商品期权数据
16
16
 
17
17
  import datetime
18
18
  import warnings
19
- from io import StringIO, BytesIO
20
- from typing import Tuple, Any, Optional
19
+ from io import StringIO
21
20
 
22
21
  import pandas as pd
23
22
  import requests
@@ -25,15 +24,14 @@ import requests
25
24
  from akshare.option.cons import (
26
25
  get_calendar,
27
26
  convert_date,
28
- DCE_DAILY_OPTION_URL,
29
27
  CZCE_DAILY_OPTION_URL_3,
30
28
  SHFE_HEADERS,
31
29
  )
32
30
 
33
31
 
34
- def option_dce_daily(
35
- symbol: str = "聚乙烯期权", trade_date: str = "20210728"
36
- ) -> Optional[Tuple[Any, Any]]:
32
+ def option_hist_dce(
33
+ symbol: str = "聚丙烯期权", trade_date: str = "20251016"
34
+ ) -> pd.DataFrame:
37
35
  """
38
36
  大连商品交易所-期权-日频行情数据
39
37
  http://www.dce.com.cn/
@@ -46,125 +44,103 @@ def option_dce_daily(
46
44
  :return: 日频行情数据
47
45
  :rtype: pandas.DataFrame
48
46
  """
47
+ option_code_map = {
48
+ "玉米期权": "c",
49
+ "豆粕期权": "m",
50
+ "铁矿石期权": "i",
51
+ "液化石油气期权": "pg",
52
+ "聚乙烯期权": "l",
53
+ "聚氯乙烯期权": "v",
54
+ "聚丙烯期权": "pp",
55
+ "棕榈油期权": "p",
56
+ "黄大豆1号期权": "a",
57
+ "黄大豆2号期权": "b",
58
+ "豆油期权": "y",
59
+ "乙二醇期权": "eg",
60
+ "苯乙烯期权": "eb",
61
+ "鸡蛋期权": "jd",
62
+ "玉米淀粉期权": "cs",
63
+ "生猪期权": "lh",
64
+ "原木期权": "lg"
65
+ }
49
66
  calendar = get_calendar()
50
67
  day = convert_date(trade_date) if trade_date is not None else datetime.date.today()
51
68
  if day.strftime("%Y%m%d") not in calendar:
52
69
  warnings.warn("%s非交易日" % day.strftime("%Y%m%d"))
53
- return pd.DataFrame(), pd.DataFrame()
54
- url = DCE_DAILY_OPTION_URL
70
+ return pd.DataFrame()
71
+ url = "http://www.dce.com.cn/dcereport/publicweb/dailystat/dayQuotes"
55
72
  payload = {
56
- "dayQuotes.variety": "all",
57
- "dayQuotes.trade_type": "1",
58
- "year": str(day.year),
59
- "month": str(day.month - 1),
60
- "day": str(day.day),
61
- "exportFlag": "excel",
73
+ "contractId": "",
74
+ "lang": "zh",
75
+ "optionSeries": "",
76
+ "statisticsType": 0,
77
+ "tradeDate": f"{trade_date}",
78
+ "tradeType": "2",
79
+ "varietyId": f"{option_code_map[symbol]}",
62
80
  }
63
- res = requests.post(url, data=payload)
64
- table_df = pd.read_excel(BytesIO(res.content), header=1)
65
- # 从合约名称中提取合约系列, 例如: "c2001-C-1680" -> "c2001". 然后去重, 保留隐含波动率.
66
- another_df = table_df["合约名称"].str.extract(r"([a-zA-Z]+[0-9]+)")
67
- another_df.columns = ["合约系列"]
68
- another_df["隐含波动率(%)"] = table_df["隐含波动率(%)"]
69
- another_df.dropna(inplace=True)
70
- another_df.drop_duplicates(subset="合约系列", inplace=True)
71
-
72
- result_one_df = pd.DataFrame()
73
- result_two_df = pd.DataFrame()
74
- if symbol == "豆粕期权":
75
- result_one_df, result_two_df = (
76
- table_df[table_df["商品名称"] == "豆粕"],
77
- another_df[another_df.iloc[:, 0].str.contains("m")],
78
- )
79
- elif symbol == "玉米期权":
80
- result_one_df, result_two_df = (
81
- table_df[table_df["商品名称"] == "玉米"],
82
- another_df[another_df.iloc[:, 0].str.contains(r"^c\d")],
83
- )
84
- elif symbol == "铁矿石期权":
85
- result_one_df, result_two_df = (
86
- table_df[table_df["商品名称"] == "铁矿石"],
87
- another_df[another_df.iloc[:, 0].str.contains("i")],
88
- )
89
- elif symbol == "液化石油气期权":
90
- result_one_df, result_two_df = (
91
- table_df[table_df["商品名称"] == "液化石油气"],
92
- another_df[another_df.iloc[:, 0].str.contains("pg")],
93
- )
94
- elif symbol == "聚乙烯期权":
95
- result_one_df, result_two_df = (
96
- table_df[table_df["商品名称"] == "聚乙烯"],
97
- another_df[another_df.iloc[:, 0].str.contains(r"^l\d")],
98
- )
99
- elif symbol == "聚氯乙烯期权":
100
- result_one_df, result_two_df = (
101
- table_df[table_df["商品名称"] == "聚氯乙烯"],
102
- another_df[another_df.iloc[:, 0].str.contains("v")],
103
- )
104
- elif symbol == "聚丙烯期权":
105
- result_one_df, result_two_df = (
106
- table_df[table_df["商品名称"] == "聚丙烯"],
107
- another_df[another_df.iloc[:, 0].str.contains("pp")],
108
- )
109
- elif symbol == "棕榈油期权":
110
- result_one_df, result_two_df = (
111
- table_df[table_df["商品名称"] == "棕榈油"],
112
- another_df[another_df.iloc[:, 0].str.contains(r"^p\d")],
113
- )
114
- elif symbol == "黄大豆1号期权":
115
- result_one_df, result_two_df = (
116
- table_df[table_df["商品名称"] == "豆一"],
117
- another_df[another_df.iloc[:, 0].str.contains("a")],
118
- )
119
- elif symbol == "黄大豆2号期权":
120
- result_one_df, result_two_df = (
121
- table_df[table_df["商品名称"] == "豆二"],
122
- another_df[another_df.iloc[:, 0].str.contains(r"^b\d")],
123
- )
124
- elif symbol == "豆油期权":
125
- result_one_df, result_two_df = (
126
- table_df[table_df["商品名称"] == "豆油"],
127
- another_df[another_df.iloc[:, 0].str.contains("y")],
128
- )
129
- elif symbol == "乙二醇期权":
130
- result_one_df, result_two_df = (
131
- table_df[table_df["商品名称"] == "乙二醇"],
132
- another_df[another_df.iloc[:, 0].str.contains("eg")],
133
- )
134
- elif symbol == "苯乙烯期权":
135
- result_one_df, result_two_df = (
136
- table_df[table_df["商品名称"] == "苯乙烯"],
137
- another_df[another_df.iloc[:, 0].str.contains("eb")],
138
- )
139
- elif symbol == "鸡蛋期权":
140
- result_one_df, result_two_df = (
141
- table_df[table_df["商品名称"] == "鸡蛋"],
142
- another_df[another_df.iloc[:, 0].str.contains("jd")],
143
- )
144
- elif symbol == "玉米淀粉期权":
145
- result_one_df, result_two_df = (
146
- table_df[table_df["商品名称"] == "玉米淀粉"],
147
- another_df[another_df.iloc[:, 0].str.contains("cs")],
148
- )
149
- elif symbol == "生猪期权":
150
- result_one_df, result_two_df = (
151
- table_df[table_df["商品名称"] == "生猪"],
152
- another_df[another_df.iloc[:, 0].str.contains("lh")],
153
- )
154
- elif symbol == "原木期权":
155
- result_one_df, result_two_df = (
156
- table_df[table_df["商品名称"] == "原木"],
157
- another_df[another_df.iloc[:, 0].str.contains("lg")],
158
- )
159
- elif symbol == "纯苯期权":
160
- result_one_df, result_two_df = (
161
- table_df[table_df["商品名称"] == "纯苯"],
162
- another_df[another_df.iloc[:, 0].str.contains("bz")],
81
+ r = requests.post(url, json=payload)
82
+ data_json = r.json()
83
+ temp_df = pd.DataFrame(data_json["data"])
84
+ temp_df.rename(
85
+ columns={
86
+ 'variety': '品种名称',
87
+ 'contractId': '合约',
88
+ 'open': '开盘价',
89
+ 'high': '最高价',
90
+ 'low': '最低价',
91
+ 'close': '收盘价',
92
+ 'lastClear': '前结算价',
93
+ 'clearPrice': '结算价',
94
+ 'diff': '涨跌',
95
+ 'diff1': '涨跌1',
96
+ 'delta': 'Delta',
97
+ 'volumn': '成交量', # 注意:你写的是“volumn”,可能是拼写错误,应为“volume”
98
+ 'openInterest': '持仓量',
99
+ 'diffI': '持仓量变化',
100
+ 'turnover': '成交额',
101
+ 'matchQtySum': '行权量',
102
+ 'impliedVolatility': '隐含波动率(%)',
103
+ }, inplace=True
104
+ )
105
+ temp_df = temp_df[[
106
+ '品种名称',
107
+ '合约',
108
+ '开盘价',
109
+ '最高价',
110
+ '最低价',
111
+ '收盘价',
112
+ '前结算价',
113
+ '结算价',
114
+ '涨跌',
115
+ '涨跌1',
116
+ 'Delta',
117
+ '隐含波动率(%)',
118
+ '成交量',
119
+ '持仓量',
120
+ '持仓量变化',
121
+ '成交额',
122
+ '行权量'
123
+ ]]
124
+ comma_cols = ['开盘价',
125
+ '最高价',
126
+ '最低价',
127
+ '收盘价',
128
+ '前结算价',
129
+ '结算价',
130
+ '涨跌',
131
+ '涨跌1',
132
+ 'Delta',
133
+ '隐含波动率(%)',
134
+ '成交额',
135
+ ] # 需要处理的列
136
+ for col in comma_cols:
137
+ temp_df[col] = (
138
+ temp_df[col]
139
+ .astype(str)
140
+ .str.replace(',', '')
141
+ .pipe(pd.to_numeric, errors='coerce')
163
142
  )
164
- result_one_df.reset_index(inplace=True, drop=True)
165
- result_two_df.reset_index(inplace=True, drop=True)
166
- result_two_df.columns.name = None
167
- return result_one_df, result_two_df
143
+ return temp_df
168
144
 
169
145
 
170
146
  def __option_czce_daily_convert_numeric_columns(df):
@@ -204,7 +180,7 @@ def __option_czce_daily_convert_numeric_columns(df):
204
180
  return df_copy
205
181
 
206
182
 
207
- def option_czce_daily(
183
+ def option_hist_czce(
208
184
  symbol: str = "白糖期权", trade_date: str = "20191017"
209
185
  ) -> pd.DataFrame:
210
186
  """
@@ -382,9 +358,9 @@ def option_czce_daily(
382
358
  return pd.DataFrame()
383
359
 
384
360
 
385
- def option_shfe_daily(
361
+ def option_hist_shfe(
386
362
  symbol: str = "铝期权", trade_date: str = "20250418"
387
- ) -> Optional[Tuple[pd.DataFrame, pd.DataFrame]]:
363
+ ) -> pd.DataFrame:
388
364
  """
389
365
  上海期货交易所-期权-日频行情数据
390
366
  https://www.shfe.com.cn/reports/tradedata/dailyandweeklydata/
@@ -400,7 +376,7 @@ def option_shfe_daily(
400
376
  day = convert_date(trade_date) if trade_date is not None else datetime.date.today()
401
377
  if day.strftime("%Y%m%d") not in calendar:
402
378
  warnings.warn("%s非交易日" % day.strftime("%Y%m%d"))
403
- return pd.DataFrame(), pd.DataFrame()
379
+ return pd.DataFrame()
404
380
  if day > datetime.date(year=2010, month=8, day=24):
405
381
  url = f"""https://www.shfe.com.cn/data/tradedata/option/dailydata/kx{day.strftime("%Y%m%d")}.dat"""
406
382
  try:
@@ -411,14 +387,10 @@ def option_shfe_daily(
411
387
  row
412
388
  for row in json_data["o_curinstrument"]
413
389
  if row["INSTRUMENTID"] not in ["小计", "合计"]
414
- and row["INSTRUMENTID"] != ""
390
+ and row["INSTRUMENTID"] != ""
415
391
  ]
416
392
  )
417
393
  contract_df = table_df[table_df["PRODUCTNAME"].str.strip() == symbol]
418
- volatility_df = pd.DataFrame(json_data["o_cursigma"])
419
- volatility_df = volatility_df[
420
- volatility_df["PRODUCTNAME"].str.strip() == symbol
421
- ]
422
394
  contract_df.rename(
423
395
  columns={
424
396
  "INSTRUMENTID": "合约代码",
@@ -457,6 +429,42 @@ def option_shfe_daily(
457
429
  "行权量",
458
430
  ]
459
431
  ]
432
+ contract_df.reset_index(inplace=True, drop=True)
433
+ return contract_df
434
+ except: # noqa: E722
435
+ return pd.DataFrame()
436
+ else:
437
+ return pd.DataFrame()
438
+
439
+
440
+ def option_vol_shfe(
441
+ symbol: str = "铝期权", trade_date: str = "20250418"
442
+ ) -> pd.DataFrame:
443
+ """
444
+ 上海期货交易所-期权-日频行情数据
445
+ https://www.shfe.com.cn/reports/tradedata/dailyandweeklydata/
446
+ :param trade_date: 交易日
447
+ :type trade_date: str
448
+ :param symbol: choice of {'原油期权', '铜期权', '铝期权', '锌期权', '铅期权', '螺纹钢期权', '镍期权', '锡期权', '氧化铝期权',
449
+ '黄金期权', '白银期权', '丁二烯橡胶期权', '天胶期权'}
450
+ :type symbol: str
451
+ :return: 日频行情数据
452
+ :rtype: pandas.DataFrame
453
+ """
454
+ calendar = get_calendar()
455
+ day = convert_date(trade_date) if trade_date is not None else datetime.date.today()
456
+ if day.strftime("%Y%m%d") not in calendar:
457
+ warnings.warn("%s非交易日" % day.strftime("%Y%m%d"))
458
+ return pd.DataFrame()
459
+ if day > datetime.date(year=2010, month=8, day=24):
460
+ url = f"""https://www.shfe.com.cn/data/tradedata/option/dailydata/kx{day.strftime("%Y%m%d")}.dat"""
461
+ try:
462
+ r = requests.get(url, headers=SHFE_HEADERS)
463
+ json_data = r.json()
464
+ volatility_df = pd.DataFrame(json_data["o_cursigma"])
465
+ volatility_df = volatility_df[
466
+ volatility_df["PRODUCTNAME"].str.strip() == symbol
467
+ ]
460
468
  volatility_df.rename(columns={
461
469
  "INSTRUMENTID": "合约系列",
462
470
  "VOLUME": "成交量",
@@ -477,16 +485,15 @@ def option_shfe_daily(
477
485
  "隐含波动率",
478
486
  ]
479
487
  ]
480
- contract_df.reset_index(inplace=True, drop=True)
481
488
  volatility_df.reset_index(inplace=True, drop=True)
482
- return contract_df, volatility_df
489
+ return volatility_df
483
490
  except: # noqa: E722
484
- return pd.DataFrame(), pd.DataFrame()
491
+ return pd.DataFrame()
485
492
  else:
486
- return pd.DataFrame(), pd.DataFrame()
493
+ return pd.DataFrame()
487
494
 
488
495
 
489
- def option_gfex_daily(symbol: str = "工业硅", trade_date: str = "20230724"):
496
+ def option_hist_gfex(symbol: str = "工业硅", trade_date: str = "20230724") -> pd.DataFrame:
490
497
  """
491
498
  广州期货交易所-日频率-量价数据
492
499
  http://www.gfex.com.cn/gfex/rihq/hqsj_tjsj.shtml
@@ -501,7 +508,7 @@ def option_gfex_daily(symbol: str = "工业硅", trade_date: str = "20230724"):
501
508
  day = convert_date(trade_date) if trade_date is not None else datetime.date.today()
502
509
  if day.strftime("%Y%m%d") not in calendar:
503
510
  warnings.warn("%s非交易日" % day.strftime("%Y%m%d"))
504
- return
511
+ return pd.DataFrame()
505
512
  url = "http://www.gfex.com.cn/u/interfacesWebTiDayQuotes/loadList"
506
513
  payload = {"trade_date": day.strftime("%Y%m%d"), "trade_type": "1"}
507
514
  headers = {
@@ -517,7 +524,7 @@ def option_gfex_daily(symbol: str = "工业硅", trade_date: str = "20230724"):
517
524
  "Proxy-Connection": "keep-alive",
518
525
  "Referer": "http://www.gfex.com.cn/gfex/rihq/hqsj_tjsj.shtml",
519
526
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
520
- "Chrome/108.0.0.0 Safari/537.36",
527
+ "Chrome/108.0.0.0 Safari/537.36",
521
528
  "X-Requested-With": "XMLHttpRequest",
522
529
  "content-type": "application/x-www-form-urlencoded",
523
530
  }
@@ -573,7 +580,7 @@ def option_gfex_daily(symbol: str = "工业硅", trade_date: str = "20230724"):
573
580
  return temp_df
574
581
 
575
582
 
576
- def option_gfex_vol_daily(symbol: str = "碳酸锂", trade_date: str = "20230724"):
583
+ def option_vol_gfex(symbol: str = "碳酸锂", trade_date: str = "20230724"):
577
584
  """
578
585
  广州期货交易所-日频率-合约隐含波动率
579
586
  http://www.gfex.com.cn/gfex/rihq/hqsj_tjsj.shtml
@@ -609,7 +616,7 @@ def option_gfex_vol_daily(symbol: str = "碳酸锂", trade_date: str = "20230724
609
616
  "Proxy-Connection": "keep-alive",
610
617
  "Referer": "http://www.gfex.com.cn/gfex/rihq/hqsj_tjsj.shtml",
611
618
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
612
- "Chrome/108.0.0.0 Safari/537.36",
619
+ "Chrome/108.0.0.0 Safari/537.36",
613
620
  "X-Requested-With": "XMLHttpRequest",
614
621
  "content-type": "application/x-www-form-urlencoded",
615
622
  }
@@ -636,40 +643,20 @@ def option_gfex_vol_daily(symbol: str = "碳酸锂", trade_date: str = "20230724
636
643
 
637
644
 
638
645
  if __name__ == "__main__":
639
- option_czce_daily_df = option_czce_daily(symbol="丙烯期货", trade_date="20250812")
640
- print(option_czce_daily_df)
646
+ option_hist_czce_df = option_hist_czce(symbol="白糖期权", trade_date="20250812")
647
+ print(option_hist_czce_df)
641
648
 
642
- option_dce_daily_one, option_dce_daily_two = option_dce_daily(
643
- symbol="纯苯期权", trade_date="20250814"
644
- )
645
- print(option_dce_daily_one)
646
- print(option_dce_daily_two)
649
+ option_hist_dce_df = option_hist_dce(symbol="聚丙烯期权", trade_date="20250812")
650
+ print(option_hist_dce_df)
647
651
 
648
- option_dce_daily_one, option_dce_daily_two = option_dce_daily(
649
- symbol="苯乙烯期权", trade_date="20230516"
650
- )
651
- print(option_dce_daily_one)
652
- print(option_dce_daily_two)
652
+ option_hist_shfe_df = option_hist_shfe(symbol="天胶期权", trade_date="20250418")
653
+ print(option_hist_shfe_df)
653
654
 
654
- option_dce_daily_one, option_dce_daily_two = option_dce_daily(
655
- symbol="聚乙烯期权", trade_date="20250210"
656
- )
657
- print(option_dce_daily_one)
658
- print(option_dce_daily_two)
655
+ option_vol_shfe_df = option_vol_shfe(symbol="天胶期权", trade_date="20250418")
656
+ print(option_vol_shfe_df)
659
657
 
660
- option_shfe_daily_one, option_shfe_daily_two = option_shfe_daily(
661
- symbol="天胶期权", trade_date="20250418"
662
- )
663
- print(option_shfe_daily_one)
664
- print(option_shfe_daily_two)
665
-
666
- option_gfex_daily_df = option_gfex_daily(symbol="工业硅", trade_date="20250801")
667
- print(option_gfex_daily_df)
668
-
669
- option_gfex_vol_daily_df = option_gfex_vol_daily(
670
- symbol="多晶硅", trade_date="20250123"
671
- )
672
- print(option_gfex_vol_daily_df)
658
+ option_hist_gfex_df = option_hist_gfex(symbol="工业硅", trade_date="20250801")
659
+ print(option_hist_gfex_df)
673
660
 
674
- option_czce_daily_df = option_czce_daily(symbol="瓶片期权", trade_date="20250103")
675
- print(option_czce_daily_df)
661
+ option_vol_gfex_df = option_vol_gfex(symbol="多晶硅", trade_date="20250123")
662
+ print(option_vol_gfex_df)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2025/3/22 16:30
4
+ Date: 2025/10/17 16:30
5
5
  Desc: 郑州商品交易所-交易数据-历史行情下载-期权历史行情下载
6
6
  http://www.czce.com.cn/cn/jysj/lshqxz/H770319index_1.htm
7
7
  自 20200101 起,成交量、空盘量、成交额、行权量均为单边计算
@@ -27,14 +27,14 @@ http://www.czce.com.cn/cn/jysj/lshqxz/H770319index_1.htm
27
27
  "PR": "20241227"
28
28
  """
29
29
 
30
- from io import StringIO
31
30
  import warnings
31
+ from io import StringIO
32
32
 
33
33
  import pandas as pd
34
34
  import requests
35
35
 
36
36
 
37
- def option_czce_hist(symbol: str = "SR", year: str = "2021") -> pd.DataFrame:
37
+ def option_hist_yearly_czce(symbol: str = "SR", year: str = "2021") -> pd.DataFrame:
38
38
  """
39
39
  郑州商品交易所-交易数据-历史行情下载-期权历史行情下载
40
40
  http://www.czce.com.cn/cn/jysj/lshqxz/H770319index_1.htm
@@ -78,5 +78,5 @@ def option_czce_hist(symbol: str = "SR", year: str = "2021") -> pd.DataFrame:
78
78
 
79
79
 
80
80
  if __name__ == "__main__":
81
- option_czce_hist_df = option_czce_hist(symbol="RM", year="2025")
82
- print(option_czce_hist_df)
81
+ option_hist_yearly_czce_df = option_hist_yearly_czce(symbol="RM", year="2025")
82
+ print(option_hist_yearly_czce_df)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: akshare
3
- Version: 1.17.67
3
+ Version: 1.17.69
4
4
  Summary: AKShare is an elegant and simple financial data interface library for Python, built for human beings!
5
5
  Home-page: https://github.com/akfamily/akshare
6
6
  Author: AKFamily
File without changes
File without changes
File without changes