hikyuu 2.6.8.4__py3-none-manylinux2014_x86_64.whl → 2.7.0__py3-none-manylinux2014_x86_64.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.
- hikyuu/__init__.py +31 -17
- hikyuu/__init__.pyi +610 -590
- hikyuu/analysis/__init__.pyi +584 -563
- hikyuu/analysis/analysis.pyi +585 -564
- hikyuu/core.py +2 -0
- hikyuu/core.pyi +586 -565
- hikyuu/cpp/__init__.pyi +2 -2
- hikyuu/cpp/core310.pyi +501 -108
- hikyuu/cpp/core310.so +0 -0
- hikyuu/cpp/core311.pyi +495 -108
- hikyuu/cpp/core311.so +0 -0
- hikyuu/cpp/core312.pyi +495 -108
- hikyuu/cpp/core312.so +0 -0
- hikyuu/cpp/core313.pyi +501 -108
- hikyuu/cpp/core313.so +0 -0
- hikyuu/cpp/i18n/zh_CN/hikyuu.mo +0 -0
- hikyuu/cpp/libboost_charconv-mt.so +0 -0
- hikyuu/cpp/libboost_charconv-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_chrono-mt.so +0 -0
- hikyuu/cpp/libboost_chrono-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_date_time-mt.so +0 -0
- hikyuu/cpp/libboost_date_time-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_serialization-mt.so +0 -0
- hikyuu/cpp/libboost_serialization-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_system-mt.so +0 -0
- hikyuu/cpp/libboost_system-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_thread-mt.so +0 -0
- hikyuu/cpp/libboost_thread-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_wserialization-mt.so +0 -0
- hikyuu/cpp/libboost_wserialization-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libhikyuu.so +0 -0
- hikyuu/cpp/libsqlite3.so +0 -0
- hikyuu/data/clickhouse_upgrade/createdb.sql +105 -105
- hikyuu/data/common.py +3 -3
- hikyuu/data/common_clickhouse.py +1 -1
- hikyuu/data/download_block.py +351 -0
- hikyuu/data/em_block_to_clickhouse.py +26 -74
- hikyuu/data/em_block_to_mysql.py +25 -75
- hikyuu/data/em_block_to_sqlite.py +26 -78
- hikyuu/data/hku_config_template.py +3 -3
- hikyuu/data/pytdx_to_clickhouse.py +15 -11
- hikyuu/data/pytdx_to_h5.py +6 -2
- hikyuu/data/pytdx_to_mysql.py +5 -1
- hikyuu/data/pytdx_weight_to_clickhouse.py +1 -1
- hikyuu/data/pytdx_weight_to_mysql.py +1 -1
- hikyuu/data/pytdx_weight_to_sqlite.py +1 -1
- hikyuu/data/zh_bond10_to_clickhouse.py +1 -1
- hikyuu/draw/__init__.pyi +1 -1
- hikyuu/draw/drawplot/__init__.pyi +9 -9
- hikyuu/draw/drawplot/bokeh_draw.pyi +600 -580
- hikyuu/draw/drawplot/common.pyi +1 -1
- hikyuu/draw/drawplot/echarts_draw.pyi +602 -582
- hikyuu/draw/drawplot/matplotlib_draw.py +4 -74
- hikyuu/draw/drawplot/matplotlib_draw.pyi +612 -592
- hikyuu/draw/elder.pyi +11 -11
- hikyuu/draw/kaufman.pyi +18 -18
- hikyuu/draw/volume.pyi +10 -10
- hikyuu/examples/notebook/Demo/Demo1.ipynb +48 -33
- hikyuu/extend.py +0 -7
- hikyuu/extend.pyi +594 -573
- hikyuu/fetcher/stock/zh_block_em.py +12 -40
- hikyuu/gui/HikyuuTDX.py +99 -31
- hikyuu/gui/data/CollectSpotThread.py +1 -1
- hikyuu/gui/data/EscapetimeThread.py +8 -14
- hikyuu/gui/data/ImportBlockInfoTask.py +3 -10
- hikyuu/gui/data/MainWindow.py +1196 -717
- hikyuu/gui/data/SchedImportThread.py +2 -2
- hikyuu/gui/data/UsePytdxImportToH5Thread.py +3 -3
- hikyuu/gui/data/UseQmtImportToH5Thread.py +2 -2
- hikyuu/gui/data/UseTdxImportToH5Thread.py +3 -3
- hikyuu/gui/data/tool.py +32 -25
- hikyuu/gui/dataserver.py +5 -3
- hikyuu/gui/images/liandongxiaopu.png +0 -0
- hikyuu/hub.pyi +6 -6
- hikyuu/include/hikyuu/DataType.h +4 -16
- hikyuu/include/hikyuu/KData.h +6 -3
- hikyuu/include/hikyuu/KDataPrivatedBufferImp.h +1 -1
- hikyuu/include/hikyuu/KDataSharedBufferImp.h +1 -1
- hikyuu/include/hikyuu/KQuery.h +2 -2
- hikyuu/include/hikyuu/Stock.h +4 -1
- hikyuu/include/hikyuu/StockManager.h +13 -3
- hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +8 -0
- hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +6 -0
- hikyuu/include/hikyuu/data_driver/KDataDriver.h +26 -1
- hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +2 -1
- hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +2 -1
- hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +2 -1
- hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +1 -1
- hikyuu/include/hikyuu/hikyuu.h +1 -1
- hikyuu/include/hikyuu/indicator/build_in.h +1 -0
- hikyuu/include/hikyuu/indicator/crt/CYCLE.h +4 -4
- hikyuu/include/hikyuu/indicator/crt/HSL.h +2 -2
- hikyuu/include/hikyuu/indicator/crt/QUANTILE_TRUNC.h +30 -0
- hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +1 -0
- hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +2 -2
- hikyuu/include/hikyuu/indicator/imp/IQuantileTrunc.h +25 -0
- hikyuu/include/hikyuu/misc.h +38 -0
- hikyuu/include/hikyuu/plugin/dataserver.h +2 -1
- hikyuu/include/hikyuu/plugin/device.h +10 -0
- hikyuu/include/hikyuu/plugin/extind.h +37 -0
- hikyuu/include/hikyuu/plugin/hkuextra.h +0 -18
- hikyuu/include/hikyuu/plugin/interface/DataServerPluginInterface.h +2 -2
- hikyuu/include/hikyuu/plugin/interface/DevicePluginInterface.h +2 -0
- hikyuu/include/hikyuu/plugin/interface/ExtendIndicatorsPluginInterface.h +12 -0
- hikyuu/include/hikyuu/plugin/interface/HkuExtraPluginInterface.h +0 -14
- hikyuu/include/hikyuu/plugin/interface/plugins.h +3 -1
- hikyuu/include/hikyuu/python/pybind_utils.h +1 -8
- hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +3 -0
- hikyuu/include/hikyuu/trade_manage/Performance.h +4 -4
- hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +10 -1
- hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalFundsMM.h +0 -4
- hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +36 -3
- hikyuu/include/hikyuu/trade_sys/multifactor/NormalizeBase.h +125 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/ScoresFilterBase.h +125 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +3 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/buildin_norm.h +36 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/buildin_scfilter.h +51 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/GroupSCFilter.h +24 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreLessOrEqualValueSCFilter.h +24 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreNanSCFilter.h +24 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/MinAmountPercentSCFilter.h +25 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/PriceSCFilter.h +24 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/TopNSCFilter.h +24 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +1 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +1 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +1 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/WeightMultiFactor.h +1 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormMinMax.h +23 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantile.h +28 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantileUniform.h +28 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormZScore.h +25 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/quantile_trunc.h +16 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +7 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/imp/SimplePortfolio.h +7 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/imp/WithoutAFPortfolio.h +7 -0
- hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +49 -0
- hikyuu/include/hikyuu/trade_sys/selector/build_in.h +1 -0
- hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor2.h +40 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +0 -3
- hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector2.h +49 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +1 -1
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +1 -1
- hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +0 -4
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/AddValueSignal.h +2 -2
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/DivValueSignal.h +2 -2
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/MulValueSignal.h +2 -2
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorSignal.h +1 -1
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorValueSignal.h +4 -4
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/SubValueSignal.h +2 -2
- hikyuu/include/hikyuu/trade_sys/slippage/build_in.h +5 -1
- hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_LogNormal.h +22 -0
- hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_Normal.h +22 -0
- hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_TruncNormal.h +25 -0
- hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_Uniform.h +23 -0
- hikyuu/include/hikyuu/trade_sys/slippage/imp/LogNormalSlippage.h +28 -0
- hikyuu/include/hikyuu/trade_sys/slippage/imp/NormalSlippage.h +28 -0
- hikyuu/include/hikyuu/trade_sys/slippage/imp/TruncNormalSlippage.h +28 -0
- hikyuu/include/hikyuu/trade_sys/slippage/imp/UniformSlippage.h +24 -0
- hikyuu/include/hikyuu/trade_sys/system/System.h +14 -1
- hikyuu/include/hikyuu/utilities/SpendTimer.h +17 -7
- hikyuu/include/hikyuu/utilities/arithmetic.h +55 -0
- hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +1 -1
- hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +1 -1
- hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +1 -1
- hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +1 -1
- hikyuu/include/hikyuu/utilities/plugin/PluginLoader.h +4 -1
- hikyuu/include/hikyuu/version.h +5 -5
- hikyuu/plugin/libbacktest.so +0 -0
- hikyuu/plugin/libclickhousedriver.so +0 -0
- hikyuu/plugin/libdataserver.so +0 -0
- hikyuu/{cpp/core39.so → plugin/libdataserver_parquet.so} +0 -0
- hikyuu/plugin/libdevice.so +0 -0
- hikyuu/plugin/libextind.so +0 -0
- hikyuu/plugin/libhkuextra.so +0 -0
- hikyuu/plugin/libimport2hdf5.so +0 -0
- hikyuu/plugin/libtmreport.so +0 -0
- hikyuu/trade_manage/__init__.pyi +599 -579
- hikyuu/trade_manage/broker.pyi +3 -3
- hikyuu/trade_manage/broker_easytrader.pyi +1 -1
- hikyuu/trade_manage/trade.py +0 -2
- hikyuu/trade_manage/trade.pyi +599 -579
- hikyuu/util/__init__.pyi +1 -1
- hikyuu/util/singleton.pyi +1 -1
- {hikyuu-2.6.8.4.dist-info → hikyuu-2.7.0.dist-info}/METADATA +36 -32
- {hikyuu-2.6.8.4.dist-info → hikyuu-2.7.0.dist-info}/RECORD +197 -164
- {hikyuu-2.6.8.4.dist-info → hikyuu-2.7.0.dist-info}/top_level.txt +2 -2
- hikyuu/cpp/core39.pyi +0 -14385
- hikyuu/data_driver/__init__.py +0 -49
- hikyuu/data_driver/jqdata_data_driver.py +0 -277
- hikyuu/data_driver/pytdx_data_driver.py +0 -292
- hikyuu/fetcher/stock/zh_stock_a_huatai.py +0 -51
- hikyuu/fetcher/stock/zh_stock_a_pytdx.py +0 -129
- hikyuu/gui/data/CollectToMemThread.py +0 -123
- hikyuu/gui/data/CollectToMySQLThread.py +0 -178
- hikyuu/gui/start_huatai_insight.py +0 -510
- hikyuu/include/hikyuu/views/arrow_common.h +0 -38
- hikyuu/include/hikyuu/views/arrow_views.h +0 -117
- hikyuu/tools/update_block_info.py +0 -168
- /hikyuu/include/hikyuu/{views → trade_sys/multifactor/filter}/__init__.py +0 -0
- {hikyuu-2.6.8.4.dist-info → hikyuu-2.7.0.dist-info}/WHEEL +0 -0
- {hikyuu-2.6.8.4.dist-info → hikyuu-2.7.0.dist-info}/entry_points.txt +0 -0
|
@@ -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__,
|
|
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 */
|
|
@@ -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
|
|
@@ -405,6 +415,51 @@ inline std::string byteToHexStrForPrint(const std::string &bytes) {
|
|
|
405
415
|
return byteToHexStrForPrint(bytes.c_str(), bytes.size());
|
|
406
416
|
}
|
|
407
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
|
+
|
|
408
463
|
/** @} */
|
|
409
464
|
} /* namespace hku */
|
|
410
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 ¶m);
|
|
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;
|
|
@@ -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 =
|
hikyuu/include/hikyuu/version.h
CHANGED
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
#define HKU_VERSION_H
|
|
13
13
|
|
|
14
14
|
// clang-format off
|
|
15
|
-
#define HKU_VERSION "2.
|
|
15
|
+
#define HKU_VERSION "2.7.0"
|
|
16
16
|
#define HKU_VERSION_MAJOR 2
|
|
17
|
-
#define HKU_VERSION_MINOR
|
|
18
|
-
#define HKU_VERSION_ALTER
|
|
19
|
-
#define HKU_VERSION_BUILD
|
|
17
|
+
#define HKU_VERSION_MINOR 7
|
|
18
|
+
#define HKU_VERSION_ALTER 0
|
|
19
|
+
#define HKU_VERSION_BUILD 202511020040
|
|
20
20
|
#define HKU_VERSION_MODE "RELEASE"
|
|
21
|
-
#define HKU_VERSION_GIT "2.
|
|
21
|
+
#define HKU_VERSION_GIT "2.7.0 release.3d6e5754 (RELEASE)"
|
|
22
22
|
// clang-format on
|
|
23
23
|
|
|
24
24
|
#endif /* HKU_VERSION_H */
|
hikyuu/plugin/libbacktest.so
CHANGED
|
Binary file
|
|
Binary file
|
hikyuu/plugin/libdataserver.so
CHANGED
|
Binary file
|
|
Binary file
|
hikyuu/plugin/libdevice.so
CHANGED
|
Binary file
|
hikyuu/plugin/libextind.so
CHANGED
|
Binary file
|
hikyuu/plugin/libhkuextra.so
CHANGED
|
Binary file
|
hikyuu/plugin/libimport2hdf5.so
CHANGED
|
Binary file
|
hikyuu/plugin/libtmreport.so
CHANGED
|
Binary file
|