hikyuu 2.6.8__py3-none-macosx_11_0_arm64.whl → 2.7.0.4__py3-none-macosx_11_0_arm64.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 (201) hide show
  1. hikyuu/.style.yapf +350 -0
  2. hikyuu/__init__.py +32 -18
  3. hikyuu/__init__.pyi +46 -20
  4. hikyuu/analysis/__init__.pyi +32 -11
  5. hikyuu/analysis/analysis.pyi +33 -12
  6. hikyuu/core.py +2 -0
  7. hikyuu/core.pyi +34 -13
  8. hikyuu/cpp/core310.pyi +504 -108
  9. hikyuu/cpp/core310.so +0 -0
  10. hikyuu/cpp/core311.pyi +504 -108
  11. hikyuu/cpp/core311.so +0 -0
  12. hikyuu/cpp/core312.pyi +504 -108
  13. hikyuu/cpp/core312.so +0 -0
  14. hikyuu/cpp/core313.pyi +504 -108
  15. hikyuu/cpp/core313.so +0 -0
  16. hikyuu/cpp/i18n/zh_CN/hikyuu.mo +0 -0
  17. hikyuu/cpp/libboost_charconv-mt.dylib +0 -0
  18. hikyuu/cpp/libboost_chrono-mt.dylib +0 -0
  19. hikyuu/cpp/libboost_date_time-mt.dylib +0 -0
  20. hikyuu/cpp/libboost_serialization-mt.dylib +0 -0
  21. hikyuu/cpp/libboost_system-mt.dylib +0 -0
  22. hikyuu/cpp/libboost_thread-mt.dylib +0 -0
  23. hikyuu/cpp/libboost_wserialization-mt.dylib +0 -0
  24. hikyuu/cpp/libhikyuu.dylib +0 -0
  25. hikyuu/cpp/libsqlite3.dylib +0 -0
  26. hikyuu/data/clickhouse_upgrade/createdb.sql +105 -105
  27. hikyuu/data/common.py +3 -3
  28. hikyuu/data/common_clickhouse.py +1 -1
  29. hikyuu/data/download_block.py +351 -0
  30. hikyuu/data/em_block_to_clickhouse.py +26 -74
  31. hikyuu/data/em_block_to_mysql.py +25 -75
  32. hikyuu/data/em_block_to_sqlite.py +26 -78
  33. hikyuu/data/hku_config_template.py +3 -3
  34. hikyuu/data/pytdx_to_clickhouse.py +15 -11
  35. hikyuu/data/pytdx_to_h5.py +6 -2
  36. hikyuu/data/pytdx_to_mysql.py +5 -1
  37. hikyuu/data/pytdx_weight_to_clickhouse.py +1 -1
  38. hikyuu/data/pytdx_weight_to_mysql.py +1 -1
  39. hikyuu/data/pytdx_weight_to_sqlite.py +1 -1
  40. hikyuu/data/zh_bond10_to_clickhouse.py +1 -1
  41. hikyuu/draw/drawplot/__init__.pyi +1 -1
  42. hikyuu/draw/drawplot/bokeh_draw.pyi +34 -14
  43. hikyuu/draw/drawplot/echarts_draw.pyi +34 -14
  44. hikyuu/draw/drawplot/matplotlib_draw.py +4 -74
  45. hikyuu/draw/drawplot/matplotlib_draw.pyi +34 -14
  46. hikyuu/examples/notebook/Demo/Demo1.ipynb +48 -33
  47. hikyuu/examples/notebook/LICENSE +20 -0
  48. hikyuu/extend.py +0 -7
  49. hikyuu/extend.pyi +35 -14
  50. hikyuu/fetcher/stock/zh_block_em.py +12 -40
  51. hikyuu/gui/HikyuuTDX.py +99 -31
  52. hikyuu/gui/data/CollectSpotThread.py +1 -1
  53. hikyuu/gui/data/EscapetimeThread.py +8 -14
  54. hikyuu/gui/data/ImportBlockInfoTask.py +3 -10
  55. hikyuu/gui/data/MainWindow.py +1196 -717
  56. hikyuu/gui/data/MainWindow.ui +2059 -0
  57. hikyuu/gui/data/SchedImportThread.py +2 -2
  58. hikyuu/gui/data/UsePytdxImportToH5Thread.py +3 -3
  59. hikyuu/gui/data/UseQmtImportToH5Thread.py +2 -2
  60. hikyuu/gui/data/UseTdxImportToH5Thread.py +3 -3
  61. hikyuu/gui/data/tool.py +32 -25
  62. hikyuu/gui/dataserver.py +5 -3
  63. hikyuu/gui/images/liandongxiaopu.png +0 -0
  64. hikyuu/gui/importdata.py +4 -0
  65. hikyuu/hub.pyi +6 -6
  66. hikyuu/include/hikyuu/DataType.h +4 -16
  67. hikyuu/include/hikyuu/KData.h +14 -3
  68. hikyuu/include/hikyuu/KDataPrivatedBufferImp.h +1 -1
  69. hikyuu/include/hikyuu/KDataSharedBufferImp.h +1 -1
  70. hikyuu/include/hikyuu/KQuery.h +2 -2
  71. hikyuu/include/hikyuu/Stock.h +4 -1
  72. hikyuu/include/hikyuu/StockManager.h +13 -3
  73. hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +8 -0
  74. hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +6 -0
  75. hikyuu/include/hikyuu/data_driver/KDataDriver.h +26 -1
  76. hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +1 -1
  77. hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +1 -1
  78. hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +2 -1
  79. hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +2 -1
  80. hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +2 -1
  81. hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +1 -1
  82. hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +1 -1
  83. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +1 -1
  84. hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +1 -1
  85. hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +1 -1
  86. hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +1 -1
  87. hikyuu/include/hikyuu/hikyuu.h +1 -1
  88. hikyuu/include/hikyuu/indicator/build_in.h +1 -0
  89. hikyuu/include/hikyuu/indicator/crt/CYCLE.h +4 -4
  90. hikyuu/include/hikyuu/indicator/crt/HSL.h +2 -2
  91. hikyuu/include/hikyuu/indicator/crt/QUANTILE_TRUNC.h +30 -0
  92. hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +1 -0
  93. hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +2 -2
  94. hikyuu/include/hikyuu/indicator/imp/IQuantileTrunc.h +25 -0
  95. hikyuu/include/hikyuu/lang.h +15 -2
  96. hikyuu/include/hikyuu/misc.h +38 -0
  97. hikyuu/include/hikyuu/plugin/dataserver.h +2 -1
  98. hikyuu/include/hikyuu/plugin/device.h +10 -0
  99. hikyuu/include/hikyuu/plugin/extind.h +37 -0
  100. hikyuu/include/hikyuu/plugin/hkuextra.h +0 -18
  101. hikyuu/include/hikyuu/plugin/interface/DataServerPluginInterface.h +2 -2
  102. hikyuu/include/hikyuu/plugin/interface/DevicePluginInterface.h +2 -0
  103. hikyuu/include/hikyuu/plugin/interface/ExtendIndicatorsPluginInterface.h +12 -0
  104. hikyuu/include/hikyuu/plugin/interface/HkuExtraPluginInterface.h +0 -14
  105. hikyuu/include/hikyuu/plugin/interface/plugins.h +3 -1
  106. hikyuu/include/hikyuu/python/pybind_utils.h +3 -2
  107. hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +3 -0
  108. hikyuu/include/hikyuu/trade_manage/Performance.h +4 -4
  109. hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +10 -1
  110. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalFundsMM.h +0 -4
  111. hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +36 -3
  112. hikyuu/include/hikyuu/trade_sys/multifactor/NormalizeBase.h +125 -0
  113. hikyuu/include/hikyuu/trade_sys/multifactor/ScoresFilterBase.h +125 -0
  114. hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +3 -0
  115. hikyuu/include/hikyuu/trade_sys/multifactor/buildin_norm.h +36 -0
  116. hikyuu/include/hikyuu/trade_sys/multifactor/buildin_scfilter.h +51 -0
  117. hikyuu/include/hikyuu/trade_sys/multifactor/filter/GroupSCFilter.h +24 -0
  118. hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreLessOrEqualValueSCFilter.h +24 -0
  119. hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreNanSCFilter.h +24 -0
  120. hikyuu/include/hikyuu/trade_sys/multifactor/filter/MinAmountPercentSCFilter.h +25 -0
  121. hikyuu/include/hikyuu/trade_sys/multifactor/filter/PriceSCFilter.h +24 -0
  122. hikyuu/include/hikyuu/trade_sys/multifactor/filter/TopNSCFilter.h +24 -0
  123. hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +1 -1
  124. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +1 -1
  125. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +1 -1
  126. hikyuu/include/hikyuu/trade_sys/multifactor/imp/WeightMultiFactor.h +1 -1
  127. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormMinMax.h +23 -0
  128. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantile.h +28 -0
  129. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantileUniform.h +28 -0
  130. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormZScore.h +25 -0
  131. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/__init__.py +1 -0
  132. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/quantile_trunc.h +16 -0
  133. hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +7 -0
  134. hikyuu/include/hikyuu/trade_sys/portfolio/imp/SimplePortfolio.h +7 -0
  135. hikyuu/include/hikyuu/trade_sys/portfolio/imp/WithoutAFPortfolio.h +7 -0
  136. hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +49 -0
  137. hikyuu/include/hikyuu/trade_sys/selector/build_in.h +1 -0
  138. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor2.h +40 -0
  139. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +0 -3
  140. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector2.h +49 -0
  141. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +1 -1
  142. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +1 -1
  143. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +0 -4
  144. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/AddValueSignal.h +2 -2
  145. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/DivValueSignal.h +2 -2
  146. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/MulValueSignal.h +2 -2
  147. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorSignal.h +1 -1
  148. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorValueSignal.h +4 -4
  149. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/SubValueSignal.h +2 -2
  150. hikyuu/include/hikyuu/trade_sys/slippage/build_in.h +5 -1
  151. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_LogNormal.h +22 -0
  152. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_Normal.h +22 -0
  153. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_TruncNormal.h +25 -0
  154. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_Uniform.h +23 -0
  155. hikyuu/include/hikyuu/trade_sys/slippage/imp/LogNormalSlippage.h +28 -0
  156. hikyuu/include/hikyuu/trade_sys/slippage/imp/NormalSlippage.h +28 -0
  157. hikyuu/include/hikyuu/trade_sys/slippage/imp/TruncNormalSlippage.h +28 -0
  158. hikyuu/include/hikyuu/trade_sys/slippage/imp/UniformSlippage.h +24 -0
  159. hikyuu/include/hikyuu/trade_sys/system/System.h +14 -1
  160. hikyuu/include/hikyuu/utilities/SpendTimer.h +17 -7
  161. hikyuu/include/hikyuu/utilities/arithmetic.h +55 -0
  162. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +1 -1
  163. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +1 -1
  164. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +1 -1
  165. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +1 -1
  166. hikyuu/include/hikyuu/utilities/plugin/PluginLoader.h +4 -1
  167. hikyuu/include/hikyuu/version.h +5 -5
  168. hikyuu/matplotlibrc +349 -0
  169. hikyuu/plugin/libbacktest.dylib +0 -0
  170. hikyuu/plugin/libclickhousedriver.dylib +0 -0
  171. hikyuu/plugin/libdataserver.dylib +0 -0
  172. hikyuu/plugin/libdataserver_parquet.dylib +0 -0
  173. hikyuu/plugin/libdevice.dylib +0 -0
  174. hikyuu/plugin/libextind.dylib +0 -0
  175. hikyuu/plugin/libhkuextra.dylib +0 -0
  176. hikyuu/plugin/libimport2hdf5.dylib +0 -0
  177. hikyuu/plugin/libtmreport.dylib +0 -0
  178. hikyuu/trade_manage/__init__.pyi +34 -14
  179. hikyuu/trade_manage/trade.py +0 -2
  180. hikyuu/trade_manage/trade.pyi +34 -14
  181. hikyuu/util/__init__.pyi +1 -1
  182. hikyuu/util/singleton.pyi +1 -1
  183. {hikyuu-2.6.8.dist-info → hikyuu-2.7.0.4.dist-info}/METADATA +47 -36
  184. {hikyuu-2.6.8.dist-info → hikyuu-2.7.0.4.dist-info}/RECORD +188 -158
  185. {hikyuu-2.6.8.dist-info → hikyuu-2.7.0.4.dist-info}/WHEEL +1 -1
  186. {hikyuu-2.6.8.dist-info → hikyuu-2.7.0.4.dist-info}/top_level.txt +2 -2
  187. hikyuu/data_driver/__init__.py +0 -49
  188. hikyuu/data_driver/jqdata_data_driver.py +0 -277
  189. hikyuu/data_driver/pytdx_data_driver.py +0 -292
  190. hikyuu/fetcher/stock/zh_stock_a_huatai.py +0 -51
  191. hikyuu/fetcher/stock/zh_stock_a_pytdx.py +0 -129
  192. hikyuu/gui/data/CollectToMemThread.py +0 -123
  193. hikyuu/gui/data/CollectToMySQLThread.py +0 -178
  194. hikyuu/gui/start_huatai_insight.py +0 -510
  195. hikyuu/include/hikyuu/views/arrow_common.h +0 -38
  196. hikyuu/include/hikyuu/views/arrow_views.h +0 -117
  197. hikyuu/setup.py +0 -104
  198. hikyuu/tools/update_block_info.py +0 -168
  199. hikyuu-2.6.8.dist-info/LICENSE +0 -201
  200. /hikyuu/include/hikyuu/{views → trade_sys/multifactor/filter}/__init__.py +0 -0
  201. {hikyuu-2.6.8.dist-info → hikyuu-2.7.0.4.dist-info}/entry_points.txt +0 -0
