hikyuu 2.6.8.4__py3-none-manylinux2014_x86_64.whl → 2.6.9__py3-none-manylinux2014_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. hikyuu/__init__.py +5 -12
  2. hikyuu/__init__.pyi +612 -587
  3. hikyuu/analysis/__init__.pyi +589 -563
  4. hikyuu/analysis/analysis.pyi +590 -564
  5. hikyuu/core.py +2 -0
  6. hikyuu/core.pyi +591 -565
  7. hikyuu/cpp/__init__.pyi +2 -2
  8. hikyuu/cpp/core310.pyi +446 -13
  9. hikyuu/cpp/core310.so +0 -0
  10. hikyuu/cpp/core311.pyi +440 -13
  11. hikyuu/cpp/core311.so +0 -0
  12. hikyuu/cpp/core312.pyi +440 -13
  13. hikyuu/cpp/core312.so +0 -0
  14. hikyuu/cpp/core313.pyi +446 -13
  15. hikyuu/cpp/core313.so +0 -0
  16. hikyuu/cpp/i18n/zh_CN/hikyuu.mo +0 -0
  17. hikyuu/cpp/libboost_charconv-mt.so +0 -0
  18. hikyuu/cpp/libboost_charconv-mt.so.1.88.0 +0 -0
  19. hikyuu/cpp/libboost_chrono-mt.so +0 -0
  20. hikyuu/cpp/libboost_chrono-mt.so.1.88.0 +0 -0
  21. hikyuu/cpp/libboost_date_time-mt.so +0 -0
  22. hikyuu/cpp/libboost_date_time-mt.so.1.88.0 +0 -0
  23. hikyuu/cpp/libboost_serialization-mt.so +0 -0
  24. hikyuu/cpp/libboost_serialization-mt.so.1.88.0 +0 -0
  25. hikyuu/cpp/libboost_system-mt.so +0 -0
  26. hikyuu/cpp/libboost_system-mt.so.1.88.0 +0 -0
  27. hikyuu/cpp/libboost_thread-mt.so +0 -0
  28. hikyuu/cpp/libboost_thread-mt.so.1.88.0 +0 -0
  29. hikyuu/cpp/libboost_wserialization-mt.so +0 -0
  30. hikyuu/cpp/libboost_wserialization-mt.so.1.88.0 +0 -0
  31. hikyuu/cpp/libhikyuu.so +0 -0
  32. hikyuu/cpp/libsqlite3.so +0 -0
  33. hikyuu/data/clickhouse_upgrade/createdb.sql +105 -105
  34. hikyuu/data/common.py +3 -3
  35. hikyuu/data/common_clickhouse.py +1 -1
  36. hikyuu/data/download_block.py +318 -0
  37. hikyuu/data/em_block_to_clickhouse.py +26 -74
  38. hikyuu/data/em_block_to_mysql.py +25 -75
  39. hikyuu/data/em_block_to_sqlite.py +26 -78
  40. hikyuu/data/hku_config_template.py +3 -3
  41. hikyuu/data/pytdx_to_clickhouse.py +15 -11
  42. hikyuu/data/pytdx_to_h5.py +6 -2
  43. hikyuu/data/pytdx_to_mysql.py +5 -1
  44. hikyuu/data/pytdx_weight_to_clickhouse.py +1 -1
  45. hikyuu/data/pytdx_weight_to_mysql.py +1 -1
  46. hikyuu/data/pytdx_weight_to_sqlite.py +1 -1
  47. hikyuu/data/zh_bond10_to_clickhouse.py +1 -1
  48. hikyuu/draw/drawplot/__init__.pyi +8 -8
  49. hikyuu/draw/drawplot/bokeh_draw.pyi +603 -578
  50. hikyuu/draw/drawplot/common.pyi +1 -1
  51. hikyuu/draw/drawplot/echarts_draw.pyi +605 -580
  52. hikyuu/draw/drawplot/matplotlib_draw.py +4 -74
  53. hikyuu/draw/drawplot/matplotlib_draw.pyi +615 -590
  54. hikyuu/draw/elder.pyi +11 -11
  55. hikyuu/draw/kaufman.pyi +18 -18
  56. hikyuu/draw/volume.pyi +10 -10
  57. hikyuu/examples/notebook/Demo/Demo1.ipynb +48 -33
  58. hikyuu/extend.pyi +599 -573
  59. hikyuu/fetcher/stock/zh_block_em.py +50 -18
  60. hikyuu/gui/HikyuuTDX.py +81 -30
  61. hikyuu/gui/data/CollectSpotThread.py +1 -1
  62. hikyuu/gui/data/EscapetimeThread.py +8 -14
  63. hikyuu/gui/data/ImportBlockInfoTask.py +3 -10
  64. hikyuu/gui/data/MainWindow.py +1168 -715
  65. hikyuu/gui/data/SchedImportThread.py +2 -2
  66. hikyuu/gui/data/UsePytdxImportToH5Thread.py +3 -3
  67. hikyuu/gui/data/UseQmtImportToH5Thread.py +2 -2
  68. hikyuu/gui/data/UseTdxImportToH5Thread.py +3 -3
  69. hikyuu/gui/data/tool.py +32 -25
  70. hikyuu/gui/dataserver.py +5 -3
  71. hikyuu/hub.pyi +6 -6
  72. hikyuu/include/hikyuu/DataType.h +4 -16
  73. hikyuu/include/hikyuu/KData.h +6 -3
  74. hikyuu/include/hikyuu/KDataPrivatedBufferImp.h +1 -1
  75. hikyuu/include/hikyuu/KDataSharedBufferImp.h +1 -1
  76. hikyuu/include/hikyuu/KQuery.h +2 -2
  77. hikyuu/include/hikyuu/Stock.h +3 -0
  78. hikyuu/include/hikyuu/StockManager.h +13 -3
  79. hikyuu/include/hikyuu/config.h +3 -0
  80. hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +8 -0
  81. hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +6 -0
  82. hikyuu/include/hikyuu/data_driver/KDataDriver.h +26 -1
  83. hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +1 -1
  84. hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +1 -1
  85. hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +2 -1
  86. hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +2 -1
  87. hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +2 -1
  88. hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +1 -1
  89. hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +1 -1
  90. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +1 -1
  91. hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +1 -1
  92. hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +1 -1
  93. hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +1 -1
  94. hikyuu/include/hikyuu/hikyuu.h +1 -1
  95. hikyuu/include/hikyuu/indicator/build_in.h +1 -0
  96. hikyuu/include/hikyuu/indicator/crt/CYCLE.h +4 -4
  97. hikyuu/include/hikyuu/indicator/crt/HSL.h +2 -2
  98. hikyuu/include/hikyuu/indicator/crt/QUANTILE_TRUNC.h +30 -0
  99. hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +1 -0
  100. hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +2 -2
  101. hikyuu/include/hikyuu/indicator/imp/IQuantileTrunc.h +25 -0
  102. hikyuu/include/hikyuu/misc.h +38 -0
  103. hikyuu/include/hikyuu/plugin/dataserver.h +2 -1
  104. hikyuu/include/hikyuu/plugin/extind.h +37 -0
  105. hikyuu/include/hikyuu/plugin/hkuextra.h +0 -18
  106. hikyuu/include/hikyuu/plugin/hkuviews.h +36 -0
  107. hikyuu/include/hikyuu/plugin/interface/DataServerPluginInterface.h +2 -2
  108. hikyuu/include/hikyuu/plugin/interface/ExtendIndicatorsPluginInterface.h +12 -0
  109. hikyuu/include/hikyuu/plugin/interface/HkuExtraPluginInterface.h +0 -14
  110. hikyuu/include/hikyuu/plugin/interface/HkuViewsPluginInterface.h +34 -0
  111. hikyuu/include/hikyuu/plugin/interface/plugins.h +8 -1
  112. hikyuu/include/hikyuu/python/pybind_utils.h +6 -1
  113. hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +3 -0
  114. hikyuu/include/hikyuu/trade_manage/Performance.h +4 -4
  115. hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +10 -1
  116. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalFundsMM.h +0 -4
  117. hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +36 -3
  118. hikyuu/include/hikyuu/trade_sys/multifactor/NormalizeBase.h +125 -0
  119. hikyuu/include/hikyuu/trade_sys/multifactor/ScoresFilterBase.h +125 -0
  120. hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +3 -0
  121. hikyuu/include/hikyuu/trade_sys/multifactor/buildin_norm.h +36 -0
  122. hikyuu/include/hikyuu/trade_sys/multifactor/buildin_scfilter.h +51 -0
  123. hikyuu/include/hikyuu/trade_sys/multifactor/filter/GroupSCFilter.h +24 -0
  124. hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreLessOrEqualValueSCFilter.h +24 -0
  125. hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreNanSCFilter.h +24 -0
  126. hikyuu/include/hikyuu/trade_sys/multifactor/filter/MinAmountPercentSCFilter.h +25 -0
  127. hikyuu/include/hikyuu/trade_sys/multifactor/filter/PriceSCFilter.h +24 -0
  128. hikyuu/include/hikyuu/trade_sys/multifactor/filter/TopNSCFilter.h +24 -0
  129. hikyuu/include/hikyuu/trade_sys/multifactor/filter/__init__.py +1 -0
  130. hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +1 -1
  131. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +1 -1
  132. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +1 -1
  133. hikyuu/include/hikyuu/trade_sys/multifactor/imp/WeightMultiFactor.h +1 -1
  134. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormMinMax.h +23 -0
  135. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantile.h +28 -0
  136. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantileUniform.h +28 -0
  137. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormZScore.h +25 -0
  138. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/__init__.py +1 -0
  139. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/quantile_trunc.h +16 -0
  140. hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +7 -0
  141. hikyuu/include/hikyuu/trade_sys/portfolio/imp/SimplePortfolio.h +7 -0
  142. hikyuu/include/hikyuu/trade_sys/portfolio/imp/WithoutAFPortfolio.h +7 -0
  143. hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +49 -0
  144. hikyuu/include/hikyuu/trade_sys/selector/build_in.h +1 -0
  145. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor2.h +40 -0
  146. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +0 -3
  147. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector2.h +49 -0
  148. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +1 -1
  149. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +1 -1
  150. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +0 -4
  151. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/AddValueSignal.h +2 -2
  152. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/DivValueSignal.h +2 -2
  153. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/MulValueSignal.h +2 -2
  154. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorSignal.h +1 -1
  155. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorValueSignal.h +4 -4
  156. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/SubValueSignal.h +2 -2
  157. hikyuu/include/hikyuu/trade_sys/system/System.h +14 -1
  158. hikyuu/include/hikyuu/utilities/SpendTimer.h +17 -7
  159. hikyuu/include/hikyuu/utilities/arithmetic.h +55 -0
  160. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +1 -1
  161. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +1 -1
  162. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +1 -1
  163. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +1 -1
  164. hikyuu/include/hikyuu/utilities/plugin/PluginLoader.h +4 -1
  165. hikyuu/include/hikyuu/version.h +4 -4
  166. hikyuu/plugin/libbacktest.so +0 -0
  167. hikyuu/plugin/libclickhousedriver.so +0 -0
  168. hikyuu/plugin/libdataserver.so +0 -0
  169. hikyuu/plugin/libdevice.so +0 -0
  170. hikyuu/plugin/libextind.so +0 -0
  171. hikyuu/plugin/libhkuextra.so +0 -0
  172. hikyuu/plugin/libhkuviews.so +0 -0
  173. hikyuu/plugin/libimport2hdf5.so +0 -0
  174. hikyuu/plugin/libtmreport.so +0 -0
  175. hikyuu/trade_manage/__init__.pyi +603 -578
  176. hikyuu/trade_manage/broker.pyi +3 -3
  177. hikyuu/trade_manage/broker_easytrader.pyi +1 -1
  178. hikyuu/trade_manage/trade.pyi +603 -578
  179. hikyuu/util/__init__.pyi +2 -2
  180. hikyuu/util/singleton.pyi +1 -1
  181. {hikyuu-2.6.8.4.dist-info → hikyuu-2.6.9.dist-info}/METADATA +13 -13
  182. {hikyuu-2.6.8.4.dist-info → hikyuu-2.6.9.dist-info}/RECORD +185 -156
  183. {hikyuu-2.6.8.4.dist-info → hikyuu-2.6.9.dist-info}/top_level.txt +2 -1
  184. hikyuu/cpp/core39.pyi +0 -14385
  185. hikyuu/cpp/core39.so +0 -0
  186. hikyuu/data_driver/__init__.py +0 -49
  187. hikyuu/data_driver/jqdata_data_driver.py +0 -277
  188. hikyuu/data_driver/pytdx_data_driver.py +0 -292
  189. hikyuu/fetcher/stock/zh_stock_a_huatai.py +0 -51
  190. hikyuu/fetcher/stock/zh_stock_a_pytdx.py +0 -129
  191. hikyuu/gui/data/CollectToMemThread.py +0 -123
  192. hikyuu/gui/data/CollectToMySQLThread.py +0 -178
  193. hikyuu/gui/start_huatai_insight.py +0 -510
  194. hikyuu/tools/update_block_info.py +0 -168
  195. {hikyuu-2.6.8.4.dist-info → hikyuu-2.6.9.dist-info}/WHEEL +0 -0
  196. {hikyuu-2.6.8.4.dist-info → hikyuu-2.6.9.dist-info}/entry_points.txt +0 -0
