hikyuu 2.6.8.3__py3-none-manylinux2014_aarch64.whl → 2.7.3__py3-none-manylinux2014_aarch64.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 (280) hide show
  1. hikyuu/__init__.py +55 -23
  2. hikyuu/__init__.pyi +626 -595
  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 +587 -130
  9. hikyuu/cpp/core310.so +0 -0
  10. hikyuu/cpp/core311.pyi +587 -130
  11. hikyuu/cpp/core311.so +0 -0
  12. hikyuu/cpp/core312.pyi +587 -130
  13. hikyuu/cpp/core312.so +0 -0
  14. hikyuu/cpp/core313.pyi +587 -130
  15. hikyuu/cpp/core313.so +0 -0
  16. hikyuu/cpp/i18n/zh_CN/hikyuu.mo +0 -0
  17. hikyuu/cpp/i18n/zh_CN/hikyuu_plugin.mo +0 -0
  18. hikyuu/cpp/libboost_atomic.so +0 -0
  19. hikyuu/cpp/libboost_atomic.so.1.90.0 +0 -0
  20. hikyuu/cpp/libboost_charconv.so +0 -0
  21. hikyuu/cpp/libboost_charconv.so.1.90.0 +0 -0
  22. hikyuu/cpp/libboost_chrono.so +0 -0
  23. hikyuu/cpp/libboost_chrono.so.1.90.0 +0 -0
  24. hikyuu/cpp/libboost_container.so +0 -0
  25. hikyuu/cpp/libboost_container.so.1.90.0 +0 -0
  26. hikyuu/cpp/libboost_date_time.so +0 -0
  27. hikyuu/cpp/libboost_date_time.so.1.90.0 +0 -0
  28. hikyuu/cpp/libboost_locale.so +0 -0
  29. hikyuu/cpp/libboost_locale.so.1.90.0 +0 -0
  30. hikyuu/cpp/libboost_random.so +0 -0
  31. hikyuu/cpp/libboost_random.so.1.90.0 +0 -0
  32. hikyuu/cpp/libboost_serialization.so +0 -0
  33. hikyuu/cpp/libboost_serialization.so.1.90.0 +0 -0
  34. hikyuu/cpp/libboost_thread.so +0 -0
  35. hikyuu/cpp/libboost_thread.so.1.90.0 +0 -0
  36. hikyuu/cpp/libboost_wserialization.so +0 -0
  37. hikyuu/cpp/libboost_wserialization.so.1.90.0 +0 -0
  38. hikyuu/cpp/libhikyuu.so +0 -0
  39. hikyuu/cpp/libhku_hdf5.so +0 -0
  40. hikyuu/cpp/libhku_hdf5.so.200 +0 -0
  41. hikyuu/cpp/libhku_hdf5.so.200.2.0 +0 -0
  42. hikyuu/cpp/libhku_hdf5_cpp.so +0 -0
  43. hikyuu/cpp/libhku_hdf5_cpp.so.200 +0 -0
  44. hikyuu/cpp/libhku_hdf5_cpp.so.200.2.0 +0 -0
  45. hikyuu/cpp/libhku_hdf5_hl.so +0 -0
  46. hikyuu/cpp/libhku_hdf5_hl.so.200 +0 -0
  47. hikyuu/cpp/libhku_hdf5_hl.so.200.1.0 +0 -0
  48. hikyuu/cpp/libhku_hdf5_hl_cpp.so +0 -0
  49. hikyuu/cpp/libhku_hdf5_hl_cpp.so.200 +0 -0
  50. hikyuu/cpp/libhku_hdf5_hl_cpp.so.200.1.0 +0 -0
  51. hikyuu/cpp/libhku_hdf5_tools.so +0 -0
  52. hikyuu/cpp/libhku_hdf5_tools.so.200 +0 -0
  53. hikyuu/cpp/libhku_hdf5_tools.so.200.1.1 +0 -0
  54. hikyuu/cpp/libsqlite3.so +0 -0
  55. hikyuu/data/clickhouse_upgrade/0001.sql +2 -0
  56. hikyuu/data/clickhouse_upgrade/createdb.sql +105 -105
  57. hikyuu/data/common.py +3 -3
  58. hikyuu/data/common_clickhouse.py +1 -3
  59. hikyuu/data/download_block.py +351 -0
  60. hikyuu/data/em_block_to_clickhouse.py +26 -74
  61. hikyuu/data/em_block_to_mysql.py +25 -75
  62. hikyuu/data/em_block_to_sqlite.py +26 -78
  63. hikyuu/data/hku_config_template.py +33 -6
  64. hikyuu/data/mysql_upgrade/0029.sql +2 -0
  65. hikyuu/data/pytdx_to_clickhouse.py +96 -38
  66. hikyuu/data/pytdx_to_h5.py +78 -29
  67. hikyuu/data/pytdx_to_mysql.py +69 -21
  68. hikyuu/data/pytdx_weight_to_clickhouse.py +3 -1
  69. hikyuu/data/pytdx_weight_to_mysql.py +3 -1
  70. hikyuu/data/pytdx_weight_to_sqlite.py +3 -1
  71. hikyuu/data/sqlite_upgrade/0029.sql +4 -0
  72. hikyuu/data/tdx_to_clickhouse.py +2 -2
  73. hikyuu/data/tdx_to_h5.py +11 -11
  74. hikyuu/data/tdx_to_mysql.py +2 -2
  75. hikyuu/data/zh_bond10_to_clickhouse.py +1 -1
  76. hikyuu/draw/__init__.pyi +1 -1
  77. hikyuu/draw/drawplot/__init__.pyi +8 -8
  78. hikyuu/draw/drawplot/bokeh_draw.pyi +610 -583
  79. hikyuu/draw/drawplot/common.pyi +1 -1
  80. hikyuu/draw/drawplot/echarts_draw.pyi +612 -585
  81. hikyuu/draw/drawplot/matplotlib_draw.py +12 -76
  82. hikyuu/draw/drawplot/matplotlib_draw.pyi +623 -596
  83. hikyuu/draw/elder.pyi +11 -11
  84. hikyuu/draw/kaufman.pyi +18 -18
  85. hikyuu/draw/volume.pyi +10 -10
  86. hikyuu/examples/notebook/Demo/Demo1.ipynb +48 -33
  87. hikyuu/extend.py +0 -7
  88. hikyuu/extend.pyi +599 -573
  89. hikyuu/fetcher/stock/zh_block_em.py +12 -40
  90. hikyuu/gui/HikyuuTDX.py +140 -33
  91. hikyuu/gui/data/CollectSpotThread.py +1 -1
  92. hikyuu/gui/data/EscapetimeThread.py +8 -14
  93. hikyuu/gui/data/ImportBlockInfoTask.py +3 -10
  94. hikyuu/gui/data/MainWindow.py +1300 -761
  95. hikyuu/gui/data/SchedImportThread.py +2 -2
  96. hikyuu/gui/data/UsePytdxImportToH5Thread.py +3 -3
  97. hikyuu/gui/data/UseQmtImportToH5Thread.py +2 -2
  98. hikyuu/gui/data/UseTdxImportToH5Thread.py +3 -3
  99. hikyuu/gui/data/tool.py +32 -25
  100. hikyuu/gui/dataserver.py +5 -3
  101. hikyuu/gui/images/liandongxiaopu.png +0 -0
  102. hikyuu/gui/importdata.py +4 -0
  103. hikyuu/hub.pyi +6 -6
  104. hikyuu/include/hikyuu/DataType.h +4 -16
  105. hikyuu/include/hikyuu/KData.h +6 -3
  106. hikyuu/include/hikyuu/KDataPrivatedBufferImp.h +1 -1
  107. hikyuu/include/hikyuu/KDataSharedBufferImp.h +1 -1
  108. hikyuu/include/hikyuu/KQuery.h +2 -2
  109. hikyuu/include/hikyuu/Stock.h +4 -1
  110. hikyuu/include/hikyuu/StockManager.h +29 -4
  111. hikyuu/include/hikyuu/StrategyContext.h +4 -4
  112. hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +9 -0
  113. hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +6 -0
  114. hikyuu/include/hikyuu/data_driver/KDataDriver.h +24 -1
  115. hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +1 -1
  116. hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +1 -1
  117. hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +2 -1
  118. hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +2 -1
  119. hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +2 -1
  120. hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +1 -1
  121. hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +1 -1
  122. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +1 -1
  123. hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +6 -2
  124. hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +2 -2
  125. hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +1 -1
  126. hikyuu/include/hikyuu/global/sysinfo.h +24 -5
  127. hikyuu/include/hikyuu/hikyuu.h +1 -1
  128. hikyuu/include/hikyuu/indicator/IndicatorImp.h +1 -1
  129. hikyuu/include/hikyuu/indicator/build_in.h +1 -0
  130. hikyuu/include/hikyuu/indicator/crt/CYCLE.h +4 -4
  131. hikyuu/include/hikyuu/indicator/crt/HSL.h +2 -2
  132. hikyuu/include/hikyuu/indicator/crt/QUANTILE_TRUNC.h +30 -0
  133. hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +1 -0
  134. hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +2 -2
  135. hikyuu/include/hikyuu/indicator/imp/IQuantileTrunc.h +25 -0
  136. hikyuu/include/hikyuu/lang.h +15 -2
  137. hikyuu/include/hikyuu/misc.h +38 -0
  138. hikyuu/include/hikyuu/plugin/KDataToClickHouseImporter.h +40 -0
  139. hikyuu/include/hikyuu/plugin/KDataToMySQLImporter.h +40 -0
  140. hikyuu/include/hikyuu/plugin/checkdata.h +20 -0
  141. hikyuu/include/hikyuu/plugin/dataserver.h +2 -1
  142. hikyuu/include/hikyuu/plugin/device.h +10 -0
  143. hikyuu/include/hikyuu/plugin/extind.h +40 -0
  144. hikyuu/include/hikyuu/plugin/hkuextra.h +1 -17
  145. hikyuu/include/hikyuu/plugin/interface/CheckDataPluginInterface.h +25 -0
  146. hikyuu/include/hikyuu/plugin/interface/DataServerPluginInterface.h +2 -2
  147. hikyuu/include/hikyuu/plugin/interface/DevicePluginInterface.h +2 -0
  148. hikyuu/include/hikyuu/plugin/interface/ExtendIndicatorsPluginInterface.h +12 -0
  149. hikyuu/include/hikyuu/plugin/interface/HkuExtraPluginInterface.h +1 -13
  150. hikyuu/include/hikyuu/plugin/interface/ImportKDataToClickHousePluginInterface.h +44 -0
  151. hikyuu/include/hikyuu/plugin/interface/ImportKDataToMySQLPluginInterface.h +42 -0
  152. hikyuu/include/hikyuu/plugin/interface/plugins.h +9 -1
  153. hikyuu/include/hikyuu/python/convert_any.h +9 -6
  154. hikyuu/include/hikyuu/python/pybind_utils.h +4 -11
  155. hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +3 -0
  156. hikyuu/include/hikyuu/strategy/Strategy.h +1 -1
  157. hikyuu/include/hikyuu/trade_manage/Performance.h +4 -4
  158. hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +10 -2
  159. hikyuu/include/hikyuu/trade_manage/TradeRecord.h +2 -1
  160. hikyuu/include/hikyuu/trade_sys/allocatefunds/AllocateFundsBase.h +0 -1
  161. hikyuu/include/hikyuu/trade_sys/allocatefunds/build_in.h +1 -0
  162. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_FixedAmount.h +26 -0
  163. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/FixAmountFunds.h +18 -0
  164. hikyuu/include/hikyuu/trade_sys/condition/ConditionBase.h +0 -1
  165. hikyuu/include/hikyuu/trade_sys/environment/EnvironmentBase.h +0 -1
  166. hikyuu/include/hikyuu/trade_sys/moneymanager/MoneyManagerBase.h +0 -1
  167. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalFundsMM.h +0 -4
  168. hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +36 -4
  169. hikyuu/include/hikyuu/trade_sys/multifactor/NormalizeBase.h +124 -0
  170. hikyuu/include/hikyuu/trade_sys/multifactor/ScoresFilterBase.h +124 -0
  171. hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +3 -0
  172. hikyuu/include/hikyuu/trade_sys/multifactor/buildin_norm.h +36 -0
  173. hikyuu/include/hikyuu/trade_sys/multifactor/buildin_scfilter.h +51 -0
  174. hikyuu/include/hikyuu/trade_sys/multifactor/filter/GroupSCFilter.h +24 -0
  175. hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreLessOrEqualValueSCFilter.h +24 -0
  176. hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreNanSCFilter.h +24 -0
  177. hikyuu/include/hikyuu/trade_sys/multifactor/filter/MinAmountPercentSCFilter.h +25 -0
  178. hikyuu/include/hikyuu/trade_sys/multifactor/filter/PriceSCFilter.h +24 -0
  179. hikyuu/include/hikyuu/trade_sys/multifactor/filter/TopNSCFilter.h +24 -0
  180. hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +1 -1
  181. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +1 -1
  182. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +1 -1
  183. hikyuu/include/hikyuu/trade_sys/multifactor/imp/WeightMultiFactor.h +1 -1
  184. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormMinMax.h +23 -0
  185. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantile.h +28 -0
  186. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantileUniform.h +28 -0
  187. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormZScore.h +25 -0
  188. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/__init__.py +1 -0
  189. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/quantile_trunc.h +16 -0
  190. hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +20 -13
  191. hikyuu/include/hikyuu/trade_sys/portfolio/imp/SimplePortfolio.h +7 -0
  192. hikyuu/include/hikyuu/trade_sys/portfolio/imp/WithoutAFPortfolio.h +7 -0
  193. hikyuu/include/hikyuu/trade_sys/profitgoal/ProfitGoalBase.h +9 -11
  194. hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +49 -1
  195. hikyuu/include/hikyuu/trade_sys/selector/build_in.h +1 -0
  196. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor2.h +40 -0
  197. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +0 -3
  198. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector2.h +49 -0
  199. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +1 -1
  200. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +1 -1
  201. hikyuu/include/hikyuu/trade_sys/signal/SignalBase.h +0 -1
  202. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +0 -4
  203. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/AddValueSignal.h +2 -2
  204. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/DivValueSignal.h +2 -2
  205. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/MulValueSignal.h +2 -2
  206. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorSignal.h +1 -1
  207. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorValueSignal.h +4 -4
  208. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/SubValueSignal.h +2 -2
  209. hikyuu/include/hikyuu/trade_sys/slippage/SlippageBase.h +0 -1
  210. hikyuu/include/hikyuu/trade_sys/slippage/build_in.h +5 -1
  211. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_LogNormal.h +22 -0
  212. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_Normal.h +22 -0
  213. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_TruncNormal.h +25 -0
  214. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_Uniform.h +23 -0
  215. hikyuu/include/hikyuu/trade_sys/slippage/imp/LogNormalSlippage.h +28 -0
  216. hikyuu/include/hikyuu/trade_sys/slippage/imp/NormalSlippage.h +28 -0
  217. hikyuu/include/hikyuu/trade_sys/slippage/imp/TruncNormalSlippage.h +28 -0
  218. hikyuu/include/hikyuu/trade_sys/slippage/imp/UniformSlippage.h +24 -0
  219. hikyuu/include/hikyuu/trade_sys/stoploss/StoplossBase.h +0 -1
  220. hikyuu/include/hikyuu/trade_sys/system/System.h +15 -3
  221. hikyuu/include/hikyuu/utilities/Log.h +6 -7
  222. hikyuu/include/hikyuu/utilities/Parameter.h +17 -0
  223. hikyuu/include/hikyuu/utilities/SpendTimer.h +17 -7
  224. hikyuu/include/hikyuu/utilities/arithmetic.h +55 -0
  225. hikyuu/include/hikyuu/utilities/config.h +28 -0
  226. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +1 -1
  227. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +1 -1
  228. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +1 -1
  229. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +1 -1
  230. hikyuu/include/hikyuu/utilities/plugin/PluginBase.h +17 -2
  231. hikyuu/include/hikyuu/utilities/plugin/PluginLoader.h +4 -1
  232. hikyuu/include/hikyuu/utilities/plugin/PluginManager.h +41 -22
  233. hikyuu/include/hikyuu/utilities/thread/GlobalStealThreadPool.h +1 -2
  234. hikyuu/include/hikyuu/utilities/thread/GlobalThreadPool.h +1 -1
  235. hikyuu/include/hikyuu/utilities/thread/MQStealThreadPool.h +286 -0
  236. hikyuu/include/hikyuu/utilities/thread/MQThreadPool.h +1 -0
  237. hikyuu/include/hikyuu/utilities/thread/StealThreadPool.h +297 -0
  238. hikyuu/include/hikyuu/utilities/thread/ThreadPool.h +1 -0
  239. hikyuu/include/hikyuu/utilities/thread/WorkStealQueue.h +9 -8
  240. hikyuu/include/hikyuu/utilities/thread/algorithm.h +64 -14
  241. hikyuu/include/hikyuu/version.h +5 -5
  242. hikyuu/plugin/libbacktest.so +0 -0
  243. hikyuu/plugin/libcheckdata.so +0 -0
  244. hikyuu/plugin/libclickhousedriver.so +0 -0
  245. hikyuu/plugin/libdataserver.so +0 -0
  246. hikyuu/{cpp/core39.so → plugin/libdataserver_parquet.so} +0 -0
  247. hikyuu/plugin/libdevice.so +0 -0
  248. hikyuu/plugin/libextind.so +0 -0
  249. hikyuu/plugin/libhkuextra.so +0 -0
  250. hikyuu/plugin/libimport2ch.so +0 -0
  251. hikyuu/plugin/libimport2hdf5.so +0 -0
  252. hikyuu/plugin/libimport2mysql.so +0 -0
  253. hikyuu/plugin/libtmreport.so +0 -0
  254. hikyuu/trade_manage/__init__.pyi +607 -582
  255. hikyuu/trade_manage/broker.pyi +3 -3
  256. hikyuu/trade_manage/broker_easytrader.pyi +1 -1
  257. hikyuu/trade_manage/trade.py +0 -2
  258. hikyuu/trade_manage/trade.pyi +607 -582
  259. hikyuu/trade_sys/trade_sys.py +54 -5
  260. hikyuu/util/__init__.pyi +2 -2
  261. hikyuu/util/singleton.pyi +1 -1
  262. {hikyuu-2.6.8.3.dist-info → hikyuu-2.7.3.dist-info}/METADATA +42 -32
  263. {hikyuu-2.6.8.3.dist-info → hikyuu-2.7.3.dist-info}/RECORD +267 -212
  264. {hikyuu-2.6.8.3.dist-info → hikyuu-2.7.3.dist-info}/top_level.txt +2 -2
  265. hikyuu/cpp/core39.pyi +0 -14190
  266. hikyuu/data/pytdx_to_taos.py +0 -736
  267. hikyuu/data_driver/__init__.py +0 -49
  268. hikyuu/data_driver/jqdata_data_driver.py +0 -277
  269. hikyuu/data_driver/pytdx_data_driver.py +0 -292
  270. hikyuu/fetcher/stock/zh_stock_a_huatai.py +0 -51
  271. hikyuu/fetcher/stock/zh_stock_a_pytdx.py +0 -129
  272. hikyuu/gui/data/CollectToMemThread.py +0 -123
  273. hikyuu/gui/data/CollectToMySQLThread.py +0 -178
  274. hikyuu/gui/start_huatai_insight.py +0 -510
  275. hikyuu/include/hikyuu/views/arrow_common.h +0 -38
  276. hikyuu/include/hikyuu/views/arrow_views.h +0 -117
  277. hikyuu/tools/update_block_info.py +0 -168
  278. /hikyuu/include/hikyuu/{views → trade_sys/multifactor/filter}/__init__.py +0 -0
  279. {hikyuu-2.6.8.3.dist-info → hikyuu-2.7.3.dist-info}/WHEEL +0 -0
  280. {hikyuu-2.6.8.3.dist-info → hikyuu-2.7.3.dist-info}/entry_points.txt +0 -0
