hikyuu 2.6.8.3__py3-none-win_amd64.whl → 2.6.8.5__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 (62) hide show
  1. hikyuu/__init__.py +0 -1
  2. hikyuu/__init__.pyi +586 -586
  3. hikyuu/analysis/__init__.pyi +563 -563
  4. hikyuu/analysis/analysis.pyi +563 -563
  5. hikyuu/core.pyi +563 -563
  6. hikyuu/cpp/__init__.pyi +2 -2
  7. hikyuu/cpp/core310.pyd +0 -0
  8. hikyuu/cpp/core310.pyi +0 -4
  9. hikyuu/cpp/core311.pyd +0 -0
  10. hikyuu/cpp/core311.pyi +0 -4
  11. hikyuu/cpp/core312.pyd +0 -0
  12. hikyuu/cpp/core312.pyi +0 -4
  13. hikyuu/cpp/core313.pyd +0 -0
  14. hikyuu/cpp/core313.pyi +0 -4
  15. hikyuu/cpp/core39.pyd +0 -0
  16. hikyuu/cpp/core39.pyi +0 -4
  17. hikyuu/cpp/hikyuu.dll +0 -0
  18. hikyuu/cpp/hikyuu.lib +0 -0
  19. hikyuu/cpp/i18n/zh_CN/hikyuu.mo +0 -0
  20. hikyuu/cpp/sqlite3.dll +0 -0
  21. hikyuu/draw/drawplot/__init__.pyi +9 -9
  22. hikyuu/draw/drawplot/bokeh_draw.pyi +578 -578
  23. hikyuu/draw/drawplot/common.pyi +1 -1
  24. hikyuu/draw/drawplot/echarts_draw.pyi +580 -580
  25. hikyuu/draw/drawplot/matplotlib_draw.pyi +590 -590
  26. hikyuu/draw/elder.pyi +11 -11
  27. hikyuu/draw/kaufman.pyi +18 -18
  28. hikyuu/draw/volume.pyi +10 -10
  29. hikyuu/extend.py +1 -0
  30. hikyuu/extend.pyi +574 -573
  31. hikyuu/gui/importdata.py +4 -0
  32. hikyuu/hub.pyi +6 -6
  33. hikyuu/include/hikyuu/config.h +3 -0
  34. hikyuu/include/hikyuu/lang.h +15 -2
  35. hikyuu/include/hikyuu/plugin/hkuextra.h +0 -18
  36. hikyuu/include/hikyuu/plugin/hkuviews.h +36 -0
  37. hikyuu/include/hikyuu/plugin/interface/HkuExtraPluginInterface.h +0 -14
  38. hikyuu/include/hikyuu/plugin/interface/HkuViewsPluginInterface.h +34 -0
  39. hikyuu/include/hikyuu/plugin/interface/plugins.h +8 -1
  40. hikyuu/include/hikyuu/python/pybind_utils.h +8 -3
  41. hikyuu/include/hikyuu/utilities/arithmetic.h +10 -0
  42. hikyuu/include/hikyuu/version.h +2 -2
  43. hikyuu/plugin/backtest.dll +0 -0
  44. hikyuu/plugin/clickhousedriver.dll +0 -0
  45. hikyuu/plugin/dataserver.dll +0 -0
  46. hikyuu/plugin/device.dll +0 -0
  47. hikyuu/plugin/extind.dll +0 -0
  48. hikyuu/plugin/hkuextra.dll +0 -0
  49. hikyuu/plugin/hkuviews.dll +0 -0
  50. hikyuu/plugin/import2hdf5.dll +0 -0
  51. hikyuu/plugin/tmreport.dll +0 -0
  52. hikyuu/trade_manage/__init__.pyi +578 -578
  53. hikyuu/trade_manage/broker.pyi +3 -3
  54. hikyuu/trade_manage/broker_easytrader.pyi +1 -1
  55. hikyuu/trade_manage/trade.pyi +578 -578
  56. hikyuu/util/__init__.pyi +1 -1
  57. hikyuu/util/singleton.pyi +1 -1
  58. {hikyuu-2.6.8.3.dist-info → hikyuu-2.6.8.5.dist-info}/METADATA +1 -1
  59. {hikyuu-2.6.8.3.dist-info → hikyuu-2.6.8.5.dist-info}/RECORD +62 -59
  60. {hikyuu-2.6.8.3.dist-info → hikyuu-2.6.8.5.dist-info}/WHEEL +0 -0
  61. {hikyuu-2.6.8.3.dist-info → hikyuu-2.6.8.5.dist-info}/entry_points.txt +0 -0
  62. {hikyuu-2.6.8.3.dist-info → hikyuu-2.6.8.5.dist-info}/top_level.txt +0 -0
