hikyuu 2.6.8.5__py3-none-win_amd64.whl → 2.6.9__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 (176) hide show
  1. hikyuu/__init__.py +5 -11
  2. hikyuu/__init__.pyi +37 -12
  3. hikyuu/analysis/__init__.pyi +26 -0
  4. hikyuu/analysis/analysis.pyi +27 -1
  5. hikyuu/core.py +2 -0
  6. hikyuu/core.pyi +28 -2
  7. hikyuu/cpp/arrow.dll +0 -0
  8. hikyuu/cpp/boost_date_time-mt.dll +0 -0
  9. hikyuu/cpp/boost_serialization-mt.dll +0 -0
  10. hikyuu/cpp/boost_system-mt.dll +0 -0
  11. hikyuu/cpp/boost_wserialization-mt.dll +0 -0
  12. hikyuu/cpp/core310.pyd +0 -0
  13. hikyuu/cpp/core310.pyi +446 -9
  14. hikyuu/cpp/core311.pyd +0 -0
  15. hikyuu/cpp/core311.pyi +446 -9
  16. hikyuu/cpp/core312.pyd +0 -0
  17. hikyuu/cpp/core312.pyi +446 -9
  18. hikyuu/cpp/core313.pyd +0 -0
  19. hikyuu/cpp/core313.pyi +446 -9
  20. hikyuu/cpp/core39.pyd +0 -0
  21. hikyuu/cpp/core39.pyi +446 -9
  22. hikyuu/cpp/hikyuu.dll +0 -0
  23. hikyuu/cpp/hikyuu.lib +0 -0
  24. hikyuu/cpp/i18n/zh_CN/hikyuu.mo +0 -0
  25. hikyuu/cpp/msvcp140-a118642f3ae8774fb9dc223e15c4a52e.dll +0 -0
  26. hikyuu/cpp/parquet.dll +0 -0
  27. hikyuu/cpp/sqlite3.dll +0 -0
  28. hikyuu/data/clickhouse_upgrade/createdb.sql +105 -105
  29. hikyuu/data/common.py +3 -3
  30. hikyuu/data/common_clickhouse.py +1 -1
  31. hikyuu/data/download_block.py +318 -0
  32. hikyuu/data/em_block_to_clickhouse.py +26 -74
  33. hikyuu/data/em_block_to_mysql.py +25 -75
  34. hikyuu/data/em_block_to_sqlite.py +26 -78
  35. hikyuu/data/hku_config_template.py +3 -3
  36. hikyuu/data/pytdx_to_clickhouse.py +15 -11
  37. hikyuu/data/pytdx_to_h5.py +6 -2
  38. hikyuu/data/pytdx_to_mysql.py +5 -1
  39. hikyuu/data/pytdx_weight_to_clickhouse.py +1 -1
  40. hikyuu/data/pytdx_weight_to_mysql.py +1 -1
  41. hikyuu/data/pytdx_weight_to_sqlite.py +1 -1
  42. hikyuu/data/zh_bond10_to_clickhouse.py +1 -1
  43. hikyuu/draw/drawplot/bokeh_draw.pyi +33 -8
  44. hikyuu/draw/drawplot/echarts_draw.pyi +33 -8
  45. hikyuu/draw/drawplot/matplotlib_draw.py +4 -74
  46. hikyuu/draw/drawplot/matplotlib_draw.pyi +33 -8
  47. hikyuu/examples/notebook/Demo/Demo1.ipynb +48 -33
  48. hikyuu/extend.py +0 -1
  49. hikyuu/extend.pyi +30 -5
  50. hikyuu/fetcher/stock/zh_block_em.py +50 -18
  51. hikyuu/gui/HikyuuTDX.py +81 -30
  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 +1168 -715
  56. hikyuu/gui/data/SchedImportThread.py +2 -2
  57. hikyuu/gui/data/UsePytdxImportToH5Thread.py +3 -3
  58. hikyuu/gui/data/UseQmtImportToH5Thread.py +2 -2
  59. hikyuu/gui/data/UseTdxImportToH5Thread.py +3 -3
  60. hikyuu/gui/data/tool.py +32 -25
  61. hikyuu/gui/dataserver.py +5 -3
  62. hikyuu/hub.pyi +6 -6
  63. hikyuu/include/hikyuu/DataType.h +4 -16
  64. hikyuu/include/hikyuu/KData.h +6 -3
  65. hikyuu/include/hikyuu/KDataPrivatedBufferImp.h +1 -1
  66. hikyuu/include/hikyuu/KDataSharedBufferImp.h +1 -1
  67. hikyuu/include/hikyuu/KQuery.h +2 -2
  68. hikyuu/include/hikyuu/Stock.h +3 -0
  69. hikyuu/include/hikyuu/StockManager.h +13 -3
  70. hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +8 -0
  71. hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +6 -0
  72. hikyuu/include/hikyuu/data_driver/KDataDriver.h +26 -1
  73. hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +1 -1
  74. hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +1 -1
  75. hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +2 -1
  76. hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +2 -1
  77. hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +2 -1
  78. hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +1 -1
  79. hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +1 -1
  80. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +1 -1
  81. hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +1 -1
  82. hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +1 -1
  83. hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +1 -1
  84. hikyuu/include/hikyuu/hikyuu.h +1 -1
  85. hikyuu/include/hikyuu/indicator/build_in.h +1 -0
  86. hikyuu/include/hikyuu/indicator/crt/CYCLE.h +4 -4
  87. hikyuu/include/hikyuu/indicator/crt/HSL.h +2 -2
  88. hikyuu/include/hikyuu/indicator/crt/QUANTILE_TRUNC.h +30 -0
  89. hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +1 -0
  90. hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +2 -2
  91. hikyuu/include/hikyuu/indicator/imp/IQuantileTrunc.h +25 -0
  92. hikyuu/include/hikyuu/misc.h +38 -0
  93. hikyuu/include/hikyuu/plugin/dataserver.h +2 -1
  94. hikyuu/include/hikyuu/plugin/extind.h +37 -0
  95. hikyuu/include/hikyuu/plugin/interface/DataServerPluginInterface.h +2 -2
  96. hikyuu/include/hikyuu/plugin/interface/ExtendIndicatorsPluginInterface.h +12 -0
  97. hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +3 -0
  98. hikyuu/include/hikyuu/trade_manage/Performance.h +4 -4
  99. hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +10 -1
  100. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalFundsMM.h +0 -4
  101. hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +36 -3
  102. hikyuu/include/hikyuu/trade_sys/multifactor/NormalizeBase.h +125 -0
  103. hikyuu/include/hikyuu/trade_sys/multifactor/ScoresFilterBase.h +125 -0
  104. hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +3 -0
  105. hikyuu/include/hikyuu/trade_sys/multifactor/buildin_norm.h +36 -0
  106. hikyuu/include/hikyuu/trade_sys/multifactor/buildin_scfilter.h +51 -0
  107. hikyuu/include/hikyuu/trade_sys/multifactor/filter/GroupSCFilter.h +24 -0
  108. hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreLessOrEqualValueSCFilter.h +24 -0
  109. hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreNanSCFilter.h +24 -0
  110. hikyuu/include/hikyuu/trade_sys/multifactor/filter/MinAmountPercentSCFilter.h +25 -0
  111. hikyuu/include/hikyuu/trade_sys/multifactor/filter/PriceSCFilter.h +24 -0
  112. hikyuu/include/hikyuu/trade_sys/multifactor/filter/TopNSCFilter.h +24 -0
  113. hikyuu/include/hikyuu/trade_sys/multifactor/filter/__init__.py +1 -0
  114. hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +1 -1
  115. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +1 -1
  116. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +1 -1
  117. hikyuu/include/hikyuu/trade_sys/multifactor/imp/WeightMultiFactor.h +1 -1
  118. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormMinMax.h +23 -0
  119. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantile.h +28 -0
  120. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantileUniform.h +28 -0
  121. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormZScore.h +25 -0
  122. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/__init__.py +1 -0
  123. hikyuu/include/hikyuu/trade_sys/multifactor/normalize/quantile_trunc.h +16 -0
  124. hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +7 -0
  125. hikyuu/include/hikyuu/trade_sys/portfolio/imp/SimplePortfolio.h +7 -0
  126. hikyuu/include/hikyuu/trade_sys/portfolio/imp/WithoutAFPortfolio.h +7 -0
  127. hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +49 -0
  128. hikyuu/include/hikyuu/trade_sys/selector/build_in.h +1 -0
  129. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor2.h +40 -0
  130. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +0 -3
  131. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector2.h +49 -0
  132. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +1 -1
  133. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +1 -1
  134. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +0 -4
  135. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/AddValueSignal.h +2 -2
  136. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/DivValueSignal.h +2 -2
  137. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/MulValueSignal.h +2 -2
  138. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorSignal.h +1 -1
  139. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorValueSignal.h +4 -4
  140. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/SubValueSignal.h +2 -2
  141. hikyuu/include/hikyuu/trade_sys/system/System.h +14 -1
  142. hikyuu/include/hikyuu/utilities/SpendTimer.h +17 -7
  143. hikyuu/include/hikyuu/utilities/arithmetic.h +45 -0
  144. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +1 -1
  145. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +1 -1
  146. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +1 -1
  147. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +1 -1
  148. hikyuu/include/hikyuu/utilities/plugin/PluginLoader.h +4 -1
  149. hikyuu/include/hikyuu/version.h +4 -4
  150. hikyuu/plugin/backtest.dll +0 -0
  151. hikyuu/plugin/clickhousedriver.dll +0 -0
  152. hikyuu/plugin/dataserver.dll +0 -0
  153. hikyuu/plugin/device.dll +0 -0
  154. hikyuu/plugin/extind.dll +0 -0
  155. hikyuu/plugin/hkuextra.dll +0 -0
  156. hikyuu/plugin/hkuviews.dll +0 -0
  157. hikyuu/plugin/import2hdf5.dll +0 -0
  158. hikyuu/plugin/tmreport.dll +0 -0
  159. hikyuu/trade_manage/__init__.pyi +33 -8
  160. hikyuu/trade_manage/trade.pyi +33 -8
  161. hikyuu/util/__init__.pyi +2 -2
  162. hikyuu/util/singleton.pyi +1 -1
  163. {hikyuu-2.6.8.5.dist-info → hikyuu-2.6.9.dist-info}/METADATA +13 -14
  164. {hikyuu-2.6.8.5.dist-info → hikyuu-2.6.9.dist-info}/RECORD +167 -149
  165. {hikyuu-2.6.8.5.dist-info → hikyuu-2.6.9.dist-info}/top_level.txt +2 -1
  166. hikyuu/data_driver/__init__.py +0 -49
  167. hikyuu/data_driver/jqdata_data_driver.py +0 -277
  168. hikyuu/data_driver/pytdx_data_driver.py +0 -292
  169. hikyuu/fetcher/stock/zh_stock_a_huatai.py +0 -51
  170. hikyuu/fetcher/stock/zh_stock_a_pytdx.py +0 -129
  171. hikyuu/gui/data/CollectToMemThread.py +0 -123
  172. hikyuu/gui/data/CollectToMySQLThread.py +0 -178
  173. hikyuu/gui/start_huatai_insight.py +0 -510
  174. hikyuu/tools/update_block_info.py +0 -168
  175. {hikyuu-2.6.8.5.dist-info → hikyuu-2.6.9.dist-info}/WHEEL +0 -0
  176. {hikyuu-2.6.8.5.dist-info → hikyuu-2.6.9.dist-info}/entry_points.txt +0 -0