hikyuu/cpp/core311.pyi CHANGED
@@ -3,7 +3,7 @@ import collections.abc
3
3
  import numpy
4
4
  import numpy.typing
5
5
  import typing
6
- __all__: list[str] = ['ABS', 'ACOS', 'AD', 'ADVANCE', 'AF_EqualWeight', 'AF_FixedWeight', 'AF_FixedWeightList', 'AF_MultiFactor', 'AGG_COUNT', 'AGG_MAD', 'AGG_MAX', 'AGG_MEAN', 'AGG_MEDIAN', 'AGG_MIN', 'AGG_PROD', 'AGG_QUANTILE', 'AGG_STD', 'AGG_SUM', 'AGG_VAR', 'ALIGN', 'AMA', 'ASIN', 'ATAN', 'ATR', 'AVEDEV', 'AllocateFundsBase', 'BACKSET', 'BARSCOUNT', 'BARSLAST', 'BARSLASTCOUNT', 'BARSSINCE', 'BARSSINCEN', 'BETWEEN', 'BLOCKSETNUM', 'BUSINESS', 'Block', 'BlockInfoDriver', 'BorrowRecord', 'BrokerPositionRecord', 'CEILING', 'CN_Bool', 'CN_OPLine', 'CONTEXT', 'CONTEXT_K', 'CORR', 'COS', 'COST', 'COUNT', 'CROSS', 'CVAL', 'CYCLE', 'C_AMO', 'C_CLOSE', 'C_HIGH', 'C_KDATA', 'C_LOW', 'C_OPEN', 'C_VOL', 'ConditionBase', 'Constant', 'CostRecord', 'DATE', 'DAY', 'DEBUG', 'DECLINE', 'DEVSQ', 'DIFF', 'DISCARD', 'DMA', 'DOWNNDAY', 'DROPNA', 'DataDriverFactory', 'Datetime', 'DatetimeList', 'Days', 'EMA', 'ERROR', 'EVERY', 'EV_Bool', 'EV_TwoLine', 'EXIST', 'EXP', 'EnvironmentBase', 'FATAL', 'FILTER', 'FINANCE', 'FLOOR', 'FundsRecord', 'HHV', 'HHVBARS', 'HKUException', 'HOUR', 'HSL', 'Hours', 'IC', 'ICIR', 'IF', 'INBLOCK', 'INDEXA', 'INDEXADV', 'INDEXC', 'INDEXDEC', 'INDEXH', 'INDEXL', 'INDEXO', 'INDEXV', 'INFO', 'INSUM', 'INTPART', 'IR', 'ISINF', 'ISINFA', 'ISLASTBAR', 'ISNA', 'IndParam', 'Indicator', 'IndicatorImp', 'JUMPDOWN', 'JUMPUP', 'KALMAN', 'KDATA_PART', 'KData', 'KDataDriver', 'KDataToHdf5Importer', 'KRecord', 'KRecordList', 'LAST', 'LASTVALUE', 'LIUTONGPAN', 'LLV', 'LLVBARS', 'LN', 'LOG', 'LOG_LEVEL', 'LONGCROSS', 'LoanRecord', 'MA', 'MACD', 'MAX', 'MDD', 'MF_EqualWeight', 'MF_ICIRWeight', 'MF_ICWeight', 'MF_Weight', 'MIN', 'MINUTE', 'MM_FixedCapital', 'MM_FixedCapitalFunds', 'MM_FixedCount', 'MM_FixedCountTps', 'MM_FixedPercent', 'MM_FixedRisk', 'MM_FixedUnits', 'MM_Nothing', 'MM_WilliamsFixedRisk', 'MOD', 'MONTH', 'MRR', 'MarketInfo', 'Microseconds', 'Milliseconds', 'Minutes', 'MoneyManagerBase', 'MultiFactorBase', 'NDAY', 'NOT', 'OFF', 'OrderBrokerBase', 'PF_Simple', 'PF_WithoutAF', 'PG_FixedHoldDays', 'PG_FixedPercent', 'PG_NoGoal', 'POS', 'POW', 'PRICELIST', 'Parameter', 'Performance', 'Portfolio', 'PositionRecord', 'PositionRecordList', 'ProfitGoalBase', 'Query', 'RANK', 'RECOVER_BACKWARD', 'RECOVER_EQUAL_BACKWARD', 'RECOVER_EQUAL_FORWARD', 'RECOVER_FORWARD', 'REF', 'REFX', 'REPLACE', 'RESULT', 'REVERSE', 'ROC', 'ROCP', 'ROCR', 'ROCR100', 'ROUND', 'ROUNDDOWN', 'ROUNDUP', 'RSI', 'SAFTYLOSS', 'SE_EvaluateOptimal', 'SE_Fixed', 'SE_MaxFundsOptimal', 'SE_MultiFactor', 'SE_PerformanceOptimal', 'SE_Signal', 'SGN', 'SG_Add', 'SG_AllwaysBuy', 'SG_And', 'SG_Band', 'SG_Bool', 'SG_Buy', 'SG_Cross', 'SG_CrossGold', 'SG_Cycle', 'SG_Div', 'SG_Flex', 'SG_Mul', 'SG_OneSide', 'SG_Or', 'SG_Sell', 'SG_Single', 'SG_Single2', 'SG_Sub', 'SIN', 'SLICE', 'SLOPE', 'SMA', 'SPEARMAN', 'SP_FixedPercent', 'SP_FixedValue', 'SQRT', 'STDEV', 'STDP', 'ST_FixedPercent', 'ST_Indicator', 'ST_Saftyloss', 'SUM', 'SUMBARS', 'SYS_Simple', 'SYS_WalkForward', 'ScoreRecord', 'ScoreRecordList', 'Seconds', 'SelectorBase', 'SignalBase', 'SlippageBase', 'SpotRecord', 'Stock', 'StockManager', 'StockTypeInfo', 'StockWeight', 'StockWeightList', 'StoplossBase', 'Strategy', 'StrategyContext', 'System', 'SystemPart', 'SystemWeight', 'SystemWeightList', 'TAN', 'TA_ACCBANDS', 'TA_ACOS', 'TA_AD', 'TA_ADD', 'TA_ADOSC', 'TA_ADX', 'TA_ADXR', 'TA_APO', 'TA_AROON', 'TA_AROONOSC', 'TA_ASIN', 'TA_ATAN', 'TA_ATR', 'TA_AVGDEV', 'TA_AVGPRICE', 'TA_BBANDS', 'TA_BETA', 'TA_BOP', 'TA_CCI', 'TA_CDL2CROWS', 'TA_CDL3BLACKCROWS', 'TA_CDL3INSIDE', 'TA_CDL3LINESTRIKE', 'TA_CDL3OUTSIDE', 'TA_CDL3STARSINSOUTH', 'TA_CDL3WHITESOLDIERS', 'TA_CDLABANDONEDBABY', 'TA_CDLADVANCEBLOCK', 'TA_CDLBELTHOLD', 'TA_CDLBREAKAWAY', 'TA_CDLCLOSINGMARUBOZU', 'TA_CDLCONCEALBABYSWALL', 'TA_CDLCOUNTERATTACK', 'TA_CDLDARKCLOUDCOVER', 'TA_CDLDOJI', 'TA_CDLDOJISTAR', 'TA_CDLDRAGONFLYDOJI', 'TA_CDLENGULFING', 'TA_CDLEVENINGDOJISTAR', 'TA_CDLEVENINGSTAR', 'TA_CDLGAPSIDESIDEWHITE', 'TA_CDLGRAVESTONEDOJI', 'TA_CDLHAMMER', 'TA_CDLHANGINGMAN', 'TA_CDLHARAMI', 'TA_CDLHARAMICROSS', 'TA_CDLHIGHWAVE', 'TA_CDLHIKKAKE', 'TA_CDLHIKKAKEMOD', 'TA_CDLHOMINGPIGEON', 'TA_CDLIDENTICAL3CROWS', 'TA_CDLINNECK', 'TA_CDLINVERTEDHAMMER', 'TA_CDLKICKING', 'TA_CDLKICKINGBYLENGTH', 'TA_CDLLADDERBOTTOM', 'TA_CDLLONGLEGGEDDOJI', 'TA_CDLLONGLINE', 'TA_CDLMARUBOZU', 'TA_CDLMATCHINGLOW', 'TA_CDLMATHOLD', 'TA_CDLMORNINGDOJISTAR', 'TA_CDLMORNINGSTAR', 'TA_CDLONNECK', 'TA_CDLPIERCING', 'TA_CDLRICKSHAWMAN', 'TA_CDLRISEFALL3METHODS', 'TA_CDLSEPARATINGLINES', 'TA_CDLSHOOTINGSTAR', 'TA_CDLSHORTLINE', 'TA_CDLSPINNINGTOP', 'TA_CDLSTALLEDPATTERN', 'TA_CDLSTICKSANDWICH', 'TA_CDLTAKURI', 'TA_CDLTASUKIGAP', 'TA_CDLTHRUSTING', 'TA_CDLTRISTAR', 'TA_CDLUNIQUE3RIVER', 'TA_CDLUPSIDEGAP2CROWS', 'TA_CDLXSIDEGAP3METHODS', 'TA_CEIL', 'TA_CMO', 'TA_CORREL', 'TA_COS', 'TA_COSH', 'TA_DEMA', 'TA_DIV', 'TA_DX', 'TA_EMA', 'TA_EXP', 'TA_FLOOR', 'TA_HT_DCPERIOD', 'TA_HT_DCPHASE', 'TA_HT_PHASOR', 'TA_HT_SINE', 'TA_HT_TRENDLINE', 'TA_HT_TRENDMODE', 'TA_IMI', 'TA_KAMA', 'TA_LINEARREG', 'TA_LINEARREG_ANGLE', 'TA_LINEARREG_INTERCEPT', 'TA_LINEARREG_SLOPE', 'TA_LN', 'TA_LOG10', 'TA_MA', 'TA_MACD', 'TA_MACDEXT', 'TA_MACDFIX', 'TA_MAMA', 'TA_MAVP', 'TA_MAX', 'TA_MAXINDEX', 'TA_MEDPRICE', 'TA_MFI', 'TA_MIDPOINT', 'TA_MIDPRICE', 'TA_MIN', 'TA_MININDEX', 'TA_MINMAX', 'TA_MINMAXINDEX', 'TA_MINUS_DI', 'TA_MINUS_DM', 'TA_MOM', 'TA_MULT', 'TA_NATR', 'TA_OBV', 'TA_PLUS_DI', 'TA_PLUS_DM', 'TA_PPO', 'TA_ROC', 'TA_ROCP', 'TA_ROCR', 'TA_ROCR100', 'TA_RSI', 'TA_SAR', 'TA_SAREXT', 'TA_SIN', 'TA_SINH', 'TA_SMA', 'TA_SQRT', 'TA_STDDEV', 'TA_STOCH', 'TA_STOCHF', 'TA_STOCHRSI', 'TA_SUB', 'TA_SUM', 'TA_T3', 'TA_TAN', 'TA_TANH', 'TA_TEMA', 'TA_TRANGE', 'TA_TRIMA', 'TA_TRIX', 'TA_TSF', 'TA_TYPPRICE', 'TA_ULTOSC', 'TA_VAR', 'TA_WCLPRICE', 'TA_WILLR', 'TA_WMA', 'TC_FixedA', 'TC_FixedA2015', 'TC_FixedA2017', 'TC_TestStub', 'TC_Zero', 'TIME', 'TIMELINE', 'TIMELINEVOL', 'TR', 'TRACE', 'TURNOVER', 'TimeDelta', 'TimeLineList', 'TimeLineRecord', 'TradeCostBase', 'TradeManager', 'TradeRecord', 'TradeRecordList', 'TradeRequest', 'TransList', 'TransRecord', 'UPNDAY', 'UTCOffset', 'VAR', 'VARP', 'VIGOR', 'WARN', 'WEAVE', 'WEEK', 'WINNER', 'WITHDAY', 'WITHHALFYEAR', 'WITHHOUR', 'WITHHOUR2', 'WITHHOUR4', 'WITHKTYPE', 'WITHMIN', 'WITHMIN15', 'WITHMIN30', 'WITHMIN5', 'WITHMIN60', 'WITHMONTH', 'WITHQUARTER', 'WITHWEEK', 'WITHYEAR', 'WMA', 'YEAR', 'ZHBOND10', 'ZONGGUBEN', 'ZSCORE', 'active_device', 'backtest', 'batch_calculate_inds', 'can_upgrade', 'close_ostream_to_python', 'close_spend_time', 'combinate_ind', 'combinate_index', 'constant', 'crtBrokerTM', 'crtSEOptimal', 'crtTM', 'crt_pf_strategy', 'crt_sys_strategy', 'dates_to_np', 'dates_to_pa', 'df_to_krecords', 'fetch_trial_license', 'find_optimal_system', 'find_optimal_system_multi', 'get_block', 'get_business_name', 'get_data_from_buffer_server', 'get_date_range', 'get_inds_view', 'get_inds_view_pyarrow', 'get_kdata', 'get_last_version', 'get_log_level', 'get_market_view', 'get_market_view_pyarrow', 'get_spot_from_buffer_server', 'get_stock', 'get_system_part_enum', 'get_system_part_name', 'get_version', 'get_version_git', 'get_version_with_build', 'hikyuu_init', 'inner_analysis_sys_list', 'inner_combinate_ind_analysis', 'inner_combinate_ind_analysis_with_block', 'is_valid_license', 'isinf', 'isnan', 'krecords_to_df', 'krecords_to_np', 'krecords_to_pa', 'open_ostream_to_python', 'open_spend_time', 'positions_to_df', 'positions_to_np', 'positions_to_pa', 'register_extra_ktype', 'release_extra_ktype', 'remove_license', 'roundDown', 'roundEx', 'roundUp', 'run_in_strategy', 'scorerecords_to_df', 'scorerecords_to_np', 'set_log_level', 'set_python_in_interactive', 'set_python_in_jupyter', 'spot_agent_is_connected', 'spot_agent_is_running', 'start_data_server', 'start_spot_agent', 'stop_data_server', 'stop_spot_agent', 'systemweights_to_df', 'systemweights_to_np', 'timeline_to_df', 'timeline_to_np', 'timeline_to_pa', 'toPriceList', 'trades_to_df', 'trades_to_np', 'trades_to_pa', 'translist_to_df', 'translist_to_np', 'translist_to_pa', 'view_license', 'weights_to_df', 'weights_to_np', 'weights_to_pa']
6
+ __all__: list[str] = ['ABS', 'ACOS', 'AD', 'ADVANCE', 'AF_EqualWeight', 'AF_FixedAmount', 'AF_FixedWeight', 'AF_FixedWeightList', 'AF_MultiFactor', 'AGG_COUNT', 'AGG_FUNC', 'AGG_MAD', 'AGG_MAX', 'AGG_MEAN', 'AGG_MEDIAN', 'AGG_MIN', 'AGG_PROD', 'AGG_QUANTILE', 'AGG_STD', 'AGG_SUM', 'AGG_VAR', 'AGG_VWAP', 'ALIGN', 'AMA', 'ASIN', 'ATAN', 'ATR', 'AVEDEV', 'AllocateFundsBase', 'BACKSET', 'BARSCOUNT', 'BARSLAST', 'BARSLASTCOUNT', 'BARSSINCE', 'BARSSINCEN', 'BETWEEN', 'BLOCKSETNUM', 'BUSINESS', 'Block', 'BlockInfoDriver', 'BorrowRecord', 'BrokerPositionRecord', 'CEILING', 'CN_Bool', 'CN_OPLine', 'CONTEXT', 'CONTEXT_K', 'CORR', 'COS', 'COST', 'COUNT', 'CROSS', 'CVAL', 'CYCLE', 'C_AMO', 'C_CLOSE', 'C_HIGH', 'C_KDATA', 'C_LOW', 'C_OPEN', 'C_VOL', 'ConditionBase', 'Constant', 'CostRecord', 'DATE', 'DAY', 'DEBUG', 'DECLINE', 'DEVSQ', 'DIFF', 'DISCARD', 'DMA', 'DOWNNDAY', 'DROPNA', 'DataDriverFactory', 'Datetime', 'DatetimeList', 'Days', 'EMA', 'ERROR', 'EVERY', 'EV_Bool', 'EV_TwoLine', 'EXIST', 'EXP', 'EnvironmentBase', 'FATAL', 'FILTER', 'FINANCE', 'FLOOR', 'FundsRecord', 'GROUP_COUNT', 'GROUP_FUNC', 'GROUP_MAX', 'GROUP_MEAN', 'GROUP_MIN', 'GROUP_PROD', 'GROUP_SUM', 'HHV', 'HHVBARS', 'HKUException', 'HOUR', 'HSL', 'Hours', 'IC', 'ICIR', 'IF', 'INBLOCK', 'INDEXA', 'INDEXADV', 'INDEXC', 'INDEXDEC', 'INDEXH', 'INDEXL', 'INDEXO', 'INDEXV', 'INFO', 'INSUM', 'INTPART', 'IR', 'ISINF', 'ISINFA', 'ISLASTBAR', 'ISNA', 'IndParam', 'Indicator', 'IndicatorImp', 'JUMPDOWN', 'JUMPUP', 'KALMAN', 'KDATA_PART', 'KData', 'KDataDriver', 'KDataToClickHouseImporter', 'KDataToHdf5Importer', 'KDataToMySQLImporter', 'KRecord', 'KRecordList', 'LAST', 'LASTVALUE', 'LIUTONGPAN', 'LLV', 'LLVBARS', 'LN', 'LOG', 'LOG_LEVEL', 'LONGCROSS', 'LoanRecord', 'MA', 'MACD', 'MAX', 'MDD', 'MF_EqualWeight', 'MF_ICIRWeight', 'MF_ICWeight', 'MF_Weight', 'MIN', 'MINUTE', 'MM_FixedCapital', 'MM_FixedCapitalFunds', 'MM_FixedCount', 'MM_FixedCountTps', 'MM_FixedPercent', 'MM_FixedRisk', 'MM_FixedUnits', 'MM_Nothing', 'MM_WilliamsFixedRisk', 'MOD', 'MONTH', 'MRR', 'MarketInfo', 'Microseconds', 'Milliseconds', 'Minutes', 'MoneyManagerBase', 'MultiFactorBase', 'NDAY', 'NORM_MinMax', 'NORM_NOTHING', 'NORM_Quantile', 'NORM_Quantile_Uniform', 'NORM_Zscore', 'NOT', 'NormalizeBase', 'OFF', 'OrderBrokerBase', 'PF_Simple', 'PF_WithoutAF', 'PG_FixedHoldDays', 'PG_FixedPercent', 'PG_NoGoal', 'POS', 'POW', 'PRICELIST', 'Parameter', 'Performance', 'Portfolio', 'PositionRecord', 'PositionRecordList', 'ProfitGoalBase', 'QUANTILE_TRUNC', 'Query', 'RANK', 'RECOVER_BACKWARD', 'RECOVER_EQUAL_BACKWARD', 'RECOVER_EQUAL_FORWARD', 'RECOVER_FORWARD', 'REF', 'REFX', 'REPLACE', 'RESULT', 'REVERSE', 'ROC', 'ROCP', 'ROCR', 'ROCR100', 'ROUND', 'ROUNDDOWN', 'ROUNDUP', 'RSI', 'SAFTYLOSS', 'SCFilter_AmountLimit', 'SCFilter_Group', 'SCFilter_IgnoreNan', 'SCFilter_LessOrEqualValue', 'SCFilter_Price', 'SCFilter_TopN', 'SE_EvaluateOptimal', 'SE_Fixed', 'SE_MaxFundsOptimal', 'SE_MultiFactor', 'SE_MultiFactor2', 'SE_PerformanceOptimal', 'SE_Signal', 'SGN', 'SG_Add', 'SG_AllwaysBuy', 'SG_And', 'SG_Band', 'SG_Bool', 'SG_Buy', 'SG_Cross', 'SG_CrossGold', 'SG_Cycle', 'SG_Div', 'SG_Flex', 'SG_Mul', 'SG_OneSide', 'SG_Or', 'SG_Sell', 'SG_Single', 'SG_Single2', 'SG_Sub', 'SIN', 'SLICE', 'SLOPE', 'SMA', 'SPEARMAN', 'SP_FixedPercent', 'SP_FixedValue', 'SP_LogNormal', 'SP_Normal', 'SP_TruncNormal', 'SP_Uniform', 'SQRT', 'STDEV', 'STDP', 'ST_FixedPercent', 'ST_Indicator', 'ST_Saftyloss', 'SUM', 'SUMBARS', 'SYS_Simple', 'SYS_WalkForward', 'ScoreRecord', 'ScoreRecordList', 'ScoresFilterBase', 'Seconds', 'SelectorBase', 'SignalBase', 'SlippageBase', 'SpotRecord', 'Stock', 'StockManager', 'StockTypeInfo', 'StockWeight', 'StockWeightList', 'StoplossBase', 'Strategy', 'StrategyContext', 'System', 'SystemPart', 'SystemWeight', 'SystemWeightList', 'TAN', 'TA_ACCBANDS', 'TA_ACOS', 'TA_AD', 'TA_ADD', 'TA_ADOSC', 'TA_ADX', 'TA_ADXR', 'TA_APO', 'TA_AROON', 'TA_AROONOSC', 'TA_ASIN', 'TA_ATAN', 'TA_ATR', 'TA_AVGDEV', 'TA_AVGPRICE', 'TA_BBANDS', 'TA_BETA', 'TA_BOP', 'TA_CCI', 'TA_CDL2CROWS', 'TA_CDL3BLACKCROWS', 'TA_CDL3INSIDE', 'TA_CDL3LINESTRIKE', 'TA_CDL3OUTSIDE', 'TA_CDL3STARSINSOUTH', 'TA_CDL3WHITESOLDIERS', 'TA_CDLABANDONEDBABY', 'TA_CDLADVANCEBLOCK', 'TA_CDLBELTHOLD', 'TA_CDLBREAKAWAY', 'TA_CDLCLOSINGMARUBOZU', 'TA_CDLCONCEALBABYSWALL', 'TA_CDLCOUNTERATTACK', 'TA_CDLDARKCLOUDCOVER', 'TA_CDLDOJI', 'TA_CDLDOJISTAR', 'TA_CDLDRAGONFLYDOJI', 'TA_CDLENGULFING', 'TA_CDLEVENINGDOJISTAR', 'TA_CDLEVENINGSTAR', 'TA_CDLGAPSIDESIDEWHITE', 'TA_CDLGRAVESTONEDOJI', 'TA_CDLHAMMER', 'TA_CDLHANGINGMAN', 'TA_CDLHARAMI', 'TA_CDLHARAMICROSS', 'TA_CDLHIGHWAVE', 'TA_CDLHIKKAKE', 'TA_CDLHIKKAKEMOD', 'TA_CDLHOMINGPIGEON', 'TA_CDLIDENTICAL3CROWS', 'TA_CDLINNECK', 'TA_CDLINVERTEDHAMMER', 'TA_CDLKICKING', 'TA_CDLKICKINGBYLENGTH', 'TA_CDLLADDERBOTTOM', 'TA_CDLLONGLEGGEDDOJI', 'TA_CDLLONGLINE', 'TA_CDLMARUBOZU', 'TA_CDLMATCHINGLOW', 'TA_CDLMATHOLD', 'TA_CDLMORNINGDOJISTAR', 'TA_CDLMORNINGSTAR', 'TA_CDLONNECK', 'TA_CDLPIERCING', 'TA_CDLRICKSHAWMAN', 'TA_CDLRISEFALL3METHODS', 'TA_CDLSEPARATINGLINES', 'TA_CDLSHOOTINGSTAR', 'TA_CDLSHORTLINE', 'TA_CDLSPINNINGTOP', 'TA_CDLSTALLEDPATTERN', 'TA_CDLSTICKSANDWICH', 'TA_CDLTAKURI', 'TA_CDLTASUKIGAP', 'TA_CDLTHRUSTING', 'TA_CDLTRISTAR', 'TA_CDLUNIQUE3RIVER', 'TA_CDLUPSIDEGAP2CROWS', 'TA_CDLXSIDEGAP3METHODS', 'TA_CEIL', 'TA_CMO', 'TA_CORREL', 'TA_COS', 'TA_COSH', 'TA_DEMA', 'TA_DIV', 'TA_DX', 'TA_EMA', 'TA_EXP', 'TA_FLOOR', 'TA_HT_DCPERIOD', 'TA_HT_DCPHASE', 'TA_HT_PHASOR', 'TA_HT_SINE', 'TA_HT_TRENDLINE', 'TA_HT_TRENDMODE', 'TA_IMI', 'TA_KAMA', 'TA_LINEARREG', 'TA_LINEARREG_ANGLE', 'TA_LINEARREG_INTERCEPT', 'TA_LINEARREG_SLOPE', 'TA_LN', 'TA_LOG10', 'TA_MA', 'TA_MACD', 'TA_MACDEXT', 'TA_MACDFIX', 'TA_MAMA', 'TA_MAVP', 'TA_MAX', 'TA_MAXINDEX', 'TA_MEDPRICE', 'TA_MFI', 'TA_MIDPOINT', 'TA_MIDPRICE', 'TA_MIN', 'TA_MININDEX', 'TA_MINMAX', 'TA_MINMAXINDEX', 'TA_MINUS_DI', 'TA_MINUS_DM', 'TA_MOM', 'TA_MULT', 'TA_NATR', 'TA_OBV', 'TA_PLUS_DI', 'TA_PLUS_DM', 'TA_PPO', 'TA_ROC', 'TA_ROCP', 'TA_ROCR', 'TA_ROCR100', 'TA_RSI', 'TA_SAR', 'TA_SAREXT', 'TA_SIN', 'TA_SINH', 'TA_SMA', 'TA_SQRT', 'TA_STDDEV', 'TA_STOCH', 'TA_STOCHF', 'TA_STOCHRSI', 'TA_SUB', 'TA_SUM', 'TA_T3', 'TA_TAN', 'TA_TANH', 'TA_TEMA', 'TA_TRANGE', 'TA_TRIMA', 'TA_TRIX', 'TA_TSF', 'TA_TYPPRICE', 'TA_ULTOSC', 'TA_VAR', 'TA_WCLPRICE', 'TA_WILLR', 'TA_WMA', 'TC_FixedA', 'TC_FixedA2015', 'TC_FixedA2017', 'TC_TestStub', 'TC_Zero', 'TIME', 'TIMELINE', 'TIMELINEVOL', 'TR', 'TRACE', 'TURNOVER', 'TimeDelta', 'TimeLineList', 'TimeLineRecord', 'TradeCostBase', 'TradeManager', 'TradeRecord', 'TradeRecordList', 'TradeRequest', 'TransList', 'TransRecord', 'UPNDAY', 'UTCOffset', 'VAR', 'VARP', 'VIGOR', 'WARN', 'WEAVE', 'WEEK', 'WINNER', 'WITHDAY', 'WITHHALFYEAR', 'WITHHOUR', 'WITHHOUR2', 'WITHHOUR4', 'WITHKTYPE', 'WITHMIN', 'WITHMIN15', 'WITHMIN30', 'WITHMIN5', 'WITHMIN60', 'WITHMONTH', 'WITHQUARTER', 'WITHWEEK', 'WITHYEAR', 'WMA', 'YEAR', 'ZHBOND10', 'ZONGGUBEN', 'ZSCORE', 'active_device', 'backtest', 'batch_calculate_inds', 'bind_email', 'can_upgrade', 'check_data', 'close_ostream_to_python', 'close_spend_time', 'combinate_ind', 'combinate_index', 'constant', 'crtBrokerTM', 'crtSEOptimal', 'crtTM', 'crt_pf_strategy', 'crt_sys_strategy', 'dates_to_np', 'df_to_krecords', 'fetch_trial_license', 'find_optimal_system', 'find_optimal_system_multi', 'get_block', 'get_business_name', 'get_data_from_buffer_server', 'get_date_range', 'get_expire_date', 'get_funds_list', 'get_kdata', 'get_latest_version_info', 'get_log_level', 'get_spot_from_buffer_server', 'get_stock', 'get_system_part_enum', 'get_system_part_name', 'get_version', 'get_version_git', 'get_version_with_build', 'hikyuu_init', 'inner_analysis_sys_list', 'inner_combinate_ind_analysis', 'inner_combinate_ind_analysis_with_block', 'is_valid_license', 'isinf', 'isnan', 'krecords_to_df', 'krecords_to_np', 'open_ostream_to_python', 'open_spend_time', 'parallel_run_pf', 'parallel_run_sys', 'positions_to_df', 'positions_to_np', 'register_extra_ktype', 'release_extra_ktype', 'remove_license', 'roundDown', 'roundEx', 'roundUp', 'run_in_strategy', 'scorerecords_to_df', 'scorerecords_to_np', 'set_log_level', 'set_python_in_interactive', 'set_python_in_jupyter', 'spot_agent_is_connected', 'spot_agent_is_running', 'start_data_server', 'start_spot_agent', 'stop_data_server', 'stop_spot_agent', 'systemweights_to_df', 'systemweights_to_np', 'timeline_to_df', 'timeline_to_np', 'toPriceList', 'trades_to_df', 'trades_to_np', 'translist_to_df', 'translist_to_np', 'view_license', 'weights_to_df', 'weights_to_np']
7
7
  class AllocateFundsBase:
8
8
  """
9
9
  资产分配算法基类, 子类接口:
@@ -154,6 +154,8 @@ class BUSINESS:
154
154
 
155
155
  RETURN_STOCK
156
156
 
157
+ SUOGU
158
+
157
159
  INVALID
158
160
  """
159
161
  BONUS: typing.ClassVar[BUSINESS] # value = <BUSINESS.BONUS: 4>
@@ -167,12 +169,13 @@ class BUSINESS:
167
169
  CHECKOUT_STOCK: typing.ClassVar[BUSINESS] # value = <BUSINESS.CHECKOUT_STOCK: 8>
168
170
  GIFT: typing.ClassVar[BUSINESS] # value = <BUSINESS.GIFT: 3>
169
171
  INIT: typing.ClassVar[BUSINESS] # value = <BUSINESS.INIT: 0>
170
- INVALID: typing.ClassVar[BUSINESS] # value = <BUSINESS.INVALID: 15>
172
+ INVALID: typing.ClassVar[BUSINESS] # value = <BUSINESS.INVALID: 16>
171
173
  RETURN_CASH: typing.ClassVar[BUSINESS] # value = <BUSINESS.RETURN_CASH: 10>
172
174
  RETURN_STOCK: typing.ClassVar[BUSINESS] # value = <BUSINESS.RETURN_STOCK: 12>