hikyuu/gui/importdata.py CHANGED
@@ -9,6 +9,7 @@ from configparser import ConfigParser
9
9
 
10
10
  from hikyuu.data.weight_to_sqlite import qianlong_import_weight
11
11
  from hikyuu.data.common_pytdx import search_best_tdx
12
+ from hikyuu.data.hku_config_template import generate_default_config
12
13
 
13
14
  from hikyuu.gui.data.UseTdxImportToH5Thread import UseTdxImportToH5Thread
14
15
  from hikyuu.gui.data.UsePytdxImportToH5Thread import UsePytdxImportToH5Thread
@@ -26,7 +27,10 @@ class HKUImportDataCMD:
26
27
  # 读取保存的配置文件信息,如果不存在,则使用默认配置
27
28
  this_dir = self.getUserConfigDir()
28
29
  import_config = ConfigParser()
30
+ if not os.path.exists(this_dir + '/importdata-gui.ini'):
31
+ generate_default_config()
29
32
  import_config.read(this_dir + '/importdata-gui.ini', encoding='utf-8')
33
+
30
34
  if self.ignore_kdata:
31
35
  import_config.set('ktype', 'day', 'False')
32
36
  import_config.set('ktype', 'min', 'False')
hikyuu/hub.pyi CHANGED
@@ -28,11 +28,11 @@ import sys as sys
28
28
  import typing
29
29
  __all__: list = ['add_remote_hub', 'add_local_hub', 'update_hub', 'remove_hub', 'build_hub', 'help_part', 'get_part', 'get_part_list', 'get_hub_path', 'get_part_info', 'get_part_module', 'print_part_info', 'get_hub_name_list', 'get_part_name_list', 'get_current_hub', 'search_part']
30
30
  class ConfigModel(sqlalchemy.orm.decl_api.Base):
31
- __mapper__: typing.ClassVar[sqlalchemy.orm.mapper.Mapper] # value = <Mapper at 0x2a326174610; ConfigModel>
31
+ __mapper__: typing.ClassVar[sqlalchemy.orm.mapper.Mapper] # value = <Mapper at 0x231e218d9a0; ConfigModel>
32
32
  __table__: typing.ClassVar[sqlalchemy.sql.schema.Table] # value = Table('hub_config', MetaData(), Column('id', Integer(), table=<hub_config>, primary_key=True, nullable=False, default=Sequence('config_id_seq', metadata=MetaData())), Column('key', String(), table=<hub_config>), Column('value', String(), table=<hub_config>), schema=None)
33
33
  __table_args__: typing.ClassVar[tuple] # value = (UniqueConstraint(Column('key', String(), table=<hub_config>)))
34
34
  __tablename__: typing.ClassVar[str] = 'hub_config'
35
- _sa_class_manager: typing.ClassVar[sqlalchemy.orm.instrumentation.ClassManager] # value = <ClassManager of <class 'hikyuu.hub.ConfigModel'> at 2a326171f80>
35
+ _sa_class_manager: typing.ClassVar[sqlalchemy.orm.instrumentation.ClassManager] # value = <ClassManager of <class 'hikyuu.hub.ConfigModel'> at 231e219e540>
36
36
  def __init__(self, **kwargs):