@@ -6,8 +6,6 @@
6
6
  */
7
7
 
8
8
  #pragma once
9
- #ifndef TRADE_SYS_SIGNAL_IMP_BANDSIGNAL_H_
10
- #define TRADE_SYS_SIGNAL_IMP_BANDSIGNAL_H_
11
9
 
12
10
  #include "../../../indicator/Indicator.h"
13
11
  #include "../SignalBase.h"
@@ -43,5 +41,3 @@ private:
43
41
  #endif
44
42
  };
45
43
  } // namespace hku
46
-
47
- #endif
@@ -12,8 +12,8 @@
12
12
  namespace hku {
13
13
 
14
14
  class AddValueSignal : public OperatorValueSignal {
15
- OPERATOR_SIGNAL_IMP(AddValueSignal, "SG_AddValue")
16
- OPERATOR_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION
15
+ OPERATOR_VALUE_SIGNAL_IMP(AddValueSignal, "SG_AddValue")
16
+ OPERATOR_VALUE_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION
17
17
  };
18
18
 
19
19
  } /* namespace hku */
@@ -12,8 +12,8 @@
12
12
  namespace hku {
13
13
 
14
14
  class DivValueSignal : public OperatorValueSignal {
15
- OPERATOR_SIGNAL_IMP(DivValueSignal, "SG_DivValue")
16
- OPERATOR_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION
15
+ OPERATOR_VALUE_SIGNAL_IMP(DivValueSignal, "SG_DivValue")
16
+ OPERATOR_VALUE_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION
17
17
 
18
18
  public:
19
19
  DivValueSignal(double value, const SignalPtr& sg);
@@ -12,8 +12,8 @@
12
12
  namespace hku {
13
13
 
14
14
  class MulValueSignal : public OperatorValueSignal {
15
- OPERATOR_SIGNAL_IMP(MulValueSignal, "SG_MulValue")
16
- OPERATOR_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION
15
+ OPERATOR_VALUE_SIGNAL_IMP(MulValueSignal, "SG_MulValue")
16
+ OPERATOR_VALUE_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION
17
17
  };
18
18
 
19
19
  } /* namespace hku */
@@ -48,7 +48,7 @@ protected:
48
48
  public: \
49
49
  classname() : OperatorSignal(name) {} \
50
50
  classname(const SignalPtr& sg1, const SignalPtr& sg2) : OperatorSignal(name, sg1, sg2) {} \
51
- virtual ~classname() {} \
51
+ virtual ~classname() override {} \
52
52
  virtual SignalPtr _clone() override { \
53
53
  return make_shared<classname>(m_sg1, m_sg2); \
54
54
  } \
@@ -42,18 +42,18 @@ protected:
42
42
  #endif
43
43
  };
44
44
 
45
- #define OPERATOR_SIGNAL_IMP(classname, name) \
45
+ #define OPERATOR_VALUE_SIGNAL_IMP(classname, name) \
46
46
  public: \
47
47
  classname() : OperatorValueSignal(name) {} \
48
48
  classname(const SignalPtr& sg, double value) : OperatorValueSignal(name, sg, value) {} \
49
- virtual ~classname() {} \
49
+ virtual ~classname() override {} \
50
50
  virtual SignalPtr _clone() override { \
51
51
  return make_shared<classname>(m_sg, m_value); \
52
52
  } \
53
53
  virtual void _calculate(const KData&) override;
54
54
 
55
55
  #if HKU_SUPPORT_SERIALIZATION
56
- #define OPERATOR_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION \
56
+ #define OPERATOR_VALUE_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION \
57
57
  private: \
58
58
  friend class boost::serialization::access; \
59
59
  template <class Archive> \
@@ -62,7 +62,7 @@ private: \
62
62
  ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(OperatorValueSignal); \
63
63
  }