hikyuu/cpp/core312.pyi CHANGED
@@ -3,7 +3,7 @@ import collections.abc
3
3
  import numpy
4
4
  import numpy.typing
5
5
  import typing
6
- __all__ = ['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__ = ['ABS', 'ACOS', 'AD', 'ADVANCE', 'AF_EqualWeight', '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', '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', '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', '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', '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_last_version', '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
  资产分配算法基类, 子类接口:
@@ -223,7 +223,10 @@ class Block:
223
223
  def __init__(self) -> None:
224
224
  ...
225
225
  @typing.overload
226
- 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:
227
230
  ...
228
231
  @typing.overload
229
232
  def __init__(self, arg0: Block) -> None:
@@ -1187,9 +1190,6 @@ class DatetimeList:
1187
1190
  @staticmethod
1188
1191
  def to_pandas(data: DatetimeList):
1189
1192
  ...
1190
- @staticmethod
1191
- def to_pyarrow(data):
1192
- ...
1193
1193
  def __bool__(self) -> bool:
1194
1194
  """
1195
1195
  Check whether the list is nonempty
@@ -1981,8 +1981,6 @@ class Indicator:
1981
1981
  """
1982
1982
  转化为np.array, 如果为时间序列, 则包含 datetime 日期列
1983
1983
  """
1984
- def to_pyarrow(self) -> typing.Any:
1985
- ...
1986
1984
  def value_to_df(self) -> typing.Any:
1987
1985
  """
1988
1986
  转换为 DataFrame, 仅包含值
@@ -1991,8 +1989,6 @@ class Indicator:
1991
1989
  """
1992
1990
  仅转化值为np.array, 不包含日期列
1993
1991
  """
1994
- def value_to_pyarrow(self) -> typing.Any:
1995
- ...
1996
1992
  @property
1997
1993
  def discard(self) -> int:
1998
1994
  """
@@ -2245,6 +2241,17 @@ class KData:
2245
2241
  :param Datetime end: 新的结束日期
2246
2242
  :rtype: KData
2247
2243
  """
2244
+ @typing.overload
2245
+ def get_kdata(self, start: typing.SupportsInt, end: typing.SupportsInt = 9223372036854775807) -> KData:
2246
+ """
2247
+ get_kdata(self, start, end)
2248
+
2249
+ 通过索引获取 KData 子集,相当于切片
2250
+
2251
+ :param int start: 索引起始位置
2252
+ :param int end: 索引结束位置
2253
+ :rtype: KData
2254
+ """
2248
2255
  def get_pos(self, arg0: Datetime) -> typing.Any:
2249
2256
  """
2250
2257
  get_pos(self, datetime)
@@ -2292,8 +2299,6 @@ class KData:
2292
2299
  """
2293
2300
  将 KData 转换为 NumPy 数组
2294
2301
  """
2295
- def to_pyarrow(self) -> typing.Any:
2296
- ...
2297
2302
  def tocsv(self, arg0: str) -> None:
2298
2303
  """
2299
2304
  tocsv(self, filename)
@@ -2549,9 +2554,6 @@ class KRecordList:
2549
2554
  @staticmethod
2550
2555
  def to_pandas(data):
2551
2556
  ...
2552
- @staticmethod
2553
- def to_pyarrow(data):
2554
- ...
2555
2557
  def __bool__(self) -> bool:
2556
2558
  """
2557
2559
  Check whether the list is nonempty
@@ -3010,6 +3012,17 @@ class MultiFactorBase:
3010
3012
  ...
3011
3013
  def __str__(self) -> str:
3012
3014
  ...
3015
+ def add_special_normalize(self, name: str, norm: NormalizeBase = None, category: str = '', style_inds: collections.abc.Sequence[Indicator] = []) -> None:
3016
+ """
3017
+ add_special_normalize(self, name[, norm=None, category="", style_inds=[]])
3018
+
3019
+ 对指定名称的指标应用特定的标准化/归一化、行业中性化、风格因子中性化操作。标准化操作、行业中性化、风格因子中性化彼此无关,可同时指定也可分开指定。
3020
+
3021
+ :param str name: 特殊归一化方法名称
3022
+ :param Normalize norm: 特殊归一化方法
3023
+ :param str category: 行业中性化时,指定板块类别
3024
+ :param list[Indicator] style_inds: 用于中性化的风格指标列表
3025
+ """
3013
3026
  def clone(self) -> MultiFactorBase:
3014
3027
  """
3015
3028
  克隆操作
@@ -3031,7 +3044,14 @@ class MultiFactorBase:
3031
3044
  :return: ScoreRecordList
3032
3045
  """
3033
3046
  def get_all_src_factors(self) -> list[list[Indicator]]:
3034
- ...
3047
+ """
3048
+ get_all_src_factors(self)
3049
+
3050
+ 获取所有原始因子列表(如果指定了标准化、行业中性化, 返回为已处理的因子列表)
3051
+
3052
+ :rtype: list
3053
+ :return: list IndicatorList stks x inds
3054
+ """
3035
3055
  def get_datetime_list(self) -> DatetimeList:
3036
3056
  """
3037
3057
  获取参考日期列表(由参考证券通过查询条件获得)
@@ -3107,6 +3127,14 @@ class MultiFactorBase:
3107
3127
  """
3108
3128
  是否存在指定参数
3109
3129
  """
3130
+ def set_normalize(self, norm: NormalizeBase) -> None:
3131
+ """
3132
+ set_normalize(self, norm)
3133
+
3134
+ 设置标准化或归一化方法(影响全部因子)
3135
+
3136
+ :param NormalizeBase norm: 标准化或归一化方法实例
3137
+ """
3110
3138
  def set_param(self, arg0: str, arg1: any) -> None:
3111
3139
  """
3112
3140
  set_param(self, name, value)
@@ -3157,6 +3185,70 @@ class MultiFactorBase:
3157
3185
  @query.setter
3158
3186
  def query(self, arg1: Query) -> None:
3159
3187
  ...
3188
+ class NormalizeBase:
3189
+ """
3190
+ 用于 MF 的截面标准化操作
3191
+ """
3192
+ @staticmethod
3193
+ def _pybind11_conduit_v1_(*args, **kwargs):
3194
+ ...
3195
+ @typing.overload
3196
+ def __init__(self) -> None:
3197
+ ...
3198
+ @typing.overload
3199
+ def __init__(self, arg0: NormalizeBase) -> None:
3200
+ ...
3201
+ @typing.overload
3202
+ def __init__(self, arg0: str) -> None:
3203
+ """
3204
+ 初始化构造函数
3205
+
3206
+ :param str name: 名称
3207
+ """
3208
+ def __repr__(self) -> str:
3209
+ ...
3210
+ def __str__(self) -> str:
3211
+ ...
3212
+ def clone(self) -> NormalizeBase:
3213
+ """
3214
+ 克隆操作
3215
+ """
3216
+ def get_param(self, arg0: str) -> any:
3217
+ """
3218
+ get_param(self, name)
3219
+
3220
+ 获取指定的参数
3221
+
3222
+ :param str name: 参数名称
3223
+ :return: 参数值
3224
+ :raises out_of_range: 无此参数
3225
+ """
3226
+ def have_param(self, arg0: str) -> bool:
3227
+ """
3228
+ 是否存在指定参数
3229
+ """
3230
+ def normalize(self, arg0: collections.abc.Sequence[typing.SupportsFloat]) -> list[float]:
3231
+ """
3232
+ 【重载接口】子类计算接口
3233
+ """
3234
+ def set_param(self, arg0: str, arg1: any) -> None:
3235
+ """
3236
+ set_param(self, name, value)
3237
+
3238
+ 设置参数
3239
+
3240
+ :param str name: 参数名称
3241
+ :param value: 参数值
3242
+ :raises logic_error: Unsupported type! 不支持的参数类型
3243
+ """
3244
+ @property
3245
+ def name(self) -> str:
3246
+ """
3247
+ 名称
3248
+ """
3249
+ @name.setter
3250
+ def name(self, arg1: str) -> None:
3251
+ ...
3160
3252
  class OrderBrokerBase:
3161
3253
  """
3162
3254
  订单代理包装基类,用户可以参考自定义自己的订单代理,加入额外的处理
@@ -3424,6 +3516,10 @@ class Portfolio:
3424
3516
  """
3425
3517
  是否存在指定参数
3426
3518
  """
3519
+ def last_suggestion(self) -> typing.Any:
3520
+ """
3521
+ 回测完成后,返回最后一天交易记录,以及需要延迟的买入和卖出延迟请求
3522
+ """
3427
3523
  def reset(self) -> None:
3428
3524
  """
3429
3525
  复位操作
@@ -3716,8 +3812,6 @@ class PositionRecordList:
3716
3812
  ...
3717
3813
  def to_pandas(self):
3718
3814
  ...
3719
- def to_pyarrow(self):
3720
- ...
3721
3815
  class ProfitGoalBase:
3722
3816
  """
3723
3817
  盈利目标策略基类
@@ -4189,6 +4283,83 @@ class ScoreRecordList:
4189
4283
  ...
4190
4284
  def to_pandas(self):
4191
4285
  ...
4286
+ class ScoresFilterBase:
4287
+ """
4288
+ 用于 MF 的截面标准化操作
4289
+ """
4290
+ @staticmethod
4291
+ def _pybind11_conduit_v1_(*args, **kwargs):
4292
+ ...
4293
+ @typing.overload
4294
+ def __init__(self) -> None:
4295
+ ...
4296
+ @typing.overload
4297
+ def __init__(self, arg0: ScoresFilterBase) -> None:
4298
+ ...
4299
+ @typing.overload
4300
+ def __init__(self, arg0: str) -> None:
4301
+ """
4302
+ 初始化构造函数
4303
+
4304
+ :param str name: 名称
4305
+ """
4306
+ def __or__(self, arg0: ScoresFilterBase) -> ScoresFilterBase:
4307
+ ...
4308
+ def __repr__(self) -> str:
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
+ ...
4192
4363
  class SelectorBase:
4193
4364
  """
4194
4365
  选择器策略基类,实现标的、系统策略的评估和选取算法,自定义选择器策略子类接口:
@@ -4262,6 +4433,14 @@ class SelectorBase:
4262
4433
  """
4263
4434
  子类复位操作实现
4264
4435
  """
4436
+ def add_scores_filter(self, arg0: ScoresFilterBase) -> None:
4437
+ """
4438
+ add_scores_filter(self, filter)
4439
+
4440
+ 在已有过滤基础上新增过滤, 仅适用于 SE_MultiFactor
4441
+
4442
+ :param ScoresFilter filter: 新的过滤器
4443
+ """
4265
4444
  def add_stock(self, stock: Stock, sys: ...) -> None:
4266
4445
  """
4267
4446
  add_stock(self, stock, sys)
@@ -4344,6 +4523,19 @@ class SelectorBase:
4344
4523
  :param value: 参数值
4345
4524
  :raises logic_error: Unsupported type! 不支持的参数类型
4346
4525
  """
4526
+ def set_scores_filter(self, arg0: ScoresFilterBase) -> None:
4527
+ """
4528
+ set_scores_filter(self, filter)
4529
+
4530
+ 设置 ScoresFilter, 将替换现有的过滤器. 仅适用于 SE_MultiFactor
4531
+
4532
+ :param ScoresFilter filter: ScoresFilter
4533
+ """
4534
+ @property
4535
+ def mf(self) -> ...:
4536
+ """
4537
+ 获取关联的 MF
4538
+ """
4347
4539
  @property
4348
4540
  def name(self) -> str:
4349
4541
  """
@@ -4362,6 +4554,11 @@ class SelectorBase:
4362
4554
  """
4363
4555
  由 PF 运行时设定的实际运行系统列表
4364
4556
  """
4557
+ @property
4558
+ def scfilter(self) -> ScoresFilterBase:
4559
+ """
4560
+ 获取 ScoresFilter
4561
+ """
4365
4562
  class SignalBase:
4366
4563
  """
4367
4564
  信号指示器基类
@@ -5200,6 +5397,15 @@ class StockManager:
5200
5397
  """
5201
5398
  获取当前板块信息驱动参数
5202
5399
  """
5400
+ def get_category_list(self) -> list[str]:
5401
+ """
5402
+ get_category_list(self)
5403
+
5404
+ 获取所有板块分类
5405
+
5406
+ :return: 所有板块分类
5407
+ :rtype: StringList
5408
+ """
5203
5409
  def get_context(self) -> StrategyContext:
5204
5410
  """
5205
5411
  获取当前上下文
@@ -5549,9 +5755,6 @@ class StockWeightList:
5549
5755
  @staticmethod
5550
5756
  def to_pandas(data):
5551
5757
  ...
5552
- @staticmethod
5553
- def to_pyarrow(data):
5554
- ...
5555
5758
  def __bool__(self) -> bool:
5556
5759
  """
5557
5760
  Check whether the list is nonempty
@@ -6140,6 +6343,10 @@ class System:
6140
6343
  """
6141
6344
  是否存在指定参数
6142
6345
  """
6346
+ def last_suggestion(self) -> typing.Any:
6347
+ """
6348
+ 回测完成后,返回最后一天交易记录,以及需要延迟的买入和卖出延迟请求
6349
+ """
6143
6350
  def ready(self) -> None:
6144
6351
  ...
6145
6352
  def reset(self) -> None:
@@ -6747,9 +6954,6 @@ class TimeLineList:
6747
6954
  @staticmethod
6748
6955
  def to_pandas(data):
6749
6956
  ...
6750
- @staticmethod
6751
- def to_pyarrow(data):
6752
- ...
6753
6957
  def __bool__(self) -> bool:
6754
6958
  """
6755
6959
  Check whether the list is nonempty
@@ -7696,8 +7900,6 @@ class TradeRecordList:
7696
7900
  ...
7697
7901
  def to_pandas(self):
7698
7902
  ...
7699
- def to_pyarrow(self):
7700
- ...
7701
7903
  class TradeRequest:
7702
7904
  """
7703
7905
  交易请求记录。系统内部在实现延迟操作时登记的交易请求信息。暴露该结构的主要目的是用于
@@ -7780,9 +7982,6 @@ class TransList:
7780
7982
  @staticmethod
7781
7983
  def to_pandas(data):
7782
7984
  ...
7783
- @staticmethod
7784
- def to_pyarrow(data):
7785
- ...
7786
7985
  def __bool__(self) -> bool:
7787
7986
  """
7788
7987
  Check whether the list is nonempty
@@ -8019,6 +8218,26 @@ def AGG_COUNT(ind: Indicator, ktype: str = 'MIN', fill_null: bool = False, unit:
8019
8218
  """
8020
8219
  聚合函数: 非空值计数, 可参考 AGG_STD 帮助
8021
8220
  """
8221
+ def AGG_FUNC(ind: Indicator, agg_func: typing.Any, ktype: str = 'MIN', fill_null: bool = False, unit: typing.SupportsInt = 1) -> Indicator:
8222
+ """
8223
+ AGG_FUNC(ind, agg_func[, ktype=Query.MIN, fill_null=False, unit=1]
8224
+
8225
+ 使用自定函数聚合其他K线周期的指标。虽然支持python自定义函数, 但python函数需要GIL, 速度会慢。建议最好直接使用 C++ 自定义聚合函数。
8226
+
8227
+ 示例, 计算日线时聚合分钟线收盘价的和:
8228
+
8229
+ >>> kdata = get_kdata('sh600000', Query(Datetime(20250101), ktype=Query.DAY))
8230
+ >>> ind = AGG_FUNC(CLOSE(), lambda ds, x: np.sum(x))
8231
+ >>> ind(k)
8232
+
8233
+ :param Indicator ind: 待计算指标
8234
+ :param callable agg_func: 自定义聚合函数,输入参数为 arg1: datetime list, arg2: numpy array, 返回针对list的聚合结果, 注意是单个值
8235
+ :param KQuery.KType ktype: 聚合的K线周期
8236
+ :param bool fill_null: 是否填充缺失值
8237
+ :param int unit: 聚合周期单位 (上下文K线分组单位, 使用日线计算分钟线聚合时, unit=2代表聚合2天的分钟线)
8238
+ :return: 聚合结果
8239
+ :rtype: Indicator
8240
+ """
8022
8241
  def AGG_MAD(ind: Indicator, ktype: str = 'MIN', fill_null: bool = False, unit: typing.SupportsInt = 1) -> Indicator:
8023
8242
  """
8024
8243
  聚合函数: 平均绝对偏差, 可参考 AGG_STD 帮助
@@ -8994,6 +9213,48 @@ def FLOOR(arg0: typing.SupportsFloat) -> Indicator:
8994
9213
  :param data: 输入数据
8995
9214
  :rtype: Indicator
8996
9215
  """
9216
+ def GROUP_COUNT(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9217
+ """
9218
+ 分组累积计数
9219
+ """
9220
+ def GROUP_FUNC(ind: Indicator, group_func: typing.Any, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9221
+ """
9222
+ GROUP_FUNC(ind, group_func[, ktype=Query.DAY, unit=1])
9223
+
9224
+ 自定义分组累积计算指标。虽然支持python自定义函数, 但python函数需要GIL, 速度较慢。建议最好直接使用 C++ 自定义分组累积函数。
9225
+
9226
+ 示例, 计算日线时聚合分钟线收盘价的和:
9227
+
9228
+ >>> kdata = get_kdata('sh600000', Query(Datetime(20250101), ktype=Query.DAY))
9229
+ >>> ind = GROUP_FUNC(CLOSE(), lambda dates, data: data/2.0)
9230
+ >>> ind(k)
9231
+
9232
+ :param Indicator ind: 待计算指标
9233
+ :param callable group_func: 自定义分组累积函数,输入参数为 arg1: datetime list, arg2: numpy array, 返回和输入等长的累积计算结果, 类型同样须为 np.array
9234
+ :param KQuery.KType ktype: 分组的K线周期
9235
+ :param int unit: 分组周期单位 (分组的K线周期单位, 使用日线计算分钟线, unit=2代表按2天累积计算的分钟线)
9236
+ :rtype: Indicator
9237
+ """
9238
+ def GROUP_MAX(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9239
+ """
9240
+ 分组累积最大值
9241
+ """
9242
+ def GROUP_MEAN(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9243
+ """
9244
+ 分组累积平均
9245
+ """
9246
+ def GROUP_MIN(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9247
+ """
9248
+ 分组累积最小值
9249
+ """
9250
+ def GROUP_PROD(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9251
+ """
9252
+ 分组累积乘积
9253
+ """
9254
+ def GROUP_SUM(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
9255
+ """
9256
+ 分组累积和
9257
+ """
8997
9258
  @typing.overload
8998
9259
  def HHV(n: typing.SupportsInt = 20) -> Indicator:
8999
9260
  ...
@@ -9965,6 +10226,36 @@ def NDAY(x: Indicator, y: Indicator, n: IndParam) -> Indicator:
9965
10226
  :param int|Indicator|IndParam n: 时间窗口
9966
10227
  :rtype: Indicator
9967
10228
  """
10229
+ def NORM_MinMax() -> NormalizeBase:
10230
+ """
10231
+ 最小-最大标准化操作
10232
+ """
10233
+ def NORM_NOTHING() -> NormalizeBase:
10234
+ """
10235
+ 无截面标准化操作
10236
+ """
10237
+ def NORM_Quantile(quantile_min: typing.SupportsFloat = 0.01, quantile_max: typing.SupportsFloat = 0.99) -> NormalizeBase:
10238
+ """
10239
+ 分位数截面标准化操作
10240
+
10241
+ :param quantile_min: 最小分位数
10242
+ :param quantile_max: 最大分位数
10243
+ """
10244
+ def NORM_Quantile_Uniform(quantile_min: typing.SupportsFloat = 0.01, quantile_max: typing.SupportsFloat = 0.99) -> NormalizeBase:
10245
+ """
10246
+ 分位数截面均匀分布标准化操作
10247
+
10248
+ :param quantile_min: 最小分位数
10249
+ :param quantile_max: 最大分位数
10250
+ """
10251
+ def NORM_Zscore(out_extreme: bool = False, nsigma: typing.SupportsFloat = 3.0, recursive: bool = False) -> NormalizeBase:
10252
+ """
10253
+ Z-score 标准化操作
10254
+
10255
+ :param out_extreme: 是否剔除异常值
10256
+ :param nsigma: 异常值判断倍数±3.0
10257
+ :param recursive: 是否递归处理异常值
10258
+ """
9968
10259
  @typing.overload
9969
10260
  def NOT() -> Indicator:
9970
10261
  ...
@@ -10103,6 +10394,22 @@ def PRICELIST(data: typing.Any = None, discard: typing.SupportsInt = 0, align_da
10103
10394
  :rtype: Indicator
10104
10395
  """
10105
10396
  @typing.overload
10397
+ def QUANTILE_TRUNC(n: typing.SupportsInt = 60, quantial_min: typing.SupportsFloat = 0.01, quantial_max: typing.SupportsFloat = 0.99) -> Indicator:
10398
+ ...
10399
+ @typing.overload
10400
+ def QUANTILE_TRUNC(data: Indicator, n: typing.SupportsInt = 60, quantial_min: typing.SupportsFloat = 0.01, quantial_max: typing.SupportsFloat = 0.99) -> Indicator:
10401
+ """
10402
+ QUANTILE_TRUNC(data[, n=60, quantial_min=0.01, quantial_max=0.99])
10403
+
10404
+ 对数据进行分位数截断处理。非窗口滚动。
10405
+
10406
+ :param Indicator data: 待剔除异常值数据
10407
+ :param int n: 时间窗口
10408
+ :param float quantial_min: 剔除极值时使用的百分位数下限,默认 0.01
10409
+ :param float quantial_max: 剔除极值时使用的百分位数上限,默认 0.99
10410
+ :rtype: Indicator
10411
+ """
10412
+ @typing.overload
10106
10413
  def RANK(stks: collections.abc.Sequence, mode: typing.SupportsInt = 0, fill_null: bool = True, market: str = 'SH') -> Indicator:
10107
10414
  ...
10108
10415
  @typing.overload
@@ -10460,6 +10767,59 @@ def SAFTYLOSS(data: Indicator, n1: Indicator, n2: Indicator, p: Indicator) -> In
10460
10767
  :param float|Indicator|IndParam p: 噪音系数
10461
10768
  :rtype: Indicator
10462
10769
  """
10770
+ def SCFilter_AmountLimit(min_amount_percent_limit: typing.SupportsFloat = 0.1) -> ScoresFilterBase:
10771
+ """
10772
+ SCFilter_AmountLimit([min_amount_percent_limit: float = 0.1])
10773
+
10774
+ 过滤掉成交金额在评分列表末尾百分比范围内的截面
10775
+
10776
+ 注意:和传入的截面评分列表顺序相关,如果是降序,过滤的是成交金额较小的系统评分记录;反之,则是金额较大的系统评分记录
10777
+
10778
+ :param double min_amount_percent_limit: 最小金额百分比限制
10779
+ :return: 截面过滤器
10780
+ :rtype: ScoresFilterPtr
10781
+ """
10782
+ def SCFilter_Group(group: typing.SupportsInt = 10, group_index: typing.SupportsInt = 0) -> ScoresFilterBase:
10783
+ """
10784
+ SCFilter_Group([group: int=10, group_index: int=0])
10785
+
10786
+ 按截面进行分组过滤
10787
+ :param int group: 分组数量
10788
+ :param int group_index: 分组索引
10789
+ :return: 截面过滤器
10790
+ :rtype: ScoresFilterPtr
10791
+ """
10792
+ def SCFilter_IgnoreNan() -> ScoresFilterBase:
10793
+ """
10794
+ SCFilter_IgnoreNan() -> ScoresFilterPtr
10795
+
10796
+ 忽略截面中的NAN值
10797
+ """
10798
+ def SCFilter_LessOrEqualValue(value: typing.SupportsFloat = 0.0) -> ScoresFilterBase:
10799
+ """
10800
+ SCFilter_LessOrEqualValue([value = 0.0])
10801
+
10802
+ 过滤掉评分小于等于指定值的截面
10803
+ """
10804
+ def SCFilter_Price(min_price: typing.SupportsFloat = 10.0, max_price: typing.SupportsFloat = 100000.0) -> ScoresFilterBase:
10805
+ """
10806
+ SCFilter_Price([min_price = 10., max_price = 100000.])
10807
+
10808
+ 仅保留价格在 [min_price, max_price] 之间的标的
10809
+
10810
+ 注意:和传入的截面评分列表顺序相关,如果是降序,过滤的是价格较小的系统评分记录;反之,则是价格较大的系统评分记录
10811
+
10812
+ :param double min_price: 最小价格限制
10813
+ :param double max_price: 最大价格限制
10814
+ """
10815
+ def SCFilter_TopN(topn: typing.SupportsInt = 10) -> ScoresFilterBase:
10816
+ """
10817
+ SCFilter_TopN([topn: int=10])
10818
+
10819
+ 获取评分列表中的前 topn 个
10820
+
10821
+ :param int topn: 前 topn 个
10822
+ """
10463
10823
  def SE_EvaluateOptimal(arg0: typing.Any) -> SelectorBase:
10464
10824
  """
10465
10825
  SE_EvaluateOptimal(evalulate_func)
@@ -10510,6 +10870,27 @@ def SE_MultiFactor(inds: collections.abc.Sequence, topn: typing.SupportsInt = 10
10510
10870
  :param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
10511
10871
  :param str mode: "MF_ICIRWeight" | "MF_ICWeight" | "MF_EqualWeight" 因子合成算法名称
10512
10872
  """
10873
+ @typing.overload
10874
+ def SE_MultiFactor2(mf: ..., filter: ScoresFilterBase = ...) -> SelectorBase:
10875
+ ...
10876
+ @typing.overload
10877
+ 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:
10878
+ """
10879
+ SE_MultiFactor2([inds, ic_n, ic_rolling_n, ref_stk, spearman, mode, filter])
10880
+
10881
+ 创建基于多因子评分的选择器,两种创建方式
10882
+
10883
+ - 直接指定 MF:
10884
+ :param MultiFactorBase mf: 直接指定的多因子合成算法
10885
+
10886
+ - 参数直接创建:
10887
+ :param sequense(Indicator) inds: 原始因子列表
10888
+ :param int ic_n: 默认 IC 对应的 N 日收益率
10889
+ :param int ic_rolling_n: IC 滚动周期
10890
+ :param Stock ref_stk: 参考证券 (未指定时,默认为 sh000300 沪深300)
10891
+ :param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
10892
+ :param str mode: "MF_ICIRWeight" | "MF_ICWeight" | "MF_EqualWeight" 因子合成算法名称
10893
+ """
10513
10894
  def SE_PerformanceOptimal(key: str = '帐户平均年收益率%', mode: typing.SupportsInt = 0) -> SelectorBase:
10514
10895
  """
10515
10896
  SE_PerformanceOptimal(key="帐户平均年收益率%", mode=0)
@@ -10920,6 +11301,48 @@ def SP_FixedValue(value: typing.SupportsFloat = 0.01) -> SlippageBase:
10920
11301
  :param float p: 偏移价格
10921
11302
  :return: 移滑价差算法实例
10922
11303
  """
11304
+ def SP_LogNormal(mean: typing.SupportsFloat = 0.0, stddev: typing.SupportsFloat = 0.05) -> SlippageBase:
11305
+ """
11306
+ SP_LogNormal([mean=0.0, stddev=0.05])
11307
+
11308
+ 对数正态分布随机价格移滑价差算法, 买入和卖出操作是价格在对数正态分布[mean, stddev]范围内的随机偏移
11309
+
11310
+ :param float mean: 对数正态分布的均值
11311
+ :param float stddev: 对数正态分布的标准差
11312
+ :return: 移滑价差算法实例
11313
+ """
11314
+ def SP_Normal(mean: typing.SupportsFloat = 0.0, stddev: typing.SupportsFloat = 0.05) -> SlippageBase:
11315
+ """
11316
+ SP_Normal([mean=0.0, stddev=0.05])
11317
+
11318
+ 正态分布随机价格移滑价差算法, 买入和卖出操作是价格在正态分布[mean, stddev]范围内的随机偏移
11319
+
11320
+ :param float mean: 正态分布的均值
11321
+ :param float stddev: 正态分布的标准差
11322
+ :return: 移滑价差算法实例
11323
+ """
11324
+ 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:
11325
+ """
11326
+ SP_TruncNormal([mean=0.0, stddev=0.05, min_value=-0.1, max_value=0.1])
11327
+
11328
+ 截断正态分布随机价格移滑价差算法, 买入和卖出操作是价格在截断正态分布[mean, stddev, min_value, max_value]范围内的随机偏移
11329
+
11330
+ :param float mean: 截断正态分布的均值
11331
+ :param float stddev: 截断正态分布的标准差
11332
+ :param float min_value: 最小截断值
11333
+ :param float max_value: 最大截断值
11334
+ :return: 移滑价差算法实例
11335
+ """
11336
+ def SP_Uniform(min_value: typing.SupportsFloat = -0.05, max_value: typing.SupportsFloat = 0.05) -> SlippageBase:
11337
+ """
11338
+ SP_Uniform([min_value=-0.05, max_value=0.05])
11339
+
11340
+ 均匀分布随机价格移滑价差算法, 买入和卖出操作是价格在[min_value, max_value]范围内的均匀分布随机偏移
11341
+
11342
+ :param float min_value: 最小偏移价格
11343
+ :param float max_value: 最大偏移价格
11344
+ :return: 移滑价差算法实例
11345
+ """
10923
11346
  @typing.overload
10924
11347
  def SQRT() -> Indicator:
10925
11348
  ...
@@ -13609,7 +14032,7 @@ def ZSCORE(data: Indicator, out_extreme: bool = False, nsigma: typing.SupportsFl
13609
14032
  """
13610
14033
  ZSCORE(data[, out_extreme, nsigma, recursive])
13611
14034
 
13612
- 对数据进行标准化(归一),可选进行极值排除
14035
+ 对数据进行标准化(归一),可选进行极值处理
13613
14036
 
13614
14037
  注:非窗口滚动,如需窗口滚动的标准化,直接 (x - MA(x, n)) / STDEV(x, n) 即可。
13615
14038
 
@@ -13663,6 +14086,15 @@ def batch_calculate_inds(arg0: collections.abc.Sequence, arg1: KData) -> list:
13663
14086
  :return: 指标计算结果列表
13664
14087
  :rtype: list
13665
14088
  """
14089
+ def bind_email(arg0: str, arg1: str) -> None:
14090
+ """
14091
+ bind_email(email: str, code: str)
14092
+
14093
+ 绑定邮箱和授权码
14094
+
14095
+ :param str email: 邮箱地址
14096
+ :param str code: 授权码
14097
+ """
13666
14098
  def can_upgrade() -> bool:
13667
14099
  ...
13668
14100
  def close_ostream_to_python() -> None:
@@ -13723,10 +14155,6 @@ def dates_to_np(arg0: DatetimeList) -> numpy.ndarray:
13723
14155
  """
13724
14156
  将 DatetimeList 转换为 NumPy 元组
13725
14157
  """
13726
- def dates_to_pa(arg0: DatetimeList) -> typing.Any:
13727
- """
13728
- 将日期列表转换为 pyarrow.Table 对象
13729
- """
13730
14158
  def df_to_krecords(df: typing.Any, columns: collections.abc.Sequence[str] = ['datetime', 'open', 'high', 'low', 'close', 'amount', 'volume']) -> KRecordList:
13731
14159
  """
13732
14160
  df_to_krecords(df: pd.DataFrame[, columns: dict]) -> KRecordList
@@ -13740,7 +14168,7 @@ def df_to_krecords(df: typing.Any, columns: collections.abc.Sequence[str] = ['da
13740
14168
  def fetch_trial_license(arg0: str) -> str:
13741
14169
  """
13742
14170
  fetch_trial_license(email: str)
13743
-
14171
+
13744
14172
  获取试用授权码
13745
14173
 
13746
14174
  :param str email: 邮箱地址
@@ -13788,38 +14216,23 @@ def get_date_range(start: Datetime, end: Datetime) -> DatetimeList:
13788
14216
  :param Datetime end: 结束日期
13789
14217
  :rtype: DatetimeList
13790
14218
  """
13791
- @typing.overload
13792
- def get_inds_view(stks: collections.abc.Sequence, inds: collections.abc.Sequence[Indicator], query: Query, market: str = 'SH') -> typing.Any:
13793
- ...
13794
- @typing.overload
13795
- 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:
14219
+ def get_expire_date() -> Datetime:
14220
+ """
14221
+ get_expire_date() -> Datetime
14222
+
14223
+ 查看授权到期时间
13796
14224
  """
13797
- get_inds_view(stks, inds, date[, cal_len=100, ktype=Query.DAY, market='SH']) -> pandas.DataFrame)
14225
+ def get_funds_list(arg0: collections.abc.Sequence[TradeManager], arg1: DatetimeList) -> list[list[FundsRecord]]:
14226
+ """
14227
+ get_funds_list(tm_list: list, ref_dates: DatetimeList) -> list[Funds])
13798
14228
 
13799
- 方式1: 获取指定日期的各证券的各指标结果
13800
-
13801
- :param stks: 证券列表
13802
- :param list[Indicator] inds: 指标列表
13803
- :param Datetime date: 指定日期
13804
- :param int cal_len: 计算需要的数据长度
13805
- :param str ktype: k线类型
13806
- :param str market: 指定行情市场(用于日期对齐)
13807
-
13808
- 方式2: 获取按指定Query查询计算的各证券的各指标结果, 结果中将包含指定 Query 包含的所有指定市场交易日日期
13809
- get_inds_view(stks, inds, query, market='SH'])
14229
+ 一次性从多个账户中获取多个指定时刻的账户资金信息
13810
14230
 
13811
- :param stks: 指定证券列表
13812
- :param list[Indicator] inds: 指定指标列表
13813
- :param Query query: 查询条件
13814
- :param str market: 指定行情市场(用于日期对齐)
14231
+ :param list tm_list: 账户列表
14232
+ :param DatetimeList ref_dates: 获取时刻列表
14233
+ :return: 账户资金列表
13815
14234
  """
13816
14235
  @typing.overload
13817
- def get_inds_view_pyarrow(stks: collections.abc.Sequence, inds: collections.abc.Sequence[Indicator], query: Query, market: str = 'SH') -> typing.Any:
13818
- ...
13819
- @typing.overload
13820
- 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:
13821
- ...
13822
- @typing.overload
13823
14236
  def get_kdata(arg0: str, arg1: Query) -> KData:
13824
14237
  ...
13825
14238
  @typing.overload
@@ -13850,23 +14263,6 @@ def get_log_level() -> LOG_LEVEL:
13850
14263
  """
13851
14264
  获取当前日志级别
13852
14265
  """
13853
- def get_market_view(stks: collections.abc.Sequence, date: Datetime = ..., market: str = 'SH') -> typing.Any:
13854
- """
13855
- get_market_view(stks[, date=Datetime(), market='SH']) -> pandas.DataFrame
13856
-
13857
- 获取指定股票集合在指定交易日的行情数据,不包含当日停牌无数据的股票。如未指定日期,则返回最后交易日行情数据,
13858
- 如同时接收了行情数据,则为实时行情。
13859
-
13860
- 注: 此函数依赖于日线数据
13861
-
13862
- :param list[Stock] stks: 股票列表
13863
- :param Datetime date: 获取指定日期的行情数据
13864
- :param str market: 市场代码
13865
- :return: 指定股票列表最后行情数据
13866
- :rtype: pandas.DataFrame
13867
- """
13868
- def get_market_view_pyarrow(stks: collections.abc.Sequence, date: Datetime = ..., market: str = 'SH') -> typing.Any:
13869
- ...
13870
14266
  def get_spot_from_buffer_server(arg0: str, arg1: str, arg2: str, arg3: Datetime) -> list[SpotRecord]:
13871
14267
  """
13872
14268
  get_spot_from_buffer_server(addr: str, market: str, code: str, datetime: str)
@@ -13953,16 +14349,33 @@ def krecords_to_df(arg0: KRecordList) -> typing.Any:
13953
14349
  ...
13954
14350
  def krecords_to_np(arg0: KRecordList) -> numpy.ndarray:
13955
14351
  ...
13956
- def krecords_to_pa(arg0: KRecordList) -> typing.Any:
13957
- """
13958
- 将KRecordList转换为parraw.Table
13959
- """
13960
14352
  def open_ostream_to_python() -> None:
13961
14353
  ...
13962
14354
  def open_spend_time() -> None:
13963
14355
  """
13964
14356
  全局开启 c++ 部分耗时打印
13965
14357
  """
14358
+ def parallel_run_pf(pf_list: collections.abc.Sequence[...], query: Query, force: bool = False) -> list[list[...]]:
14359
+ """
14360
+ parallel_run_pf(pf_list, query[, force=False])
14361
+
14362
+ 并行执行多个投资组合策略, 并返回 list FundsList, 各账户对应资产(按query时间段)
14363
+
14364
+ :param list pf_list: 投资组合列表
14365
+ :param Query query: 查询条件
14366
+ :param bool force: 强制重新计算
14367
+ """
14368
+ def parallel_run_sys(sys_list: collections.abc.Sequence[...], query: Query, reset: bool = False, reset_all: bool = False) -> list[list[...]]:
14369
+ """
14370
+ parallel_run_sys(sys_list, query[, reset=False, reset_all=False])
14371
+
14372
+ 并行运行多个系系统, 并返回 list FundsList, 各账户对应资产(按query时间段)
14373
+
14374
+ :param sys_list: 系统列表
14375
+ :param query: 查询条件
14376
+ :param bool reset: 执行前是否依据系统部件共享属性复位
14377
+ :param bool reset_all: 强制复位所有部件
14378
+ """
13966
14379
  def positions_to_df(arg0: PositionRecordList) -> typing.Any:
13967
14380
  """
13968
14381
  positions_to_df(positions)
@@ -13981,10 +14394,6 @@ def positions_to_np(arg0: PositionRecordList) -> numpy.ndarray:
13981
14394
 
13982
14395
  注意: 其中的当前市值、利润、盈亏等计算值均以日线计算, 如使用日线一下级别回测时, 对未清仓的持仓记录需要自行重新计算!
13983
14396
  """
13984
- def positions_to_pa(arg0: PositionRecordList) -> typing.Any:
13985
- """
13986
- 将交易记录列表转换为 pyarrow.Table 对象
13987
- """
13988
14397
  @typing.overload
13989
14398
  def register_extra_ktype(ktype: str, basetype: str, minutes: typing.SupportsInt, get_phase_end: collections.abc.Callable[[Datetime], Datetime]) -> None:
13990
14399
  ...
@@ -14028,7 +14437,7 @@ def release_extra_ktype() -> None:
14028
14437
  def remove_license() -> None:
14029
14438
  """
14030
14439
  remove_license()
14031
-
14440
+
14032
14441
  移除当前授权
14033
14442
  """
14034
14443
  @typing.overload
@@ -14122,16 +14531,19 @@ def spot_agent_is_running() -> bool:
14122
14531
  """
14123
14532
  判断行情数据接收代理是否在运行
14124
14533
  """
14125
- 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:
14534
+ 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:
14126
14535
  """
14127
- start_data_server(addr: str[, work_num: int=2])
14536
+ start_data_server(addr: str[, work_num: int=3, save_tick: bool=False, buf_tick: bool=False, parquet_path: str=''])
14128
14537
 
14129
- 启动数据缓存服务
14130
-
14538
+ 启动数据缓存服务。其中save_tick 参数和 parquet_path 有关联:
14539
+ - 如果 save_tick=True, parquet_path 不为空时, 使用 parquet_path 保存数据;
14540
+ - 如果 save_tick=True, parquet_path 为空时, 则使用 clickhouse K线存储引擎保存数据(需配置使用 clickhouse K线存储引擎)
14541
+
14131
14542
  :param str addr: 服务器地址
14132
14543
  :param int work_num: 工作线程数
14133
- :param bool save_tick: 是否保存tick数据至数据库(仅支持使用 clickhouse K线存储引擎)
14544
+ :param bool save_tick: 是否保存tick数据至数据库(如果 parquet_path 不为空时, 使用 parquet 文件进行保存;否则,需使用 clickhouse K线存储引擎)
14134
14545
  :param bool buf_tick: 是否缓存tick数据
14546
+ :param str parquet_path: 保存tick数据至parquet文件路径, 仅在 save_tick=True 时有效
14135
14547
  :return: None
14136
14548
  """
14137
14549
  def start_spot_agent(print: bool = False, worker_num: typing.SupportsInt = 1, addr: str = '') -> None:
@@ -14166,10 +14578,6 @@ def timeline_to_np(arg0: TimeLineList) -> numpy.ndarray:
14166
14578
  """
14167
14579
  将分时线记录转换为NumPy元组
14168
14580
  """
14169
- def timeline_to_pa(arg0: TimeLineList) -> typing.Any:
14170
- """
14171
- 将分时线记录转换为 pyarrow.Table 对象
14172
- """
14173
14581
  def toPriceList(arg0: collections.abc.Sequence) -> list[float]:
14174
14582
  """
14175
14583
  将 python list/tuple/np.arry 对象转化为 PriceList 对象
@@ -14186,10 +14594,6 @@ def trades_to_df(arg0: TradeRecordList) -> typing.Any:
14186
14594
  """
14187
14595
  def trades_to_np(arg0: TradeRecordList) -> numpy.ndarray:
14188
14596
  ...
14189
- def trades_to_pa(arg0: TradeRecordList) -> typing.Any:
14190
- """
14191
- 将交易记录列表转换为 pyarrow.Table 对象
14192
- """
14193
14597
  def translist_to_df(arg0: TransList) -> typing.Any:
14194
14598
  """
14195
14599
  将分笔记录转换为 DataFrame
@@ -14198,10 +14602,6 @@ def translist_to_np(arg0: TransList) -> numpy.ndarray:
14198
14602
  """
14199
14603
  将分笔记录转换为NumPy元组
14200
14604
  """
14201
- def translist_to_pa(arg0: TransList) -> typing.Any:
14202
- """
14203
- 将分笔记录转换为 pyarrow.Table 对象
14204
- """
14205
14605
  def view_license() -> str:
14206
14606
  """
14207
14607
  view_license()
@@ -14212,10 +14612,6 @@ def weights_to_df(arg0: StockWeightList) -> typing.Any:
14212
14612
  ...
14213
14613
  def weights_to_np(arg0: StockWeightList) -> numpy.ndarray:
14214
14614
  ...
14215
- def weights_to_pa(arg0: StockWeightList) -> typing.Any:
14216
- """
14217
- 将权息记录列表转换为 pyarrow.Table 对象
14218
- """
14219
14615
  DEBUG: LOG_LEVEL # value = <LOG_LEVEL.DEBUG: 1>
14220
14616
  ERROR: LOG_LEVEL # value = <LOG_LEVEL.ERROR: 4>
14221
14617
  FATAL: LOG_LEVEL # value = <LOG_LEVEL.FATAL: 5>