37
37
  """
38
38
  A simple constructor that allows initialization from kwargs.
@@ -109,11 +109,11 @@ class HubManager:
109
109
  def print_part_info(self, name):
110
110
  ...
111
111
  class HubModel(sqlalchemy.orm.decl_api.Base):
112
- __mapper__: typing.ClassVar[sqlalchemy.orm.mapper.Mapper] # value = <Mapper at 0x2a3261757e0; HubModel>
112
+ __mapper__: typing.ClassVar[sqlalchemy.orm.mapper.Mapper] # value = <Mapper at 0x231e218df10; HubModel>
113
113
  __table__: typing.ClassVar[sqlalchemy.sql.schema.Table] # value = Table('hub_repo', MetaData(), Column('id', Integer(), table=<hub_repo>, primary_key=True, nullable=False, default=Sequence('remote_id_seq', metadata=MetaData())), Column('name', String(), table=<hub_repo>), Column('hub_type', String(), table=<hub_repo>), Column('local_base', String(), table=<hub_repo>), Column('local', String(), table=<hub_repo>), Column('url', String(), table=<hub_repo>), Column('branch', String(), table=<hub_repo>), schema=None)
114
114
  __table_args__: typing.ClassVar[tuple] # value = (UniqueConstraint(Column('name', String(), table=<hub_repo>)))
115
115
  __tablename__: typing.ClassVar[str] = 'hub_repo'
116
- _sa_class_manager: typing.ClassVar[sqlalchemy.orm.instrumentation.ClassManager] # value = <ClassManager of <class 'hikyuu.hub.HubModel'> at 2a32619ec50>
116
+ _sa_class_manager: typing.ClassVar[sqlalchemy.orm.instrumentation.ClassManager] # value = <ClassManager of <class 'hikyuu.hub.HubModel'> at 231e21ab5e0>
117
117
  def __init__(self, **kwargs):
118
118
  """
119
119
  A simple constructor that allows initialization from kwargs.
@@ -146,11 +146,11 @@ class ModuleConflictError(Exception):
146
146
  def __str__(self):
147
147
  ...
148
148
  class PartModel(sqlalchemy.orm.decl_api.Base):
149
- __mapper__: typing.ClassVar[sqlalchemy.orm.mapper.Mapper] # value = <Mapper at 0x2a326175d20; PartModel>
149
+ __mapper__: typing.ClassVar[sqlalchemy.orm.mapper.Mapper] # value = <Mapper at 0x231e21ce8e0; PartModel>
150
150
  __table__: typing.ClassVar[sqlalchemy.sql.schema.Table] # value = Table('hub_part', MetaData(), Column('id', Integer(), table=<hub_part>, primary_key=True, nullable=False, default=Sequence('part_id_seq', metadata=MetaData())), Column('hub_name', String(), table=<hub_part>), Column('part', String(), table=<hub_part>), Column('name', String(), table=<hub_part>), Column('author', String(), table=<hub_part>), Column('version', String(), table=<hub_part>), Column('doc', String(), table=<hub_part>), Column('module_name', String(), table=<hub_part>), Column('label', String(), table=<hub_part>), schema=None)
151
151
  __table_args__: typing.ClassVar[tuple] # value = (UniqueConstraint(Column('name', String(), table=<hub_part>)))
152
152
  __tablename__: typing.ClassVar[str] = 'hub_part'
153
- _sa_class_manager: typing.ClassVar[sqlalchemy.orm.instrumentation.ClassManager] # value = <ClassManager of <class 'hikyuu.hub.PartModel'> at 2a32619fc90>
153
+ _sa_class_manager: typing.ClassVar[sqlalchemy.orm.instrumentation.ClassManager] # value = <ClassManager of <class 'hikyuu.hub.PartModel'> at 231e21c09a0>
154
154
  def __init__(self, **kwargs):
