hikyuu 2.7.3__py3-none-win_amd64.whl → 2.7.6__py3-none-win_amd64.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 (217) hide show
  1. hikyuu/__init__.py +3 -1
  2. hikyuu/__init__.pyi +11 -10
  3. hikyuu/analysis/__init__.pyi +1 -0
  4. hikyuu/analysis/analysis.pyi +2 -1
  5. hikyuu/core.pyi +3 -2
  6. hikyuu/cpp/core310.pyd +0 -0
  7. hikyuu/cpp/core310.pyi +80 -46
  8. hikyuu/cpp/core311.pyd +0 -0
  9. hikyuu/cpp/core311.pyi +80 -46
  10. hikyuu/cpp/core312.pyd +0 -0
  11. hikyuu/cpp/core312.pyi +80 -46
  12. hikyuu/cpp/core313.pyd +0 -0
  13. hikyuu/cpp/core313.pyi +80 -46
  14. hikyuu/cpp/hikyuu.dll +0 -0
  15. hikyuu/cpp/hikyuu.lib +0 -0
  16. hikyuu/cpp/mimalloc-redirect.dll +0 -0
  17. hikyuu/cpp/mimalloc.dll +0 -0
  18. hikyuu/data/clickhouse_upgrade/0002.sql +9 -0
  19. hikyuu/data/common_mysql.py +1 -1
  20. hikyuu/data/em_block_to_mysql.py +16 -4
  21. hikyuu/data/em_block_to_sqlite.py +16 -4
  22. hikyuu/data/hku_config_template.py +1 -1
  23. hikyuu/data/mysql_upgrade/0030.sql +3 -0
  24. hikyuu/data/pytdx_to_h5.py +2 -2
  25. hikyuu/data/pytdx_to_mysql.py +5 -5
  26. hikyuu/data/sqlite_upgrade/0030.sql +5 -0
  27. hikyuu/draw/__init__.pyi +1 -1
  28. hikyuu/draw/drawplot/__init__.pyi +1 -1
  29. hikyuu/draw/drawplot/bokeh_draw.pyi +6 -5
  30. hikyuu/draw/drawplot/echarts_draw.pyi +6 -5
  31. hikyuu/draw/drawplot/matplotlib_draw.py +19 -11
  32. hikyuu/draw/drawplot/matplotlib_draw.pyi +6 -5
  33. hikyuu/examples/notebook/001-overview.ipynb +112 -78
  34. hikyuu/examples/notebook/004-IndicatorOverview.ipynb +52 -65
  35. hikyuu/examples/notebook/006-TradeManager.ipynb +402 -291
  36. hikyuu/examples/notebook/008-Pickle.ipynb +25 -17
  37. hikyuu/examples/notebook/009-RealData.ipynb +36 -38
  38. hikyuu/examples/notebook/Demo/Demo2.ipynb +146 -116
  39. hikyuu/extend.pyi +3 -2
  40. hikyuu/gui/data/UseTdxImportToH5Thread.py +4 -2
  41. hikyuu/gui/start_qmt.py +1 -1
  42. hikyuu/hub.pyi +6 -6
  43. hikyuu/include/hikyuu/Block.h +9 -9
  44. hikyuu/include/hikyuu/HistoryFinanceInfo.h +3 -3
  45. hikyuu/include/hikyuu/KData.h +51 -28
  46. hikyuu/include/hikyuu/KDataImp.h +12 -7
  47. hikyuu/include/hikyuu/KDataPrivatedBufferImp.h +13 -7
  48. hikyuu/include/hikyuu/KDataSharedBufferImp.h +8 -6
  49. hikyuu/include/hikyuu/KQuery.h +11 -11
  50. hikyuu/include/hikyuu/KRecord.h +1 -1
  51. hikyuu/include/hikyuu/MarketInfo.h +10 -10
  52. hikyuu/include/hikyuu/Stock.h +30 -30
  53. hikyuu/include/hikyuu/StockManager.h +11 -10
  54. hikyuu/include/hikyuu/StockTypeInfo.h +9 -9
  55. hikyuu/include/hikyuu/StockWeight.h +9 -9
  56. hikyuu/include/hikyuu/TimeLineRecord.h +1 -1
  57. hikyuu/include/hikyuu/TransRecord.h +1 -1
  58. hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +6 -0
  59. hikyuu/include/hikyuu/data_driver/KDataDriver.h +4 -3
  60. hikyuu/include/hikyuu/indicator/IndParam.h +1 -1
  61. hikyuu/include/hikyuu/indicator/Indicator.h +56 -27
  62. hikyuu/include/hikyuu/indicator/Indicator2InImp.h +0 -4
  63. hikyuu/include/hikyuu/indicator/IndicatorImp.h +146 -73
  64. hikyuu/include/hikyuu/indicator/crt/CONTEXT.h +11 -1
  65. hikyuu/include/hikyuu/indicator/crt/IC.h +19 -14
  66. hikyuu/include/hikyuu/indicator/crt/ICIR.h +4 -7
  67. hikyuu/include/hikyuu/indicator/imp/IAbs.h +1 -0
  68. hikyuu/include/hikyuu/indicator/imp/IAcos.h +1 -0
  69. hikyuu/include/hikyuu/indicator/imp/IAd.h +0 -2
  70. hikyuu/include/hikyuu/indicator/imp/IAdvance.h +3 -0
  71. hikyuu/include/hikyuu/indicator/imp/IAma.h +3 -0
  72. hikyuu/include/hikyuu/indicator/imp/IAsin.h +1 -0
  73. hikyuu/include/hikyuu/indicator/imp/IAtan.h +1 -0
  74. hikyuu/include/hikyuu/indicator/imp/IAtr.h +2 -3
  75. hikyuu/include/hikyuu/indicator/imp/IBackset.h +2 -4
  76. hikyuu/include/hikyuu/indicator/imp/IBlockSetNum.h +3 -0
  77. hikyuu/include/hikyuu/indicator/imp/ICeil.h +1 -0
  78. hikyuu/include/hikyuu/indicator/imp/IContext.h +0 -3
  79. hikyuu/include/hikyuu/indicator/imp/ICorr.h +3 -0
  80. hikyuu/include/hikyuu/indicator/imp/ICos.h +1 -0
  81. hikyuu/include/hikyuu/indicator/imp/ICost.h +0 -2
  82. hikyuu/include/hikyuu/indicator/imp/ICount.h +2 -1
  83. hikyuu/include/hikyuu/indicator/imp/ICval.h +1 -4
  84. hikyuu/include/hikyuu/indicator/imp/ICycle.h +0 -2
  85. hikyuu/include/hikyuu/indicator/imp/IDecline.h +3 -0
  86. hikyuu/include/hikyuu/indicator/imp/IDevsq.h +4 -1
  87. hikyuu/include/hikyuu/indicator/imp/IDiff.h +1 -0
  88. hikyuu/include/hikyuu/indicator/imp/IDma.h +2 -0
  89. hikyuu/include/hikyuu/indicator/imp/IDropna.h +0 -4
  90. hikyuu/include/hikyuu/indicator/imp/IEma.h +3 -1
  91. hikyuu/include/hikyuu/indicator/imp/IEvery.h +5 -1
  92. hikyuu/include/hikyuu/indicator/imp/IExist.h +5 -1
  93. hikyuu/include/hikyuu/indicator/imp/IExp.h +1 -0
  94. hikyuu/include/hikyuu/indicator/imp/IFilter.h +4 -5
  95. hikyuu/include/hikyuu/indicator/imp/IFinance.h +1 -2
  96. hikyuu/include/hikyuu/indicator/imp/IFloor.h +1 -0
  97. hikyuu/include/hikyuu/indicator/imp/IHhvbars.h +5 -1
  98. hikyuu/include/hikyuu/indicator/imp/IHighLine.h +5 -1
  99. hikyuu/include/hikyuu/indicator/imp/IHsl.h +0 -2
  100. hikyuu/include/hikyuu/indicator/imp/IIc.h +3 -6
  101. hikyuu/include/hikyuu/indicator/imp/IInBlock.h +1 -2
  102. hikyuu/include/hikyuu/indicator/imp/IIntpart.h +1 -0
  103. hikyuu/include/hikyuu/indicator/imp/IIsInf.h +1 -0
  104. hikyuu/include/hikyuu/indicator/imp/IIsInfa.h +1 -0
  105. hikyuu/include/hikyuu/indicator/imp/IIsLastBar.h +0 -1
  106. hikyuu/include/hikyuu/indicator/imp/IIsNa.h +1 -0
  107. hikyuu/include/hikyuu/indicator/imp/IJumpDown.h +1 -0
  108. hikyuu/include/hikyuu/indicator/imp/IJumpUp.h +1 -0
  109. hikyuu/include/hikyuu/indicator/imp/IKData.h +1 -2
  110. hikyuu/include/hikyuu/indicator/imp/ILiuTongPan.h +0 -2
  111. hikyuu/include/hikyuu/indicator/imp/ILn.h +1 -0
  112. hikyuu/include/hikyuu/indicator/imp/ILog.h +1 -0
  113. hikyuu/include/hikyuu/indicator/imp/ILowLine.h +5 -1
  114. hikyuu/include/hikyuu/indicator/imp/ILowLineBars.h +5 -1
  115. hikyuu/include/hikyuu/indicator/imp/IMa.h +6 -1
  116. hikyuu/include/hikyuu/indicator/imp/IMacd.h +2 -0
  117. hikyuu/include/hikyuu/indicator/imp/INot.h +1 -0
  118. hikyuu/include/hikyuu/indicator/imp/IPow.h +3 -1
  119. hikyuu/include/hikyuu/indicator/imp/IQuantileTrunc.h +1 -0
  120. hikyuu/include/hikyuu/indicator/imp/IRecover.h +3 -0
  121. hikyuu/include/hikyuu/indicator/imp/IRef.h +3 -1
  122. hikyuu/include/hikyuu/indicator/imp/IResult.h +1 -0
  123. hikyuu/include/hikyuu/indicator/imp/IReverse.h +1 -0
  124. hikyuu/include/hikyuu/indicator/imp/IRoc.h +6 -1
  125. hikyuu/include/hikyuu/indicator/imp/IRocp.h +5 -1
  126. hikyuu/include/hikyuu/indicator/imp/IRocr.h +5 -1
  127. hikyuu/include/hikyuu/indicator/imp/IRocr100.h +5 -1
  128. hikyuu/include/hikyuu/indicator/imp/IRound.h +1 -0
  129. hikyuu/include/hikyuu/indicator/imp/IRoundDown.h +1 -0
  130. hikyuu/include/hikyuu/indicator/imp/IRoundUp.h +1 -0
  131. hikyuu/include/hikyuu/indicator/imp/ISaftyLoss.h +1 -0
  132. hikyuu/include/hikyuu/indicator/imp/ISign.h +1 -0
  133. hikyuu/include/hikyuu/indicator/imp/ISin.h +1 -0
  134. hikyuu/include/hikyuu/indicator/imp/ISlope.h +5 -1
  135. hikyuu/include/hikyuu/indicator/imp/ISma.h +2 -0
  136. hikyuu/include/hikyuu/indicator/imp/ISpearman.h +3 -0
  137. hikyuu/include/hikyuu/indicator/imp/ISqrt.h +1 -0
  138. hikyuu/include/hikyuu/indicator/imp/IStdev.h +5 -1
  139. hikyuu/include/hikyuu/indicator/imp/IStdp.h +5 -1
  140. hikyuu/include/hikyuu/indicator/imp/ISum.h +6 -1
  141. hikyuu/include/hikyuu/indicator/imp/ITan.h +1 -0
  142. hikyuu/include/hikyuu/indicator/imp/ITime.h +1 -2
  143. hikyuu/include/hikyuu/indicator/imp/ITimeLine.h +0 -2
  144. hikyuu/include/hikyuu/indicator/imp/ITr.h +1 -2
  145. hikyuu/include/hikyuu/indicator/imp/IVar.h +5 -1
  146. hikyuu/include/hikyuu/indicator/imp/IVarp.h +5 -1
  147. hikyuu/include/hikyuu/indicator/imp/IVigor.h +0 -2
  148. hikyuu/include/hikyuu/indicator/imp/IWma.h +5 -1
  149. hikyuu/include/hikyuu/indicator/imp/IZongGuBen.h +1 -2
  150. hikyuu/include/hikyuu/indicator_talib/imp/TaAdosc.h +0 -2
  151. hikyuu/include/hikyuu/indicator_talib/imp/TaSar.h +0 -2
  152. hikyuu/include/hikyuu/indicator_talib/imp/TaSarext.h +0 -4
  153. hikyuu/include/hikyuu/indicator_talib/imp/TaStoch.h +0 -3
  154. hikyuu/include/hikyuu/indicator_talib/imp/TaStochf.h +0 -2
  155. hikyuu/include/hikyuu/indicator_talib/imp/TaUltosc.h +0 -2
  156. hikyuu/include/hikyuu/indicator_talib/imp/ta_defines.h +2 -4
  157. hikyuu/include/hikyuu/indicator_talib/imp/ta_imp.h +70 -90
  158. hikyuu/include/hikyuu/plugin/hkuextra.h +2 -0
  159. hikyuu/include/hikyuu/plugin/interface/HkuExtraPluginInterface.h +2 -0
  160. hikyuu/include/hikyuu/python/pybind_utils.h +22 -5
  161. hikyuu/include/hikyuu/trade_manage/TradeCostBase.h +5 -3
  162. hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +9 -2
  163. hikyuu/include/hikyuu/trade_sys/allocatefunds/AllocateFundsBase.h +8 -3
  164. hikyuu/include/hikyuu/trade_sys/condition/ConditionBase.h +5 -2
  165. hikyuu/include/hikyuu/trade_sys/environment/EnvironmentBase.h +6 -2
  166. hikyuu/include/hikyuu/trade_sys/moneymanager/MoneyManagerBase.h +5 -2
  167. hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +23 -19
  168. hikyuu/include/hikyuu/trade_sys/multifactor/NormalizeBase.h +6 -3
  169. hikyuu/include/hikyuu/trade_sys/multifactor/ScoresFilterBase.h +5 -2
  170. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_EqualWeight.h +3 -3
  171. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICIRWeight.h +4 -4
  172. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICWeight.h +4 -4
  173. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_Weight.h +4 -4
  174. hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +5 -2
  175. hikyuu/include/hikyuu/trade_sys/profitgoal/ProfitGoalBase.h +4 -2
  176. hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +12 -2
  177. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor.h +1 -1
  178. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor2.h +1 -1
  179. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +1 -0
  180. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector2.h +1 -0
  181. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/OptimalSelectorBase.h +0 -2
  182. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/PerformanceOptimalSelector.h +0 -4
  183. hikyuu/include/hikyuu/trade_sys/signal/SignalBase.h +5 -2
  184. hikyuu/include/hikyuu/trade_sys/slippage/SlippageBase.h +5 -2
  185. hikyuu/include/hikyuu/trade_sys/stoploss/StoplossBase.h +5 -2
  186. hikyuu/include/hikyuu/trade_sys/system/System.h +5 -2
  187. hikyuu/include/hikyuu/utilities/LruCache.h +299 -0
  188. hikyuu/include/hikyuu/utilities/arithmetic.h +2 -2
  189. hikyuu/include/hikyuu/utilities/omp_macro.h +25 -0
  190. hikyuu/include/hikyuu/utilities/plugin/PluginManager.h +5 -0
  191. hikyuu/include/hikyuu/utilities/thread/GlobalStealThreadPool.h +72 -19
  192. hikyuu/include/hikyuu/utilities/thread/GlobalThreadPool.h +0 -4
  193. hikyuu/include/hikyuu/utilities/thread/ThreadPool.h +0 -4
  194. hikyuu/include/hikyuu/utilities/thread/algorithm.h +286 -0
  195. hikyuu/include/hikyuu/version.h +4 -4
  196. hikyuu/plugin/backtest.dll +0 -0
  197. hikyuu/plugin/checkdata.dll +0 -0
  198. hikyuu/plugin/clickhousedriver.dll +0 -0
  199. hikyuu/plugin/dataserver.dll +0 -0
  200. hikyuu/plugin/dataserver_parquet.dll +0 -0
  201. hikyuu/plugin/device.dll +0 -0
  202. hikyuu/plugin/extind.dll +0 -0
  203. hikyuu/plugin/hkuextra.dll +0 -0
  204. hikyuu/plugin/import2ch.dll +0 -0
  205. hikyuu/plugin/import2hdf5.dll +0 -0
  206. hikyuu/plugin/import2mysql.dll +0 -0
  207. hikyuu/plugin/tmreport.dll +0 -0
  208. hikyuu/test/Indicator.py +1 -2
  209. hikyuu/trade_manage/__init__.pyi +6 -5
  210. hikyuu/trade_manage/trade.pyi +6 -5
  211. hikyuu/util/__init__.pyi +1 -1
  212. hikyuu/util/singleton.pyi +1 -1
  213. {hikyuu-2.7.3.dist-info → hikyuu-2.7.6.dist-info}/METADATA +1 -1
  214. {hikyuu-2.7.3.dist-info → hikyuu-2.7.6.dist-info}/RECORD +217 -210
  215. {hikyuu-2.7.3.dist-info → hikyuu-2.7.6.dist-info}/WHEEL +0 -0
  216. {hikyuu-2.7.3.dist-info → hikyuu-2.7.6.dist-info}/entry_points.txt +0 -0
  217. {hikyuu-2.7.3.dist-info → hikyuu-2.7.6.dist-info}/top_level.txt +0 -0