173
175
  SELL: typing.ClassVar[BUSINESS] # value = <BUSINESS.SELL: 2>
174
176
  SELL_SHORT: typing.ClassVar[BUSINESS] # value = <BUSINESS.SELL_SHORT: 13>
175
- __members__: typing.ClassVar[dict[str, BUSINESS]] # value = {'INIT': <BUSINESS.INIT: 0>, 'BUY': <BUSINESS.BUY: 1>, 'SELL': <BUSINESS.SELL: 2>, 'BUY_SHORT': <BUSINESS.BUY_SHORT: 14>, 'SELL_SHORT': <BUSINESS.SELL_SHORT: 13>, 'GIFT': <BUSINESS.GIFT: 3>, 'BONUS': <BUSINESS.BONUS: 4>, 'CHECKIN': <BUSINESS.CHECKIN: 5>, 'CHECKOUT': <BUSINESS.CHECKOUT: 6>, 'CHECKIN_STOCK': <BUSINESS.CHECKIN_STOCK: 7>, 'CHECKOUT_STOCK': <BUSINESS.CHECKOUT_STOCK: 8>, 'BORROW_CASH': <BUSINESS.BORROW_CASH: 9>, 'RETURN_CASH': <BUSINESS.RETURN_CASH: 10>, 'BORROW_STOCK': <BUSINESS.BORROW_STOCK: 11>, 'RETURN_STOCK': <BUSINESS.RETURN_STOCK: 12>, 'INVALID': <BUSINESS.INVALID: 15>}
177
+ SUOGU: typing.ClassVar[BUSINESS] # value = <BUSINESS.SUOGU: 15>
178
+ __members__: typing.ClassVar[dict[str, BUSINESS]] # value = {'INIT': <BUSINESS.INIT: 0>, 'BUY': <BUSINESS.BUY: 1>, 'SELL': <BUSINESS.SELL: 2>, 'BUY_SHORT': <BUSINESS.BUY_SHORT: 14>, 'SELL_SHORT': <BUSINESS.SELL_SHORT: 13>, 'GIFT': <BUSINESS.GIFT: 3>, 'BONUS': <BUSINESS.BONUS: 4>, 'CHECKIN': <BUSINESS.CHECKIN: 5>, 'CHECKOUT': <BUSINESS.CHECKOUT: 6>, 'CHECKIN_STOCK': <BUSINESS.CHECKIN_STOCK: 7>, 'CHECKOUT_STOCK': <BUSINESS.CHECKOUT_STOCK: 8>, 'BORROW_CASH': <BUSINESS.BORROW_CASH: 9>, 'RETURN_CASH': <BUSINESS.RETURN_CASH: 10>, 'BORROW_STOCK': <BUSINESS.BORROW_STOCK: 11>, 'RETURN_STOCK': <BUSINESS.RETURN_STOCK: 12>, 'SUOGU': <BUSINESS.SUOGU: 15>, 'INVALID': <BUSINESS.INVALID: 16>}
176
179
  def __eq__(self, other: typing.Any) -> bool:
177
180
  ...
178
181
  def __getstate__(self) -> int:
@@ -220,7 +223,10 @@ class Block:
220
223
  def __init__(self) -> None:
221
224
  ...
222
225
  @typing.overload
223
- def __init__(self, arg0: str, arg1: str) -> None:
226
+ def __init__(self, category: str, name: str) -> None:
227
+ ...
228
+ @typing.overload
229
+ def __init__(self, category: str, name: str, index_code: str) -> None:
224
230
  ...
225
231
  @typing.overload
226
232
  def __init__(self, arg0: Block) -> None:
@@ -1175,9 +1181,6 @@ class DatetimeList:
1175
1181
  @staticmethod
1176
1182
  def to_pandas(data: DatetimeList):
1177
1183
  ...
1178
- @staticmethod
1179
- def to_pyarrow(data):
1180
- ...
1181
1184
  def __bool__(self) -> bool:
1182
1185
  """
1183
1186
  Check whether the list is nonempty
@@ -1969,8 +1972,6 @@ class Indicator:
1969
1972
  """
1970
1973
  转化为np.array, 如果为时间序列, 则包含 datetime 日期列
1971
1974
  """
1972
- def to_pyarrow(self) -> typing.Any:
1973
- ...
1974
1975
  def value_to_df(self) -> typing.Any:
1975
1976
  """
1976
1977
  转换为 DataFrame, 仅包含值
@@ -1979,8 +1980,6 @@ class Indicator:
1979
1980
  """
1980
1981
  仅转化值为np.array, 不包含日期列
1981
1982
  """
1982
- def value_to_pyarrow(self) -> typing.Any:
1983
- ...
1984
1983
  @property
1985
1984
  def discard(self) -> int:
1986
1985
  """
@@ -2293,8 +2292,6 @@ class KData:
2293
2292
  """
2294
2293
  将 KData 转换为 NumPy 数组
2295
2294
  """
2296
- def to_pyarrow(self) -> typing.Any:
2297
- ...
2298
2295
  def tocsv(self, arg0: str) -> None:
2299
2296
  """
2300
2297
  tocsv(self, filename)
@@ -2408,6 +2405,20 @@ class KDataDriver:
2408
2405
  """
2409
2406
  驱动名称
2410
2407
  """
2408
+ class KDataToClickHouseImporter:
2409
+ """
2410
+ K线数据导入器
2411
+ """
2412
+ def __init__(self) -> None:
2413
+ ...
2414
+ def remove(self, arg0: str, arg1: str, arg2: str, arg3: Datetime) -> None:
2415
+ """
2416
+ 删除指定时间及其之后的K线数据
2417
+ """
2418
+ def set_config(self, host: str, port: typing.SupportsInt = 9000, usr: str = 'default', pwd: str = '') -> bool:
2419
+ """
2420
+ 设置数据保存路径和数据源列表
2421
+ """
2411
2422
  class KDataToHdf5Importer:
2412
2423
  """
2413
2424
  K线数据导入器
@@ -2442,6 +2453,20 @@ class KDataToHdf5Importer:
2442
2453
  """
2443
2454
  更新索引
