hikyuu 2.2.4__py3-none-macosx_11_1_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hikyuu/LICENSE.txt +21 -0
- hikyuu/__init__.py +137 -0
- hikyuu/analysis/__init__.py +14 -0
- hikyuu/analysis/analysis.py +151 -0
- hikyuu/config/__init__.py +1 -0
- hikyuu/config/block/__init__.py +0 -0
- hikyuu/config/block/dybk.ini +5357 -0
- hikyuu/config/block/gnbk.ini +50024 -0
- hikyuu/config/block/hybk.ini +5464 -0
- hikyuu/config/block/self.ini +10 -0
- hikyuu/config/block/zsbk.ini +65543 -0
- hikyuu/core.py +27 -0
- hikyuu/cpp/__init__.py +1 -0
- hikyuu/cpp/core310.so +0 -0
- hikyuu/cpp/core311.so +0 -0
- hikyuu/cpp/core312.so +0 -0
- hikyuu/cpp/core313.so +0 -0
- hikyuu/cpp/libcrypto.3.dylib +0 -0
- hikyuu/cpp/libcrypto.dylib +0 -0
- hikyuu/cpp/libhku_hdf5.200.2.0.dylib +0 -0
- hikyuu/cpp/libhku_hdf5.200.dylib +0 -0
- hikyuu/cpp/libhku_hdf5.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_cpp.200.2.0.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_cpp.200.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_cpp.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_hl.200.1.0.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_hl.200.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_hl.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_hl_cpp.200.1.0.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_hl_cpp.200.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_hl_cpp.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_tools.200.1.1.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_tools.200.dylib +0 -0
- hikyuu/cpp/libhku_hdf5_tools.dylib +0 -0
- hikyuu/cpp/libmysqlclient.21.dylib +0 -0
- hikyuu/cpp/libmysqlclient.dylib +0 -0
- hikyuu/cpp/libsqlite3.dylib +0 -0
- hikyuu/cpp/libssl.3.dylib +0 -0
- hikyuu/cpp/libssl.dylib +0 -0
- hikyuu/data/__init__.py +1 -0
- hikyuu/data/common.py +248 -0
- hikyuu/data/common_h5.py +398 -0
- hikyuu/data/common_mysql.py +485 -0
- hikyuu/data/common_pytdx.py +108 -0
- hikyuu/data/common_sqlite3.py +140 -0
- hikyuu/data/em_block_to_mysql.py +120 -0
- hikyuu/data/em_block_to_sqlite.py +117 -0
- hikyuu/data/hku_config_template.py +266 -0
- hikyuu/data/mysql_upgrade/0001.sql +5 -0
- hikyuu/data/mysql_upgrade/0002.sql +3 -0
- hikyuu/data/mysql_upgrade/0003.sql +9 -0
- hikyuu/data/mysql_upgrade/0004.sql +26 -0
- hikyuu/data/mysql_upgrade/0005.sql +3 -0
- hikyuu/data/mysql_upgrade/0006.sql +2 -0
- hikyuu/data/mysql_upgrade/0007.sql +20 -0
- hikyuu/data/mysql_upgrade/0008.sql +6 -0
- hikyuu/data/mysql_upgrade/0009.sql +36 -0
- hikyuu/data/mysql_upgrade/0010.sql +5 -0
- hikyuu/data/mysql_upgrade/0011.sql +5 -0
- hikyuu/data/mysql_upgrade/0012.sql +5 -0
- hikyuu/data/mysql_upgrade/0013.sql +2389 -0
- hikyuu/data/mysql_upgrade/0014.sql +3 -0
- hikyuu/data/mysql_upgrade/0015.sql +4 -0
- hikyuu/data/mysql_upgrade/0016.sql +4 -0
- hikyuu/data/mysql_upgrade/0017.sql +5 -0
- hikyuu/data/mysql_upgrade/0018.sql +2 -0
- hikyuu/data/mysql_upgrade/0019.sql +6 -0
- hikyuu/data/mysql_upgrade/0020.sql +4 -0
- hikyuu/data/mysql_upgrade/0021.sql +4 -0
- hikyuu/data/mysql_upgrade/0022.sql +5 -0
- hikyuu/data/mysql_upgrade/0023.sql +4 -0
- hikyuu/data/mysql_upgrade/0024.sql +2 -0
- hikyuu/data/mysql_upgrade/__init__.py +1 -0
- hikyuu/data/mysql_upgrade/createdb.sql +265 -0
- hikyuu/data/pytdx_finance_to_mysql.py +129 -0
- hikyuu/data/pytdx_finance_to_sqlite.py +162 -0
- hikyuu/data/pytdx_to_h5.py +662 -0
- hikyuu/data/pytdx_to_mysql.py +803 -0
- hikyuu/data/pytdx_weight_to_mysql.py +196 -0
- hikyuu/data/pytdx_weight_to_sqlite.py +192 -0
- hikyuu/data/sqlite_mem.py +84 -0
- hikyuu/data/sqlite_mem_sql/__init__.py +1 -0
- hikyuu/data/sqlite_mem_sql/createdb.sql +126 -0
- hikyuu/data/sqlite_upgrade/0001.sql +4 -0
- hikyuu/data/sqlite_upgrade/0002.sql +48 -0
- hikyuu/data/sqlite_upgrade/0003.sql +18 -0
- hikyuu/data/sqlite_upgrade/0004.sql +11 -0
- hikyuu/data/sqlite_upgrade/0005.sql +28 -0
- hikyuu/data/sqlite_upgrade/0006.sql +5 -0
- hikyuu/data/sqlite_upgrade/0007.sql +4 -0
- hikyuu/data/sqlite_upgrade/0008.sql +22 -0
- hikyuu/data/sqlite_upgrade/0009.sql +8 -0
- hikyuu/data/sqlite_upgrade/0010.sql +5 -0
- hikyuu/data/sqlite_upgrade/0011.sql +16 -0
- hikyuu/data/sqlite_upgrade/0012.sql +15 -0
- hikyuu/data/sqlite_upgrade/0013.sql +9 -0
- hikyuu/data/sqlite_upgrade/0014.sql +607 -0
- hikyuu/data/sqlite_upgrade/0015.sql +7 -0
- hikyuu/data/sqlite_upgrade/0016.sql +8 -0
- hikyuu/data/sqlite_upgrade/0017.sql +16 -0
- hikyuu/data/sqlite_upgrade/0018.sql +5 -0
- hikyuu/data/sqlite_upgrade/0019.sql +4 -0
- hikyuu/data/sqlite_upgrade/0020.sql +4 -0
- hikyuu/data/sqlite_upgrade/0021.sql +6 -0
- hikyuu/data/sqlite_upgrade/0022.sql +6 -0
- hikyuu/data/sqlite_upgrade/0023.sql +7 -0
- hikyuu/data/sqlite_upgrade/0024.sql +22 -0
- hikyuu/data/sqlite_upgrade/__init__.py +1 -0
- hikyuu/data/sqlite_upgrade/createdb.sql +61 -0
- hikyuu/data/tdx_to_h5.py +464 -0
- hikyuu/data/tdx_to_mysql.py +464 -0
- hikyuu/data/weight_to_mysql.py +72 -0
- hikyuu/data/weight_to_sqlite.py +70 -0
- hikyuu/data/zh_bond10_to_mysql.py +30 -0
- hikyuu/data/zh_bond10_to_sqlite.py +42 -0
- hikyuu/data_driver/__init__.py +49 -0
- hikyuu/data_driver/jqdata_data_driver.py +277 -0
- hikyuu/data_driver/pytdx_data_driver.py +292 -0
- hikyuu/deprecated.py +651 -0
- hikyuu/draw/__init__.py +59 -0
- hikyuu/draw/drawplot/__init__.py +291 -0
- hikyuu/draw/drawplot/bokeh_draw.py +583 -0
- hikyuu/draw/drawplot/common.py +89 -0
- hikyuu/draw/drawplot/echarts_draw.py +402 -0
- hikyuu/draw/drawplot/matplotlib_draw.py +837 -0
- hikyuu/draw/elder.py +135 -0
- hikyuu/draw/kaufman.py +192 -0
- hikyuu/draw/volume.py +122 -0
- hikyuu/examples/Turtle_SG.py +47 -0
- hikyuu/examples/__init__.py +1 -0
- hikyuu/examples/examples_init.py +33 -0
- hikyuu/examples/notebook/000-Index.ipynb +76 -0
- hikyuu/examples/notebook/001-overview.ipynb +345 -0
- hikyuu/examples/notebook/002-HowToGetStock.ipynb +265 -0
- hikyuu/examples/notebook/003-HowToGetKDataAndDraw.ipynb +375 -0
- hikyuu/examples/notebook/004-IndicatorOverview.ipynb +501 -0
- hikyuu/examples/notebook/005-Drawplot.ipynb +321 -0
- hikyuu/examples/notebook/006-TradeManager.ipynb +381 -0
- hikyuu/examples/notebook/007-SystemDetails.ipynb +380 -0
- hikyuu/examples/notebook/008-Pickle.ipynb +127 -0
- hikyuu/examples/notebook/009-RealData.ipynb +110 -0
- hikyuu/examples/notebook/010-Portfolio.ipynb +333 -0
- hikyuu/examples/notebook/011-PyechartsDrawplot.ipynb +21821 -0
- hikyuu/examples/notebook/Demo/Demo1.ipynb +623 -0
- hikyuu/examples/notebook/Demo/Demo2.ipynb +665 -0
- hikyuu/examples/notebook/Demo/__init__.py +1 -0
- hikyuu/examples/notebook/README.md +1 -0
- hikyuu/examples/notebook/__init__.py +1 -0
- hikyuu/examples/notebook/images/002_01_block_config.png +0 -0
- hikyuu/examples/notebook/images/008_01_tocsv.png +0 -0
- hikyuu/examples/notebook/images/008_02_tocsv_look.png +0 -0
- hikyuu/examples/notebook/images/008_03_pickle.png +0 -0
- hikyuu/examples/notebook/images/__init__.py +1 -0
- hikyuu/examples/quick_crtsg.py +40 -0
- hikyuu/extend.py +387 -0
- hikyuu/fetcher/__init__.py +8 -0
- hikyuu/fetcher/proxy/__init__.py +12 -0
- hikyuu/fetcher/proxy/proxy.py +39 -0
- hikyuu/fetcher/proxy/zhima.py +63 -0
- hikyuu/fetcher/stock/__init__.py +8 -0
- hikyuu/fetcher/stock/zh_block_em.py +140 -0
- hikyuu/fetcher/stock/zh_stock_a_huatai.py +51 -0
- hikyuu/fetcher/stock/zh_stock_a_pytdx.py +139 -0
- hikyuu/fetcher/stock/zh_stock_a_qmt.py +58 -0
- hikyuu/fetcher/stock/zh_stock_a_sina_qq.py +229 -0
- hikyuu/flat/Spot.py +440 -0
- hikyuu/flat/SpotList.py +74 -0
- hikyuu/flat/__init__.py +4 -0
- hikyuu/gui/HikyuuTDX.py +840 -0
- hikyuu/gui/__init__.py +1 -0
- hikyuu/gui/data/CollectSpotThread.py +43 -0
- hikyuu/gui/data/CollectToMemThread.py +123 -0
- hikyuu/gui/data/CollectToMySQLThread.py +178 -0
- hikyuu/gui/data/EscapetimeThread.py +32 -0
- hikyuu/gui/data/ImportBlockInfoTask.py +55 -0
- hikyuu/gui/data/ImportHistoryFinanceTask.py +141 -0
- hikyuu/gui/data/ImportPytdxTimeToH5Task.py +94 -0
- hikyuu/gui/data/ImportPytdxToH5Task.py +98 -0
- hikyuu/gui/data/ImportPytdxTransToH5Task.py +94 -0
- hikyuu/gui/data/ImportTdxToH5Task.py +111 -0
- hikyuu/gui/data/ImportWeightToSqliteTask.py +114 -0
- hikyuu/gui/data/ImportZhBond10Task.py +48 -0
- hikyuu/gui/data/MainWindow.py +824 -0
- hikyuu/gui/data/SchedImportThread.py +62 -0
- hikyuu/gui/data/UsePytdxImportToH5Thread.py +371 -0
- hikyuu/gui/data/UseTdxImportToH5Thread.py +182 -0
- hikyuu/gui/data/__init__.py +1 -0
- hikyuu/gui/data/tool.py +43 -0
- hikyuu/gui/hikyuu.ico +0 -0
- hikyuu/gui/importdata.py +166 -0
- hikyuu/gui/spot_server.py +336 -0
- hikyuu/gui/start_huatai_insight.py +510 -0
- hikyuu/gui/start_qmt.py +122 -0
- hikyuu/hub.py +634 -0
- hikyuu/include/__init__.py +1 -0
- hikyuu/include/hikyuu/Block.h +173 -0
- hikyuu/include/hikyuu/DataType.h +173 -0
- hikyuu/include/hikyuu/GlobalInitializer.h +46 -0
- hikyuu/include/hikyuu/HistoryFinanceInfo.h +35 -0
- hikyuu/include/hikyuu/KData.h +271 -0
- hikyuu/include/hikyuu/KDataImp.h +94 -0
- hikyuu/include/hikyuu/KQuery.h +275 -0
- hikyuu/include/hikyuu/KRecord.h +94 -0
- hikyuu/include/hikyuu/MarketInfo.h +132 -0
- hikyuu/include/hikyuu/Stock.h +351 -0
- hikyuu/include/hikyuu/StockManager.h +371 -0
- hikyuu/include/hikyuu/StockMapIterator.h +72 -0
- hikyuu/include/hikyuu/StockTypeInfo.h +127 -0
- hikyuu/include/hikyuu/StockWeight.h +148 -0
- hikyuu/include/hikyuu/StrategyContext.h +107 -0
- hikyuu/include/hikyuu/TimeLineRecord.h +71 -0
- hikyuu/include/hikyuu/TransRecord.h +79 -0
- hikyuu/include/hikyuu/ZhBond10.h +36 -0
- hikyuu/include/hikyuu/__init__.py +1 -0
- hikyuu/include/hikyuu/analysis/__init__.py +1 -0
- hikyuu/include/hikyuu/analysis/analysis_sys.h +76 -0
- hikyuu/include/hikyuu/analysis/combinate.h +115 -0
- hikyuu/include/hikyuu/config.h +48 -0
- hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +201 -0
- hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +108 -0
- hikyuu/include/hikyuu/data_driver/DataDriverFactory.h +58 -0
- hikyuu/include/hikyuu/data_driver/DriverConnectPool.h +146 -0
- hikyuu/include/hikyuu/data_driver/HistoryFinanceReader.h +36 -0
- hikyuu/include/hikyuu/data_driver/KDataDriver.h +194 -0
- hikyuu/include/hikyuu/data_driver/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/base_info/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +54 -0
- hikyuu/include/hikyuu/data_driver/base_info/mysql/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +50 -0
- hikyuu/include/hikyuu/data_driver/base_info/sqlite/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceFieldTable.h +19 -0
- hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceTable.h +23 -0
- hikyuu/include/hikyuu/data_driver/base_info/table/HolidayTable.h +29 -0
- hikyuu/include/hikyuu/data_driver/base_info/table/MarketInfoTable.h +127 -0
- hikyuu/include/hikyuu/data_driver/base_info/table/StockTable.h +64 -0
- hikyuu/include/hikyuu/data_driver/base_info/table/StockTypeInfoTable.h +108 -0
- hikyuu/include/hikyuu/data_driver/base_info/table/StockWeightTable.h +52 -0
- hikyuu/include/hikyuu/data_driver/base_info/table/ZhBond10Table.h +20 -0
- hikyuu/include/hikyuu/data_driver/base_info/table/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/block_info/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +36 -0
- hikyuu/include/hikyuu/data_driver/block_info/mysql/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +31 -0
- hikyuu/include/hikyuu/data_driver/block_info/qianlong/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +36 -0
- hikyuu/include/hikyuu/data_driver/block_info/sqlite/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +33 -0
- hikyuu/include/hikyuu/data_driver/kdata/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +106 -0
- hikyuu/include/hikyuu/data_driver/kdata/cvs/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +89 -0
- hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5Record.h +50 -0
- hikyuu/include/hikyuu/data_driver/kdata/hdf5/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/kdata/mysql/KRecordTable.h +124 -0
- hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +78 -0
- hikyuu/include/hikyuu/data_driver/kdata/mysql/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +62 -0
- hikyuu/include/hikyuu/data_driver/kdata/sqlite/__init__.py +1 -0
- hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +63 -0
- hikyuu/include/hikyuu/data_driver/kdata/tdx/__init__.py +1 -0
- hikyuu/include/hikyuu/debug.h +32 -0
- hikyuu/include/hikyuu/doc.h +166 -0
- hikyuu/include/hikyuu/global/GlobalSpotAgent.h +33 -0
- hikyuu/include/hikyuu/global/SpotRecord.h +52 -0
- hikyuu/include/hikyuu/global/__init__.py +1 -0
- hikyuu/include/hikyuu/global/agent/SpotAgent.h +143 -0
- hikyuu/include/hikyuu/global/agent/__init__.py +1 -0
- hikyuu/include/hikyuu/global/agent/hikyuu/__init__.py +1 -0
- hikyuu/include/hikyuu/global/agent/hikyuu/flat/__init__.py +1 -0
- hikyuu/include/hikyuu/global/agent/spot_generated.h +527 -0
- hikyuu/include/hikyuu/global/schedule/__init__.py +1 -0
- hikyuu/include/hikyuu/global/schedule/inner_tasks.h +16 -0
- hikyuu/include/hikyuu/global/schedule/scheduler.h +24 -0
- hikyuu/include/hikyuu/global/sysinfo.h +67 -0
- hikyuu/include/hikyuu/hikyuu.h +55 -0
- hikyuu/include/hikyuu/indicator/IndParam.h +39 -0
- hikyuu/include/hikyuu/indicator/Indicator.h +403 -0
- hikyuu/include/hikyuu/indicator/IndicatorImp.h +413 -0
- hikyuu/include/hikyuu/indicator/__init__.py +1 -0
- hikyuu/include/hikyuu/indicator/build_in.h +114 -0
- hikyuu/include/hikyuu/indicator/crt/ABS.h +34 -0
- hikyuu/include/hikyuu/indicator/crt/ACOS.h +36 -0
- hikyuu/include/hikyuu/indicator/crt/AD.h +28 -0
- hikyuu/include/hikyuu/indicator/crt/ADVANCE.h +32 -0
- hikyuu/include/hikyuu/indicator/crt/ALIGN.h +42 -0
- hikyuu/include/hikyuu/indicator/crt/AMA.h +113 -0
- hikyuu/include/hikyuu/indicator/crt/ASIN.h +36 -0
- hikyuu/include/hikyuu/indicator/crt/ATAN.h +36 -0
- hikyuu/include/hikyuu/indicator/crt/ATR.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/AVEDEV.h +45 -0
- hikyuu/include/hikyuu/indicator/crt/BACKSET.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/BARSCOUNT.h +37 -0
- hikyuu/include/hikyuu/indicator/crt/BARSLAST.h +41 -0
- hikyuu/include/hikyuu/indicator/crt/BARSSINCE.h +41 -0
- hikyuu/include/hikyuu/indicator/crt/BETWEEN.h +85 -0
- hikyuu/include/hikyuu/indicator/crt/BLOCKSETNUM.h +23 -0
- hikyuu/include/hikyuu/indicator/crt/CEILING.h +38 -0
- hikyuu/include/hikyuu/indicator/crt/CORR.h +24 -0
- hikyuu/include/hikyuu/indicator/crt/COS.h +36 -0
- hikyuu/include/hikyuu/indicator/crt/COST.h +34 -0
- hikyuu/include/hikyuu/indicator/crt/COUNT.h +54 -0
- hikyuu/include/hikyuu/indicator/crt/CROSS.h +48 -0
- hikyuu/include/hikyuu/indicator/crt/CVAL.h +35 -0
- hikyuu/include/hikyuu/indicator/crt/DECLINE.h +32 -0
- hikyuu/include/hikyuu/indicator/crt/DEVSQ.h +40 -0
- hikyuu/include/hikyuu/indicator/crt/DIFF.h +31 -0
- hikyuu/include/hikyuu/indicator/crt/DMA.h +34 -0
- hikyuu/include/hikyuu/indicator/crt/DOWNNDAY.h +43 -0
- hikyuu/include/hikyuu/indicator/crt/DROPNA.h +31 -0
- hikyuu/include/hikyuu/indicator/crt/EMA.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/EVERY.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/EXIST.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/EXP.h +34 -0
- hikyuu/include/hikyuu/indicator/crt/FILTER.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/FINANCE.h +20 -0
- hikyuu/include/hikyuu/indicator/crt/FLOOR.h +38 -0
- hikyuu/include/hikyuu/indicator/crt/HHV.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/HHVBARS.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/HSL.h +39 -0
- hikyuu/include/hikyuu/indicator/crt/IC.h +41 -0
- hikyuu/include/hikyuu/indicator/crt/ICIR.h +51 -0
- hikyuu/include/hikyuu/indicator/crt/INSUM.h +33 -0
- hikyuu/include/hikyuu/indicator/crt/INTPART.h +38 -0
- hikyuu/include/hikyuu/indicator/crt/IR.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/KDATA.h +72 -0
- hikyuu/include/hikyuu/indicator/crt/LAST.h +100 -0
- hikyuu/include/hikyuu/indicator/crt/LIUTONGPAN.h +23 -0
- hikyuu/include/hikyuu/indicator/crt/LLV.h +46 -0
- hikyuu/include/hikyuu/indicator/crt/LLVBARS.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/LN.h +36 -0
- hikyuu/include/hikyuu/indicator/crt/LOG.h +35 -0
- hikyuu/include/hikyuu/indicator/crt/LONGCROSS.h +68 -0
- hikyuu/include/hikyuu/indicator/crt/MA.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/MACD.h +62 -0
- hikyuu/include/hikyuu/indicator/crt/MAX.h +45 -0
- hikyuu/include/hikyuu/indicator/crt/MDD.h +29 -0
- hikyuu/include/hikyuu/indicator/crt/MIN.h +45 -0
- hikyuu/include/hikyuu/indicator/crt/MOD.h +49 -0
- hikyuu/include/hikyuu/indicator/crt/MRR.h +29 -0
- hikyuu/include/hikyuu/indicator/crt/NDAY.h +43 -0
- hikyuu/include/hikyuu/indicator/crt/NOT.h +35 -0
- hikyuu/include/hikyuu/indicator/crt/POS.h +21 -0
- hikyuu/include/hikyuu/indicator/crt/POW.h +48 -0
- hikyuu/include/hikyuu/indicator/crt/PRICELIST.h +59 -0
- hikyuu/include/hikyuu/indicator/crt/RECOVER.h +45 -0
- hikyuu/include/hikyuu/indicator/crt/REF.h +48 -0
- hikyuu/include/hikyuu/indicator/crt/RESULT.h +20 -0
- hikyuu/include/hikyuu/indicator/crt/REVERSE.h +36 -0
- hikyuu/include/hikyuu/indicator/crt/ROC.h +39 -0
- hikyuu/include/hikyuu/indicator/crt/ROCP.h +39 -0
- hikyuu/include/hikyuu/indicator/crt/ROCR.h +39 -0
- hikyuu/include/hikyuu/indicator/crt/ROCR100.h +39 -0
- hikyuu/include/hikyuu/indicator/crt/ROUND.h +36 -0
- hikyuu/include/hikyuu/indicator/crt/ROUNDDOWN.h +36 -0
- hikyuu/include/hikyuu/indicator/crt/ROUNDUP.h +36 -0
- hikyuu/include/hikyuu/indicator/crt/RSI.h +43 -0
- hikyuu/include/hikyuu/indicator/crt/SAFTYLOSS.h +79 -0
- hikyuu/include/hikyuu/indicator/crt/SGN.h +34 -0
- hikyuu/include/hikyuu/indicator/crt/SIN.h +36 -0
- hikyuu/include/hikyuu/indicator/crt/SLICE.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/SLOPE.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/SMA.h +72 -0
- hikyuu/include/hikyuu/indicator/crt/SPEARMAN.h +23 -0
- hikyuu/include/hikyuu/indicator/crt/SQRT.h +41 -0
- hikyuu/include/hikyuu/indicator/crt/STDEV.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/STDP.h +38 -0
- hikyuu/include/hikyuu/indicator/crt/SUM.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/SUMBARS.h +44 -0
- hikyuu/include/hikyuu/indicator/crt/TAN.h +36 -0
- hikyuu/include/hikyuu/indicator/crt/TIME.h +69 -0
- hikyuu/include/hikyuu/indicator/crt/TIMELINE.h +23 -0
- hikyuu/include/hikyuu/indicator/crt/TIMELINEVOL.h +21 -0
- hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +21 -0
- hikyuu/include/hikyuu/indicator/crt/UPNDAY.h +43 -0
- hikyuu/include/hikyuu/indicator/crt/VAR.h +40 -0
- hikyuu/include/hikyuu/indicator/crt/VARP.h +40 -0
- hikyuu/include/hikyuu/indicator/crt/VIGOR.h +34 -0
- hikyuu/include/hikyuu/indicator/crt/ZHBOND10.h +27 -0
- hikyuu/include/hikyuu/indicator/crt/ZONGGUBEN.h +17 -0
- hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +30 -0
- hikyuu/include/hikyuu/indicator/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/indicator/imp/IAbs.h +26 -0
- hikyuu/include/hikyuu/indicator/imp/IAcos.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IAd.h +30 -0
- hikyuu/include/hikyuu/indicator/imp/IAdvance.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IAlign.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IAma.h +38 -0
- hikyuu/include/hikyuu/indicator/imp/IAsin.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IAtan.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IAtr.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IBackset.h +33 -0
- hikyuu/include/hikyuu/indicator/imp/IBarsCount.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IBarsLast.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IBarsSince.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IBlockSetNum.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/ICeil.h +31 -0
- hikyuu/include/hikyuu/indicator/imp/ICorr.h +42 -0
- hikyuu/include/hikyuu/indicator/imp/ICos.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/ICount.h +32 -0
- hikyuu/include/hikyuu/indicator/imp/ICval.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IDecline.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IDevsq.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IDiff.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IDma.h +47 -0
- hikyuu/include/hikyuu/indicator/imp/IDropna.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IEma.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IEvery.h +32 -0
- hikyuu/include/hikyuu/indicator/imp/IExist.h +32 -0
- hikyuu/include/hikyuu/indicator/imp/IExp.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IFilter.h +34 -0
- hikyuu/include/hikyuu/indicator/imp/IFinance.h +25 -0
- hikyuu/include/hikyuu/indicator/imp/IFloor.h +31 -0
- hikyuu/include/hikyuu/indicator/imp/IHhvbars.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IHighLine.h +34 -0
- hikyuu/include/hikyuu/indicator/imp/IIc.h +45 -0
- hikyuu/include/hikyuu/indicator/imp/IInSum.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IIntpart.h +31 -0
- hikyuu/include/hikyuu/indicator/imp/IKData.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/ILiuTongPan.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/ILn.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/ILog.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/ILowLine.h +30 -0
- hikyuu/include/hikyuu/indicator/imp/ILowLineBars.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IMa.h +27 -0
- hikyuu/include/hikyuu/indicator/imp/IMacd.h +41 -0
- hikyuu/include/hikyuu/indicator/imp/IMdd.h +23 -0
- hikyuu/include/hikyuu/indicator/imp/IMrr.h +23 -0
- hikyuu/include/hikyuu/indicator/imp/INot.h +26 -0
- hikyuu/include/hikyuu/indicator/imp/IPow.h +32 -0
- hikyuu/include/hikyuu/indicator/imp/IPriceList.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IRecover.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IRef.h +34 -0
- hikyuu/include/hikyuu/indicator/imp/IResult.h +26 -0
- hikyuu/include/hikyuu/indicator/imp/IReverse.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/IRoc.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IRocp.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IRocr.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IRocr100.h +29 -0
- hikyuu/include/hikyuu/indicator/imp/IRound.h +32 -0
- hikyuu/include/hikyuu/indicator/imp/IRoundDown.h +32 -0
- hikyuu/include/hikyuu/indicator/imp/IRoundUp.h +32 -0
- hikyuu/include/hikyuu/indicator/imp/ISaftyLoss.h +44 -0
- hikyuu/include/hikyuu/indicator/imp/ISign.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/ISin.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/ISlice.h +25 -0
- hikyuu/include/hikyuu/indicator/imp/ISlope.h +25 -0
- hikyuu/include/hikyuu/indicator/imp/ISma.h +34 -0
- hikyuu/include/hikyuu/indicator/imp/ISpearman.h +42 -0
- hikyuu/include/hikyuu/indicator/imp/ISqrt.h +31 -0
- hikyuu/include/hikyuu/indicator/imp/IStdev.h +31 -0
- hikyuu/include/hikyuu/indicator/imp/IStdp.h +33 -0
- hikyuu/include/hikyuu/indicator/imp/ISum.h +27 -0
- hikyuu/include/hikyuu/indicator/imp/ISumBars.h +30 -0
- hikyuu/include/hikyuu/indicator/imp/ITan.h +28 -0
- hikyuu/include/hikyuu/indicator/imp/ITime.h +33 -0
- hikyuu/include/hikyuu/indicator/imp/ITimeLine.h +32 -0
- hikyuu/include/hikyuu/indicator/imp/IVar.h +32 -0
- hikyuu/include/hikyuu/indicator/imp/IVarp.h +32 -0
- hikyuu/include/hikyuu/indicator/imp/IVigor.h +35 -0
- hikyuu/include/hikyuu/indicator/imp/IZScore.h +25 -0
- hikyuu/include/hikyuu/indicator/imp/IZhBond10.h +30 -0
- hikyuu/include/hikyuu/indicator/imp/IZongGuBen.h +25 -0
- hikyuu/include/hikyuu/indicator/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/python/__init__.py +1 -0
- hikyuu/include/hikyuu/python/pickle_support.h +90 -0
- hikyuu/include/hikyuu/python/pybind_utils.h +103 -0
- hikyuu/include/hikyuu/serialization/Block_serialization.h +55 -0
- hikyuu/include/hikyuu/serialization/Datetime_serialization.h +40 -0
- hikyuu/include/hikyuu/serialization/KData_serialization.h +45 -0
- hikyuu/include/hikyuu/serialization/KQuery_serialization.h +79 -0
- hikyuu/include/hikyuu/serialization/KRecord_serialization.h +50 -0
- hikyuu/include/hikyuu/serialization/MarketInfo_serialization.h +68 -0
- hikyuu/include/hikyuu/serialization/PriceList_serialization.h +66 -0
- hikyuu/include/hikyuu/serialization/StockTypeInfo_serialization.h +62 -0
- hikyuu/include/hikyuu/serialization/StockWeight_serialization.h +65 -0
- hikyuu/include/hikyuu/serialization/Stock_serialization.h +47 -0
- hikyuu/include/hikyuu/serialization/TimeDelta_serialization.h +44 -0
- hikyuu/include/hikyuu/serialization/TimeLineRecord_serialization.h +42 -0
- hikyuu/include/hikyuu/serialization/TransRecord_serialization.h +44 -0
- hikyuu/include/hikyuu/serialization/__init__.py +1 -0
- hikyuu/include/hikyuu/serialization/all.h +26 -0
- hikyuu/include/hikyuu/strategy/BrokerTradeManager.h +433 -0
- hikyuu/include/hikyuu/strategy/RunPortfolioInStrategy.h +37 -0
- hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +38 -0
- hikyuu/include/hikyuu/strategy/Strategy.h +191 -0
- hikyuu/include/hikyuu/strategy/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_manage/BorrowRecord.h +91 -0
- hikyuu/include/hikyuu/trade_manage/CostRecord.h +67 -0
- hikyuu/include/hikyuu/trade_manage/FundsRecord.h +110 -0
- hikyuu/include/hikyuu/trade_manage/LoanRecord.h +64 -0
- hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h +207 -0
- hikyuu/include/hikyuu/trade_manage/Performance.h +80 -0
- hikyuu/include/hikyuu/trade_manage/PositionRecord.h +108 -0
- hikyuu/include/hikyuu/trade_manage/TradeCostBase.h +174 -0
- hikyuu/include/hikyuu/trade_manage/TradeManager.h +487 -0
- hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +778 -0
- hikyuu/include/hikyuu/trade_manage/TradeRecord.h +151 -0
- hikyuu/include/hikyuu/trade_manage/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_manage/build_in.h +19 -0
- hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA.h +45 -0
- hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2015.h +43 -0
- hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2017.h +44 -0
- hikyuu/include/hikyuu/trade_manage/crt/TC_TestStub.h +21 -0
- hikyuu/include/hikyuu/trade_manage/crt/TC_Zero.h +25 -0
- hikyuu/include/hikyuu/trade_manage/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_manage/crt/crtTM.h +33 -0
- hikyuu/include/hikyuu/trade_manage/imp/FixedA2015TradeCost.h +53 -0
- hikyuu/include/hikyuu/trade_manage/imp/FixedA2017TradeCost.h +56 -0
- hikyuu/include/hikyuu/trade_manage/imp/FixedATradeCost.h +88 -0
- hikyuu/include/hikyuu/trade_manage/imp/TradeCostStub.h +48 -0
- hikyuu/include/hikyuu/trade_manage/imp/ZeroTradeCost.h +50 -0
- hikyuu/include/hikyuu/trade_manage/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/all.h +24 -0
- hikyuu/include/hikyuu/trade_sys/allocatefunds/AllocateFundsBase.h +229 -0
- hikyuu/include/hikyuu/trade_sys/allocatefunds/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/allocatefunds/build_in.h +16 -0
- hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_EqualWeight.h +25 -0
- hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_FixedWeight.h +26 -0
- hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_MultiFactor.h +21 -0
- hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/EqualWeightAllocateFunds.h +27 -0
- hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/FixedWeightAllocateFunds.h +28 -0
- hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/MultiFactorAllocaterFunds.h +23 -0
- hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/condition/ConditionBase.h +241 -0
- hikyuu/include/hikyuu/trade_sys/condition/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/condition/build_in.h +17 -0
- hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Bool.h +22 -0
- hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Logic.h +35 -0
- hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Manual.h +20 -0
- hikyuu/include/hikyuu/trade_sys/condition/crt/CN_OPLine.h +26 -0
- hikyuu/include/hikyuu/trade_sys/condition/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/condition/imp/BoolCondition.h +40 -0
- hikyuu/include/hikyuu/trade_sys/condition/imp/ManualCondition.h +23 -0
- hikyuu/include/hikyuu/trade_sys/condition/imp/OPLineCondition.h +44 -0
- hikyuu/include/hikyuu/trade_sys/condition/imp/SubCondition.h +42 -0
- hikyuu/include/hikyuu/trade_sys/condition/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AddCondition.h +42 -0
- hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AndCondition.h +42 -0
- hikyuu/include/hikyuu/trade_sys/condition/imp/logic/DivCondition.h +42 -0
- hikyuu/include/hikyuu/trade_sys/condition/imp/logic/MultiCondition.h +42 -0
- hikyuu/include/hikyuu/trade_sys/condition/imp/logic/OrCondition.h +42 -0
- hikyuu/include/hikyuu/trade_sys/condition/imp/logic/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/environment/EnvironmentBase.h +178 -0
- hikyuu/include/hikyuu/trade_sys/environment/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/environment/build_in.h +16 -0
- hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Bool.h +23 -0
- hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Manual.h +20 -0
- hikyuu/include/hikyuu/trade_sys/environment/crt/EV_TwoLine.h +28 -0
- hikyuu/include/hikyuu/trade_sys/environment/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/environment/imp/BoolEnvironment.h +41 -0
- hikyuu/include/hikyuu/trade_sys/environment/imp/ManualEnvironment.h +23 -0
- hikyuu/include/hikyuu/trade_sys/environment/imp/TwoLineEnvironment.h +47 -0
- hikyuu/include/hikyuu/trade_sys/environment/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/MoneyManagerBase.h +230 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/build_in.h +20 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCapital.h +20 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCount.h +28 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedPercent.h +27 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedRisk.h +20 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedUnits.h +20 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_Nothing.h +24 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_WilliamsFixedRisk.h +20 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalMoneyManager.h +28 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCountMoneyManager.h +38 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedPercentMoneyManager.h +34 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedRiskMoneyManager.h +28 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedUnitsMoneyManager.h +28 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/imp/NotMoneyManager.h +30 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/imp/WilliamsFixedRiskMoneyManager.h +28 -0
- hikyuu/include/hikyuu/trade_sys/moneymanager/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +275 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/ScoreRecord.h +51 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +12 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_EqualWeight.h +29 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICIRWeight.h +30 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICWeight.h +30 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +25 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +27 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +27 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +256 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/build_in.h +14 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/crt/PF_Simple.h +23 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/profitgoal/ProfitGoalBase.h +189 -0
- hikyuu/include/hikyuu/trade_sys/profitgoal/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/profitgoal/build_in.h +16 -0
- hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedHoldDays.h +26 -0
- hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedPercent.h +25 -0
- hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_NoGoal.h +24 -0
- hikyuu/include/hikyuu/trade_sys/profitgoal/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedHoldDays.h +29 -0
- hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedPercentProfitGoal.h +28 -0
- hikyuu/include/hikyuu/trade_sys/profitgoal/imp/NoGoalProfitGoal.h +27 -0
- hikyuu/include/hikyuu/trade_sys/profitgoal/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +245 -0
- hikyuu/include/hikyuu/trade_sys/selector/SystemWeight.h +70 -0
- hikyuu/include/hikyuu/trade_sys/selector/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/selector/build_in.h +18 -0
- hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Fixed.h +38 -0
- hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Logic.h +43 -0
- hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor.h +40 -0
- hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Optimal.h +26 -0
- hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Signal.h +30 -0
- hikyuu/include/hikyuu/trade_sys/selector/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/FixedSelector.h +28 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +52 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/SignalSelector.h +30 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddSelector.h +19 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddValueSelector.h +19 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivSelector.h +19 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivValueSelector.h +19 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertDivValueSelector.h +19 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertSubValueSelector.h +19 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulSelector.h +19 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulValueSelector.h +19 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +108 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubSelector.h +19 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubValueSelector.h +19 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +94 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/MaxFundsOptimalSelector.h +27 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/OptimalSelectorBase.h +86 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/PerformanceOptimalSelector.h +42 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/signal/SignalBase.h +249 -0
- hikyuu/include/hikyuu/trade_sys/signal/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/signal/build_in.h +22 -0
- hikyuu/include/hikyuu/trade_sys/signal/crt/SG_AllwaysBuy.h +20 -0
- hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Band.h +37 -0
- hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Bool.h +28 -0
- hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cross.h +28 -0
- hikyuu/include/hikyuu/trade_sys/signal/crt/SG_CrossGold.h +29 -0
- hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cycle.h +20 -0
- hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Flex.h +29 -0
- hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Manual.h +20 -0
- hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Single.h +56 -0
- hikyuu/include/hikyuu/trade_sys/signal/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/signal/imp/AllwaysBuySignal.h +25 -0
- hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal.h +46 -0
- hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +47 -0
- hikyuu/include/hikyuu/trade_sys/signal/imp/BoolSignal.h +46 -0
- hikyuu/include/hikyuu/trade_sys/signal/imp/CrossGoldSignal.h +46 -0
- hikyuu/include/hikyuu/trade_sys/signal/imp/CrossSignal.h +46 -0
- hikyuu/include/hikyuu/trade_sys/signal/imp/CycleSignal.h +25 -0
- hikyuu/include/hikyuu/trade_sys/signal/imp/ManualSignal.h +23 -0
- hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal.h +45 -0
- hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal2.h +45 -0
- hikyuu/include/hikyuu/trade_sys/signal/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/slippage/SlippageBase.h +170 -0
- hikyuu/include/hikyuu/trade_sys/slippage/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/slippage/build_in.h +15 -0
- hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedPercent.h +26 -0
- hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedValue.h +26 -0
- hikyuu/include/hikyuu/trade_sys/slippage/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedPercentSlippage.h +28 -0
- hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedValueSlippage.h +28 -0
- hikyuu/include/hikyuu/trade_sys/slippage/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/stoploss/StoplossBase.h +199 -0
- hikyuu/include/hikyuu/trade_sys/stoploss/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/stoploss/build_in.h +16 -0
- hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_FixedPercent.h +25 -0
- hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Indicator.h +21 -0
- hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Saftyloss.h +37 -0
- hikyuu/include/hikyuu/trade_sys/stoploss/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/stoploss/imp/FixedPercentStoploss.h +30 -0
- hikyuu/include/hikyuu/trade_sys/stoploss/imp/IndicatorStoploss.h +50 -0
- hikyuu/include/hikyuu/trade_sys/stoploss/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/system/System.h +639 -0
- hikyuu/include/hikyuu/trade_sys/system/SystemPart.h +54 -0
- hikyuu/include/hikyuu/trade_sys/system/TradeRequest.h +94 -0
- hikyuu/include/hikyuu/trade_sys/system/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/system/build_in.h +15 -0
- hikyuu/include/hikyuu/trade_sys/system/crt/SYS_Simple.h +50 -0
- hikyuu/include/hikyuu/trade_sys/system/crt/SYS_WalkForward.h +21 -0
- hikyuu/include/hikyuu/trade_sys/system/crt/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/system/imp/DelegateSystem.h +51 -0
- hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardSystem.h +70 -0
- hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardTradeManager.h +465 -0
- hikyuu/include/hikyuu/trade_sys/system/imp/__init__.py +1 -0
- hikyuu/include/hikyuu/utilities/ConnectPool.h +163 -0
- hikyuu/include/hikyuu/utilities/FilterNode.h +267 -0
- hikyuu/include/hikyuu/utilities/LRUCache11.h +230 -0
- hikyuu/include/hikyuu/utilities/Log.h +411 -0
- hikyuu/include/hikyuu/utilities/Null.h +143 -0
- hikyuu/include/hikyuu/utilities/Parameter.h +511 -0
- hikyuu/include/hikyuu/utilities/ResourcePool.h +636 -0
- hikyuu/include/hikyuu/utilities/SpendTimer.h +305 -0
- hikyuu/include/hikyuu/utilities/TimerManager.h +552 -0
- hikyuu/include/hikyuu/utilities/__init__.py +1 -0
- hikyuu/include/hikyuu/utilities/any_to_string.h +142 -0
- hikyuu/include/hikyuu/utilities/arithmetic.h +401 -0
- hikyuu/include/hikyuu/utilities/base64.h +52 -0
- hikyuu/include/hikyuu/utilities/config.h +41 -0
- hikyuu/include/hikyuu/utilities/cppdef.h +25 -0
- hikyuu/include/hikyuu/utilities/datetime/Datetime.h +438 -0
- hikyuu/include/hikyuu/utilities/datetime/TimeDelta.h +343 -0
- hikyuu/include/hikyuu/utilities/datetime/__init__.py +1 -0
- hikyuu/include/hikyuu/utilities/db_connect/AutoTransAction.h +124 -0
- hikyuu/include/hikyuu/utilities/db_connect/DBCondition.h +248 -0
- hikyuu/include/hikyuu/utilities/db_connect/DBConnect.h +30 -0
- hikyuu/include/hikyuu/utilities/db_connect/DBConnectBase.h +658 -0
- hikyuu/include/hikyuu/utilities/db_connect/DBUpgrade.h +28 -0
- hikyuu/include/hikyuu/utilities/db_connect/SQLException.h +62 -0
- hikyuu/include/hikyuu/utilities/db_connect/SQLResultSet.h +248 -0
- hikyuu/include/hikyuu/utilities/db_connect/SQLStatementBase.h +305 -0
- hikyuu/include/hikyuu/utilities/db_connect/TableMacro.h +2579 -0
- hikyuu/include/hikyuu/utilities/db_connect/__init__.py +1 -0
- hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +56 -0
- hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +88 -0
- hikyuu/include/hikyuu/utilities/db_connect/mysql/__init__.py +1 -0
- hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +89 -0
- hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +71 -0
- hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteUtil.h +80 -0
- hikyuu/include/hikyuu/utilities/db_connect/sqlite/__init__.py +1 -0
- hikyuu/include/hikyuu/utilities/exception.h +52 -0
- hikyuu/include/hikyuu/utilities/http_client/HttpClient.h +229 -0
- hikyuu/include/hikyuu/utilities/http_client/__init__.py +1 -0
- hikyuu/include/hikyuu/utilities/http_client/nng_wrap.h +517 -0
- hikyuu/include/hikyuu/utilities/http_client/url.h +25 -0
- hikyuu/include/hikyuu/utilities/ini_parser/IniParser.h +104 -0
- hikyuu/include/hikyuu/utilities/ini_parser/__init__.py +1 -0
- hikyuu/include/hikyuu/utilities/md5.h +41 -0
- hikyuu/include/hikyuu/utilities/mo/__init__.py +1 -0
- hikyuu/include/hikyuu/utilities/mo/mo.h +48 -0
- hikyuu/include/hikyuu/utilities/mo/moFileReader.h +836 -0
- hikyuu/include/hikyuu/utilities/node/NodeClient.h +175 -0
- hikyuu/include/hikyuu/utilities/node/NodeError.h +66 -0
- hikyuu/include/hikyuu/utilities/node/NodeMessage.h +80 -0
- hikyuu/include/hikyuu/utilities/node/NodeServer.h +246 -0
- hikyuu/include/hikyuu/utilities/node/__init__.py +1 -0
- hikyuu/include/hikyuu/utilities/os.h +102 -0
- hikyuu/include/hikyuu/utilities/osdef.h +159 -0
- hikyuu/include/hikyuu/utilities/runtimeinfo.h +35 -0
- hikyuu/include/hikyuu/utilities/snowflake.h +110 -0
- hikyuu/include/hikyuu/utilities/string_view.h +70 -0
- hikyuu/include/hikyuu/utilities/thread/FuncWrapper.h +85 -0
- hikyuu/include/hikyuu/utilities/thread/InterruptFlag.h +30 -0
- hikyuu/include/hikyuu/utilities/thread/MQStealQueue.h +112 -0
- hikyuu/include/hikyuu/utilities/thread/MQStealThreadPool.h +315 -0
- hikyuu/include/hikyuu/utilities/thread/MQThreadPool.h +275 -0
- hikyuu/include/hikyuu/utilities/thread/StealThreadPool.h +309 -0
- hikyuu/include/hikyuu/utilities/thread/ThreadPool.h +231 -0
- hikyuu/include/hikyuu/utilities/thread/ThreadSafeQueue.h +101 -0
- hikyuu/include/hikyuu/utilities/thread/WorkStealQueue.h +105 -0
- hikyuu/include/hikyuu/utilities/thread/__init__.py +1 -0
- hikyuu/include/hikyuu/utilities/thread/algorithm.h +110 -0
- hikyuu/include/hikyuu/utilities/thread/thread.h +10 -0
- hikyuu/include/hikyuu/version.h +24 -0
- hikyuu/indicator/__init__.py +29 -0
- hikyuu/indicator/indicator.py +157 -0
- hikyuu/indicator/pyind.py +47 -0
- hikyuu/indicator/talib_wrap.py +1264 -0
- hikyuu/interactive.py +331 -0
- hikyuu/setup.py +104 -0
- hikyuu/shell/__init__.py +0 -0
- hikyuu/shell/cmdserver.py +126 -0
- hikyuu/shell/hkucmd.py +110 -0
- hikyuu/shell/hkushell.py +20 -0
- hikyuu/strategy/__init__.py +2 -0
- hikyuu/strategy/strategy_demo1.py +54 -0
- hikyuu/strategy/strategy_demo2.py +47 -0
- hikyuu/strategy/strategy_demo3.py +24 -0
- hikyuu/test/AllocateFunds.py +25 -0
- hikyuu/test/Condition.py +95 -0
- hikyuu/test/Datetime.py +61 -0
- hikyuu/test/Environment.py +88 -0
- hikyuu/test/Indicator.py +233 -0
- hikyuu/test/KData.py +64 -0
- hikyuu/test/MarketInfo.py +26 -0
- hikyuu/test/MoneyManager.py +88 -0
- hikyuu/test/Parameter.py +62 -0
- hikyuu/test/ProfitGoal.py +83 -0
- hikyuu/test/Signal.py +160 -0
- hikyuu/test/Slippage.py +88 -0
- hikyuu/test/Stock.py +127 -0
- hikyuu/test/StockTypeInfo.py +47 -0
- hikyuu/test/Stoploss.py +86 -0
- hikyuu/test/TradeCost.py +71 -0
- hikyuu/test/__init__.py +0 -0
- hikyuu/test/test.py +63 -0
- hikyuu/test/test_init.py +36 -0
- hikyuu/tools/__init__.py +1 -0
- hikyuu/tools/copy_file.py +16 -0
- hikyuu/tools/delete_index.py +50 -0
- hikyuu/tools/fenge.py +139 -0
- hikyuu/tools/h5_data_clear.py +163 -0
- hikyuu/tools/mysql_clear_last_day_data.py +61 -0
- hikyuu/tools/update_block_info.py +168 -0
- hikyuu/trade_manage/__init__.py +30 -0
- hikyuu/trade_manage/broker.py +95 -0
- hikyuu/trade_manage/broker_easytrader.py +63 -0
- hikyuu/trade_manage/broker_mail.py +101 -0
- hikyuu/trade_manage/trade.py +111 -0
- hikyuu/trade_sys/__init__.py +27 -0
- hikyuu/trade_sys/trade_sys.py +251 -0
- hikyuu/util/__init__.py +49 -0
- hikyuu/util/check.py +153 -0
- hikyuu/util/mylog.py +264 -0
- hikyuu/util/notebook.py +47 -0
- hikyuu/util/singleton.py +29 -0
- hikyuu/util/slice.py +43 -0
- hikyuu/util/timeout.py +83 -0
- hikyuu-2.2.4.dist-info/LICENSE +201 -0
- hikyuu-2.2.4.dist-info/METADATA +150 -0
- hikyuu-2.2.4.dist-info/RECORD +818 -0
- hikyuu-2.2.4.dist-info/WHEEL +5 -0
- hikyuu-2.2.4.dist-info/entry_points.txt +3 -0
- hikyuu-2.2.4.dist-info/top_level.txt +112 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* StockManager.h
|
|
3
|
+
*
|
|
4
|
+
* Created on: 2011-11-9
|
|
5
|
+
* Author: fasiondog
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef STOCKMANAGER_H_
|
|
9
|
+
#define STOCKMANAGER_H_
|
|
10
|
+
|
|
11
|
+
#include <mutex>
|
|
12
|
+
#include <thread>
|
|
13
|
+
#include "hikyuu/utilities/Parameter.h"
|
|
14
|
+
#include "hikyuu/utilities/thread/thread.h"
|
|
15
|
+
#include "hikyuu/data_driver/DataDriverFactory.h"
|
|
16
|
+
#include "Block.h"
|
|
17
|
+
#include "MarketInfo.h"
|
|
18
|
+
#include "StockTypeInfo.h"
|
|
19
|
+
#include "StrategyContext.h"
|
|
20
|
+
|
|
21
|
+
namespace hku {
|
|
22
|
+
|
|
23
|
+
typedef vector<string> MarketList;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 证券信息统一管理类
|
|
27
|
+
* @ingroup StockManage
|
|
28
|
+
*/
|
|
29
|
+
class HKU_API StockManager {
|
|
30
|
+
public:
|
|
31
|
+
/** 获取StockManager单例实例 */
|
|
32
|
+
static StockManager& instance();
|
|
33
|
+
virtual ~StockManager();
|
|
34
|
+
|
|
35
|
+
StockManager(const StockManager&) = delete;
|
|
36
|
+
StockManager& operator=(const StockManager&) = delete;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* 初始化函数,必须在程序入口调用
|
|
40
|
+
* @param baseInfoParam 基础信息驱动参数
|
|
41
|
+
* @param blockParam 板块驱动参数
|
|
42
|
+
* @param kdataParam K线驱动参数
|
|
43
|
+
* @param preloadParam 预加载参数
|
|
44
|
+
* @param hikyuuParam 其他参数
|
|
45
|
+
* @param context 策略上下文
|
|
46
|
+
*/
|
|
47
|
+
void init(const Parameter& baseInfoParam, const Parameter& blockParam,
|
|
48
|
+
const Parameter& kdataParam, const Parameter& preloadParam,
|
|
49
|
+
const Parameter& hikyuuParam,
|
|
50
|
+
const StrategyContext& context = StrategyContext({"all"}));
|
|
51
|
+
|
|
52
|
+
/** 重新加载 */
|
|
53
|
+
void reload();
|
|
54
|
+
|
|
55
|
+
/** 主动退出并释放资源 */
|
|
56
|
+
static void quit();
|
|
57
|
+
|
|
58
|
+
/** 获取基础信息驱动参数 */
|
|
59
|
+
const Parameter& getBaseInfoDriverParameter() const;
|
|
60
|
+
|
|
61
|
+
/** 获取板块驱动参数 */
|
|
62
|
+
const Parameter& getBlockDriverParameter() const;
|
|
63
|
+
|
|
64
|
+
/** 获取 K 线数据驱动参数 */
|
|
65
|
+
const Parameter& getKDataDriverParameter() const;
|
|
66
|
+
|
|
67
|
+
/** 获取预加载参数 */
|
|
68
|
+
const Parameter& getPreloadParameter() const;
|
|
69
|
+
|
|
70
|
+
/** 获取其他参数 */
|
|
71
|
+
const Parameter& getHikyuuParameter() const;
|
|
72
|
+
|
|
73
|
+
/** 获取策略上下文 */
|
|
74
|
+
const StrategyContext& getStrategyContext() const;
|
|
75
|
+
|
|
76
|
+
/** 获取基础信息驱动 */
|
|
77
|
+
BaseInfoDriverPtr getBaseInfoDriver() const;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* 获取用于保存零时变量等的临时目录,如为配置则为当前目录
|
|
81
|
+
* 由m_config中的“tmpdir”指定
|
|
82
|
+
*/
|
|
83
|
+
string tmpdir() const;
|
|
84
|
+
|
|
85
|
+
/** 获取数据目录 */
|
|
86
|
+
string datadir() const;
|
|
87
|
+
|
|
88
|
+
/** 获取证券数量 */
|
|
89
|
+
size_t size() const;
|
|
90
|
+
|
|
91
|
+
/** 是否所有数据准备完毕 */
|
|
92
|
+
bool dataReady() const;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* 根据"市场简称证券代码"获取对应的证券实例
|
|
96
|
+
* @param querystr 格式:“市场简称证券代码”,如"sh000001"
|
|
97
|
+
* @return 对应的证券实例,如果实例不存在,则Null<Stock>(),不抛出异常
|
|
98
|
+
*/
|
|
99
|
+
Stock getStock(const string& querystr) const;
|
|
100
|
+
|
|
101
|
+
/** 同 getStock @see getStock */
|
|
102
|
+
Stock operator[](const string&) const;
|
|
103
|
+
|
|
104
|
+
StockList getStockList(
|
|
105
|
+
std::function<bool(const Stock&)>&& filter = std::function<bool(const Stock&)>()) const;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* 获取相应的市场信息
|
|
109
|
+
* @param market 指定的市场标识
|
|
110
|
+
* @return 相应的市场信息,如果相应的市场信息不存在,则返回Null<MarketInfo>()
|
|
111
|
+
*/
|
|
112
|
+
MarketInfo getMarketInfo(const string& market) const;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* 获取相应的证券类型详细信息
|
|
116
|
+
* @param type 证券类型
|
|
117
|
+
* @return 对应的证券类型信息,如果不存在,则返回Null<StockTypeInf>()
|
|
118
|
+
*/
|
|
119
|
+
StockTypeInfo getStockTypeInfo(uint32_t type) const;
|
|
120
|
+
|
|
121
|
+
/** 获取市场简称列表 */
|
|
122
|
+
MarketList getAllMarket() const;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* 获取预定义的板块
|
|
126
|
+
* @param category 板块分类
|
|
127
|
+
* @param name 板块名称
|
|
128
|
+
* @return 板块,如找不到返回空
|
|
129
|
+
*/
|
|
130
|
+
Block getBlock(const string& category, const string& name);
|
|
131
|
+
|
|
132
|
+
void addBlock(const Block& blk) {
|
|
133
|
+
saveBlock(blk);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
void saveBlock(const Block& blk);
|
|
137
|
+
void removeBlock(const string& category, const string& name);
|
|
138
|
+
void removeBlock(const Block& blk) {
|
|
139
|
+
removeBlock(blk.category(), blk.name());
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* 获取指定分类的板块列表
|
|
144
|
+
* @param category 板块分类
|
|
145
|
+
* @return 板块列表
|
|
146
|
+
*/
|
|
147
|
+
BlockList getBlockList(const string& category);
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* 获取所有板块
|
|
151
|
+
* @return 板块列表
|
|
152
|
+
*/
|
|
153
|
+
BlockList getBlockList();
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* 获取指定证券所属的板块列表
|
|
157
|
+
* @param stk 指定证券
|
|
158
|
+
* @param category 板块分类,如果为空字符串,返回所有板块分类下的所属板块
|
|
159
|
+
* @return BlockList
|
|
160
|
+
*/
|
|
161
|
+
BlockList getStockBelongs(const Stock& stk, const string& category);
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* 获取交易日历,目前支持"SH"
|
|
165
|
+
* @param query
|
|
166
|
+
* @param market
|
|
167
|
+
* @return DatetimeList
|
|
168
|
+
*/
|
|
169
|
+
DatetimeList getTradingCalendar(const KQuery& query, const string& market = "SH");
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* 获取10年期中国国债收益率
|
|
173
|
+
*/
|
|
174
|
+
const ZhBond10List& getZhBond10() const;
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* 判断指定日期是否为节假日
|
|
178
|
+
* @param d 指定日期
|
|
179
|
+
*/
|
|
180
|
+
bool isHoliday(const Datetime& d) const;
|
|
181
|
+
|
|
182
|
+
const string& getHistoryFinanceFieldName(size_t ix) const;
|
|
183
|
+
size_t getHistoryFinanceFieldIndex(const string& name) const;
|
|
184
|
+
vector<std::pair<size_t, string>> getHistoryFinanceAllFields() const;
|
|
185
|
+
|
|
186
|
+
vector<HistoryFinanceInfo> getHistoryFinance(const Stock& stk, Datetime start, Datetime end);
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* 添加Stock,仅供临时增加的特殊Stock使用
|
|
190
|
+
* @param stock
|
|
191
|
+
* @return true 成功 | false 失败
|
|
192
|
+
*/
|
|
193
|
+
bool addStock(const Stock& stock);
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* 从 StockManager 中移除相应的 Stock,一般用于将临时增加的 Stock 从 sm 中移除
|
|
197
|
+
* @param market_code
|
|
198
|
+
*/
|
|
199
|
+
void removeStock(const string& market_code);
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* 从CSV文件(K线数据)增加临时的Stock,可用于只有CSV格式的K线数据时,进行临时测试
|
|
203
|
+
* @details 增加的临时Stock,其market为“TMP”
|
|
204
|
+
* @param code 自行编号的证券代码,不能和已有的Stock相同,否则将返回Null<Stock>
|
|
205
|
+
* @param day_filename 日线CSV文件名
|
|
206
|
+
* @param min_filename 分钟线CSV文件名
|
|
207
|
+
* @param tick 最小跳动量,默认0.01
|
|
208
|
+
* @param tickValue 最小跳动量价值,默认0.01
|
|
209
|
+
* @param precision 价格精度,默认2
|
|
210
|
+
* @param minTradeNumber 单笔最小交易量,默认1
|
|
211
|
+
* @param maxTradeNumber 单笔最大交易量,默认1000000
|
|
212
|
+
* @return
|
|
213
|
+
*/
|
|
214
|
+
Stock addTempCsvStock(const string& code, const string& day_filename,
|
|
215
|
+
const string& min_filename, price_t tick = 0.01, price_t tickValue = 0.01,
|
|
216
|
+
int precision = 2, size_t minTradeNumber = 1,
|
|
217
|
+
size_t maxTradeNumber = 1000000);
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* 移除增加的临时Stock
|
|
221
|
+
* @param code
|
|
222
|
+
*/
|
|
223
|
+
void removeTempCsvStock(const string& code);
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* 获取当前执行线程id,主要用于判断 Strategy 是以独立进程还是线程方式运行
|
|
227
|
+
*/
|
|
228
|
+
std::thread::id thread_id() const {
|
|
229
|
+
return m_thread_id;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/** 仅由程序退出使使用!!! */
|
|
233
|
+
ThreadPool* getLoadTaskGroup() {
|
|
234
|
+
return m_load_tg.get();
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
public:
|
|
238
|
+
typedef StockMapIterator const_iterator;
|
|
239
|
+
const_iterator begin() const {
|
|
240
|
+
return m_stockDict.begin();
|
|
241
|
+
}
|
|
242
|
+
const_iterator end() const {
|
|
243
|
+
return m_stockDict.end();
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
private:
|
|
247
|
+
/* 加载全部数据 */
|
|
248
|
+
void loadData();
|
|
249
|
+
|
|
250
|
+
/* 加载 K线数据至缓存 */
|
|
251
|
+
void loadAllKData();
|
|
252
|
+
|
|
253
|
+
/* 加载节假日信息 */
|
|
254
|
+
void loadAllHolidays();
|
|
255
|
+
|
|
256
|
+
/* 初始化时,添加市场信息 */
|
|
257
|
+
void loadAllMarketInfos();
|
|
258
|
+
|
|
259
|
+
/* 初始化时,添加证券类型信息 */
|
|
260
|
+
void loadAllStockTypeInfo();
|
|
261
|
+
|
|
262
|
+
/* 加载所有证券 */
|
|
263
|
+
void loadAllStocks();
|
|
264
|
+
|
|
265
|
+
/* 加载所有权息数据 */
|
|
266
|
+
void loadAllStockWeights();
|
|
267
|
+
|
|
268
|
+
/** 加载10年期中国国债收益率数据 */
|
|
269
|
+
void loadAllZhBond10();
|
|
270
|
+
|
|
271
|
+
/** 加载历史财经字段索引 */
|
|
272
|
+
void loadHistoryFinanceField();
|
|
273
|
+
|
|
274
|
+
private:
|
|
275
|
+
StockManager();
|
|
276
|
+
|
|
277
|
+
private:
|
|
278
|
+
static StockManager* m_sm;
|
|
279
|
+
std::atomic_bool m_initializing;
|
|
280
|
+
std::atomic_bool m_data_ready; // 用于指示是否所有数据准备完毕
|
|
281
|
+
std::thread::id m_thread_id; // 记录线程id,用于判断Stratege是以独立进程方式还是线程方式运行
|
|
282
|
+
string m_tmpdir;
|
|
283
|
+
string m_datadir;
|
|
284
|
+
BaseInfoDriverPtr m_baseInfoDriver;
|
|
285
|
+
BlockInfoDriverPtr m_blockDriver;
|
|
286
|
+
|
|
287
|
+
StockMapIterator::stock_map_t m_stockDict; // SH000001 -> stock
|
|
288
|
+
std::shared_mutex* m_stockDict_mutex;
|
|
289
|
+
|
|
290
|
+
typedef unordered_map<string, MarketInfo> MarketInfoMap;
|
|
291
|
+
mutable MarketInfoMap m_marketInfoDict;
|
|
292
|
+
std::shared_mutex* m_marketInfoDict_mutex;
|
|
293
|
+
|
|
294
|
+
typedef unordered_map<uint32_t, StockTypeInfo> StockTypeInfoMap;
|
|
295
|
+
mutable StockTypeInfoMap m_stockTypeInfo;
|
|
296
|
+
std::shared_mutex* m_stockTypeInfo_mutex;
|
|
297
|
+
|
|
298
|
+
std::unordered_set<Datetime> m_holidays; // 节假日
|
|
299
|
+
std::shared_mutex* m_holidays_mutex;
|
|
300
|
+
|
|
301
|
+
ZhBond10List m_zh_bond10; // 10年期中国国债收益率数据
|
|
302
|
+
|
|
303
|
+
unordered_map<string, size_t> m_field_name_to_ix; // 财经字段名称到字段索引映射
|
|
304
|
+
unordered_map<size_t, string> m_field_ix_to_name; // 财经字段索引到字段名称映射
|
|
305
|
+
|
|
306
|
+
Parameter m_baseInfoDriverParam;
|
|
307
|
+
Parameter m_blockDriverParam;
|
|
308
|
+
Parameter m_kdataDriverParam;
|
|
309
|
+
Parameter m_preloadParam;
|
|
310
|
+
Parameter m_hikyuuParam;
|
|
311
|
+
StrategyContext m_context;
|
|
312
|
+
|
|
313
|
+
std::unique_ptr<ThreadPool> m_load_tg; // 异步数据加载辅助线程组
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
inline size_t StockManager::size() const {
|
|
317
|
+
return m_stockDict.size();
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
inline bool StockManager::dataReady() const {
|
|
321
|
+
return m_data_ready;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
inline Stock StockManager::operator[](const string& query) const {
|
|
325
|
+
return getStock(query);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
inline const Parameter& StockManager::getBaseInfoDriverParameter() const {
|
|
329
|
+
return m_baseInfoDriverParam;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
inline const Parameter& StockManager::getBlockDriverParameter() const {
|
|
333
|
+
return m_blockDriverParam;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
inline const Parameter& StockManager::getKDataDriverParameter() const {
|
|
337
|
+
return m_kdataDriverParam;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
inline const Parameter& StockManager::getPreloadParameter() const {
|
|
341
|
+
return m_preloadParam;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
inline const Parameter& StockManager::getHikyuuParameter() const {
|
|
345
|
+
return m_hikyuuParam;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
inline const StrategyContext& StockManager::getStrategyContext() const {
|
|
349
|
+
return m_context;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
inline BaseInfoDriverPtr StockManager::getBaseInfoDriver() const {
|
|
353
|
+
return m_baseInfoDriver;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
inline const string& StockManager::getHistoryFinanceFieldName(size_t ix) const {
|
|
357
|
+
return m_field_ix_to_name.at(ix);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
inline size_t StockManager::getHistoryFinanceFieldIndex(const string& name) const {
|
|
361
|
+
return m_field_name_to_ix.at(name);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
inline vector<HistoryFinanceInfo> StockManager::getHistoryFinance(const Stock& stk, Datetime start,
|
|
365
|
+
Datetime end) {
|
|
366
|
+
return m_baseInfoDriver->getHistoryFinance(stk.market(), stk.code(), start, end);
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
} // namespace hku
|
|
370
|
+
|
|
371
|
+
#endif /* STOCKMANAGER_H_ */
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* StockMapIterator.h
|
|
3
|
+
*
|
|
4
|
+
* Created on: 2015年2月8日
|
|
5
|
+
* Author: fasiondog
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
#ifndef STOCKMAPITERATOR_H_
|
|
10
|
+
#define STOCKMAPITERATOR_H_
|
|
11
|
+
|
|
12
|
+
#include <iterator>
|
|
13
|
+
#include "Stock.h"
|
|
14
|
+
|
|
15
|
+
namespace hku {
|
|
16
|
+
|
|
17
|
+
class StockMapIterator {
|
|
18
|
+
public:
|
|
19
|
+
typedef unordered_map<string, Stock> stock_map_t;
|
|
20
|
+
typedef Stock value_type;
|
|
21
|
+
typedef Stock* pointer;
|
|
22
|
+
typedef const Stock& reference;
|
|
23
|
+
typedef stock_map_t::const_iterator::difference_type difference_type;
|
|
24
|
+
typedef std::input_iterator_tag iterator_category;
|
|
25
|
+
|
|
26
|
+
StockMapIterator() {}
|
|
27
|
+
|
|
28
|
+
// cppcheck-suppress noExplicitConstructor
|
|
29
|
+
StockMapIterator(const stock_map_t::const_iterator& iter) : m_iter(iter) {}
|
|
30
|
+
|
|
31
|
+
StockMapIterator(const StockMapIterator& iter) : m_iter(iter.m_iter) {}
|
|
32
|
+
|
|
33
|
+
StockMapIterator& operator=(const StockMapIterator& iter) {
|
|
34
|
+
HKU_IF_RETURN(this == &iter, *this);
|
|
35
|
+
m_iter = iter.m_iter;
|
|
36
|
+
return *this;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
StockMapIterator& operator++() {
|
|
40
|
+
++m_iter;
|
|
41
|
+
return *this;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const StockMapIterator operator++(int) {
|
|
45
|
+
auto old_iter = m_iter;
|
|
46
|
+
++m_iter;
|
|
47
|
+
return StockMapIterator(old_iter);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
bool operator==(const StockMapIterator& iter) const {
|
|
51
|
+
return m_iter == iter.m_iter;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
bool operator!=(const StockMapIterator& iter) const {
|
|
55
|
+
return m_iter != iter.m_iter;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const Stock& operator*() const {
|
|
59
|
+
return m_iter->second;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const Stock* const operator->() const {
|
|
63
|
+
return &(m_iter->second);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
private:
|
|
67
|
+
stock_map_t::const_iterator m_iter;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
} /* namespace hku */
|
|
71
|
+
|
|
72
|
+
#endif /* STOCKMAPITERATOR_H_ */
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* StockTypeInfo.h
|
|
3
|
+
*
|
|
4
|
+
* Created on: 2011-12-12
|
|
5
|
+
* Author: fasiondog
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
#ifndef STOCKTYPEINFO_H_
|
|
10
|
+
#define STOCKTYPEINFO_H_
|
|
11
|
+
|
|
12
|
+
#include "DataType.h"
|
|
13
|
+
|
|
14
|
+
namespace hku {
|
|
15
|
+
|
|
16
|
+
#define STOCKTYPE_BLOCK 0 /// 板块
|
|
17
|
+
#define STOCKTYPE_A 1 /// A股
|
|
18
|
+
#define STOCKTYPE_INDEX 2 /// 指数
|
|
19
|
+
#define STOCKTYPE_B 3 /// B股
|
|
20
|
+
#define STOCKTYPE_FUND 4 /// 基金
|
|
21
|
+
#define STOCKTYPE_ETF 5 /// ETF
|
|
22
|
+
#define STOCKTYPE_ND 6 /// 国债
|
|
23
|
+
#define STOCKTYPE_BOND 7 /// 债券
|
|
24
|
+
#define STOCKTYPE_GEM 8 /// 创业板
|
|
25
|
+
#define STOCKTYPE_START 9 /// 科创板
|
|
26
|
+
#define STOCKTYPE_CRYPTO 10 /// 数字货币
|
|
27
|
+
#define STOCKTYPE_A_BJ 11 /// 北交所(北交所的最小交易单位不是100股)
|
|
28
|
+
|
|
29
|
+
#define STOCKTYPE_TMP 999 /// 用于临时Stock
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 证券类型信息
|
|
33
|
+
* @ingroup StockManage
|
|
34
|
+
*/
|
|
35
|
+
class HKU_API StockTypeInfo {
|
|
36
|
+
public:
|
|
37
|
+
/** 默认构造函数,返回Null<StockTypeInfo>() */
|
|
38
|
+
StockTypeInfo();
|
|
39
|
+
StockTypeInfo(uint32_t, const string&, price_t, price_t, int, double, double);
|
|
40
|
+
|
|
41
|
+
/** 获取证券类型 */
|
|
42
|
+
uint32_t type() const {
|
|
43
|
+
return m_type;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** 获取证券类型描述信息 */
|
|
47
|
+
const string& description() const {
|
|
48
|
+
return m_description;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** 获取最小跳动量 */
|
|
52
|
+
price_t tick() const {
|
|
53
|
+
return m_tick;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** 每tick价格 */
|
|
57
|
+
price_t tickValue() const {
|
|
58
|
+
return m_tickValue;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** 每单位价格 = tickValue / tick */
|
|
62
|
+
price_t unit() const {
|
|
63
|
+
return m_unit;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** 获取价格精度 */
|
|
67
|
+
int precision() const {
|
|
68
|
+
return m_precision;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** 获取每笔最小交易数量 */
|
|
72
|
+
double minTradeNumber() const {
|
|
73
|
+
return m_minTradeNumber;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** 获取每笔最大交易数量 */
|
|
77
|
+
double maxTradeNumber() const {
|
|
78
|
+
return m_maxTradeNumber;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** 仅用于python的__str__ */
|
|
82
|
+
string toString() const;
|
|
83
|
+
|
|
84
|
+
private:
|
|
85
|
+
uint32_t m_type; // 证券类型
|
|
86
|
+
string m_description; // 描述信息
|
|
87
|
+
price_t m_tick; // 最小跳动量
|
|
88
|
+
price_t m_tickValue; // 每一个tick价格
|
|
89
|
+
price_t m_unit; // 每最小变动量价格,即单位价格 = tickValue/tick
|
|
90
|
+
int m_precision; // 价格精度
|
|
91
|
+
double m_minTradeNumber; // 每笔最小交易量
|
|
92
|
+
double m_maxTradeNumber; // 每笔最大交易量
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* 输出证券类型信息,如:StockTypeInfo(type, description, tick, precision,
|
|
97
|
+
* minTradeNumber, maxTradeNumber)
|
|
98
|
+
* @ingroup StockManage
|
|
99
|
+
*/
|
|
100
|
+
HKU_API std::ostream& operator<<(std::ostream&, const StockTypeInfo&);
|
|
101
|
+
|
|
102
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
103
|
+
//
|
|
104
|
+
// 关系比较函数
|
|
105
|
+
//
|
|
106
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
107
|
+
bool operator==(const StockTypeInfo&, const StockTypeInfo&);
|
|
108
|
+
bool operator!=(const StockTypeInfo&, const StockTypeInfo&);
|
|
109
|
+
|
|
110
|
+
/** 相等比较 */
|
|
111
|
+
inline bool operator==(const StockTypeInfo& m1, const StockTypeInfo& m2) {
|
|
112
|
+
return m1.type() == m2.type();
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/** 不等比较 */
|
|
116
|
+
inline bool operator!=(const StockTypeInfo& m1, const StockTypeInfo& m2) {
|
|
117
|
+
return m1.type() != m2.type();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
} // namespace hku
|
|
121
|
+
|
|
122
|
+
#if FMT_VERSION >= 90000
|
|
123
|
+
template <>
|
|
124
|
+
struct fmt::formatter<hku::StockTypeInfo> : ostream_formatter {};
|
|
125
|
+
#endif
|
|
126
|
+
|
|
127
|
+
#endif /* STOCKTYPEINFO_H_ */
|