@@ -866,7 +866,6 @@ def tm_performance(tm: TradeManager, query: Query, ref_stk: Stock = None):
866
866
  funds = VALUE(funds)
867
867
  funds_return = [f.total_assets / f.total_base if f.total_base != 0.0 else constant.null_price for f in funds_list]
868
868
  funds_return = VALUE(funds_return, align_dates=ref_dates)
869
- funds_return.name = "系统累积收益率"
870
869
  ref_return = ALIGN(ROCR(ref_k.close, 0), ref_dates)
871
870
  ref_return.name = f"{ref_stk.name}({ref_stk.market_code})"
872
871
 
@@ -897,8 +896,8 @@ def tm_performance(tm: TradeManager, query: Query, ref_stk: Stock = None):
897
896
  ax1 = fg.add_subplot(gs[:4, :3])
898
897
  ax2 = fg.add_subplot(gs[:, 3:])
899
898
  ax3 = fg.add_subplot(gs[4:, :3])
900
- ref_return.plot(axes=ax1, legend_on=True)
901
- funds_return.plot(axes=ax1, legend_on=True)
899
+ ref_return.plot(axes=ax1, legend_on=True, label=f'{ref_stk.name}({ref_stk.market_code}) 收益曲线')
900
+ funds_return.plot(axes=ax1, legend_on=True, label=f'{tm.name} 累积收益率 {funds_return[-1]*100.:<.2f}%')
902
901
  ax1.set_title(f"账户({tm.name}) 累积收益率")