2444
2455
  """
2456
+ class KDataToMySQLImporter:
2457
+ """
2458
+ K线数据导入器
2459
+ """
2460
+ def __init__(self) -> None:
2461
+ ...
2462
+ def remove(self, arg0: str, arg1: str, arg2: str, arg3: Datetime) -> None:
2463
+ """
2464
+ 删除指定时间及其之后的K线数据
2465
+ """
2466
+ def set_config(self, host: str, port: typing.SupportsInt = 9000, usr: str = 'default', pwd: str = '') -> bool:
2467
+ """
2468
+ 设置数据保存路径和数据源列表
2469
+ """
2445
2470
  class KRecord:
2446
2471
  """
2447
2472
  K线记录,组成K线数据,属性可读写
@@ -2542,9 +2567,6 @@ class KRecordList:
2542
2567
  @staticmethod
2543
2568
  def to_pandas(data):
2544
2569
  ...
2545
- @staticmethod
2546
- def to_pyarrow(data):
2547
- ...
2548
2570
  def __bool__(self) -> bool:
2549
2571
  """
2550
2572
  Check whether the list is nonempty
@@ -3004,6 +3026,17 @@ class MultiFactorBase:
3004
3026
  ...
3005
3027
  def __str__(self) -> str:
3006
3028
  ...
3029
+ def add_special_normalize(self, name: str, norm: NormalizeBase = None, category: str = '', style_inds: collections.abc.Sequence[Indicator] = []) -> None:
3030
+ """
3031
+ add_special_normalize(self, name[, norm=None, category="", style_inds=[]])
3032
+
3033
+ 对指定名称的指标应用特定的标准化/归一化、行业中性化、风格因子中性化操作。标准化操作、行业中性化、风格因子中性化彼此无关,可同时指定也可分开指定。
3034
+
3035
+ :param str name: 特殊归一化方法名称
3036
+ :param Normalize norm: 特殊归一化方法
3037
+ :param str category: 行业中性化时,指定板块类别
3038
+ :param list[Indicator] style_inds: 用于中性化的风格指标列表
3039
+ """
3007
3040
  def clone(self) -> MultiFactorBase:
3008
3041
  """
3009
3042
  克隆操作
@@ -3025,7 +3058,14 @@ class MultiFactorBase:
3025
3058
  :return: ScoreRecordList
3026
3059
  """
3027
3060
  def get_all_src_factors(self) -> list[list[Indicator]]:
3028
- ...
3061
+ """
3062
+ get_all_src_factors(self)
3063
+
3064
+ 获取所有原始因子列表(如果指定了标准化、行业中性化, 返回为已处理的因子列表)
3065
+
3066
+ :rtype: list
3067
+ :return: list IndicatorList stks x inds
3068
+ """
3029
3069
  def get_datetime_list(self) -> DatetimeList:
3030
3070
  """
3031
3071
  获取参考日期列表(由参考证券通过查询条件获得)
@@ -3101,6 +3141,14 @@ class MultiFactorBase:
3101
3141
  """
3102
3142
  是否存在指定参数
3103
3143
  """
3144
+ def set_normalize(self, norm: typing.Any) -> None:
3145
+ """
3146
+ set_normalize(self, norm)
3147
+
3148
+ 设置标准化或归一化方法(影响全部因子)
3149
+
3150
+ :param NormalizeBase norm: 标准化或归一化方法实例
3151
+ """
3104
3152
  def set_param(self, arg0: str, arg1: any) -> None:
3105
3153
  """
3106
3154
  set_param(self, name, value)
@@ -3151,6 +3199,71 @@ class MultiFactorBase:
3151
3199
  @query.setter
3152
3200
  def query(self, arg1: Query) -> None:
3153
3201
  ...
3202
+ class NormalizeBase:
3203
+ """
3204
+ 用于 MF 的截面标准化操作
3205
+ """
3206
+ def __getstate__(self) -> tuple:
3207
+ ...
3208
+ @typing.overload
3209
+ def __init__(self) -> None:
3210
+ ...
3211
+ @typing.overload
3212
+ def __init__(self, arg0: NormalizeBase) -> None:
3213
+ ...
3214
+ @typing.overload
3215
+ def __init__(self, arg0: str) -> None:
3216
+ """
3217
+ 初始化构造函数
3218
+
3219
+ :param str name: 名称
3220
+ """
3221
+ def __repr__(self) -> str:
3222
+ ...
3223
+ def __setstate__(self, arg0: tuple) -> None:
3224
+ ...
3225
+ def __str__(self) -> str:
3226
+ ...
3227
+ def clone(self) -> NormalizeBase:
3228
+ """
3229
+ 克隆操作
3230
+ """
3231
+ def get_param(self, arg0: str) -> any:
3232
+ """
3233
+ get_param(self, name)
3234
+
3235
+ 获取指定的参数
3236
+
3237
+ :param str name: 参数名称
3238
+ :return: 参数值
3239
+ :raises out_of_range: 无此参数
3240
+ """
3241
+ def have_param(self, arg0: str) -> bool:
3242
+ """
3243
+ 是否存在指定参数
3244
+ """
3245
+ def normalize(self, arg0: collections.abc.Sequence[typing.SupportsFloat]) -> list[float]:
3246
+ """
3247
+ 【重载接口】子类计算接口
3248
+ """
3249
+ def set_param(self, arg0: str, arg1: any) -> None:
3250
+ """
3251
+ set_param(self, name, value)
3252
+
3253
+ 设置参数
3254
+
3255
+ :param str name: 参数名称
3256
+ :param value: 参数值
3257
+ :raises logic_error: Unsupported type! 不支持的参数类型
3258
+ """
3259
+ @property
3260
+ def name(self) -> str:
3261
+ """
3262
+ 名称
3263
+ """
3264
+ @name.setter
3265
+ def name(self, arg1: str) -> None:
3266
+ ...
3154
3267
  class OrderBrokerBase:
3155
3268
  """
3156
3269
  订单代理包装基类,用户可以参考自定义自己的订单代理,加入额外的处理
@@ -3414,6 +3527,10 @@ class Portfolio:
3414
3527
  """
3415
3528
  是否存在指定参数
3416
3529
  """
3530
+ def last_suggestion(self) -> typing.Any:
3531
+ """
3532
+ 回测完成后,返回最后一天交易记录,以及需要延迟的买入和卖出延迟请求
3533
+ """
3417
3534
  def reset(self) -> None:
3418
3535
  """
3419
3536
  复位操作
@@ -3444,7 +3561,7 @@ class Portfolio:
3444
3561
  设置或获取资产分配算法
3445
3562
  """
3446
3563
  @af.setter
3447
- def af(self, arg1: AllocateFundsBase) -> None:
3564
+ def af(self, arg1: typing.Any) -> None:
3448
3565
  ...
3449
3566
  @property
3450
3567
  def name(self) -> str:
@@ -3473,7 +3590,7 @@ class Portfolio:
3473
3590
  设置或获取交易对象选择算法
3474
3591
  """
3475
3592
  @se.setter
3476
- def se(self, arg1: SelectorBase) -> None:
3593
+ def se(self, arg1: typing.Any) -> None:
3477
3594
  ...
3478
3595
  @property
3479
3596
  def tm(self) -> TradeManager:
@@ -3481,7 +3598,7 @@ class Portfolio:
3481
3598
  设置或获取交易管理对象
3482
3599
  """
3483
3600
  @tm.setter
3484
- def tm(self, arg1: TradeManager) -> None:
3601
+ def tm(self, arg1: typing.Any) -> None:
3485
3602
  ...
3486
3603
  class PositionRecord:
3487
3604
  """
@@ -3704,8 +3821,6 @@ class PositionRecordList:
3704
3821
  ...
3705
3822
  def to_pandas(self):
3706
3823
  ...
3707
- def to_pyarrow(self):
3708
- ...
3709
3824
  class ProfitGoalBase:
3710
3825
  """
3711
3826
  盈利目标策略基类
@@ -3766,8 +3881,8 @@ class ProfitGoalBase:
3766
3881
 
3767
3882
  【重载接口】获取盈利目标价格,返回constant.null_price时,表示未限定目标;返回0意味着需要卖出
3768
3883
 
3769
- :param Datetime datetime: 买入时间
3770
- :param float price: 买入价格
3884
+ :param Datetime datetime: 当前时间
3885
+ :param float price: 当前价格
3771
3886
  :return: 目标价格
3772
3887
  :rtype: float
3773
3888
  """
@@ -4167,6 +4282,84 @@ class ScoreRecordList:
4167
4282
  ...
4168
4283
  def to_pandas(self):
4169
4284
  ...
4285
+ class ScoresFilterBase:
4286
+ """
4287
+ 用于 MF 的截面标准化操作
4288
+ """
4289
+ def __getstate__(self) -> tuple:
4290
+ ...
4291
+ @typing.overload
4292
+ def __init__(self) -> None:
4293
+ ...
4294
+ @typing.overload
4295
+ def __init__(self, arg0: ScoresFilterBase) -> None:
4296
+ ...
4297
+ @typing.overload
4298
+ def __init__(self, arg0: str) -> None:
4299
+ """
4300
+ 初始化构造函数
4301
+
4302
+ :param str name: 名称
4303
+ """
4304
+ def __or__(self, arg0: ScoresFilterBase) -> ScoresFilterBase:
4305
+ ...
4306
+ def __repr__(self) -> str:
4307
+ ...
4308
+ def __setstate__(self, arg0: tuple) -> None:
4309
+ ...
4310
+ def __str__(self) -> str:
4311
+ ...
4312
+ def _filter(self, arg0: ScoreRecordList, arg1: Datetime, arg2: Query) -> ScoreRecordList:
4313
+ """
4314
+ 【重载接口】子类计算接口
4315
+ """
4316
+ def clone(self) -> ScoresFilterBase:
4317
+ """
4318
+ 克隆操作
4319
+ """
4320
+ def filter(self, arg0: ScoreRecordList, arg1: Datetime, arg2: Query) -> ScoreRecordList:
4321
+ """
4322
+ filter(self, scores, date, query)
4323
+
4324
+ 截面过滤
4325
+ :param list scores: 截面数据
4326
+ :param Datetime date: 截面日期
4327
+ :param KQuery query: 查询参数
4328
+ :return: 截面数据
4329
+ :rtype: ScoreRecordList
4330
+ """
4331
+ def get_param(self, arg0: str) -> any:
4332
+ """
4333
+ get_param(self, name)
4334
+
4335
+ 获取指定的参数
4336
+
4337
+ :param str name: 参数名称
4338
+ :return: 参数值
4339
+ :raises out_of_range: 无此参数
4340
+ """
4341
+ def have_param(self, arg0: str) -> bool:
4342
+ """
4343
+ 是否存在指定参数
4344
+ """
4345
+ def set_param(self, arg0: str, arg1: any) -> None:
4346
+ """
4347
+ set_param(self, name, value)
4348
+
4349
+ 设置参数
4350
+
4351
+ :param str name: 参数名称
4352
+ :param value: 参数值
4353
+ :raises logic_error: Unsupported type! 不支持的参数类型
4354
+ """
4355
+ @property
4356
+ def name(self) -> str:
4357
+ """
4358
+ 名称
4359
+ """
4360
+ @name.setter
4361
+ def name(self, arg1: str) -> None:
4362
+ ...
4170
4363
  class SelectorBase:
4171
4364
  """
4172
4365
  选择器策略基类,实现标的、系统策略的评估和选取算法,自定义选择器策略子类接口:
@@ -4241,6 +4434,14 @@ class SelectorBase:
4241
4434
  """
4242
4435
  子类复位操作实现
4243
4436
  """
4437
+ def add_scores_filter(self, arg0: ScoresFilterBase) -> None:
4438
+ """
4439
+ add_scores_filter(self, filter)
4440
+
4441
+ 在已有过滤基础上新增过滤, 仅适用于 SE_MultiFactor
4442
+
4443
+ :param ScoresFilter filter: 新的过滤器
4444
+ """
4244
4445
  def add_stock(self, stock: Stock, sys: ...) -> None:
4245
4446
  """
4246
4447
  add_stock(self, stock, sys)
@@ -4323,6 +4524,19 @@ class SelectorBase:
4323
4524
  :param value: 参数值
4324
4525
  :raises logic_error: Unsupported type! 不支持的参数类型
4325
4526
  """
4527
+ def set_scores_filter(self, arg0: ScoresFilterBase) -> None:
4528
+ """
4529
+ set_scores_filter(self, filter)
4530
+
4531
+ 设置 ScoresFilter, 将替换现有的过滤器. 仅适用于 SE_MultiFactor
4532
+
4533
+ :param ScoresFilter filter: ScoresFilter
4534
+ """
4535
+ @property
4536
+ def mf(self) -> ...:
4537
+ """
4538
+ 获取关联的 MF
4539
+ """
4326
4540
  @property
4327
4541
  def name(self) -> str:
4328
4542
  """
@@ -4341,6 +4555,11 @@ class SelectorBase:
4341
4555
  """
4342
4556
  由 PF 运行时设定的实际运行系统列表
4343
4557
  """
4558
+ @property
4559
+ def scfilter(self) -> ScoresFilterBase:
4560
+ """
4561
+ 获取 ScoresFilter
4562
+ """
4344
4563
  class SignalBase:
4345
4564
  """
4346
4565
  信号指示器基类
@@ -4943,7 +5162,7 @@ class Stock:
4943
5162
 
4944
5163
  :param Query.KType ktype: K线类型
4945
5164
  """
4946
- def set_kdata_from_df(self, df: typing.Any, cols: collections.abc.Sequence[str], ktype: str = 'DAY') -> None:
5165
+ def set_kdata_from_df(self, df: typing.Any, cols: collections.abc.Sequence[str] = ['datetime', 'open', 'high', 'low', 'close', 'amount', 'volume'], ktype: str = 'DAY') -> None:
4947
5166
  """
4948
5167
  set_kdata_from_df(self, df, cols, [ktype=Query.DAY])
4949
5168
 
@@ -5137,6 +5356,10 @@ class StockManager:
5137
5356
  :return: 加入的Stock
5138
5357
  :rtype: Stock
5139
5358
  """
5359
+ def cancel_load(self) -> None:
5360
+ """
5361
+ 取消所有数据加载
5362
+ """
5140
5363
  def datadir(self) -> str:
5141
5364
  """
5142
5365
  datadir(self) -> str
@@ -5172,10 +5395,29 @@ class StockManager:
5172
5395
  :return: 板块列表
5173
5396
  :rtype: BlockList