64
64
  #else
65
- #define OPERATOR_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION
65
+ #define OPERATOR_VALUE_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION
66
66
  #endif
67
67
 
68
68
  } /* namespace hku */
@@ -12,8 +12,8 @@
12
12
  namespace hku {
13
13
 
14
14
  class SubValueSignal : public OperatorValueSignal {
15
- OPERATOR_SIGNAL_IMP(SubValueSignal, "SG_AddValue")
16
- OPERATOR_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION
15
+ OPERATOR_VALUE_SIGNAL_IMP(SubValueSignal, "SG_AddValue")
16
+ OPERATOR_VALUE_SIGNAL_NO_PRIVATE_MEMBER_SERIALIZATION
17
17
 
18
18
  public:
19
19
  SubValueSignal(double value, const SignalPtr& sg);
@@ -9,6 +9,7 @@
9
9
  #ifndef SYSTEMBASE_H_
10
10
  #define SYSTEMBASE_H_
11
11
 
12
+ #include <nlohmann/json.hpp>
12
13
  // #include "../../KData.h"
13
14
  // #include "../../utilities/Parameter.h"
14
15
  // #include "../../trade_manage/TradeManager.h"
@@ -25,6 +26,8 @@
25
26
 
26
27
  namespace hku {
27
28
 
29
+ using json = nlohmann::json;
30
+
28
31
  class HKU_API Portfolio;
29
32
  class HKU_API AllocateFundsBase;
30
33
  class HKU_API WalkForwardSystem;
@@ -180,6 +183,11 @@ public:
180
183
  */
181
184
  void setTO(const KData& kdata);
182
185
 
186
+ /**
187
+ * 回测完成后,返回最后一天交易记录,以及需要延迟的买入和卖出延迟请求
188
+ */
189
+ json lastSuggestion() const;
190
+
183
191
  /**
184
192
  * @brief 不指定stock的方式下run,需要事先通过setStock设定stock
185
193
  * @param query 查询条件
@@ -212,6 +220,9 @@ public:
212
220
  */
213
221
  virtual TradeRecord runMoment(const Datetime& datetime);
214
222
 
223
+ virtual TradeRecord runMomentOnOpen(const Datetime& datetime);
224
+ virtual TradeRecord runMomentOnClose(const Datetime& datetime);
225
+
215
226
  // 运行前准备工作, 失败将抛出异常
216
227
  virtual void readyForRun();
217
228
 
@@ -318,7 +329,9 @@ private:
318
329
 
319
330
  TradeRecord _processRequest(const KRecord& today, const KRecord& src_today);
320
331
 
321
- TradeRecord _runMoment(const KRecord& record, const KRecord& src_record);
332
+ TradeRecord _runMoment(const KRecord& today, const KRecord& src_today);
333
+ TradeRecord _runMomentOnOpen(const KRecord& today, const KRecord& src_today);
334
+ TradeRecord _runMomentOnClose(const KRecord& today, const KRecord& src_today);
322
335
 
323
336
  // Portfolio | AllocateFunds 指示立即进行强制卖出,以便对 buy_delay 的系统进行资金调整
324
337
  TradeRecord _sellForce(const Datetime& date, double num, Part from, bool on_open);
@@ -34,6 +34,15 @@
34
34
  #include <TargetConditionals.h>
35
35
  #endif
36
36
 
37
+ #ifdef _WIN32
38
+ #include <shlwapi.h>
39
+ #pragma comment(lib, "shlwapi.lib") // Windows 链接时需要的库
40
+ #define GET_FILENAME(path) PathFindFileNameA(path)
41
+ #else
42
+ #include <libgen.h>
43
+ #define GET_FILENAME(path) basename((char *)path)
44
+ #endif
45
+
37
46
  #ifndef HKU_CLOSE_SPEND_TIME
38
47
  #define HKU_CLOSE_SPEND_TIME 1
39
48
  #endif
@@ -81,7 +90,7 @@ namespace hku {
81
90
  * 代码执行耗时计时器
82
91
  * @param id 自定义耗时计时器id
83
92
  */
84
- #define SPEND_TIME(id) hku::SpendTimer test_spend_timer_##id(#id, __FILE__, __LINE__);
93
+ #define SPEND_TIME(id) hku::SpendTimer test_spend_timer_##id(#id, GET_FILENAME(__FILE__), __LINE__);
85
94
 
86
95
  /**
87
96
  * 代码执行耗时计时器,附带输出信息
@@ -90,7 +99,7 @@ namespace hku {
90
99
  */
91
100
  #define SPEND_TIME_MSG(id, ...) \
92
101
  std::string msg_##id(fmt::format(__VA_ARGS__)); \
93
- hku::SpendTimer test_spend_timer_##id(#id, msg_##id.c_str(), __FILE__, __LINE__);
102
+ hku::SpendTimer test_spend_timer_##id(#id, msg_##id.c_str(), GET_FILENAME(__FILE__), __LINE__);
94
103
 
95
104
  /** 秒表计时 */
96
105
  #define SPEND_TIME_KEEP(id, ...) test_spend_timer_##id.keep(fmt::format(__VA_ARGS__));
@@ -117,8 +126,8 @@ namespace hku {
117
126
  * @param id 自定义耗时计时器id
118
127
  * @param cycle 循环运行的次数(仅用于统计打印耗时输出)
119
128
  */
120
- #define BENCHMARK_TIME(id, cycle) \
121
- hku::SpendTimer test_spend_timer_##id(#id, __FILE__, __LINE__); \
129
+ #define BENCHMARK_TIME(id, cycle) \
130
+ hku::SpendTimer test_spend_timer_##id(#id, GET_FILENAME(__FILE__), __LINE__); \
122
131
  test_spend_timer_##id.setCycle(cycle);
123
132
 
124
133
  /**
@@ -127,9 +136,10 @@ namespace hku {
127
136
  * @param cycle 循环运行的次数(仅用于统计打印耗时输出)
128
137
  * @param ... 输出信息
129
138
  */
130
- #define BENCHMARK_TIME_MSG(id, cycle, ...) \
131
- std::string msg_##id(fmt::format(__VA_ARGS__)); \
132
- hku::SpendTimer test_spend_timer_##id(#id, msg_##id.c_str(), __FILE__, __LINE__); \
139
+ #define BENCHMARK_TIME_MSG(id, cycle, ...) \
140
+ std::string msg_##id(fmt::format(__VA_ARGS__)); \
141
+ hku::SpendTimer test_spend_timer_##id(#id, msg_##id.c_str(), GET_FILENAME(__FILE__), \
142
+ __LINE__); \
133
143
  test_spend_timer_##id.setCycle(cycle);
134
144
 
135
145
  #endif /* HKU_CLOSE_SPEND_TIME */
@@ -415,6 +415,51 @@ inline std::string byteToHexStrForPrint(const std::string &bytes) {
415
415
  return byteToHexStrForPrint(bytes.c_str(), bytes.size());
416
416
  }
417
417
 
418
+ /** 判断 double 是否为整数 */
419
+ bool HKU_UTILS_API isInteger(double num);
420
+
421
+ /** 判断 float 是否为整数 */
422
+ bool HKU_UTILS_API isInteger(float num);
423
+
424
+ /**
425
+ * @brief 获取已排序的向量中指定分位数的值
426
+ * @param vec 已排序的数组
427
+ * @param quantile
428
+ * @return Indicator::value_t
429
+ */
430
+ template <typename T>
431
+ T get_quantile(const std::vector<T> &vec, double quantile) {
432
+ if (vec.empty()) {
433
+ return std::numeric_limits<T>::quiet_NaN();
434
+ }
435
+
436
+ if (quantile <= 0.0) {
437
+ return vec.front();
438
+ } else if (quantile >= 1.0) {
439
+ return vec.back();
440
+ }
441
+
442
+ T ret;
443
+ double qpos = vec.size() * quantile;
444
+ if (qpos <= 1.0) {
445
+ ret = vec[0];
446
+ } else if (isInteger(qpos)) {
447
+ size_t pos = static_cast<size_t>(qpos);
448
+ ret = (vec[pos - 1] + vec[pos]) / 2;
449
+ } else {
450
+ size_t pos = static_cast<size_t>(qpos);
451
+ T x = qpos - pos;
452
+ ret = vec[pos - 1] + x * (vec[pos] - vec[pos - 1]);
453
+ }
454
+ return ret;
455
+ }
456
+
457
+ extern template double HKU_UTILS_API get_quantile(const std::vector<double> &vec, double quantile);
458
+ extern template float HKU_UTILS_API get_quantile(const std::vector<float> &vec, double quantile);
459
+
460
+ HKU_UTILS_API std::ostream &operator<<(std::ostream &os, const std::vector<double> &p);
461
+ HKU_UTILS_API std::ostream &operator<<(std::ostream &os, const std::vector<float> &p);
462
+
418
463
  /** @} */
419
464
  } /* namespace hku */
420
465
 
@@ -25,7 +25,7 @@ namespace hku {
25
25
  class HKU_UTILS_API MySQLConnect : public DBConnectBase {
26
26
  public:
27
27
  explicit MySQLConnect(const Parameter &param);
28
- virtual ~MySQLConnect();
28
+ virtual ~MySQLConnect() override;
29
29
 
30
30
  MySQLConnect(const MySQLConnect &) = delete;
31
31
  MySQLConnect &operator=(const MySQLConnect &) = delete;
@@ -36,7 +36,7 @@ class HKU_UTILS_API MySQLStatement : public SQLStatementBase {
36
36
  public:
37
37
  MySQLStatement() = delete;
38
38
  MySQLStatement(DBConnectBase *driver, const std::string &sql_statement);
39
- virtual ~MySQLStatement();
39
+ virtual ~MySQLStatement() override;
40
40
 
41
41
  virtual void sub_exec() override;
42
42
  virtual bool sub_moveNext() override;
@@ -40,7 +40,7 @@ public:
40
40
  explicit SQLiteConnect(const Parameter &param);
41
41
 
42
42
  /** 析构函数 */
43
- virtual ~SQLiteConnect();
43
+ virtual ~SQLiteConnect() override;
44
44
 
45
45
  /** 如果 sqlite 文件无效,返回false */
46
46
  virtual bool ping() override;
@@ -31,7 +31,7 @@ public:
31
31
  SQLiteStatement(DBConnectBase *driver, const std::string &sql_statement);
32
32
 
33
33
  /** 析构函数 */
34
- virtual ~SQLiteStatement();
34
+ virtual ~SQLiteStatement() override;
35
35
 
36
36
  virtual void sub_exec() override;
37
37
  virtual bool sub_moveNext() override;
@@ -51,10 +51,13 @@ public:
51
51
 
52
52
  #if HKU_OS_WINDOWS
53
53
  m_handle = LoadLibrary(HKU_PATH(filename).c_str());
54
+ HKU_WARN_IF_RETURN(!m_handle, false, "load plugin({}) failed! errcode: {}", filename,
55
+ GetLastError());
56
+
54
57
  #else
55
58
  m_handle = dlopen(filename.c_str(), RTLD_LAZY);
59
+ HKU_WARN_IF_RETURN(!m_handle, false, "load plugin({}) failed! {}", filename, dlerror());
56
60
  #endif
57
- HKU_WARN_IF_RETURN(!m_handle, false, "load plugin({}) failed!", filename);
58
61
 
59
62
  typedef PluginBase* (*CreateFunction)();
60
63
  CreateFunction createFunction =
@@ -12,13 +12,13 @@
12
12
  #define HKU_VERSION_H
13
13
 
14
14
  // clang-format off
15
- #define HKU_VERSION "2.6.8"
15
+ #define HKU_VERSION "2.6.9"
16
16
  #define HKU_VERSION_MAJOR 2
17
17
  #define HKU_VERSION_MINOR 6
18
- #define HKU_VERSION_ALTER 8
19
- #define HKU_VERSION_BUILD 202509152355
18
+ #define HKU_VERSION_ALTER 9
19
+ #define HKU_VERSION_BUILD 202510192112
20
20
  #define HKU_VERSION_MODE "RELEASE"
21
- #define HKU_VERSION_GIT "2.6.8 master.f8b7e83d (RELEASE)"
21
+ #define HKU_VERSION_GIT "2.6.9 release.5d57f8d9 (RELEASE)"
22
22
  // clang-format on
23
23
 
24
24
  #endif /* HKU_VERSION_H */
Binary file
Binary file
Binary file
hikyuu/plugin/device.dll CHANGED
Binary file
hikyuu/plugin/extind.dll CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -34,6 +34,7 @@ from hikyuu.cpp.core39 import LoanRecord
34
34
  from hikyuu.cpp.core39 import MarketInfo
35
35
  from hikyuu.cpp.core39 import MoneyManagerBase
36
36
  from hikyuu.cpp.core39 import MultiFactorBase
37
+ from hikyuu.cpp.core39 import NormalizeBase
37
38
  from hikyuu.cpp.core39 import OrderBrokerBase
38
39
  from hikyuu.cpp.core39 import Parameter
39
40
  from hikyuu.cpp.core39 import Performance
@@ -44,6 +45,7 @@ from hikyuu.cpp.core39 import ProfitGoalBase
44
45
  from hikyuu.cpp.core39 import Query
45
46
  from hikyuu.cpp.core39 import ScoreRecord
46
47
  from hikyuu.cpp.core39 import ScoreRecordList
48
+ from hikyuu.cpp.core39 import ScoresFilterBase
47
49
  from hikyuu.cpp.core39 import SelectorBase
48
50
  from hikyuu.cpp.core39 import SignalBase
49
51
  from hikyuu.cpp.core39 import SlippageBase
@@ -79,6 +81,7 @@ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 impor
79
81
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import AF_FixedWeightList
80
82
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import AF_MultiFactor
81
83
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import AGG_COUNT
84
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import AGG_FUNC
82
85
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import AGG_MAD
83
86
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import AGG_MAX
84
87
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import AGG_MEAN
@@ -141,6 +144,13 @@ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 impor
141
144
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import FILTER
142
145
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import FINANCE
143
146
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import FLOOR
147
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import GROUP_COUNT
148
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import GROUP_FUNC
149
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import GROUP_MAX
150
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import GROUP_MEAN
151
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import GROUP_MIN
152
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import GROUP_PROD
153
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import GROUP_SUM
144
154
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import HHV
145
155
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import HHVBARS
146
156
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import HOUR
@@ -170,10 +180,10 @@ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 impor
170
180
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import KALMAN
171
181
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import KDATA_PART
172
182
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import LAST
173
- from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import LASTVALUE as CONST
174
183
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import LASTVALUE
175
- from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import LIUTONGPAN as CAPITAL
184
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import LASTVALUE as CONST
176
185
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import LIUTONGPAN
186
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import LIUTONGPAN as CAPITAL
177
187
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import LLV
178
188
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import LLVBARS
179
189
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import LN
@@ -205,6 +215,11 @@ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 impor
205
215
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import Milliseconds
206
216
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import Minutes
207
217
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import NDAY
218
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import NORM_MinMax
219
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import NORM_NOTHING
220
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import NORM_Quantile
221
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import NORM_Quantile_Uniform
222
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import NORM_Zscore
208
223
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import NOT
209
224
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import PF_Simple
210
225
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import PF_WithoutAF
@@ -213,8 +228,9 @@ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 impor
213
228
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import PG_NoGoal
214
229
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import POS
215
230
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import POW
216
- from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import PRICELIST as VALUE
217
231
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import PRICELIST
232
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import PRICELIST as VALUE
233
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import QUANTILE_TRUNC
218
234
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import RANK
219
235
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import RECOVER_BACKWARD
220
236
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import RECOVER_EQUAL_BACKWARD
@@ -234,10 +250,17 @@ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 impor
234
250
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import ROUNDUP
235
251
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import RSI
236
252
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SAFTYLOSS
253
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SCFilter_AmountLimit
254
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SCFilter_Group
255
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SCFilter_IgnoreNan
256
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SCFilter_LessOrEqualValue
257
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SCFilter_Price
258
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SCFilter_TopN
237
259
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SE_EvaluateOptimal
238
260
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SE_Fixed
239
261
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SE_MaxFundsOptimal
240
262
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SE_MultiFactor
263
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SE_MultiFactor2
241
264
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SE_PerformanceOptimal
242
265
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SE_Signal
243
266
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SGN
@@ -267,8 +290,8 @@ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 impor
267
290
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SP_FixedPercent
268
291
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SP_FixedValue
269
292
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import SQRT
270
- from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import STDEV
271
293
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import STDEV as STD
294
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import STDEV
272
295
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import STDP
273
296
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import ST_FixedPercent
274
297
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import ST_Indicator
@@ -502,6 +525,7 @@ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 impor
502
525
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import get_business_name
503
526
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import get_data_from_buffer_server
504
527
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import get_date_range
528
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import get_funds_list
505
529
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import get_inds_view
506
530
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import get_inds_view_pyarrow
507
531
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import get_kdata
@@ -528,6 +552,8 @@ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 impor
528
552
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import krecords_to_pa
529
553
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import open_ostream_to_python
530
554
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import open_spend_time
555
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import parallel_run_pf
556
+ from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import parallel_run_sys
531
557
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import positions_to_df
532
558
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import positions_to_np
533
559
  from hikyuu.cpp.core39.pybind11_detail_function_record_v1_msvc_md_mscver19 import positions_to_pa
@@ -626,14 +652,13 @@ import os as os
626
652
  import pandas as pd
627
653
  from pathlib import Path
628
654
  import pickle as pickle
629
- import pyarrow as pa
630
655
  import sys as sys
631
656
  import traceback as traceback
632
657
  from . import broker
633
658
  from . import broker_easytrader
634
659
  from . import broker_mail
635
660
  from . import trade
636
- __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', 'AMO', 'ASIN', 'ATAN', 'ATR', 'AVEDEV', 'AllocateFundsBase', 'BACKSET', 'BARSCOUNT', 'BARSLAST', 'BARSLASTCOUNT', 'BARSSINCE', 'BARSSINCEN', 'BASE_DIR', 'BETWEEN', 'BLOCKSETNUM', 'BUSINESS', 'Block', 'BlockInfoDriver', 'BorrowRecord', 'BrokerPositionRecord', 'CAPITAL', 'CEILING', 'CLOSE', 'CN_Bool', 'CN_OPLine', 'CONST', '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', 'DatetimeList_to_df', 'DatetimeList_to_np', 'Datetime_date', 'Datetime_datetime', 'Days', 'EMA', 'ERROR', 'EVERY', 'EV_Bool', 'EV_TwoLine', 'EXIST', 'EXP', 'EasyTraderOrderBroker', 'EnvironmentBase', 'FATAL', 'FILTER', 'FINANCE', 'FLOOR', 'FundsRecord', 'HHV', 'HHVBARS', 'HIGH', 'HKUCheckError', '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', 'KDATA_PART', 'KDJ', 'KData', 'KDataDriver', 'KDataToHdf5Importer', 'KRecord', 'KRecordList', 'LAST', 'LASTVALUE', 'LIUTONGPAN', 'LLV', 'LLVBARS', 'LN', 'LOG', 'LOG_LEVEL', 'LONGCROSS', 'LOW', 'LoanRecord', 'LoggingContext', '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', 'MailOrderBroker', 'MarketInfo', 'Microseconds', 'Milliseconds', 'Minutes', 'MoneyManagerBase', 'MultiFactorBase', 'NDAY', 'NOT', 'OFF', 'OPEN', 'OrderBrokerBase', 'OrderBrokerWrap', 'PF_Simple', 'PF_WithoutAF', 'PG_FixedHoldDays', 'PG_FixedPercent', 'PG_NoGoal', 'POS', 'POW', 'PRICELIST', 'Parameter', 'Parameter_items', 'Parameter_iter', 'Parameter_keys', 'Parameter_to_dict', 'Path', 'Performance', 'Performance_to_df', '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', 'STD', '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', 'TestOrderBroker', 'TimeDelta', 'TimeDelta_timedelta', 'TimeLineList', 'TimeLineRecord', 'TradeCostBase', 'TradeManager', 'TradeRecord', 'TradeRecordList', 'TradeRequest', 'TransList', 'TransRecord', 'UPNDAY', 'UTCOffset', 'VALUE', 'VAR', 'VARP', 'VIGOR', 'VOL', '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', 'add_class_logger_handler', 'atexit', 'backtest', 'batch_calculate_inds', 'broker', 'broker_easytrader', 'broker_mail', 'can_upgrade', 'capture_multiprocess_all_logger', 'class_logger', 'close_ostream_to_python', 'close_spend_time', 'combinate_ind', 'combinate_index', 'concat_to_df', 'constant', 'core', 'cpp', 'crtBrokerTM', 'crtOB', 'crtSEOptimal', 'crtTM', 'crt_pf_strategy', 'crt_sys_strategy', 'current_path', 'date', 'dates_to_np', 'dates_to_pa', 'datetime', 'df_to_ind', 'df_to_krecords', 'dll_directory', 'extend', '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', 'hku_benchmark', 'hku_catch', 'hku_check', 'hku_check_ignore', 'hku_check_throw', 'hku_debug', 'hku_debug_if', 'hku_error', 'hku_error_if', 'hku_fatal', 'hku_fatal_if', 'hku_info', 'hku_info_if', 'hku_logger', 'hku_run_ignore_exception', 'hku_to_async', 'hku_trace', 'hku_trace_if', 'hku_warn', 'hku_warn_if', 'in_interactive_session', 'in_ipython_frontend', 'indicator', 'inner_analysis_sys_list', 'inner_combinate_ind_analysis', 'inner_combinate_ind_analysis_with_block', 'io', 'is_valid_license', 'isinf', 'isnan', 'krecords_to_df', 'krecords_to_np', 'krecords_to_pa', 'locale', 'new_Query_init', 'new_path', 'np', 'old_Query_init', 'open_ostream_to_python', 'open_spend_time', 'os', 'pa', 'pd', 'pickle', 'positions_to_df', 'positions_to_np', 'positions_to_pa', 'pyind', 'register_extra_ktype', 'release_extra_ktype', 'remove_license', 'roundDown', 'roundEx', 'roundUp', 'run_in_strategy', 'scorerecords_to_df', 'scorerecords_to_np', 'set_log_level', 'set_my_logger_file', 'set_python_in_interactive', 'set_python_in_jupyter', 'spend_time', 'spot_agent_is_connected', 'spot_agent_is_running', 'start_data_server', 'start_spot_agent', 'stop_data_server', 'stop_spot_agent', 'sys', 'systemweights_to_df', 'systemweights_to_np', 'timedelta', 'timeline_to_df', 'timeline_to_np', 'timeline_to_pa', 'timeout', 'toPriceList', 'traceback', 'trade', 'trades_to_df', 'trades_to_np', 'trades_to_pa', 'translist_to_df', 'translist_to_np', 'translist_to_pa', 'util', 'view_license', 'weights_to_df', 'weights_to_np', 'weights_to_pa', 'with_trace']
661
+ __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', 'AMO', 'ASIN', 'ATAN', 'ATR', 'AVEDEV', 'AllocateFundsBase', 'BACKSET', 'BARSCOUNT', 'BARSLAST', 'BARSLASTCOUNT', 'BARSSINCE', 'BARSSINCEN', 'BASE_DIR', 'BETWEEN', 'BLOCKSETNUM', 'BUSINESS', 'Block', 'BlockInfoDriver', 'BorrowRecord', 'BrokerPositionRecord', 'CAPITAL', 'CEILING', 'CLOSE', 'CN_Bool', 'CN_OPLine', 'CONST', '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', 'DatetimeList_to_df', 'DatetimeList_to_np', 'Datetime_date', 'Datetime_datetime', 'Days', 'EMA', 'ERROR', 'EVERY', 'EV_Bool', 'EV_TwoLine', 'EXIST', 'EXP', 'EasyTraderOrderBroker', 'EnvironmentBase', 'FATAL', 'FILTER', 'FINANCE', 'FLOOR', 'FundsRecord', 'GROUP_COUNT', 'GROUP_FUNC', 'GROUP_MAX', 'GROUP_MEAN', 'GROUP_MIN', 'GROUP_PROD', 'GROUP_SUM', 'HHV', 'HHVBARS', 'HIGH', 'HKUCheckError', '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', 'KDATA_PART', 'KDJ', 'KData', 'KDataDriver', 'KDataToHdf5Importer', 'KRecord', 'KRecordList', 'LAST', 'LASTVALUE', 'LIUTONGPAN', 'LLV', 'LLVBARS', 'LN', 'LOG', 'LOG_LEVEL', 'LONGCROSS', 'LOW', 'LoanRecord', 'LoggingContext', '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', 'MailOrderBroker', 'MarketInfo', 'Microseconds', 'Milliseconds', 'Minutes', 'MoneyManagerBase', 'MultiFactorBase', 'NDAY', 'NORM_MinMax', 'NORM_NOTHING', 'NORM_Quantile', 'NORM_Quantile_Uniform', 'NORM_Zscore', 'NOT', 'NormalizeBase', 'OFF', 'OPEN', 'OrderBrokerBase', 'OrderBrokerWrap', 'PF_Simple', 'PF_WithoutAF', 'PG_FixedHoldDays', 'PG_FixedPercent', 'PG_NoGoal', 'POS', 'POW', 'PRICELIST', 'Parameter', 'Parameter_items', 'Parameter_iter', 'Parameter_keys', 'Parameter_to_dict', 'Path', 'Performance', 'Performance_to_df', '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', 'SQRT', 'STD', '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', 'TestOrderBroker', 'TimeDelta', 'TimeDelta_timedelta', 'TimeLineList', 'TimeLineRecord', 'TradeCostBase', 'TradeManager', 'TradeRecord', 'TradeRecordList', 'TradeRequest', 'TransList', 'TransRecord', 'UPNDAY', 'UTCOffset', 'VALUE', 'VAR', 'VARP', 'VIGOR', 'VOL', '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', 'add_class_logger_handler', 'atexit', 'backtest', 'batch_calculate_inds', 'broker', 'broker_easytrader', 'broker_mail', 'can_upgrade', 'capture_multiprocess_all_logger', 'class_logger', 'close_ostream_to_python', 'close_spend_time', 'combinate_ind', 'combinate_index', 'concat_to_df', 'constant', 'core', 'cpp', 'crtBrokerTM', 'crtOB', 'crtSEOptimal', 'crtTM', 'crt_pf_strategy', 'crt_sys_strategy', 'current_path', 'date', 'dates_to_np', 'dates_to_pa', 'datetime', 'df_to_ind', 'df_to_krecords', 'dll_directory', 'extend', 'fetch_trial_license', 'find_optimal_system', 'find_optimal_system_multi', 'get_block', 'get_business_name', 'get_data_from_buffer_server', 'get_date_range', 'get_funds_list', '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', 'hku_benchmark', 'hku_catch', 'hku_check', 'hku_check_ignore', 'hku_check_throw', 'hku_debug', 'hku_debug_if', 'hku_error', 'hku_error_if', 'hku_fatal', 'hku_fatal_if', 'hku_info', 'hku_info_if', 'hku_logger', 'hku_run_ignore_exception', 'hku_to_async', 'hku_trace', 'hku_trace_if', 'hku_warn', 'hku_warn_if', 'in_interactive_session', 'in_ipython_frontend', 'indicator', 'inner_analysis_sys_list', 'inner_combinate_ind_analysis', 'inner_combinate_ind_analysis_with_block', 'io', 'is_valid_license', 'isinf', 'isnan', 'krecords_to_df', 'krecords_to_np', 'krecords_to_pa', 'locale', 'new_Query_init', 'new_path', 'np', 'old_Query_init', 'open_ostream_to_python', 'open_spend_time', 'os', 'parallel_run_pf', 'parallel_run_sys', 'pd', 'pickle', 'positions_to_df', 'positions_to_np', 'positions_to_pa', 'pyind', 'register_extra_ktype', 'release_extra_ktype', 'remove_license', 'roundDown', 'roundEx', 'roundUp', 'run_in_strategy', 'scorerecords_to_df', 'scorerecords_to_np', 'set_log_level', 'set_my_logger_file', 'set_python_in_interactive', 'set_python_in_jupyter', 'spend_time', 'spot_agent_is_connected', 'spot_agent_is_running', 'start_data_server', 'start_spot_agent', 'stop_data_server', 'stop_spot_agent', 'sys', 'systemweights_to_df', 'systemweights_to_np', 'timedelta', 'timeline_to_df', 'timeline_to_np', 'timeline_to_pa', 'timeout', 'toPriceList', 'traceback', 'trade', 'trades_to_df', 'trades_to_np', 'trades_to_pa', 'translist_to_df', 'translist_to_np', 'translist_to_pa', 'util', 'view_license', 'weights_to_df', 'weights_to_np', 'weights_to_pa', 'with_trace']
637
662
  AMO: hikyuu.cpp.core39.Indicator # value = Indicator{...
638
663
  BASE_DIR: str = 'D:\\workspace\\hikyuu\\hikyuu'
639
664
  CLOSE: hikyuu.cpp.core39.Indicator # value = Indicator{...
@@ -650,7 +675,7 @@ TRACE: hikyuu.cpp.core39.LOG_LEVEL # value = <LOG_LEVEL.TRACE: 0>
650
675
  VOL: hikyuu.cpp.core39.Indicator # value = Indicator{...
651
676
  WARN: hikyuu.cpp.core39.LOG_LEVEL # value = <LOG_LEVEL.WARN: 3>
652
677
  constant: hikyuu.cpp.core39.Constant # value = <hikyuu.cpp.core39.Constant object>
653
- current_path: str = 'D:\\anaconda3\\envs\\py39;D:\\anaconda3\\envs\\py39\\Library\\mingw-w64\\bin;D:\\anaconda3\\envs\\py39\\Library\\usr\\bin;D:\\anaconda3\\envs\\py39\\Library\\bin;D:\\anaconda3\\envs\\py39\\Scripts;D:\\anaconda3\\envs\\py39\\bin;D:\\anaconda3\\condabin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\bin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\libnvvp;C:\\Program Files (x86)\\VMware\\VMware Workstation\\bin;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0;C:\\Windows\\System32\\OpenSSH;C:\\Program Files\\Calibre2;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\dotnet;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C:\\WINDOWS\\System32\\OpenSSH;C:\\Program Files\\Go\\bin;C:\\Program Files\\nodejs;C:\\Program Files\\NVIDIA Corporation\\Nsight Compute 2024.1.0;C:\\Program Files\\CMake\\bin;C:\\Program Files\\NVIDIA Corporation\\NVIDIA app\\NvDLISR;C:\\Program Files\\Docker\\Docker\\resources\\bin;C:\\Program Files\\Git\\cmd;C:\\Program Files\\xmake;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit;d:\\anaconda3;d:\\anaconda3\\Library\\mingw-w64\\bin;d:\\anaconda3\\Library\\usr\\bin;d:\\anaconda3\\Library\\bin;d:\\anaconda3\\Scripts;C:\\Qt\\6.8.0\\msvc2022_64\\bin;C:\\Users\\admin\\.cargo\\bin;C:\\Users\\admin\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\admin\\xmake;D:\\mysql-8.0.27-winx64\\bin;C:\\Program Files\\Graphviz\\bin;D:\\mongodb-win32-x86_64-windows-5.0.6\\bin;C:\\tools\\apache-maven-3.8.6\\bin;C:\\Program Files\\7-Zip;C:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\platform-tools;C:\\Users\\admin\\AppData\\Local\\Microsoft\\WindowsApps;c:\\tools;C:\\Users\\admin\\go\\bin;C:\\Users\\admin\\AppData\\Roaming\\npm;C:\\Program Files\\NVDIA\\CUDNN\\v9.0\\bin;D:\\workspace\\git-view\\vcpkg;.'
678
+ current_path: str = 'D:\\anaconda3\\envs\\py39;D:\\anaconda3\\envs\\py39\\Library\\mingw-w64\\bin;D:\\anaconda3\\envs\\py39\\Library\\usr\\bin;D:\\anaconda3\\envs\\py39\\Library\\bin;D:\\anaconda3\\envs\\py39\\Scripts;D:\\anaconda3\\envs\\py39\\bin;D:\\anaconda3\\condabin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\bin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\libnvvp;C:\\Program Files (x86)\\VMware\\VMware Workstation\\bin;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0;C:\\Windows\\System32\\OpenSSH;C:\\Program Files\\Calibre2;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\dotnet;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C:\\WINDOWS\\System32\\OpenSSH;C:\\Program Files\\Go\\bin;C:\\Program Files\\nodejs;C:\\Program Files\\NVIDIA Corporation\\Nsight Compute 2024.1.0;C:\\Program Files\\CMake\\bin;C:\\Program Files\\NVIDIA Corporation\\NVIDIA app\\NvDLISR;C:\\Program Files\\Docker\\Docker\\resources\\bin;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit;C:\\Program Files\\xmake;C:\\Program Files\\Git\\cmd;d:\\anaconda3;d:\\anaconda3\\Library\\mingw-w64\\bin;d:\\anaconda3\\Library\\usr\\bin;d:\\anaconda3\\Library\\bin;d:\\anaconda3\\Scripts;C:\\Qt\\6.8.0\\msvc2022_64\\bin;C:\\Users\\admin\\.cargo\\bin;C:\\Users\\admin\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\admin\\xmake;D:\\mysql-8.0.27-winx64\\bin;C:\\Program Files\\Graphviz\\bin;D:\\mongodb-win32-x86_64-windows-5.0.6\\bin;C:\\tools\\apache-maven-3.8.6\\bin;C:\\Program Files\\7-Zip;C:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\platform-tools;C:\\Users\\admin\\AppData\\Local\\Microsoft\\WindowsApps;c:\\tools;C:\\Users\\admin\\go\\bin;C:\\Users\\admin\\AppData\\Roaming\\npm;C:\\Program Files\\NVDIA\\CUDNN\\v9.0\\bin;D:\\workspace\\git-view\\vcpkg;.'
654
679
  dll_directory: str = 'D:\\workspace\\hikyuu\\hikyuu\\cpp'
655
680
  hku_logger: logging.Logger # value = <Logger hikyuu (INFO)>
656
- new_path: str = 'D:\\workspace\\hikyuu\\hikyuu\\cpp;D:\\anaconda3\\envs\\py39;D:\\anaconda3\\envs\\py39\\Library\\mingw-w64\\bin;D:\\anaconda3\\envs\\py39\\Library\\usr\\bin;D:\\anaconda3\\envs\\py39\\Library\\bin;D:\\anaconda3\\envs\\py39\\Scripts;D:\\anaconda3\\envs\\py39\\bin;D:\\anaconda3\\condabin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\bin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\libnvvp;C:\\Program Files (x86)\\VMware\\VMware Workstation\\bin;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0;C:\\Windows\\System32\\OpenSSH;C:\\Program Files\\Calibre2;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\dotnet;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C:\\WINDOWS\\System32\\OpenSSH;C:\\Program Files\\Go\\bin;C:\\Program Files\\nodejs;C:\\Program Files\\NVIDIA Corporation\\Nsight Compute 2024.1.0;C:\\Program Files\\CMake\\bin;C:\\Program Files\\NVIDIA Corporation\\NVIDIA app\\NvDLISR;C:\\Program Files\\Docker\\Docker\\resources\\bin;C:\\Program Files\\Git\\cmd;C:\\Program Files\\xmake;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit;d:\\anaconda3;d:\\anaconda3\\Library\\mingw-w64\\bin;d:\\anaconda3\\Library\\usr\\bin;d:\\anaconda3\\Library\\bin;d:\\anaconda3\\Scripts;C:\\Qt\\6.8.0\\msvc2022_64\\bin;C:\\Users\\admin\\.cargo\\bin;C:\\Users\\admin\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\admin\\xmake;D:\\mysql-8.0.27-winx64\\bin;C:\\Program Files\\Graphviz\\bin;D:\\mongodb-win32-x86_64-windows-5.0.6\\bin;C:\\tools\\apache-maven-3.8.6\\bin;C:\\Program Files\\7-Zip;C:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\platform-tools;C:\\Users\\admin\\AppData\\Local\\Microsoft\\WindowsApps;c:\\tools;C:\\Users\\admin\\go\\bin;C:\\Users\\admin\\AppData\\Roaming\\npm;C:\\Program Files\\NVDIA\\CUDNN\\v9.0\\bin;D:\\workspace\\git-view\\vcpkg;.'
681
+ new_path: str = 'D:\\workspace\\hikyuu\\hikyuu\\cpp;D:\\anaconda3\\envs\\py39;D:\\anaconda3\\envs\\py39\\Library\\mingw-w64\\bin;D:\\anaconda3\\envs\\py39\\Library\\usr\\bin;D:\\anaconda3\\envs\\py39\\Library\\bin;D:\\anaconda3\\envs\\py39\\Scripts;D:\\anaconda3\\envs\\py39\\bin;D:\\anaconda3\\condabin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\bin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\libnvvp;C:\\Program Files (x86)\\VMware\\VMware Workstation\\bin;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0;C:\\Windows\\System32\\OpenSSH;C:\\Program Files\\Calibre2;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\dotnet;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C:\\WINDOWS\\System32\\OpenSSH;C:\\Program Files\\Go\\bin;C:\\Program Files\\nodejs;C:\\Program Files\\NVIDIA Corporation\\Nsight Compute 2024.1.0;C:\\Program Files\\CMake\\bin;C:\\Program Files\\NVIDIA Corporation\\NVIDIA app\\NvDLISR;C:\\Program Files\\Docker\\Docker\\resources\\bin;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit;C:\\Program Files\\xmake;C:\\Program Files\\Git\\cmd;d:\\anaconda3;d:\\anaconda3\\Library\\mingw-w64\\bin;d:\\anaconda3\\Library\\usr\\bin;d:\\anaconda3\\Library\\bin;d:\\anaconda3\\Scripts;C:\\Qt\\6.8.0\\msvc2022_64\\bin;C:\\Users\\admin\\.cargo\\bin;C:\\Users\\admin\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\admin\\xmake;D:\\mysql-8.0.27-winx64\\bin;C:\\Program Files\\Graphviz\\bin;D:\\mongodb-win32-x86_64-windows-5.0.6\\bin;C:\\tools\\apache-maven-3.8.6\\bin;C:\\Program Files\\7-Zip;C:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\platform-tools;C:\\Users\\admin\\AppData\\Local\\Microsoft\\WindowsApps;c:\\tools;C:\\Users\\admin\\go\\bin;C:\\Users\\admin\\AppData\\Roaming\\npm;C:\\Program Files\\NVDIA\\CUDNN\\v9.0\\bin;D:\\workspace\\git-view\\vcpkg;.'