903
902
  label = t1 + '\n\n' + t2 + '\n\n' + t3
904
903
  ax2.text(0,
@@ -923,6 +922,7 @@ def tm_performance(tm: TradeManager, query: Query, ref_stk: Stock = None):
923
922
  ax3.xaxis.set_visible(False)
924
923
  ax3.yaxis.set_visible(False)
925
924
  ax3.set_frame_on(False)
925
+ return ax1 # 返回主图axis
926
926
 
927
927
 
928
928
  def sys_performance(sys, ref_stk=None):
@@ -937,77 +937,7 @@ def sys_performance(sys, ref_stk=None):
937
937
  ref_stk = get_stock('sh000300')
938
938
 
939
939
  query = sys.query
940
- sh000001_k = get_kdata('sh000001', query)
941
- ref_dates = sh000001_k.get_datetime_list()
942
-
943
- ref_k = ref_stk.get_kdata(query)
944
-
945
- funds_list = sys.tm.get_funds_list(ref_dates)
946
- funds = [f.total_assets for f in funds_list]
947
- funds = VALUE(funds)
948
- funds_return = [f.total_assets / f.total_base if f.total_base != 0.0 else constant.null_price for f in funds_list]
949
- funds_return = VALUE(funds_return, align_dates=ref_dates)
950
- funds_return.name = "系统累积收益率"
951
- ref_return = ALIGN(ROCR(ref_k.close, 0), ref_dates)
952
- ref_return.name = f"{ref_stk.name}({ref_stk.market_code})"
953
-
954
- per = sys.tm.get_performance(sh000001_k[-1].datetime)
955
- text = per.report()
956
-
957
- # 计算最大回撤
958
- max_pullback = min(MDD(funds))
959
-
960
- # 计算 sharp
961
- bond = ZHBOND10(ref_dates)
962
- sigma = STDEV(ROCP(funds), len(ref_dates))
963
- sigma = 15.874507866387544 * sigma[-1] # 15.874 = sqrt(252)
964
- sharp = (per['帐户平均年收益率%'] - bond[-1]) * 0.01 / sigma if sigma != 0.0 else 0.0
965
-
966
- invest_total = per['累计投入本金'] + per['累计投入资产']
967
- cur_fund = per['当前总资产']
968
- t1 = '投入总资产: {:<.2f} 当前总资产: {:<.2f} 当前盈利: {:<.2f}'.format(
969
- invest_total, cur_fund, cur_fund - invest_total)
970
- t2 = '当前策略收益: {:<.2f}% 年化收益率: {:<.2f}% 最大回撤: {:<.2f}%'.format(
971
- funds_return[-1]*100 - 100, per["帐户平均年收益率%"], max_pullback)
972
- t3 = '系统胜率: {:<.2f}% 盈/亏比: 1 : {:<.2f} 夏普比率: {:<.2f}'.format(
973
- per['赢利交易比例%'], per['净赢利/亏损比例'], sharp)
974
-
975
- import matplotlib.pyplot as plt
976
- fg = plt.figure(figsize=(15, 10))
977
- gs = fg.add_gridspec(5, 4)
978
- ax1 = fg.add_subplot(gs[:4, :3])
979
- ax2 = fg.add_subplot(gs[:, 3:])
980
- ax3 = fg.add_subplot(gs[4:, :3])
981
- ref_return.plot(axes=ax1, legend_on=True)
982
- funds_return.plot(axes=ax1, legend_on=True)
983
- if isinstance(sys, System):
984
- stk = sys.get_stock()
985
- ax1.set_title(f"{sys.name} {stk.name}({stk.market_code}) 累积收益率")
986
- else:
987
- ax1.set_title(f"{sys.name} 累积收益率")
988
- label = t1 + '\n\n' + t2 + '\n\n' + t3
989
- ax2.text(0,
990
- 1,
991
- text,
992
- horizontalalignment='left',
993
- verticalalignment='top',
994
- transform=ax2.transAxes,
995
- # color='r'
996
- )
997
- ax3.text(0.02,
998
- 0.9,
999
- label,
1000
- horizontalalignment='left',
1001
- verticalalignment='top',
1002
- transform=ax3.transAxes,
1003
- # color='r'
1004
- )
1005
- ax2.xaxis.set_visible(False)
1006
- ax2.yaxis.set_visible(False)
1007
- ax2.set_frame_on(False)
1008
- ax3.xaxis.set_visible(False)
1009
- ax3.yaxis.set_visible(False)
1010
- ax3.set_frame_on(False)
940
+ return tm_performance(sys.tm, query, ref_stk)
1011
941
 
1012
942
 
1013
943
  def tm_heatmap(tm, start_date, end_date=None, axes=None):