5174
5397
  """
5398
+ def get_block_list_by_index_stock(self, index_stk: ...) -> list[...]:
5399
+ """
5400
+ get_block_list_by_index_stock(self, index_stk)
5401
+
5402
+ 获取指定指数的板块列表
5403
+
5404
+ :param Stock index_stk: 指数
5405
+ :return: 板块列表
5406
+ :rtype: BlockList
5407
+ """
5175
5408
  def get_block_parameter(self) -> ...:
5176
5409
  """
5177
5410
  获取当前板块信息驱动参数
5178
5411
  """
5412
+ def get_category_list(self) -> list[str]:
5413
+ """
5414
+ get_category_list(self)
5415
+
5416
+ 获取所有板块分类
5417
+
5418
+ :return: 所有板块分类
5419
+ :rtype: StringList
5420
+ """
5179
5421
  def get_context(self) -> StrategyContext:
5180
5422
  """
5181
5423
  获取当前上下文
@@ -5524,9 +5766,6 @@ class StockWeightList:
5524
5766
  @staticmethod
5525
5767
  def to_pandas(data):
5526
5768
  ...
5527
- @staticmethod
5528
- def to_pyarrow(data):
5529
- ...
5530
5769
  def __bool__(self) -> bool:
5531
5770
  """
5532
5771
  Check whether the list is nonempty
@@ -6111,6 +6350,10 @@ class System:
6111
6350
  """
6112
6351
  是否存在指定参数
6113
6352
  """
6353
+ def last_suggestion(self) -> typing.Any:
6354
+ """
6355
+ 回测完成后,返回最后一天交易记录,以及需要延迟的买入和卖出延迟请求
6356
+ """
6114
6357
  def ready(self) -> None:
6115
6358
  ...
6116
6359
  def reset(self) -> None:
@@ -6157,7 +6400,7 @@ class System:
6157
6400
  系统有效条件
6158
6401
  """
6159
6402
  @cn.setter
6160
- def cn(self, arg1: ConditionBase) -> None:
6403
+ def cn(self, arg1: typing.Any) -> None:
6161
6404
  ...
6162
6405
  @property
6163
6406
  def ev(self) -> EnvironmentBase:
@@ -6165,7 +6408,7 @@ class System:
6165
6408
  市场环境判断策略
6166
6409
  """
6167
6410
  @ev.setter
6168
- def ev(self, arg1: EnvironmentBase) -> None:
6411
+ def ev(self, arg1: typing.Any) -> None:
6169
6412
  ...
6170
6413
  @property
6171
6414
  def mm(self) -> MoneyManagerBase:
@@ -6173,7 +6416,7 @@ class System:
6173
6416
  资金管理策略
6174
6417
  """
6175
6418
  @mm.setter
6176
- def mm(self, arg1: MoneyManagerBase) -> None:
6419
+ def mm(self, arg1: typing.Any) -> None:
6177
6420
  ...
6178
6421
  @property
6179
6422
  def name(self) -> str:
@@ -6189,7 +6432,7 @@ class System:
6189
6432
  盈利目标策略
6190
6433
  """
6191
6434
  @pg.setter
6192
- def pg(self, arg1: ProfitGoalBase) -> None:
6435
+ def pg(self, arg1: typing.Any) -> None:
6193
6436
  ...
6194
6437
  @property
6195
6438
  def query(self) -> Query:
@@ -6202,7 +6445,7 @@ class System:
6202
6445
  信号指示器
6203
6446
  """
6204
6447
  @sg.setter
6205
- def sg(self, arg1: SignalBase) -> None:
6448
+ def sg(self, arg1: typing.Any) -> None:
6206
6449
  ...
6207
6450
  @property
6208
6451
  def sp(self) -> SlippageBase:
@@ -6210,7 +6453,7 @@ class System:
6210
6453
  移滑价差算法
6211
6454
  """
6212
6455
  @sp.setter
6213
- def sp(self, arg1: SlippageBase) -> None:
6456
+ def sp(self, arg1: typing.Any) -> None:
6214
6457
  ...
6215
6458
  @property
6216
6459
  def st(self) -> StoplossBase:
@@ -6218,7 +6461,7 @@ class System:
6218
6461
  止损策略
6219
6462
  """
6220
6463
  @st.setter
6221
- def st(self, arg1: StoplossBase) -> None:
6464
+ def st(self, arg1: typing.Any) -> None:
6222
6465
  ...
6223
6466
  @property
6224
6467
  def tm(self) -> TradeManager:
@@ -6226,7 +6469,7 @@ class System:
6226
6469
  关联的交易管理实例
6227
6470
  """
6228
6471
  @tm.setter
6229
- def tm(self, arg1: TradeManager) -> None:
6472
+ def tm(self, arg1: typing.Any) -> None:
6230
6473
  ...
6231
6474
  @property
6232
6475
  def to(self) -> KData:
@@ -6242,7 +6485,7 @@ class System:
6242
6485
  止盈策略
6243
6486
  """
6244
6487
  @tp.setter
6245
- def tp(self, arg1: StoplossBase) -> None:
6488
+ def tp(self, arg1: typing.Any) -> None:
6246
6489
  ...
6247
6490
  class SystemPart:
6248
6491
  """
@@ -6711,9 +6954,6 @@ class TimeLineList:
6711
6954
  @staticmethod
6712
6955
  def to_pandas(data):
6713
6956
  ...
6714
- @staticmethod
6715
- def to_pyarrow(data):
6716
- ...
6717
6957
  def __bool__(self) -> bool:
6718
6958
  """
6719
6959
  Check whether the list is nonempty
@@ -7661,8 +7901,6 @@ class TradeRecordList:
7661
7901
  ...
7662
7902
  def to_pandas(self):
7663
7903
  ...
7664
- def to_pyarrow(self):
7665
- ...
7666
7904
  class TradeRequest:
7667
7905
  """
7668
7906
  交易请求记录。系统内部在实现延迟操作时登记的交易请求信息。暴露该结构的主要目的是用于
@@ -7743,9 +7981,6 @@ class TransList:
7743
7981
  @staticmethod
7744
7982
  def to_pandas(data):
7745
7983
  ...
7746
- @staticmethod
7747
- def to_pyarrow(data):
7748
- ...
7749
7984
  def __bool__(self) -> bool:
7750
7985
  """
7751
7986
  Check whether the list is nonempty
@@ -7957,6 +8192,14 @@ def AF_EqualWeight() -> AllocateFundsBase:
7957
8192
 
7958
8193
  等权重资产分配,对选中的资产进行等比例分配
7959
8194
  """
8195
+ def AF_FixedAmount(amount: typing.SupportsFloat = 20000.0) -> AllocateFundsBase:
8196
+ """
8197
+ AF_FixedAmount(amount)
8198
+
8199
+ 等金额资产分配,对选中的资产进行等金额分配
8200
+
8201
+ :param float amount: 交易最大金额
8202
+ """
7960
8203
  def AF_FixedWeight(weight: typing.SupportsFloat = 0.1) -> AllocateFundsBase:
7961
8204
  """
7962
8205
  AF_FixedWeight(weight)