155
155
  """
156
156
  A simple constructor that allows initialization from kwargs.
@@ -46,6 +46,9 @@
46
46
  // 使用 TA-Lib
47
47
  #define HKU_ENABLE_TA_LIB 1
48
48
 
49
+ // 使用 Arrow
50
+ #define HKU_ENABLE_ARROW 1
51
+
49
52
  // clang-format on
50
53
 
51
54
  #endif /* HIKYUU_CONFIG_H_ */
@@ -8,6 +8,7 @@
8
8
  #pragma once
9
9
 
10
10
  #include <string>
11
+ #include "hikyuu/utilities/cppdef.h"
11
12
 
12
13
  #ifndef HKU_API
13
14
  #define HKU_API
@@ -19,9 +20,21 @@ namespace hku {
19
20
 
20
21
  void loadLocalLanguage(const std::string &path = "i8n");
21
22
 
22
- std::string HKU_API htr(const char *id);
23
+ std::string HKU_API lang_htr(const char *id);
23
24
 
24
25
  // 按上下文获取翻译
25
- std::string HKU_API hctr(const char *ctx, const char *id);
26
+ std::string HKU_API lang_hctr(const char *ctx, const char *id);
27
+
28
+ template <typename... Args>
29
+ std::string htr(const char *key, Args &&...args) {
30
+ std::string fmt_str = lang_htr(key);
31
+ return fmt::vformat(fmt_str, fmt::make_format_args(std::forward<Args>(args)...));
32
+ }
33
+
34
+ template <typename... Args>
35
+ std::string chtr(const char *ctx, const char *key, Args &&...args) {
36
+ std::string fmt_str = lang_hctr(ctx, key);
37
+ return fmt::vformat(fmt_str, fmt::make_format_args(std::forward<Args>(args)...));
38
+ }
26
39
 
27
40
  } // namespace hku
@@ -7,7 +7,6 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #include <arrow/api.h>
11
10
  #include "hikyuu/Stock.h"
12
11
  #include "hikyuu/indicator/Indicator.h"
13
12
 
@@ -57,21 +56,4 @@ bool getStockExtraIndexRange(const Stock& stk, const KQuery& query, size_t& out_
57
56
 
58
57
  KDataImpPtr getKDataImp(const Stock& stk, const KQuery& query);
59
58
 
60
- //-------------------------------
61
- // Views 扩展
62
- //-------------------------------
63
-
64
- std::shared_ptr<arrow::Table> getIndicatorsViewParallel(const StockList& stks,
65
- const IndicatorList& inds,
66
- const KQuery& query, const string& market);
67
-
68
- std::shared_ptr<arrow::Table> getIndicatorsViewParallel(const StockList& stks,
69
- const IndicatorList& inds,
70
- const Datetime& date, size_t cal_len,
71
- const KQuery::KType& ktype,
72
- const string& market);
73
-
74
- std::shared_ptr<arrow::Table> getMarketViewParallel(const StockList& stks, const Datetime& date,
75
- const string& market);
76
-
77
59
  } // namespace hku
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright (c) 2025 hikyuu.org
3
+ *
4
+ * Created on: 2025-08-06
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <hikyuu/config.h>
11
+
12
+ #if HKU_ENABLE_ARROW
13
+ #include <arrow/api.h>
14
+
15
+ namespace hku {
16
+
17
+ //-------------------------------
18
+ // Views 扩展
19
+ //-------------------------------
20
+
21
+ std::shared_ptr<arrow::Table> getIndicatorsViewParallel(const StockList& stks,
22
+ const IndicatorList& inds,
23
+ const KQuery& query, const string& market);
24
+
25
+ std::shared_ptr<arrow::Table> getIndicatorsViewParallel(const StockList& stks,
26
+ const IndicatorList& inds,
27
+ const Datetime& date, size_t cal_len,
28
+ const KQuery::KType& ktype,
29
+ const string& market);
30
+
31
+ std::shared_ptr<arrow::Table> getMarketViewParallel(const StockList& stks, const Datetime& date,
32
+ const string& market);
33
+
34
+ } // namespace hku
35
+
36
+ #endif // HKU_ENABLE_ARROW
@@ -7,7 +7,6 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #include <arrow/api.h>
11
10
  #include "hikyuu/utilities/plugin/PluginBase.h"
12
11
 
13
12
  namespace hku {
@@ -36,19 +35,6 @@ public:
36
35
  size_t& out_end) = 0;
37
36
 
38
37
  virtual KDataImpPtr getKDataImp(const Stock& stk, const KQuery& query) = 0;
39
-
40
- virtual std::shared_ptr<arrow::Table> getIndicatorsViewParallel(const StockList& stks,
41
- const IndicatorList& inds,
42
- const KQuery& query,
43
- const string& market) = 0;
44
-
45
- virtual std::shared_ptr<arrow::Table> getIndicatorsViewParallel(
46
- const StockList& stks, const IndicatorList& inds, const Datetime& date, size_t cal_len,
47
- const KQuery::KType& ktype, const string& market) = 0;
48
-
49
- virtual std::shared_ptr<arrow::Table> getMarketViewParallel(const StockList& stks,
50
- const Datetime& date,
51
- const string& market) = 0;
52
38
  };
53
39
 
54
40
  } // namespace hku
@@ -0,0 +1,34 @@
1
+ /*
2
+ * Copyright (c) 2025 hikyuu.org
3
+ *
4
+ * Created on: 2025-05-19
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <arrow/api.h>
11
+ #include "hikyuu/utilities/plugin/PluginBase.h"
12
+
13
+ namespace hku {
14
+
15
+ class HkuViewsPluginInterface : public PluginBase {
16
+ public:
17
+ HkuViewsPluginInterface() = default;
18
+ virtual ~HkuViewsPluginInterface() = default;
19
+
20
+ virtual std::shared_ptr<arrow::Table> getIndicatorsViewParallel(const StockList& stks,
21
+ const IndicatorList& inds,
22
+ const KQuery& query,
23
+ const string& market) = 0;
24
+
25
+ virtual std::shared_ptr<arrow::Table> getIndicatorsViewParallel(
26
+ const StockList& stks, const IndicatorList& inds, const Datetime& date, size_t cal_len,
27
+ const KQuery::KType& ktype, const string& market) = 0;
28
+
29
+ virtual std::shared_ptr<arrow::Table> getMarketViewParallel(const StockList& stks,
30
+ const Datetime& date,
31
+ const string& market) = 0;
32
+ };
33
+
34
+ } // namespace hku
@@ -7,6 +7,8 @@
7
7
 
8
8
  #pragma once
9
9
 
10
+ #include "hikyuu/config.h"
11
+
10
12
  #include "BackTestPluginInterface.h"
11
13
  #include "DevicePluginInterface.h"
12
14
  #include "DataServerPluginInterface.h"
@@ -16,6 +18,10 @@
16
18
  #include "DataDriverPluginInterface.h"
17
19
  #include "HkuExtraPluginInterface.h"
18
20
 
21
+ #if HKU_ENABLE_ARROW
22
+ #include "HkuViewsPluginInterface.h"
23
+ #endif
24
+
19
25
  namespace hku {
20
26
 
21
27
  #define HKU_PLUGIN_BACKTEST "backtest"
@@ -26,5 +32,6 @@ namespace hku {
26
32
  #define HKU_PLUGIN_TMREPORT "tmreport"
27
33
  #define HKU_PLUGIN_CLICKHOUSE_DRIVER "clickhousedriver"
28
34
  #define HKU_PLUGIN_HKU_EXTRA "hkuextra"
35
+ #define HKU_PLUGIN_HKU_VIEWS "hkuviews"
29
36
 
30
- }
37
+ } // namespace hku
@@ -9,12 +9,15 @@
9
9
  #ifndef HIKYUU_PYTHON_BIND_UTILS_H
10
10
  #define HIKYUU_PYTHON_BIND_UTILS_H
11
11
 
12
+ #include <hikyuu/config.h>
13
+ #if HKU_ENABLE_ARROW
14
+ #include <arrow/api.h>
15
+ #endif
12
16
  #include <pybind11/pybind11.h>
13
17
 
14
18
  #include <pybind11/operators.h>
15
19
  #include <pybind11/stl.h>
16
20
  #include <pybind11/numpy.h>
17
- #include <arrow/api.h>
18
21
  #include <vector>
19
22
  #include <string>
20
23
  #include "convert_any.h"
@@ -107,8 +110,8 @@ protected:
107
110
  return true; \
108
111
  }
109
112
 
110
- // 用于检查已 py::object 方式传递的函数参数个数是否符合预期
111
- inline bool check_pyfunction_arg_num(py::object& func, size_t arg_num) {
113
+ // 用于检查以 py::object 方式传递的函数参数个数是否符合预期
114
+ inline bool check_pyfunction_arg_num(const py::object& func, size_t arg_num) {
112
115
  py::module_ inspect = py::module_::import("inspect");
113
116
  py::object sig = inspect.attr("signature")(func);
114
117
  py::object params = sig.attr("parameters");
@@ -124,12 +127,14 @@ inline bool check_pyfunction_arg_num(py::object& func, size_t arg_num) {
124
127
  */
125
128
  size_t utf8_to_utf32(const std::string& utf8_str, int32_t* out, size_t out_len) noexcept;
126
129
 
130
+ #if HKU_ENABLE_ARROW
127
131
  /*
128
132
  * 将arrow::Table转换为 pyarrow::Table
129
133
  * @param table 待转换的arrow::Table
130
134
  * @return 转换后的py::object
131
135
  */
132
136
  py::object to_pyarrow_table(const std::shared_ptr<arrow::Table>& table);
137
+ #endif
133
138
 
134
139
  } // namespace hku
135
140
 
@@ -120,6 +120,11 @@ ValueT roundEx(ValueT number, int ndigits = 0) {
120
120
  return static_cast<ValueT>(std::ceil(number * factor - 0.5 - epsilon) / factor);
121
121
  }
122
122
 
123
+ extern template double HKU_UTILS_API roundEx(double number, int ndigits);
124
+
125
+ template <>
126
+ float HKU_UTILS_API roundEx(float number, int ndigits);
127
+
123
128
  /**
124
129
  * 向上截取,如10.1截取后为11
125
130
  * @param number 待处理数据
@@ -194,6 +199,11 @@ ValueT roundDown(ValueT number, int ndigits = 0) {
194
199
  return number;
195
200
  }
196
201
 
202
+ extern template double HKU_UTILS_API roundUp(double number, int ndigits);
203
+ extern template float HKU_UTILS_API roundUp(float number, int ndigits);
204
+ extern template double HKU_UTILS_API roundDown(double number, int ndigits);
205
+ extern template float HKU_UTILS_API roundDown(float number, int ndigits);
206
+
197
207
  #if defined(_MSC_VER)
198
208
  #pragma warning(pop)
199
209
  #endif
@@ -16,9 +16,9 @@
16
16
  #define HKU_VERSION_MAJOR 2
17
17
  #define HKU_VERSION_MINOR 6
18
18
  #define HKU_VERSION_ALTER 8
19
- #define HKU_VERSION_BUILD 202509080001
19
+ #define HKU_VERSION_BUILD 202509152355
20
20
  #define HKU_VERSION_MODE "RELEASE"
21
- #define HKU_VERSION_GIT "2.6.8 master.bc12c104 (RELEASE)"
21
+ #define HKU_VERSION_GIT "2.6.8 master.f8b7e83d (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