hikyuu/cpp/core313.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_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']
6
+ __all__ = ['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', 'enable_kdata_cache', '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
  资产分配算法基类, 子类接口:
@@ -1571,6 +1571,7 @@ class Indicator:
1571
1571
  """
1572
1572
  技术指标
1573
1573
  """
1574
+ enable_increment_calculate: typing.ClassVar[bool] = True
1574
1575
  @staticmethod
1575
1576
  def _pybind11_conduit_v1_(*args, **kwargs):
1576
1577
  ...
@@ -1825,6 +1826,12 @@ class Indicator:
1825
1826
  """
1826
1827
  def equal(self, arg0: Indicator) -> bool:
1827
1828
  ...
1829
+ def extend(self) -> None:
1830
+ """
1831
+ extend(self)
1832
+
1833
+ 在有上下文时,自动将上下文扩展至当前最新数据并计算
1834
+ """
1828
1835
  def formula(self) -> str:
1829
1836
  """
1830
1837
  formula(self)
@@ -1938,7 +1945,7 @@ class Indicator:
1938
1945
  """
1939
1946
  def have_ind_param(self, arg0: str) -> bool:
1940
1947
  """
1941
- 是否存在指定的动态指标参数
1948
+ 是否存在指定的动态周期指标参数
1942
1949
  """
1943
1950
  def have_param(self, arg0: str) -> bool:
1944
1951
  """
@@ -1996,10 +2003,6 @@ class Indicator:
1996
2003
  :type value: int | bool | float | string | Query | KData | Stock | DatetimeList
1997
2004
  :raises logic_error: Unsupported type! 不支持的参数类型
1998
2005
  """
1999
- def support_ind_param(self) -> bool:
2000
- """
2001
- 是否支持动态指标参数
2002
- """
2003
2006
  def to_array(self, result_index: typing.SupportsInt = 0) -> numpy.typing.NDArray[numpy.float64]:
2004
2007
  """
2005
2008
  将指定结果集转化为numpy.array
@@ -2038,6 +2041,9 @@ class Indicator:
2038
2041
  @name.setter
2039
2042
  def name(self, arg1: str) -> None:
2040
2043
  ...
2044
+ @property
2045
+ def optype(self) -> str:
2046
+ ...
2041
2047
  class IndicatorImp:
2042
2048
  """
2043
2049
  指标实现类,定义新指标时,应从此类继承
@@ -2127,8 +2133,6 @@ class IndicatorImp:
2127
2133
  ...
2128
2134
  def set_param(self, arg0: str, arg1: any) -> None:
2129
2135
  ...
2130
- def support_ind_param(self) -> bool:
2131
- ...
2132
2136
  @property
2133
2137
  def discard(self) -> int:
2134
2138
  """
@@ -2278,14 +2282,12 @@ class KData:
2278
2282
  :rtype: KData
2279
2283
  """
2280
2284
  @typing.overload
2281
- def get_kdata(self, start: typing.SupportsInt, end: typing.SupportsInt = 9223372036854775807) -> KData:
2285
+ def get_kdata(self, arg0: Query) -> KData:
2282
2286
  """
2283
- get_kdata(self, start, end)
2284
-
2285
- 通过索引获取 KData 子集,相当于切片
2286
-
2287
- :param int start: 索引起始位置
2288
- :param int end: 索引结束位置
2287
+ get_kdata(query)
2288
+
2289
+ 通过当前 KData 获取获取另一个 KData,不一定是其子集
2290
+
2289
2291
  :rtype: KData
2290
2292
  """
2291
2293
  def get_pos(self, arg0: Datetime) -> typing.Any:
@@ -2322,6 +2324,16 @@ class KData:
2322
2324
 
2323
2325
  :rtype: Stock
2324
2326
  """
2327
+ def get_sub_kdata(self, start: typing.SupportsInt, end: typing.SupportsInt = 9223372036854775807) -> KData:
2328
+ """
2329
+ get_sub_kdata(start, end = Null<int64_t>)
2330
+
2331
+ 通过索引获取自身子集
2332
+
2333
+ :param int start: 起始索引
2334
+ :param int end: 结束索引
2335
+ :rtype: KData
2336
+ """
2325
2337
  def to_df(self, with_stock: bool = False) -> typing.Any:
2326
2338
  """
2327
2339
  to_df(self, with_stock=False) -> pandas.DataFrame
@@ -3102,7 +3114,7 @@ class MultiFactorBase:
3102
3114
  ...
3103
3115
  def __str__(self) -> str:
3104
3116
  ...
3105
- def add_special_normalize(self, name: str, norm: NormalizeBase = None, category: str = '', style_inds: collections.abc.Sequence[Indicator] = []) -> None:
3117
+ def add_special_normalize(self, name: str, norm: typing.Any = None, category: str = '', style_inds: collections.abc.Sequence[Indicator] = []) -> None:
3106
3118
  """
3107
3119
  add_special_normalize(self, name[, norm=None, category="", style_inds=[]])
3108
3120
 
@@ -4552,7 +4564,7 @@ class SelectorBase:
4552
4564
  """
4553
4565
  子类复位操作实现
4554
4566
  """
4555
- def add_scores_filter(self, arg0: ScoresFilterBase) -> None:
4567
+ def add_scores_filter(self, arg0: typing.Any) -> None:
4556
4568
  """
4557
4569
  add_scores_filter(self, filter)
4558
4570
 
@@ -4569,7 +4581,7 @@ class SelectorBase:
4569
4581
  :param Stock stock: 加入的初始标的
4570
4582
  :param System sys: 系统策略原型
4571
4583
  """
4572
- def add_stock_list(self, stk_list: collections.abc.Sequence, sys: ...) -> None:
4584
+ def add_stock_list(self, stk_list: typing.Any, sys: ...) -> None:
4573
4585
  """
4574
4586
  add_stock_list(self, stk_list, sys)
4575
4587
 
@@ -4642,7 +4654,7 @@ class SelectorBase:
4642
4654
  :param value: 参数值
4643
4655
  :raises logic_error: Unsupported type! 不支持的参数类型
4644
4656
  """
4645
- def set_scores_filter(self, arg0: ScoresFilterBase) -> None:
4657
+ def set_scores_filter(self, arg0: typing.Any) -> None:
4646
4658
  """
4647
4659
  set_scores_filter(self, filter)
4648
4660
 
@@ -4655,6 +4667,9 @@ class SelectorBase:
4655
4667
  """
4656
4668
  获取关联的 MF
4657
4669
  """
4670
+ @mf.setter
4671
+ def mf(self, arg1: typing.Any) -> None:
4672
+ ...
4658
4673
  @property
4659
4674
  def name(self) -> str:
4660
4675
  """
@@ -8416,7 +8431,7 @@ def AGG_FUNC(ind: Indicator, agg_func: typing.Any, ktype: str = 'MIN', fill_null
8416
8431
  """
8417
8432
  AGG_FUNC(ind, agg_func[, ktype=Query.MIN, fill_null=False, unit=1]
8418
8433
 
8419
- 使用自定函数聚合其他K线周期的指标。虽然支持python自定义函数, 但python函数需要GIL, 速度会慢。建议最好直接使用 C++ 自定义聚合函数。
8434
+ 使用自定函数聚合其他K线周期的指标。
8420
8435
 
8421
8436
  示例, 计算日线时聚合分钟线收盘价的和:
8422
8437
 
@@ -8801,10 +8816,10 @@ def BLOCKSETNUM(block: Block, query: Query) -> Indicator:
8801
8816
  :param Query query: 统计范围
8802
8817
  """
8803
8818
  @typing.overload
8804
- def BLOCKSETNUM(stks: collections.abc.Sequence) -> Indicator:
8819
+ def BLOCKSETNUM(stks: typing.Any) -> Indicator:
8805
8820
  ...
8806
8821
  @typing.overload
8807
- def BLOCKSETNUM(stks: collections.abc.Sequence, query: Query) -> Indicator:
8822
+ def BLOCKSETNUM(stks: typing.Any, query: Query) -> Indicator:
8808
8823
  """
8809
8824
  BLOCKSETNUM(block, query)
8810
8825
 
@@ -8871,12 +8886,26 @@ def CONTEXT(ind: Indicator, fill_null: bool = False, use_self_ktype: bool = Fals
8871
8886
  :param bool use_self_recover_type: 公式计算时使用自身独立上下文中的RECOVER_TYPE
8872
8887
  :rtype: Indicator
8873
8888
  """
8889
+ @typing.overload
8890
+ def CONTEXT(ind: Indicator, stock: Stock, fill_null: bool = False) -> Indicator:
8891
+ """
8892
+ CONTEXT(ind, stock[, fill_null=False])
8893
+
8894
+ 通过指定股票,设置指标独立上下文指标, 忽略传入ind自身上下文, 直接使用stock的作为上下文
8895
+
8896
+ :param Indicator ind: 指标对象
8897
+ :param Stock stock: 股票对象
8898
+ :param bool fill_null: 日期对齐时,缺失日期对应填充空值,否则使用前值填充。
8899
+ :rtype: Indicator
8900
+ """
8874
8901
  def CONTEXT_K(arg0: Indicator) -> KData:
8875
8902
  """
8876
8903
  CONTEXT_K(ind)
8877
8904
 
8878
8905
  获取指标上下文。Indicator::getContext()方法获取的是当前的上下文,但对于 CONTEXT 独立上下文指标无法获取其指定的独立上下文,需用此方法获取
8879
8906
 
8907
+ 该指标一旦作为公式,参与计算,其上下文可能发生变化,但其stock保持不变,仅query范围发生改变
8908
+
8880
8909
  :param Indicator ind: 指标对象
8881
8910
  :rtype: KData
8882
8911
  """
@@ -9428,7 +9457,7 @@ def GROUP_FUNC(ind: Indicator, group_func: typing.Any, ktype: str = 'DAY', unit:
9428
9457
  """
9429
9458
  GROUP_FUNC(ind, group_func[, ktype=Query.DAY, unit=1])
9430
9459
 
9431
- 自定义分组累积计算指标。虽然支持python自定义函数, 但python函数需要GIL, 速度较慢。建议最好直接使用 C++ 自定义分组累积函数。
9460
+ 自定义分组累积计算指标。
9432
9461
 
9433
9462
  示例, 计算日线时聚合分钟线收盘价的和:
9434
9463
 
@@ -9547,9 +9576,9 @@ def Hours(arg0: typing.SupportsInt) -> TimeDelta:
9547
9576
  :param int hours: 小时数
9548
9577
  :rtype: TimeDelta
9549
9578
  """
9550
- def IC(ind: Indicator, stks: typing.Any, query: Query, ref_stk: Stock, n: typing.SupportsInt = 1, spearman: bool = True, strict: bool = False) -> Indicator:
9579
+ def IC(ind: Indicator, stks: typing.Any, n: typing.SupportsInt = 1, spearman: bool = True, strict: bool = False) -> Indicator:
9551
9580
  """
9552
- IC(ind, stks, query, ref_stk[, n=1, spearman=True, strict=False]) -> Indicator
9581
+ IC(ind, stks[, n=1, spearman=True, strict=False]) -> Indicator
9553
9582
 
9554
9583
  计算指定的因子相对于参考证券的 IC (实际为 RankIC)
9555
9584
 
@@ -9560,22 +9589,18 @@ def IC(ind: Indicator, stks: typing.Any, query: Query, ref_stk: Stock, n: typing
9560
9589
 
9561
9590
  :param Indicator ind: 输入因子
9562
9591
  :param sequence(stock)|Block stks 证券组合
9563
- :param Query query: 查询条件
9564
- :param Stock ref_stk: 参照证券,通常使用 sh000300 沪深300
9565
9592
  :param int n: 时间窗口
9566
9593
  :param bool spearman: 使用 spearman 相关系数,否则为 pearson
9567
9594
  :param bool strict: 严格模式
9568
9595
  """
9569
- def ICIR(ind: Indicator, stks: typing.Any, query: Query, ref_stk: Stock, n: typing.SupportsInt = 1, rolling_n: typing.SupportsInt = 120, spearman: bool = True, strict: bool = False) -> Indicator:
9596
+ def ICIR(ind: Indicator, stks: typing.Any, n: typing.SupportsInt = 1, rolling_n: typing.SupportsInt = 120, spearman: bool = True, strict: bool = False) -> Indicator:
9570
9597
  """
9571
- ICIR(ind, stks, query, ref_stk[, n=1, rolling_n=120, spearman=True, strict=False])
9598
+ ICIR(ind, stks[, n=1, rolling_n=120, spearman=True, strict=False])
9572
9599
 
9573
9600
  计算 IC 因子 IR = IC的多周期均值/IC的标准方差
9574
9601
 
9575
9602
  :param Indicator ind: 输入因子
9576
9603
  :param sequence(stock)|Block stks 证券组合
9577
- :param Query query: 查询条件
9578
- :param Stock ref_stk: 参照证券,通常使用 sh000300 沪深300
9579
9604
  :param int n: 计算IC时对应的 n 日收益率
9580
9605
  :param int rolling_n: 滚动周期
9581
9606
  :param bool spearman: 使用 spearman 相关系数,否则为 pearson
@@ -10152,7 +10177,7 @@ def MDD(arg0: Indicator) -> Indicator:
10152
10177
  def MF_EqualWeight() -> MultiFactorBase:
10153
10178
  ...
10154
10179
  @typing.overload
10155
- def MF_EqualWeight(inds: collections.abc.Sequence, stks: 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:
10180
+ def MF_EqualWeight(inds: collections.abc.Sequence, stks: typing.Any, 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:
10156
10181
  """
10157
10182
  MF_EqualWeight(inds, stks, query, ref_stk[, ic_n=5])
10158
10183
 
@@ -10161,7 +10186,7 @@ def MF_EqualWeight(inds: collections.abc.Sequence, stks: collections.abc.Sequenc
10161
10186
  :param sequense(Indicator) inds: 原始因子列表
10162
10187
  :param sequense(stock) stks: 计算证券列表
10163
10188
  :param Query query: 日期范围
10164
- :param Stock ref_stk: 参考证券 (未指定时,默认为 sh000300 沪深300)
10189
+ :param Stock ref_stk: 参考证券用于日期对齐 (未指定时,默认为 sh000001)
10165
10190
  :param int ic_n: 默认 IC 对应的 N 日收益率
10166
10191
  :param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
10167
10192
  :param int mode: 获取截面数据时排序模式: 0-降序, 1-升序, 2-不排序
@@ -10172,16 +10197,16 @@ def MF_EqualWeight(inds: collections.abc.Sequence, stks: collections.abc.Sequenc
10172
10197
  def MF_ICIRWeight() -> MultiFactorBase:
10173
10198
  ...
10174
10199
  @typing.overload
10175
- def MF_ICIRWeight(inds: collections.abc.Sequence, stks: collections.abc.Sequence, query: Query, ref_stk: typing.Any = None, ic_n: typing.SupportsInt = 5, ic_rolling_n: typing.SupportsInt = 120, spearman: bool = True, mode: typing.SupportsInt = 0, save_all_factors: bool = False) -> MultiFactorBase:
10200
+ def MF_ICIRWeight(inds: collections.abc.Sequence, stks: typing.Any, query: Query, ref_stk: typing.Any = None, ic_n: typing.SupportsInt = 5, ic_rolling_n: typing.SupportsInt = 120, spearman: bool = True, mode: typing.SupportsInt = 0, save_all_factors: bool = False) -> MultiFactorBase:
10176
10201
  """
10177
- MF_EqualWeight(inds, stks, query, ref_stk[, ic_n=5, ic_rolling_n=120])
10202
+ MF_ICIRWeight(inds, stks, query, ref_stk[, ic_n=5, ic_rolling_n=120])
10178
10203
 
10179
10204
  滚动ICIR权重合成因子
10180
10205
 
10181
10206
  :param sequense(Indicator) inds: 原始因子列表
10182
10207
  :param sequense(stock) stks: 计算证券列表
10183
10208
  :param Query query: 日期范围
10184
- :param Stock ref_stk: 参考证券 (未指定时,默认为 sh000300 沪深300)
10209
+ :param Stock ref_stk: 用于日期对齐的参考证券 (未指定时,默认为 sh000001)
10185
10210
  :param int ic_n: 默认 IC 对应的 N 日收益率
10186
10211
  :param int ic_rolling_n: IC 滚动周期
10187
10212
  :param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
@@ -10193,16 +10218,16 @@ def MF_ICIRWeight(inds: collections.abc.Sequence, stks: collections.abc.Sequence
10193
10218
  def MF_ICWeight() -> MultiFactorBase:
10194
10219
  ...
10195
10220
  @typing.overload
10196
- def MF_ICWeight(inds: collections.abc.Sequence, stks: collections.abc.Sequence, query: Query, ref_stk: typing.Any = None, ic_n: typing.SupportsInt = 5, ic_rolling_n: typing.SupportsInt = 120, spearman: bool = True, mode: typing.SupportsInt = 0, save_all_factors: bool = False) -> MultiFactorBase:
10221
+ def MF_ICWeight(inds: collections.abc.Sequence, stks: typing.Any, query: Query, ref_stk: typing.Any = None, ic_n: typing.SupportsInt = 5, ic_rolling_n: typing.SupportsInt = 120, spearman: bool = True, mode: typing.SupportsInt = 0, save_all_factors: bool = False) -> MultiFactorBase:
10197
10222
  """
10198
- MF_EqualWeight(inds, stks, query, ref_stk[, ic_n=5, ic_rolling_n=120])
10223
+ MF_ICWeight(inds, stks, query, ref_stk[, ic_n=5, ic_rolling_n=120])
10199
10224
 
10200
10225
  滚动IC权重合成因子
10201
10226
 
10202
10227
  :param sequense(Indicator) inds: 原始因子列表
10203
10228
  :param sequense(stock) stks: 计算证券列表
10204
10229
  :param Query query: 日期范围
10205
- :param Stock ref_stk: (未指定时,默认为 sh000300 沪深300)
10230
+ :param Stock ref_stk: 用于日期对齐的参考证券 (未指定时,默认为 sh000001)
10206
10231
  :param int ic_n: 默认 IC 对应的 N 日收益率
10207
10232
  :param int ic_rolling_n: IC 滚动周期
10208
10233
  :param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
@@ -10214,7 +10239,7 @@ def MF_ICWeight(inds: collections.abc.Sequence, stks: collections.abc.Sequence,
10214
10239
  def MF_Weight() -> MultiFactorBase:
10215
10240
  ...
10216
10241
  @typing.overload
10217
- 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:
10242
+ def MF_Weight(inds: collections.abc.Sequence, stks: typing.Any, 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:
10218
10243
  """
10219
10244
  MF_Weight(inds, stks, weights, query, ref_stk[, ic_n=5, spearman=True, mode=0, save_all_factors=False])
10220
10245
 
@@ -10224,7 +10249,7 @@ def MF_Weight(inds: collections.abc.Sequence, stks: collections.abc.Sequence, we
10224
10249
  :param sequense(stock) stks: 计算证券列表
10225
10250
  :param sequense(float) weights: 权重列表(需和 inds 等长)
10226
10251
  :param Query query: 日期范围
10227
- :param Stock ref_stk: 参考证券 (未指定时,默认为 sh000300 沪深300)
10252
+ :param Stock ref_stk: 参考证券用于日期对齐 (未指定时,默认为 sh000001)
10228
10253
  :param int ic_n: 默认 IC 对应的 N 日收益率
10229
10254
  :param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
10230
10255
  :param int mode: 获取截面数据时排序模式: 0-降序, 1-升序, 2-不排序
@@ -10617,7 +10642,7 @@ def QUANTILE_TRUNC(data: Indicator, n: typing.SupportsInt = 60, quantial_min: ty
10617
10642
  :rtype: Indicator
10618
10643
  """
10619
10644
  @typing.overload
10620
- def RANK(stks: collections.abc.Sequence, mode: typing.SupportsInt = 0, fill_null: bool = True, market: str = 'SH') -> Indicator:
10645
+ def RANK(stks: typing.Any, mode: typing.SupportsInt = 0, fill_null: bool = True, market: str = 'SH') -> Indicator:
10621
10646
  ...
10622
10647
  @typing.overload
10623
10648
  def RANK(stks: collections.abc.Sequence, ref_ind: Indicator, mode: typing.SupportsInt = 0, fill_null: bool = True, market: str = 'SH') -> Indicator:
@@ -11039,7 +11064,7 @@ def SE_EvaluateOptimal(arg0: typing.Any) -> SelectorBase:
11039
11064
  def SE_Fixed(weight: typing.SupportsFloat = 1.0) -> SelectorBase:
11040
11065
  ...
11041
11066
  @typing.overload
11042
- def SE_Fixed(stk_list: collections.abc.Sequence, sys: ..., weight: typing.SupportsFloat = 1.0) -> SelectorBase:
11067
+ def SE_Fixed(stk_list: typing.Any, sys: ..., weight: typing.SupportsFloat = 1.0) -> SelectorBase:
11043
11068
  """
11044
11069
  SE_Fixed([stk_list, sys])
11045
11070
 
@@ -11073,7 +11098,7 @@ def SE_MultiFactor(inds: collections.abc.Sequence, topn: typing.SupportsInt = 10
11073
11098
  :param int topn: 只选取时间截面中前 topn 个系统,小于等于0时代表不限制
11074
11099
  :param int ic_n: 默认 IC 对应的 N 日收益率
11075
11100
  :param int ic_rolling_n: IC 滚动周期
11076
- :param Stock ref_stk: 参考证券 (未指定时,默认为 sh000300 沪深300)
11101
+ :param Stock ref_stk: 参考证券,用于日期对齐,未指定时为 sh000001
11077
11102
  :param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
11078
11103
  :param str mode: "MF_ICIRWeight" | "MF_ICWeight" | "MF_EqualWeight" 因子合成算法名称
11079
11104
  """
@@ -11094,7 +11119,7 @@ def SE_MultiFactor2(inds: collections.abc.Sequence, ic_n: typing.SupportsInt = 5
11094
11119
  :param sequense(Indicator) inds: 原始因子列表
11095
11120
  :param int ic_n: 默认 IC 对应的 N 日收益率
11096
11121
  :param int ic_rolling_n: IC 滚动周期
11097
- :param Stock ref_stk: 参考证券 (未指定时,默认为 sh000300 沪深300)
11122
+ :param Stock ref_stk: 参考证券,用于日期对齐,未指定时为 sh000001
11098
11123
  :param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
11099
11124
  :param str mode: "MF_ICIRWeight" | "MF_ICWeight" | "MF_EqualWeight" 因子合成算法名称
11100
11125
  """
@@ -14304,7 +14329,7 @@ def bind_email(arg0: str, arg1: str) -> None:
14304
14329
  """
14305
14330
  def can_upgrade() -> bool:
14306
14331
  ...
14307
- def check_data(stock_list: collections.abc.Sequence, start_date: Datetime, end_date: Datetime, ktype: str) -> tuple:
14332
+ def check_data(stock_list: typing.Any, start_date: Datetime, end_date: Datetime, ktype: str) -> tuple:
14308
14333
  """
14309
14334
  检查数据
14310
14335
  """
@@ -14376,6 +14401,15 @@ def df_to_krecords(df: typing.Any, columns: collections.abc.Sequence[str] = ['da
14376
14401
  :param dict columns: 指定DataFrame的列名,对应KRecord的成员变量名称
14377
14402
  :return: 转换后的KRecordList
14378
14403
  """
14404
+ def enable_kdata_cache(enable: bool) -> None:
14405
+ """
14406
+ enable_kdata_cache(enable)
14407
+
14408
+ 启用或禁用K线数据缓存
14409
+
14410
+ :param bool enable: 是否启用K线数据缓存
14411
+ :return: None
14412
+ """
14379
14413
  def fetch_trial_license(arg0: str) -> str:
14380
14414
  """
14381
14415
  fetch_trial_license(email: str)
hikyuu/cpp/hikyuu.dll CHANGED
Binary file
hikyuu/cpp/hikyuu.lib CHANGED
Binary file
Binary file
Binary file
@@ -0,0 +1,9 @@
1
+ ALTER TABLE `hku_base`.`stocktypeinfo`
2
+ UPDATE `minTradeNumber` = CASE
3
+ WHEN `type` = 9 AND `description` = '科创板' THEN 200
4
+ WHEN `type` = 11 AND `description` = '北交所' THEN 100
5
+ ELSE `minTradeNumber`
6
+ END
7
+ WHERE (`type` = 9 AND `description` = '科创板')
8
+ OR (`type` = 11 AND `description` = '北交所');
9
+ ALTER TABLE `hku_base`.`version` UPDATE `version`=2 WHERE `id`=0;
@@ -502,7 +502,7 @@ def update_extern_data(connect, market, code, data_type):
502
502
  if insert_buffer:
503
503
  cur = connect.cursor()
504
504
  cur.executemany(
505
- "insert into {} (date, open, high, low, close, amount, count) \
505
+ "replace into {} (date, open, high, low, close, amount, count) \
506
506
  values (%s, %s, %s, %s, %s, %s, %s)".format(index_table), insert_buffer
507
507
  )
508
508
  connect.commit()
@@ -22,10 +22,22 @@ def em_import_block_to_mysql(connect):
22
22
 
23
23
  hku_info("更新数据库")
24
24
  cur = connect.cursor()
25
- sql = f"delete from hku_base.block where category in {tuple(blks.keys())}"
26
- cur.execute(sql)
27
- sql = f"delete from hku_base.BlockIndex where category in {tuple(blks.keys())}"
28
- cur.execute(sql)
25
+
26
+ # 构建参数化的DELETE语句以防止SQL注入
27
+ categories = tuple(blks.keys())
28
+ if len(categories) == 1:
29
+ # 处理只有一个类别的特殊情况
30
+ placeholders = '%s'
31
+ params = categories
32
+ else:
33
+ placeholders = ','.join(['%s'] * len(categories)) # 创建相应数量的占位符
34
+ params = categories
35
+
36
+ sql = f"delete from hku_base.block where category in ({placeholders})"
37
+ cur.execute(sql, params)
38
+
39
+ sql = f"delete from hku_base.BlockIndex where category in ({placeholders})"
40
+ cur.execute(sql, params)
29
41
 
30
42
  insert_records = []
31
43
 
@@ -23,10 +23,22 @@ def em_import_block_to_sqlite(connect):
23
23
 
24
24
  hku_info("更新数据库")
25
25
  cur = connect.cursor()
26
- sql = f"delete from block where category in {tuple(blks.keys())}"
27
- cur.execute(sql)
28
- sql = f"delete from BlockIndex where category in {tuple(blks.keys())}"
29
- cur.execute(sql)
26
+
27
+ # 构建参数化的DELETE语句以防止SQL注入
28
+ categories = tuple(blks.keys())
29
+ if len(categories) == 1:
30
+ # 处理只有一个类别的特殊情况
31
+ placeholders = '?'
32
+ params = categories
33
+ else:
34
+ placeholders = ','.join(['?'] * len(categories)) # 创建相应数量的占位符
35
+ params = categories
36
+
37
+ sql = f"delete from block where category in ({placeholders})"
38
+ cur.execute(sql, params)
39
+
40
+ sql = f"delete from BlockIndex where category in ({placeholders})"
41
+ cur.execute(sql, params)
30
42
 
31
43
  insert_records = []
32
44
 
@@ -330,7 +330,7 @@ def generate_default_config():
330
330
  user_dir = os.path.expanduser('~')
331
331
  data_dir = "c:\\stock" if sys.platform == 'win32' else f"{user_dir}/stock"
332
332
  hdf5_config = hdf5_template.format(dir=data_dir, reload_time="00:00", quotation_server='ipc:///tmp/hikyuu_real.ipc',
333
- day=True, week=False,
333
+ lazy_preload=False, day=True, week=False,
334
334
  month=False, quarter=False, halfyear=False, year=False,
335
335
  min1=False, min5=False, min15=False, min30=False,
336
336
  min60=False, hour2=False, timeline=False, trans=False,
@@ -0,0 +1,3 @@
1
+ update `hku_base`.`stocktypeinfo` set `minTradeNumber`=200 where `type`=9 and `description`='科创板';
2
+ update `hku_base`.`stocktypeinfo` set `minTradeNumber`=100 where `type`=11 and `description`='北交所';
3
+ UPDATE `hku_base`.`version` set `version` = 30;
@@ -327,11 +327,11 @@ def import_one_stock_data(connect, api, h5file, market, ktype, stock_record, sta
327
327
  hku_error(
328
328
  f"fetch data from tdx error! {bar_datetime} {ktype} {market}{code} last_krecord close: {last_krecord['closePrice']*0.001}, bar: {bar['close']}")
329
329
  return (0, False, Datetime(last_datetime))
330
- if ktype == 'DAY' and last_krecord['transAmount'] != 0 and (abs(float(last_krecord['transAmount']) - round(bar["amount"]*0.001))) > 10:
330
+ if ktype == 'DAY' and last_krecord['transAmount'] != 0 and (abs(float(last_krecord['transAmount']) - round(bar["amount"]*0.001))) > 10000:
331
331
  hku_error(
332
332
  f"fetch data from tdx error! {bar_datetime} {ktype} {market}{code} last_krecord amount: {float(last_krecord['transAmount'])}, bar: {round(bar['amount']*0.001)}")
333
333
  return (0, False, Datetime(last_datetime))
334
- if ktype == 'DAY' and last_krecord['transCount'] != 0 and abs(float(last_krecord['transCount']) - bar["vol"]) > 10:
334
+ if ktype == 'DAY' and last_krecord['transCount'] != 0 and abs(float(last_krecord['transCount']) - bar["vol"]) > 10000:
335
335
  hku_error(
336
336
  f"fetch data from tdx error! {bar_datetime} {ktype} {market}{code} last_krecord count: {last_krecord['transCount']}, bar: {bar['vol']}")
337
337
  return (0, False, Datetime(last_datetime))
@@ -371,11 +371,11 @@ def import_one_stock_data(
371
371
  hku_error(
372
372
  f"fetch data from tdx error! {bar_datetime} {ktype} {market}{code} last_krecord close: {last_krecord[4]}, bar: {bar['close']}")
373
373
  return (0, False, Datetime(last_datetime))
374
- if ktype == 'DAY' and last_krecord[5] != 0.0 and abs(last_krecord[5] - bar["amount"]*0.001) > 10:
374
+ if ktype == 'DAY' and last_krecord[5] != 0.0 and abs(last_krecord[5] - bar["amount"]*0.001) > 10000:
375
375
  hku_error(
376
376
  f"fetch data from tdx error! {bar_datetime} {ktype} {market}{code} last_krecord amount: {last_krecord[5]}, bar: {bar['amount']*0.001}")
377
377
  return (0, False, Datetime(last_datetime))
378
- if ktype == 'DAY' and last_krecord[6] != 0.0 and abs(last_krecord[6] - bar["vol"]) > 10:
378
+ if ktype == 'DAY' and last_krecord[6] != 0.0 and abs(last_krecord[6] - bar["vol"]) > 10000:
379
379
  hku_error(
380
380
  f"fetch data from tdx error! {bar_datetime} {ktype} {market}{code} last_krecord count: {last_krecord[6]}, bar: {bar['vol']}")
381
381
  return (0, False, Datetime(last_datetime))
@@ -523,11 +523,11 @@ def import_data(
523
523
  '5MIN': 'MIN5'
524
524
  }
525
525
  nktype = ktype_dict[ktype]
526
- h5_importer = get_mysql_importer(market, nktype)
527
- if h5_importer is not None:
526
+ importer = get_mysql_importer()
527
+ if importer is not None:
528
528
  for r in failed_list:
529
529
  hku_warn("remove {}{} {}: {}", r[0], r[1], nktype, r[2].start_of_day())
530
- h5_importer.remove(r[0], r[1], nktype, r[2].start_of_day())
530
+ importer.remove(r[0], r[1], nktype, r[2].start_of_day())
531
531
  hku_warn(f"已清理 {market} {failed_count} 个失败股票的最后记录,建议重新导入")
532
532
 
533
533
  if failed_count >= failed_limit:
@@ -0,0 +1,5 @@
1
+ BEGIN TRANSACTION;
2
+ update `stocktypeinfo` set `minTradeNumber`=200 where `type`=9 and `description`='科创板';
3
+ update `stocktypeinfo` set `minTradeNumber`=100 where `type`=11 and `description`='北交所';
4
+ UPDATE `version` set `version` = 30;
5
+ COMMIT;
hikyuu/draw/__init__.pyi CHANGED
@@ -9,8 +9,8 @@ from hikyuu.draw.drawplot import gcf
9
9
  from hikyuu.draw.drawplot import get_current_draw_engine
10
10
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWBAND
11
11
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWICON
12
- from hikyuu.draw.drawplot.matplotlib_draw import DRAWIMG
13
12
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWIMG as DRAWBMP
13
+ from hikyuu.draw.drawplot.matplotlib_draw import DRAWIMG
14
14
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWLINE
15
15
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWNUMBER
16
16
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWNUMBER_FIX
@@ -25,8 +25,8 @@ from hikyuu.draw.drawplot.echarts_draw import sys_performance as ec_sys_performa
25
25
  from hikyuu.draw.drawplot.echarts_draw import sysplot as ec_sysplot
26
26
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWBAND
27
27
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWICON
28
- from hikyuu.draw.drawplot.matplotlib_draw import DRAWIMG as DRAWBMP
29
28
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWIMG
29
+ from hikyuu.draw.drawplot.matplotlib_draw import DRAWIMG as DRAWBMP
30
30
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWLINE
31
31
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWNUMBER
32
32
  from hikyuu.draw.drawplot.matplotlib_draw import DRAWNUMBER_FIX