@@ -7983,6 +8226,26 @@ def AGG_COUNT(ind: Indicator, ktype: str = 'MIN', fill_null: bool = False, unit:
7983
8226
  """
7984
8227
  聚合函数: 非空值计数, 可参考 AGG_STD 帮助
7985
8228
  """
8229
+ def AGG_FUNC(ind: Indicator, agg_func: typing.Any, ktype: str = 'MIN', fill_null: bool = False, unit: typing.SupportsInt = 1) -> Indicator:
8230
+ """
8231
+ AGG_FUNC(ind, agg_func[, ktype=Query.MIN, fill_null=False, unit=1]
8232
+
8233
+ 使用自定函数聚合其他K线周期的指标。虽然支持python自定义函数, 但python函数需要GIL, 速度会慢。建议最好直接使用 C++ 自定义聚合函数。
8234
+
8235
+ 示例, 计算日线时聚合分钟线收盘价的和:
8236
+
8237
+ >>> kdata = get_kdata('sh600000', Query(Datetime(20250101), ktype=Query.DAY))
8238
+ >>> ind = AGG_FUNC(CLOSE(), lambda ds, x: np.sum(x))
8239
+ >>> ind(k)
8240
+
8241
+ :param Indicator ind: 待计算指标
8242
+ :param callable agg_func: 自定义聚合函数,输入参数为 arg1: datetime list, arg2: numpy array, 返回针对list的聚合结果, 注意是单个值
8243
+ :param KQuery.KType ktype: 聚合的K线周期
8244
+ :param bool fill_null: 是否填充缺失值
8245
+ :param int unit: 聚合周期单位 (上下文K线分组单位, 使用日线计算分钟线聚合时, unit=2代表聚合2天的分钟线)
8246
+ :return: 聚合结果
8247
+ :rtype: Indicator
8248
+ """
7986
8249
  def AGG_MAD(ind: Indicator, ktype: str = 'MIN', fill_null: bool = False, unit: typing.SupportsInt = 1) -> Indicator:
7987
8250
  """
7988
8251
  聚合函数: 平均绝对偏差, 可参考 AGG_STD 帮助
@@ -8061,6 +8324,19 @@ def AGG_VAR(ind: Indicator, ktype: str = 'MIN', fill_null: bool = False, unit: t
8061
8324
  :return: 指标数据
8062
8325
  :rtype: Indicator
8063
8326
  """
8327
+ def AGG_VWAP(ktype: str = 'MIN', fill_null: bool = False, unit: typing.SupportsInt = 1) -> Indicator:
8328
+ """
8329
+ AGG_VWAP([ktype=Query.MIN, fill_null=False, unit=1])
8330
+
8331
+ 聚合其他K线成交量加权平均价格(Volume Weighted Average Price)
8332
+ VWAP 是成交量加权的平均价格,计算方式是将每一分钟(或单位时间)的成交量乘以该分钟的成交价格,然后对所有乘积求和,最后除以总成交量。
8333
+
8334
+ :param KQuery.KType ktype: 聚合的K线周期
8335
+ :param bool fill_null: 是否填充缺失值
8336
+ :param int unit: 聚合周期单位 (上下文K线分组单位, 使用日线计算分钟线聚合时, unit=2代表聚合2天的分钟线)
8337
+ :return: 指标数据
8338
+ :rtype: Indicator
8339
+ """
8064
8340
  @typing.overload
8065
8341
  def ALIGN(ref: DatetimeList, fill_null: bool = True) -> Indicator:
8066
8342
  ...
@@ -8958,6 +9234,48 @@ def FLOOR(arg0: typing.SupportsFloat) -> Indicator:
8958
9234
  :param data: 输入数据
8959
9235
  :rtype: Indicator
8960
9236
  """
9237
+ def GROUP_COUNT(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9238
+ """
9239
+ 分组累积计数
9240
+ """
9241
+ def GROUP_FUNC(ind: Indicator, group_func: typing.Any, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9242
+ """
9243
+ GROUP_FUNC(ind, group_func[, ktype=Query.DAY, unit=1])
9244
+
9245
+ 自定义分组累积计算指标。虽然支持python自定义函数, 但python函数需要GIL, 速度较慢。建议最好直接使用 C++ 自定义分组累积函数。
9246
+
9247
+ 示例, 计算日线时聚合分钟线收盘价的和:
9248
+
9249
+ >>> kdata = get_kdata('sh600000', Query(Datetime(20250101), ktype=Query.DAY))
9250
+ >>> ind = GROUP_FUNC(CLOSE(), lambda dates, data: data/2.0)
9251
+ >>> ind(k)
9252
+
9253
+ :param Indicator ind: 待计算指标
9254
+ :param callable group_func: 自定义分组累积函数,输入参数为 arg1: datetime list, arg2: numpy array, 返回和输入等长的累积计算结果, 类型同样须为 np.array
9255
+ :param KQuery.KType ktype: 分组的K线周期
9256
+ :param int unit: 分组周期单位 (分组的K线周期单位, 使用日线计算分钟线, unit=2代表按2天累积计算的分钟线)
9257
+ :rtype: Indicator
9258
+ """
9259
+ def GROUP_MAX(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9260
+ """
9261
+ 分组累积最大值
9262
+ """
9263
+ def GROUP_MEAN(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9264
+ """
9265
+ 分组累积平均
9266
+ """
9267
+ def GROUP_MIN(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9268
+ """
9269
+ 分组累积最小值
9270
+ """
9271
+ def GROUP_PROD(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9272
+ """
9273
+ 分组累积乘积
9274
+ """
9275
+ def GROUP_SUM(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9276
+ """
9277
+ 分组累积和
9278
+ """
8961
9279
  @typing.overload
8962
9280
  def HHV(n: typing.SupportsInt = 20) -> Indicator:
8963
9281
  ...
@@ -9712,13 +10030,13 @@ def MF_Weight() -> MultiFactorBase:
9712
10030
  @typing.overload
9713
10031
  def MF_Weight(inds: collections.abc.Sequence, stks: collections.abc.Sequence, weights: collections.abc.Sequence, query: Query, ref_stk: typing.Any = None, ic_n: typing.SupportsInt = 5, spearman: bool = True, mode: typing.SupportsInt = 0, save_all_factors: bool = False) -> MultiFactorBase:
9714
10032
  """
9715
- MF_EqualWeight(inds, stks, query, ref_stk[, ic_n=5])
10033
+ MF_Weight(inds, stks, weights, query, ref_stk[, ic_n=5, spearman=True, mode=0, save_all_factors=False])
9716
10034
 
9717
10035
  按指定权重合成因子 = ind1 * weight1 + ind2 * weight2 + ... + indn * weightn
9718
10036
 
9719
10037
  :param sequense(Indicator) inds: 原始因子列表
9720
- :param sequense(float) weights: 权重列表(需和 inds 等长)
9721
10038
  :param sequense(stock) stks: 计算证券列表
10039
+ :param sequense(float) weights: 权重列表(需和 inds 等长)
9722
10040
  :param Query query: 日期范围
9723
10041
  :param Stock ref_stk: 参考证券 (未指定时,默认为 sh000300 沪深300)
9724
10042
  :param int ic_n: 默认 IC 对应的 N 日收益率
@@ -9929,6 +10247,36 @@ def NDAY(x: Indicator, y: Indicator, n: IndParam) -> Indicator:
9929
10247
  :param int|Indicator|IndParam n: 时间窗口
9930
10248
  :rtype: Indicator
9931
10249
  """
10250
+ def NORM_MinMax() -> NormalizeBase:
10251
+ """
10252
+ 最小-最大标准化操作
10253
+ """
10254
+ def NORM_NOTHING() -> NormalizeBase:
10255
+ """
10256
+ 无截面标准化操作
10257
+ """
10258
+ def NORM_Quantile(quantile_min: typing.SupportsFloat = 0.01, quantile_max: typing.SupportsFloat = 0.99) -> NormalizeBase:
10259
+ """
10260
+ 分位数截面标准化操作
10261
+
10262
+ :param quantile_min: 最小分位数
10263
+ :param quantile_max: 最大分位数
10264
+ """
10265
+ def NORM_Quantile_Uniform(quantile_min: typing.SupportsFloat = 0.01, quantile_max: typing.SupportsFloat = 0.99) -> NormalizeBase:
10266
+ """
10267
+ 分位数截面均匀分布标准化操作
10268
+
10269
+ :param quantile_min: 最小分位数
10270
+ :param quantile_max: 最大分位数
10271
+ """
10272
+ def NORM_Zscore(out_extreme: bool = False, nsigma: typing.SupportsFloat = 3.0, recursive: bool = False) -> NormalizeBase:
10273
+ """
10274
+ Z-score 标准化操作
10275
+
10276
+ :param out_extreme: 是否剔除异常值
10277
+ :param nsigma: 异常值判断倍数±3.0
10278
+ :param recursive: 是否递归处理异常值
10279
+ """
9932
10280
  @typing.overload
9933
10281
  def NOT() -> Indicator:
9934
10282
  ...
@@ -9942,7 +10290,7 @@ def NOT(arg0: Indicator) -> Indicator:
9942
10290
  :param Indicator data: 输入数据
9943
10291
  :rtype: Indicator
9944
10292
  """
9945
- def PF_Simple(tm: TradeManager = None, se: SelectorBase = ..., af: AllocateFundsBase = ..., adjust_cycle: typing.SupportsInt = 1, adjust_mode: str = 'query', delay_to_trading_day: bool = True) -> Portfolio:
10293
+ def PF_Simple(tm: typing.Any = None, se: typing.Any = ..., af: typing.Any = ..., adjust_cycle: typing.SupportsInt = 1, adjust_mode: str = 'query', delay_to_trading_day: bool = True) -> Portfolio:
9946
10294
  """
9947
10295
  PF_Simple([tm, se, af, adjust_cycle=1, adjust_mode="query", delay_to_trading_day=True])
9948
10296
 
@@ -9965,7 +10313,7 @@ def PF_Simple(tm: TradeManager = None, se: SelectorBase = ..., af: AllocateFunds
9965
10313
  :param str adjust_mode: 调仓模式
9966
10314
  :param bool delay_to_trading_day: 如果当日不是交易日将会被顺延至当前周期内的第一个交易日
9967
10315
  """
9968
- def PF_WithoutAF(tm: TradeManager = None, se: SelectorBase = ..., adjust_cycle: typing.SupportsInt = 1, adjust_mode: str = 'query', delay_to_trading_day: bool = True, trade_on_close: bool = True, sys_use_self_tm: bool = False, sell_at_not_selected: bool = False) -> Portfolio:
10316
+ def PF_WithoutAF(tm: typing.Any = None, se: typing.Any = ..., adjust_cycle: typing.SupportsInt = 1, adjust_mode: str = 'query', delay_to_trading_day: bool = True, trade_on_close: bool = True, sys_use_self_tm: bool = False, sell_at_not_selected: bool = False) -> Portfolio:
9969
10317
  """
9970
10318
  PF_WithoutAF([tm, se, adjust_cycle=1, adjust_mode="query", delay_to_trading_day=True, trade_on_close=True, sys_use_self_tm=False,sell_at_not_selected=False])
9971
10319
 
@@ -10067,6 +10415,22 @@ def PRICELIST(data: typing.Any = None, discard: typing.SupportsInt = 0, align_da
10067
10415
  :rtype: Indicator
10068
10416
  """
10069
10417
  @typing.overload
10418
+ def QUANTILE_TRUNC(n: typing.SupportsInt = 60, quantial_min: typing.SupportsFloat = 0.01, quantial_max: typing.SupportsFloat = 0.99) -> Indicator:
10419
+ ...
10420
+ @typing.overload
10421
+ def QUANTILE_TRUNC(data: Indicator, n: typing.SupportsInt = 60, quantial_min: typing.SupportsFloat = 0.01, quantial_max: typing.SupportsFloat = 0.99) -> Indicator:
10422
+ """
10423
+ QUANTILE_TRUNC(data[, n=60, quantial_min=0.01, quantial_max=0.99])
10424
+
10425
+ 对数据进行分位数截断处理。非窗口滚动。
10426
+
10427
+ :param Indicator data: 待剔除异常值数据
10428
+ :param int n: 时间窗口
10429
+ :param float quantial_min: 剔除极值时使用的百分位数下限,默认 0.01
10430
+ :param float quantial_max: 剔除极值时使用的百分位数上限,默认 0.99
10431
+ :rtype: Indicator
10432
+ """
10433
+ @typing.overload
10070
10434
  def RANK(stks: collections.abc.Sequence, mode: typing.SupportsInt = 0, fill_null: bool = True, market: str = 'SH') -> Indicator:
10071
10435
  ...
10072
10436
  @typing.overload
@@ -10424,6 +10788,59 @@ def SAFTYLOSS(data: Indicator, n1: Indicator, n2: Indicator, p: Indicator) -> In
10424
10788
  :param float|Indicator|IndParam p: 噪音系数
10425
10789
  :rtype: Indicator
10426
10790
  """
10791
+ def SCFilter_AmountLimit(min_amount_percent_limit: typing.SupportsFloat = 0.1) -> ScoresFilterBase:
10792
+ """
10793
+ SCFilter_AmountLimit([min_amount_percent_limit: float = 0.1])
10794
+
10795
+ 过滤掉成交金额在评分列表末尾百分比范围内的截面
10796
+
10797
+ 注意:和传入的截面评分列表顺序相关,如果是降序,过滤的是成交金额较小的系统评分记录;反之,则是金额较大的系统评分记录
10798
+
10799
+ :param double min_amount_percent_limit: 最小金额百分比限制
10800
+ :return: 截面过滤器
10801
+ :rtype: ScoresFilterPtr
10802
+ """
10803
+ def SCFilter_Group(group: typing.SupportsInt = 10, group_index: typing.SupportsInt = 0) -> ScoresFilterBase:
10804
+ """
10805
+ SCFilter_Group([group: int=10, group_index: int=0])
10806
+
10807
+ 按截面进行分组过滤
10808
+ :param int group: 分组数量
10809
+ :param int group_index: 分组索引
10810
+ :return: 截面过滤器
10811
+ :rtype: ScoresFilterPtr
10812
+ """
10813
+ def SCFilter_IgnoreNan() -> ScoresFilterBase:
10814
+ """
10815
+ SCFilter_IgnoreNan() -> ScoresFilterPtr
10816
+
10817
+ 忽略截面中的NAN值
10818
+ """
10819
+ def SCFilter_LessOrEqualValue(value: typing.SupportsFloat = 0.0) -> ScoresFilterBase:
10820
+ """
10821
+ SCFilter_LessOrEqualValue([value = 0.0])
10822
+
10823
+ 过滤掉评分小于等于指定值的截面
10824
+ """
10825
+ def SCFilter_Price(min_price: typing.SupportsFloat = 10.0, max_price: typing.SupportsFloat = 100000.0) -> ScoresFilterBase:
10826
+ """
10827
+ SCFilter_Price([min_price = 10., max_price = 100000.])
10828
+
10829
+ 仅保留价格在 [min_price, max_price] 之间的标的
10830
+
10831
+ 注意:和传入的截面评分列表顺序相关,如果是降序,过滤的是价格较小的系统评分记录;反之,则是价格较大的系统评分记录
10832
+
10833
+ :param double min_price: 最小价格限制
10834
+ :param double max_price: 最大价格限制
10835
+ """
10836
+ def SCFilter_TopN(topn: typing.SupportsInt = 10) -> ScoresFilterBase:
10837
+ """
10838
+ SCFilter_TopN([topn: int=10])
10839
+
10840
+ 获取评分列表中的前 topn 个
10841
+
10842
+ :param int topn: 前 topn 个
10843
+ """
10427
10844
  def SE_EvaluateOptimal(arg0: typing.Any) -> SelectorBase:
10428
10845
  """
10429
10846
  SE_EvaluateOptimal(evalulate_func)
@@ -10474,6 +10891,27 @@ def SE_MultiFactor(inds: collections.abc.Sequence, topn: typing.SupportsInt = 10
10474
10891
  :param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
10475
10892
  :param str mode: "MF_ICIRWeight" | "MF_ICWeight" | "MF_EqualWeight" 因子合成算法名称
10476
10893
  """
10894
+ @typing.overload
10895
+ def SE_MultiFactor2(mf: ..., filter: ScoresFilterBase = ...) -> SelectorBase:
10896
+ ...
10897
+ @typing.overload
10898
+ def SE_MultiFactor2(inds: collections.abc.Sequence, ic_n: typing.SupportsInt = 5, ic_rolling_n: typing.SupportsInt = 120, ref_stk: typing.Any = None, spearman: bool = True, mode: str = 'MF_ICIRWeight', filter: ScoresFilterBase = ...) -> SelectorBase:
10899
+ """
10900
+ SE_MultiFactor2([inds, ic_n, ic_rolling_n, ref_stk, spearman, mode, filter])
10901
+
10902
+ 创建基于多因子评分的选择器,两种创建方式
10903
+
10904
+ - 直接指定 MF:
10905
+ :param MultiFactorBase mf: 直接指定的多因子合成算法
10906
+
10907
+ - 参数直接创建:
10908
+ :param sequense(Indicator) inds: 原始因子列表
10909
+ :param int ic_n: 默认 IC 对应的 N 日收益率
10910
+ :param int ic_rolling_n: IC 滚动周期
10911
+ :param Stock ref_stk: 参考证券 (未指定时,默认为 sh000300 沪深300)
10912
+ :param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
10913
+ :param str mode: "MF_ICIRWeight" | "MF_ICWeight" | "MF_EqualWeight" 因子合成算法名称
10914
+ """
10477
10915
  def SE_PerformanceOptimal(key: str = '帐户平均年收益率%', mode: typing.SupportsInt = 0) -> SelectorBase:
10478
10916
  """
10479
10917
  SE_PerformanceOptimal(key="帐户平均年收益率%", mode=0)
@@ -10884,6 +11322,48 @@ def SP_FixedValue(value: typing.SupportsFloat = 0.01) -> SlippageBase:
10884
11322
  :param float p: 偏移价格
10885
11323
  :return: 移滑价差算法实例
10886
11324
  """
11325
+ def SP_LogNormal(mean: typing.SupportsFloat = 0.0, stddev: typing.SupportsFloat = 0.05) -> SlippageBase:
11326
+ """
11327
+ SP_LogNormal([mean=0.0, stddev=0.05])
11328
+
11329
+ 对数正态分布随机价格移滑价差算法, 买入和卖出操作是价格在对数正态分布[mean, stddev]范围内的随机偏移
11330
+
11331
+ :param float mean: 对数正态分布的均值
11332
+ :param float stddev: 对数正态分布的标准差
11333
+ :return: 移滑价差算法实例
11334
+ """
11335
+ def SP_Normal(mean: typing.SupportsFloat = 0.0, stddev: typing.SupportsFloat = 0.05) -> SlippageBase:
11336
+ """
11337
+ SP_Normal([mean=0.0, stddev=0.05])
11338
+
11339
+ 正态分布随机价格移滑价差算法, 买入和卖出操作是价格在正态分布[mean, stddev]范围内的随机偏移
11340
+
11341
+ :param float mean: 正态分布的均值
11342
+ :param float stddev: 正态分布的标准差
11343
+ :return: 移滑价差算法实例
11344
+ """
11345
+ def SP_TruncNormal(mean: typing.SupportsFloat = 0.0, stddev: typing.SupportsFloat = 0.05, min_value: typing.SupportsFloat = -0.11, max_value: typing.SupportsFloat = 0.1) -> SlippageBase:
11346
+ """
11347
+ SP_TruncNormal([mean=0.0, stddev=0.05, min_value=-0.1, max_value=0.1])
11348
+
11349
+ 截断正态分布随机价格移滑价差算法, 买入和卖出操作是价格在截断正态分布[mean, stddev, min_value, max_value]范围内的随机偏移
11350
+
11351
+ :param float mean: 截断正态分布的均值
11352
+ :param float stddev: 截断正态分布的标准差
11353
+ :param float min_value: 最小截断值
11354
+ :param float max_value: 最大截断值
11355
+ :return: 移滑价差算法实例
11356
+ """
11357
+ def SP_Uniform(min_value: typing.SupportsFloat = -0.05, max_value: typing.SupportsFloat = 0.05) -> SlippageBase:
11358
+ """
11359
+ SP_Uniform([min_value=-0.05, max_value=0.05])
11360
+
11361
+ 均匀分布随机价格移滑价差算法, 买入和卖出操作是价格在[min_value, max_value]范围内的均匀分布随机偏移
11362
+
11363
+ :param float min_value: 最小偏移价格
11364
+ :param float max_value: 最大偏移价格
11365
+ :return: 移滑价差算法实例
11366
+ """
10887
11367
  @typing.overload
10888
11368
  def SQRT() -> Indicator:
10889
11369
  ...
@@ -13573,7 +14053,7 @@ def ZSCORE(data: Indicator, out_extreme: bool = False, nsigma: typing.SupportsFl
13573
14053
  """
13574
14054
  ZSCORE(data[, out_extreme, nsigma, recursive])
13575
14055
 
13576
- 对数据进行标准化(归一),可选进行极值排除
14056
+ 对数据进行标准化(归一),可选进行极值处理
13577
14057
 
13578
14058
  注:非窗口滚动,如需窗口滚动的标准化,直接 (x - MA(x, n)) / STDEV(x, n) 即可。
13579
14059
 
@@ -13627,8 +14107,21 @@ def batch_calculate_inds(arg0: collections.abc.Sequence, arg1: KData) -> list:
13627
14107
  :return: 指标计算结果列表
13628
14108
  :rtype: list
13629
14109
  """
14110
+ def bind_email(arg0: str, arg1: str) -> None:
14111
+ """
14112
+ bind_email(email: str, code: str)
14113
+
14114
+ 绑定邮箱和授权码
14115
+
14116
+ :param str email: 邮箱地址
14117
+ :param str code: 授权码
14118
+ """
13630
14119
  def can_upgrade() -> bool:
13631
14120
  ...
14121
+ def check_data(stock_list: collections.abc.Sequence, start_date: Datetime, end_date: Datetime, ktype: str) -> tuple:
14122
+ """
14123
+ 检查数据
14124
+ """
13632
14125
  def close_ostream_to_python() -> None:
13633
14126
  ...
13634
14127
  def close_spend_time() -> None:
@@ -13687,10 +14180,6 @@ def dates_to_np(arg0: DatetimeList) -> numpy.ndarray:
13687
14180
  """
13688
14181
  将 DatetimeList 转换为 NumPy 元组
13689
14182
  """
13690
- def dates_to_pa(arg0: DatetimeList) -> typing.Any:
13691
- """
13692
- 将日期列表转换为 pyarrow.Table 对象
13693
- """
13694
14183
  def df_to_krecords(df: typing.Any, columns: collections.abc.Sequence[str] = ['datetime', 'open', 'high', 'low', 'close', 'amount', 'volume']) -> KRecordList:
13695
14184
  """
13696
14185
  df_to_krecords(df: pd.DataFrame[, columns: dict]) -> KRecordList
@@ -13704,7 +14193,7 @@ def df_to_krecords(df: typing.Any, columns: collections.abc.Sequence[str] = ['da
13704
14193
  def fetch_trial_license(arg0: str) -> str:
13705
14194
  """
13706
14195
  fetch_trial_license(email: str)
13707
-
14196
+
13708
14197
  获取试用授权码
13709
14198
 
13710
14199
  :param str email: 邮箱地址
@@ -13752,38 +14241,23 @@ def get_date_range(start: Datetime, end: Datetime) -> DatetimeList:
13752
14241
  :param Datetime end: 结束日期
13753
14242
  :rtype: DatetimeList
13754
14243
  """
13755
- @typing.overload
13756
- def get_inds_view(stks: collections.abc.Sequence, inds: collections.abc.Sequence[Indicator], query: Query, market: str = 'SH') -> typing.Any:
13757
- ...
13758
- @typing.overload
13759
- def get_inds_view(stks: collections.abc.Sequence, inds: collections.abc.Sequence[Indicator], date: Datetime, cal_len: typing.SupportsInt = 100, ktype: str = 'DAY', market: str = 'SH') -> typing.Any:
14244
+ def get_expire_date() -> Datetime:
14245
+ """
14246
+ get_expire_date() -> Datetime
14247
+
14248
+ 查看授权到期时间
13760
14249
  """
13761
- get_inds_view(stks, inds, date[, cal_len=100, ktype=Query.DAY, market='SH']) -> pandas.DataFrame)
14250
+ def get_funds_list(arg0: collections.abc.Sequence[TradeManager], arg1: DatetimeList) -> list[list[FundsRecord]]:
14251
+ """
14252
+ get_funds_list(tm_list: list, ref_dates: DatetimeList) -> list[Funds])
13762
14253
 
13763
- 方式1: 获取指定日期的各证券的各指标结果
13764
-
13765
- :param stks: 证券列表
13766
- :param list[Indicator] inds: 指标列表
13767
- :param Datetime date: 指定日期
13768
- :param int cal_len: 计算需要的数据长度
13769
- :param str ktype: k线类型
13770
- :param str market: 指定行情市场(用于日期对齐)
13771
-
13772
- 方式2: 获取按指定Query查询计算的各证券的各指标结果, 结果中将包含指定 Query 包含的所有指定市场交易日日期
13773
- get_inds_view(stks, inds, query, market='SH'])
14254
+ 一次性从多个账户中获取多个指定时刻的账户资金信息
13774
14255
 
13775
- :param stks: 指定证券列表
13776
- :param list[Indicator] inds: 指定指标列表
13777
- :param Query query: 查询条件
13778
- :param str market: 指定行情市场(用于日期对齐)
14256
+ :param list tm_list: 账户列表
14257
+ :param DatetimeList ref_dates: 获取时刻列表
14258
+ :return: 账户资金列表
13779
14259
  """
13780
14260
  @typing.overload
13781
- def get_inds_view_pyarrow(stks: collections.abc.Sequence, inds: collections.abc.Sequence[Indicator], query: Query, market: str = 'SH') -> typing.Any:
13782
- ...
13783
- @typing.overload
13784
- def get_inds_view_pyarrow(stks: collections.abc.Sequence, inds: collections.abc.Sequence[Indicator], date: Datetime, cal_len: typing.SupportsInt = 100, ktype: str = 'DAY', market: str = 'SH') -> typing.Any:
13785
- ...
13786
- @typing.overload
13787
14261
  def get_kdata(arg0: str, arg1: Query) -> KData:
13788
14262
  ...
13789
14263
  @typing.overload
@@ -13808,29 +14282,12 @@ def get_kdata(market_code: str, start: Datetime = ..., end: Datetime = ..., ktyp
13808
14282
  :param Query.KType ktype: K 线类型, 'DAY'|'WEEK'|'MONTH'|'QUARTER'|'HALFYEAR'|'YEAR'|'MIN'|'MIN5'|'MIN15'|'MIN30'|'MIN60'
13809
14283
  :param Query.RecoverType recover_type: 复权类型
13810
14284
  """
13811
- def get_last_version() -> str:
14285
+ def get_latest_version_info() -> dict:
13812
14286
  ...
13813
14287
  def get_log_level() -> LOG_LEVEL:
13814
14288
  """
13815
14289
  获取当前日志级别
13816
14290
  """
13817
- def get_market_view(stks: collections.abc.Sequence, date: Datetime = ..., market: str = 'SH') -> typing.Any:
13818
- """
13819
- get_market_view(stks[, date=Datetime(), market='SH']) -> pandas.DataFrame
13820
-
13821
- 获取指定股票集合在指定交易日的行情数据,不包含当日停牌无数据的股票。如未指定日期,则返回最后交易日行情数据,
13822
- 如同时接收了行情数据,则为实时行情。
13823
-
13824
- 注: 此函数依赖于日线数据
13825
-
13826
- :param list[Stock] stks: 股票列表
13827
- :param Datetime date: 获取指定日期的行情数据
13828
- :param str market: 市场代码
13829
- :return: 指定股票列表最后行情数据
13830
- :rtype: pandas.DataFrame
13831
- """
13832
- def get_market_view_pyarrow(stks: collections.abc.Sequence, date: Datetime = ..., market: str = 'SH') -> typing.Any:
13833
- ...
13834
14291
  def get_spot_from_buffer_server(arg0: str, arg1: str, arg2: str, arg3: Datetime) -> list[SpotRecord]:
13835
14292
  """
13836
14293
  get_spot_from_buffer_server(addr: str, market: str, code: str, datetime: str)
@@ -13917,16 +14374,33 @@ def krecords_to_df(arg0: KRecordList) -> typing.Any:
13917
14374
  ...
13918
14375
  def krecords_to_np(arg0: KRecordList) -> numpy.ndarray:
13919
14376
  ...
13920
- def krecords_to_pa(arg0: KRecordList) -> typing.Any:
13921
- """
13922
- 将KRecordList转换为parraw.Table
13923
- """
13924
14377
  def open_ostream_to_python() -> None:
13925
14378
  ...
13926
14379
  def open_spend_time() -> None:
13927
14380
  """
13928
14381
  全局开启 c++ 部分耗时打印
13929
14382
  """
14383
+ def parallel_run_pf(pf_list: collections.abc.Sequence[...], query: Query, force: bool = False) -> list[list[...]]:
14384
+ """
14385
+ parallel_run_pf(pf_list, query[, force=False])
14386
+
14387
+ 并行执行多个投资组合策略, 并返回 list FundsList, 各账户对应资产(按query时间段)
14388
+
14389
+ :param list pf_list: 投资组合列表
14390
+ :param Query query: 查询条件
14391
+ :param bool force: 强制重新计算
14392
+ """
14393
+ def parallel_run_sys(sys_list: collections.abc.Sequence[...], query: Query, reset: bool = False, reset_all: bool = False) -> list[list[...]]:
14394
+ """
14395
+ parallel_run_sys(sys_list, query[, reset=False, reset_all=False])
14396
+
14397
+ 并行运行多个系系统, 并返回 list FundsList, 各账户对应资产(按query时间段)
14398
+
14399
+ :param sys_list: 系统列表
14400
+ :param query: 查询条件
14401
+ :param bool reset: 执行前是否依据系统部件共享属性复位
14402
+ :param bool reset_all: 强制复位所有部件
14403
+ """
13930
14404
  def positions_to_df(arg0: PositionRecordList) -> typing.Any:
13931
14405
  """
13932
14406
  positions_to_df(positions)
@@ -13945,10 +14419,6 @@ def positions_to_np(arg0: PositionRecordList) -> numpy.ndarray:
13945
14419
 
13946
14420
  注意: 其中的当前市值、利润、盈亏等计算值均以日线计算, 如使用日线一下级别回测时, 对未清仓的持仓记录需要自行重新计算!
13947
14421
  """
13948
- def positions_to_pa(arg0: PositionRecordList) -> typing.Any:
13949
- """
13950
- 将交易记录列表转换为 pyarrow.Table 对象
13951
- """
13952
14422
  @typing.overload
13953
14423
  def register_extra_ktype(ktype: str, basetype: str, minutes: typing.SupportsInt, get_phase_end: collections.abc.Callable[[Datetime], Datetime]) -> None:
13954
14424
  ...
@@ -13992,7 +14462,7 @@ def release_extra_ktype() -> None:
13992
14462
  def remove_license() -> None:
13993
14463
  """
13994
14464
  remove_license()
13995
-
14465
+
13996
14466
  移除当前授权
13997
14467
  """
13998
14468
  @typing.overload
@@ -14086,16 +14556,19 @@ def spot_agent_is_running() -> bool:
14086
14556
  """
14087
14557
  判断行情数据接收代理是否在运行
14088
14558
  """
14089
- def start_data_server(addr: str = 'tcp://0.0.0.0:9201', work_num: typing.SupportsInt = 2, save_tick: bool = False, buf_tick: bool = False) -> None:
14559
+ def start_data_server(addr: str = 'tcp://0.0.0.0:9201', work_num: typing.SupportsInt = 3, save_tick: bool = False, buf_tick: bool = False, parquet_path: str = '') -> None:
14090
14560
  """
14091
- start_data_server(addr: str[, work_num: int=2])
14561
+ start_data_server(addr: str[, work_num: int=3, save_tick: bool=False, buf_tick: bool=False, parquet_path: str=''])
14092
14562
 
14093
- 启动数据缓存服务
14094
-
14563
+ 启动数据缓存服务。其中save_tick 参数和 parquet_path 有关联:
14564
+ - 如果 save_tick=True, parquet_path 不为空时, 使用 parquet_path 保存数据;
14565
+ - 如果 save_tick=True, parquet_path 为空时, 则使用 clickhouse K线存储引擎保存数据(需配置使用 clickhouse K线存储引擎)
14566
+
14095
14567
  :param str addr: 服务器地址
14096
14568
  :param int work_num: 工作线程数
14097
- :param bool save_tick: 是否保存tick数据至数据库(仅支持使用 clickhouse K线存储引擎)
14569
+ :param bool save_tick: 是否保存tick数据至数据库(如果 parquet_path 不为空时, 使用 parquet 文件进行保存;否则,需使用 clickhouse K线存储引擎)
14098
14570
  :param bool buf_tick: 是否缓存tick数据
14571
+ :param str parquet_path: 保存tick数据至parquet文件路径, 仅在 save_tick=True 时有效
14099
14572
  :return: None
14100
14573
  """
14101
14574
  def start_spot_agent(print: bool = False, worker_num: typing.SupportsInt = 1, addr: str = '') -> None:
@@ -14130,10 +14603,6 @@ def timeline_to_np(arg0: TimeLineList) -> numpy.ndarray:
14130
14603
  """
14131
14604
  将分时线记录转换为NumPy元组
14132
14605
  """
14133
- def timeline_to_pa(arg0: TimeLineList) -> typing.Any:
14134
- """
14135
- 将分时线记录转换为 pyarrow.Table 对象
14136
- """
14137
14606
  def toPriceList(arg0: collections.abc.Sequence) -> list[float]:
14138
14607
  """
14139
14608
  将 python list/tuple/np.arry 对象转化为 PriceList 对象
@@ -14150,10 +14619,6 @@ def trades_to_df(arg0: TradeRecordList) -> typing.Any:
14150
14619
  """
14151
14620
  def trades_to_np(arg0: TradeRecordList) -> numpy.ndarray:
14152
14621
  ...
14153
- def trades_to_pa(arg0: TradeRecordList) -> typing.Any:
14154
- """
14155
- 将交易记录列表转换为 pyarrow.Table 对象
14156
- """
14157
14622
  def translist_to_df(arg0: TransList) -> typing.Any:
14158
14623
  """
14159
14624
  将分笔记录转换为 DataFrame
@@ -14162,10 +14627,6 @@ def translist_to_np(arg0: TransList) -> numpy.ndarray:
14162
14627
  """
14163
14628
  将分笔记录转换为NumPy元组
14164
14629
  """
14165
- def translist_to_pa(arg0: TransList) -> typing.Any:
14166
- """
14167
- 将分笔记录转换为 pyarrow.Table 对象
14168
- """
14169
14630
  def view_license() -> str:
14170
14631
  """
14171
14632
  view_license()
@@ -14176,10 +14637,6 @@ def weights_to_df(arg0: StockWeightList) -> typing.Any:
14176
14637
  ...
14177
14638
  def weights_to_np(arg0: StockWeightList) -> numpy.ndarray:
14178
14639
  ...
14179
- def weights_to_pa(arg0: StockWeightList) -> typing.Any:
14180
- """
14181
- 将权息记录列表转换为 pyarrow.Table 对象
14182
- """
14183
14640
  DEBUG: LOG_LEVEL # value = <LOG_LEVEL.DEBUG: 1>
14184
14641
  ERROR: LOG_LEVEL # value = <LOG_LEVEL.ERROR: 4>
14185
14642
  FATAL: LOG_LEVEL # value = <LOG_LEVEL.FATAL: 5>