hikyuu 2.6.8__py3-none-manylinux2014_aarch64.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 (1066) hide show
  1. hikyuu/LICENSE.txt +21 -0
  2. hikyuu/__init__.py +577 -0
  3. hikyuu/__init__.pyi +872 -0
  4. hikyuu/analysis/__init__.py +14 -0
  5. hikyuu/analysis/__init__.pyi +572 -0
  6. hikyuu/analysis/analysis.py +151 -0
  7. hikyuu/analysis/analysis.pyi +602 -0
  8. hikyuu/config/__init__.py +1 -0
  9. hikyuu/config/block/__init__.py +0 -0
  10. hikyuu/config/block/dybk.ini +5357 -0
  11. hikyuu/config/block/gnbk.ini +50024 -0
  12. hikyuu/config/block/hybk.ini +5464 -0
  13. hikyuu/config/block/self.ini +10 -0
  14. hikyuu/config/block/zsbk.ini +65543 -0
  15. hikyuu/core.py +27 -0
  16. hikyuu/core.pyi +567 -0
  17. hikyuu/cpp/__init__.py +1 -0
  18. hikyuu/cpp/__init__.pyi +3 -0
  19. hikyuu/cpp/core310.pyi +14179 -0
  20. hikyuu/cpp/core310.so +0 -0
  21. hikyuu/cpp/core311.pyi +14179 -0
  22. hikyuu/cpp/core311.so +0 -0
  23. hikyuu/cpp/core312.pyi +14179 -0
  24. hikyuu/cpp/core312.so +0 -0
  25. hikyuu/cpp/core313.pyi +14158 -0
  26. hikyuu/cpp/core313.so +0 -0
  27. hikyuu/cpp/core39.pyi +14179 -0
  28. hikyuu/cpp/core39.so +0 -0
  29. hikyuu/cpp/i18n/__init__.py +0 -0
  30. hikyuu/cpp/i18n/zh_CN/__init__.py +0 -0
  31. hikyuu/cpp/i18n/zh_CN/hikyuu.mo +0 -0
  32. hikyuu/cpp/libcrypto.so.3 +0 -0
  33. hikyuu/cpp/libhikyuu.so +0 -0
  34. hikyuu/cpp/libhku_hdf5.so +0 -0
  35. hikyuu/cpp/libhku_hdf5.so.200 +0 -0
  36. hikyuu/cpp/libhku_hdf5.so.200.2.0 +0 -0
  37. hikyuu/cpp/libhku_hdf5_cpp.so +0 -0
  38. hikyuu/cpp/libhku_hdf5_cpp.so.200 +0 -0
  39. hikyuu/cpp/libhku_hdf5_cpp.so.200.2.0 +0 -0
  40. hikyuu/cpp/libhku_hdf5_hl.so +0 -0
  41. hikyuu/cpp/libhku_hdf5_hl.so.200 +0 -0
  42. hikyuu/cpp/libhku_hdf5_hl.so.200.1.0 +0 -0
  43. hikyuu/cpp/libhku_hdf5_hl_cpp.so +0 -0
  44. hikyuu/cpp/libhku_hdf5_hl_cpp.so.200 +0 -0
  45. hikyuu/cpp/libhku_hdf5_hl_cpp.so.200.1.0 +0 -0
  46. hikyuu/cpp/libhku_hdf5_tools.so +0 -0
  47. hikyuu/cpp/libhku_hdf5_tools.so.200 +0 -0
  48. hikyuu/cpp/libhku_hdf5_tools.so.200.1.1 +0 -0
  49. hikyuu/cpp/libmysqlclient.so +0 -0
  50. hikyuu/cpp/libmysqlclient.so.21 +0 -0
  51. hikyuu/cpp/libmysqlclient.so.21.2.32 +0 -0
  52. hikyuu/cpp/libresolv.so.2 +0 -0
  53. hikyuu/cpp/libsqlite3.so +0 -0
  54. hikyuu/cpp/libssl.so.3 +0 -0
  55. hikyuu/cpp/libzstd.so.1 +0 -0
  56. hikyuu/data/__init__.py +1 -0
  57. hikyuu/data/clickhouse_upgrade/__init__.py +1 -0
  58. hikyuu/data/clickhouse_upgrade/createdb.sql +1085 -0
  59. hikyuu/data/common.py +248 -0
  60. hikyuu/data/common_clickhouse.py +465 -0
  61. hikyuu/data/common_h5.py +398 -0
  62. hikyuu/data/common_mysql.py +521 -0
  63. hikyuu/data/common_pytdx.py +126 -0
  64. hikyuu/data/common_sqlite3.py +141 -0
  65. hikyuu/data/em_block_to_clickhouse.py +120 -0
  66. hikyuu/data/em_block_to_mysql.py +121 -0
  67. hikyuu/data/em_block_to_sqlite.py +122 -0
  68. hikyuu/data/hku_config_template.py +335 -0
  69. hikyuu/data/mysql_upgrade/0001.sql +5 -0
  70. hikyuu/data/mysql_upgrade/0002.sql +3 -0
  71. hikyuu/data/mysql_upgrade/0003.sql +9 -0
  72. hikyuu/data/mysql_upgrade/0004.sql +26 -0
  73. hikyuu/data/mysql_upgrade/0005.sql +3 -0
  74. hikyuu/data/mysql_upgrade/0006.sql +2 -0
  75. hikyuu/data/mysql_upgrade/0007.sql +20 -0
  76. hikyuu/data/mysql_upgrade/0008.sql +6 -0
  77. hikyuu/data/mysql_upgrade/0009.sql +36 -0
  78. hikyuu/data/mysql_upgrade/0010.sql +5 -0
  79. hikyuu/data/mysql_upgrade/0011.sql +5 -0
  80. hikyuu/data/mysql_upgrade/0012.sql +5 -0
  81. hikyuu/data/mysql_upgrade/0013.sql +2389 -0
  82. hikyuu/data/mysql_upgrade/0014.sql +3 -0
  83. hikyuu/data/mysql_upgrade/0015.sql +4 -0
  84. hikyuu/data/mysql_upgrade/0016.sql +4 -0
  85. hikyuu/data/mysql_upgrade/0017.sql +5 -0
  86. hikyuu/data/mysql_upgrade/0018.sql +2 -0
  87. hikyuu/data/mysql_upgrade/0019.sql +6 -0
  88. hikyuu/data/mysql_upgrade/0020.sql +4 -0
  89. hikyuu/data/mysql_upgrade/0021.sql +4 -0
  90. hikyuu/data/mysql_upgrade/0022.sql +5 -0
  91. hikyuu/data/mysql_upgrade/0023.sql +4 -0
  92. hikyuu/data/mysql_upgrade/0024.sql +2 -0
  93. hikyuu/data/mysql_upgrade/0025.sql +61 -0
  94. hikyuu/data/mysql_upgrade/0026.sql +9 -0
  95. hikyuu/data/mysql_upgrade/0027.sql +6 -0
  96. hikyuu/data/mysql_upgrade/0028.sql +95 -0
  97. hikyuu/data/mysql_upgrade/__init__.py +1 -0
  98. hikyuu/data/mysql_upgrade/createdb.sql +265 -0
  99. hikyuu/data/pytdx_finance_to_clickhouse.py +107 -0
  100. hikyuu/data/pytdx_finance_to_mysql.py +129 -0
  101. hikyuu/data/pytdx_finance_to_sqlite.py +162 -0
  102. hikyuu/data/pytdx_to_clickhouse.py +841 -0
  103. hikyuu/data/pytdx_to_h5.py +705 -0
  104. hikyuu/data/pytdx_to_mysql.py +839 -0
  105. hikyuu/data/pytdx_to_taos.py +736 -0
  106. hikyuu/data/pytdx_weight_to_clickhouse.py +191 -0
  107. hikyuu/data/pytdx_weight_to_mysql.py +196 -0
  108. hikyuu/data/pytdx_weight_to_sqlite.py +192 -0
  109. hikyuu/data/sqlite_mem.py +84 -0
  110. hikyuu/data/sqlite_mem_sql/__init__.py +1 -0
  111. hikyuu/data/sqlite_mem_sql/createdb.sql +126 -0
  112. hikyuu/data/sqlite_upgrade/0001.sql +4 -0
  113. hikyuu/data/sqlite_upgrade/0002.sql +48 -0
  114. hikyuu/data/sqlite_upgrade/0003.sql +18 -0
  115. hikyuu/data/sqlite_upgrade/0004.sql +11 -0
  116. hikyuu/data/sqlite_upgrade/0005.sql +28 -0
  117. hikyuu/data/sqlite_upgrade/0006.sql +5 -0
  118. hikyuu/data/sqlite_upgrade/0007.sql +4 -0
  119. hikyuu/data/sqlite_upgrade/0008.sql +22 -0
  120. hikyuu/data/sqlite_upgrade/0009.sql +8 -0
  121. hikyuu/data/sqlite_upgrade/0010.sql +5 -0
  122. hikyuu/data/sqlite_upgrade/0011.sql +16 -0
  123. hikyuu/data/sqlite_upgrade/0012.sql +15 -0
  124. hikyuu/data/sqlite_upgrade/0013.sql +9 -0
  125. hikyuu/data/sqlite_upgrade/0014.sql +607 -0
  126. hikyuu/data/sqlite_upgrade/0015.sql +7 -0
  127. hikyuu/data/sqlite_upgrade/0016.sql +8 -0
  128. hikyuu/data/sqlite_upgrade/0017.sql +16 -0
  129. hikyuu/data/sqlite_upgrade/0018.sql +5 -0
  130. hikyuu/data/sqlite_upgrade/0019.sql +4 -0
  131. hikyuu/data/sqlite_upgrade/0020.sql +4 -0
  132. hikyuu/data/sqlite_upgrade/0021.sql +6 -0
  133. hikyuu/data/sqlite_upgrade/0022.sql +6 -0
  134. hikyuu/data/sqlite_upgrade/0023.sql +7 -0
  135. hikyuu/data/sqlite_upgrade/0024.sql +22 -0
  136. hikyuu/data/sqlite_upgrade/0025.sql +63 -0
  137. hikyuu/data/sqlite_upgrade/0026.sql +10 -0
  138. hikyuu/data/sqlite_upgrade/0027.sql +8 -0
  139. hikyuu/data/sqlite_upgrade/0028.sql +97 -0
  140. hikyuu/data/sqlite_upgrade/__init__.py +1 -0
  141. hikyuu/data/sqlite_upgrade/createdb.sql +61 -0
  142. hikyuu/data/tdx_to_clickhouse.py +448 -0
  143. hikyuu/data/tdx_to_h5.py +464 -0
  144. hikyuu/data/tdx_to_mysql.py +464 -0
  145. hikyuu/data/weight_to_mysql.py +72 -0
  146. hikyuu/data/weight_to_sqlite.py +70 -0
  147. hikyuu/data/zh_bond10_to_clickhouse.py +49 -0
  148. hikyuu/data/zh_bond10_to_mysql.py +30 -0
  149. hikyuu/data/zh_bond10_to_sqlite.py +42 -0
  150. hikyuu/data_driver/__init__.py +49 -0
  151. hikyuu/data_driver/jqdata_data_driver.py +277 -0
  152. hikyuu/data_driver/pytdx_data_driver.py +292 -0
  153. hikyuu/draw/__init__.py +65 -0
  154. hikyuu/draw/__init__.pyi +35 -0
  155. hikyuu/draw/drawplot/__init__.py +309 -0
  156. hikyuu/draw/drawplot/__init__.pyi +139 -0
  157. hikyuu/draw/drawplot/bokeh_draw.py +583 -0
  158. hikyuu/draw/drawplot/bokeh_draw.pyi +872 -0
  159. hikyuu/draw/drawplot/common.py +89 -0
  160. hikyuu/draw/drawplot/common.pyi +10 -0
  161. hikyuu/draw/drawplot/echarts_draw.py +598 -0
  162. hikyuu/draw/drawplot/echarts_draw.pyi +758 -0
  163. hikyuu/draw/drawplot/icon/1.png +0 -0
  164. hikyuu/draw/drawplot/icon/10.png +0 -0
  165. hikyuu/draw/drawplot/icon/11.png +0 -0
  166. hikyuu/draw/drawplot/icon/12.png +0 -0
  167. hikyuu/draw/drawplot/icon/13.png +0 -0
  168. hikyuu/draw/drawplot/icon/14.png +0 -0
  169. hikyuu/draw/drawplot/icon/15.png +0 -0
  170. hikyuu/draw/drawplot/icon/16.png +0 -0
  171. hikyuu/draw/drawplot/icon/17.png +0 -0
  172. hikyuu/draw/drawplot/icon/18.png +0 -0
  173. hikyuu/draw/drawplot/icon/19.png +0 -0
  174. hikyuu/draw/drawplot/icon/2.png +0 -0
  175. hikyuu/draw/drawplot/icon/20.png +0 -0
  176. hikyuu/draw/drawplot/icon/21.png +0 -0
  177. hikyuu/draw/drawplot/icon/22.png +0 -0
  178. hikyuu/draw/drawplot/icon/23.png +0 -0
  179. hikyuu/draw/drawplot/icon/24.png +0 -0
  180. hikyuu/draw/drawplot/icon/25.png +0 -0
  181. hikyuu/draw/drawplot/icon/26.png +0 -0
  182. hikyuu/draw/drawplot/icon/27.png +0 -0
  183. hikyuu/draw/drawplot/icon/28.png +0 -0
  184. hikyuu/draw/drawplot/icon/29.png +0 -0
  185. hikyuu/draw/drawplot/icon/3.png +0 -0
  186. hikyuu/draw/drawplot/icon/30.png +0 -0
  187. hikyuu/draw/drawplot/icon/31.png +0 -0
  188. hikyuu/draw/drawplot/icon/32.png +0 -0
  189. hikyuu/draw/drawplot/icon/33.png +0 -0
  190. hikyuu/draw/drawplot/icon/34.png +0 -0
  191. hikyuu/draw/drawplot/icon/35.png +0 -0
  192. hikyuu/draw/drawplot/icon/36.png +0 -0
  193. hikyuu/draw/drawplot/icon/37.png +0 -0
  194. hikyuu/draw/drawplot/icon/38.png +0 -0
  195. hikyuu/draw/drawplot/icon/39.png +0 -0
  196. hikyuu/draw/drawplot/icon/4.png +0 -0
  197. hikyuu/draw/drawplot/icon/40.png +0 -0
  198. hikyuu/draw/drawplot/icon/41.png +0 -0
  199. hikyuu/draw/drawplot/icon/42.png +0 -0
  200. hikyuu/draw/drawplot/icon/43.png +0 -0
  201. hikyuu/draw/drawplot/icon/44.png +0 -0
  202. hikyuu/draw/drawplot/icon/45.png +0 -0
  203. hikyuu/draw/drawplot/icon/46.png +0 -0
  204. hikyuu/draw/drawplot/icon/47.png +0 -0
  205. hikyuu/draw/drawplot/icon/48.png +0 -0
  206. hikyuu/draw/drawplot/icon/49.png +0 -0
  207. hikyuu/draw/drawplot/icon/5.png +0 -0
  208. hikyuu/draw/drawplot/icon/6.png +0 -0
  209. hikyuu/draw/drawplot/icon/7.png +0 -0
  210. hikyuu/draw/drawplot/icon/8.png +0 -0
  211. hikyuu/draw/drawplot/icon/9.png +0 -0
  212. hikyuu/draw/drawplot/icon/__init__.py +0 -0
  213. hikyuu/draw/drawplot/matplotlib_draw.py +1620 -0
  214. hikyuu/draw/drawplot/matplotlib_draw.pyi +1234 -0
  215. hikyuu/draw/elder.py +135 -0
  216. hikyuu/draw/elder.pyi +44 -0
  217. hikyuu/draw/kaufman.py +192 -0
  218. hikyuu/draw/kaufman.pyi +38 -0
  219. hikyuu/draw/volume.py +122 -0
  220. hikyuu/draw/volume.pyi +31 -0
  221. hikyuu/examples/Turtle_SG.py +47 -0
  222. hikyuu/examples/__init__.py +1 -0
  223. hikyuu/examples/examples_init.py +33 -0
  224. hikyuu/examples/notebook/000-Index.ipynb +76 -0
  225. hikyuu/examples/notebook/001-overview.ipynb +325 -0
  226. hikyuu/examples/notebook/002-HowToGetStock.ipynb +484 -0
  227. hikyuu/examples/notebook/003-HowToGetKDataAndDraw.ipynb +383 -0
  228. hikyuu/examples/notebook/004-IndicatorOverview.ipynb +568 -0
  229. hikyuu/examples/notebook/005-Drawplot.ipynb +350 -0
  230. hikyuu/examples/notebook/006-TradeManager.ipynb +1128 -0
  231. hikyuu/examples/notebook/007-SystemDetails.ipynb +394 -0
  232. hikyuu/examples/notebook/008-Pickle.ipynb +127 -0
  233. hikyuu/examples/notebook/009-RealData.ipynb +110 -0
  234. hikyuu/examples/notebook/010-Portfolio.ipynb +968 -0
  235. hikyuu/examples/notebook/Demo/Demo1.ipynb +623 -0
  236. hikyuu/examples/notebook/Demo/Demo2.ipynb +665 -0
  237. hikyuu/examples/notebook/Demo/__init__.py +1 -0
  238. hikyuu/examples/notebook/README.md +1 -0
  239. hikyuu/examples/notebook/__init__.py +1 -0
  240. hikyuu/examples/notebook/images/002_01_block_config.png +0 -0
  241. hikyuu/examples/notebook/images/008_01_tocsv.png +0 -0
  242. hikyuu/examples/notebook/images/008_02_tocsv_look.png +0 -0
  243. hikyuu/examples/notebook/images/008_03_pickle.png +0 -0
  244. hikyuu/examples/notebook/images/__init__.py +1 -0
  245. hikyuu/examples/quick_crtsg.py +40 -0
  246. hikyuu/extend.py +289 -0
  247. hikyuu/extend.pyi +658 -0
  248. hikyuu/fetcher/__init__.py +8 -0
  249. hikyuu/fetcher/proxy/__init__.py +12 -0
  250. hikyuu/fetcher/proxy/proxy.py +39 -0
  251. hikyuu/fetcher/proxy/zhima.py +63 -0
  252. hikyuu/fetcher/stock/__init__.py +8 -0
  253. hikyuu/fetcher/stock/zh_block_em.py +562 -0
  254. hikyuu/fetcher/stock/zh_stock_a_huatai.py +51 -0
  255. hikyuu/fetcher/stock/zh_stock_a_pytdx.py +129 -0
  256. hikyuu/fetcher/stock/zh_stock_a_qmt.py +57 -0
  257. hikyuu/fetcher/stock/zh_stock_a_sina_qq.py +185 -0
  258. hikyuu/flat/Spot.py +336 -0
  259. hikyuu/flat/SpotList.py +74 -0
  260. hikyuu/flat/__init__.py +4 -0
  261. hikyuu/gui/HikyuuTDX.py +1062 -0
  262. hikyuu/gui/__init__.py +1 -0
  263. hikyuu/gui/data/CollectSpotThread.py +43 -0
  264. hikyuu/gui/data/CollectToMemThread.py +123 -0
  265. hikyuu/gui/data/CollectToMySQLThread.py +178 -0
  266. hikyuu/gui/data/EscapetimeThread.py +32 -0
  267. hikyuu/gui/data/ImportBlockInfoTask.py +67 -0
  268. hikyuu/gui/data/ImportHistoryFinanceTask.py +161 -0
  269. hikyuu/gui/data/ImportPytdxTimeToH5Task.py +106 -0
  270. hikyuu/gui/data/ImportPytdxToH5Task.py +112 -0
  271. hikyuu/gui/data/ImportPytdxTransToH5Task.py +106 -0
  272. hikyuu/gui/data/ImportQmtToH5Task.py +209 -0
  273. hikyuu/gui/data/ImportTdxToH5Task.py +130 -0
  274. hikyuu/gui/data/ImportWeightToSqliteTask.py +128 -0
  275. hikyuu/gui/data/ImportZhBond10Task.py +59 -0
  276. hikyuu/gui/data/MainWindow.py +1003 -0
  277. hikyuu/gui/data/SchedImportThread.py +62 -0
  278. hikyuu/gui/data/UsePytdxImportToH5Thread.py +394 -0
  279. hikyuu/gui/data/UseQmtImportToH5Thread.py +317 -0
  280. hikyuu/gui/data/UseTdxImportToH5Thread.py +357 -0
  281. hikyuu/gui/data/__init__.py +1 -0
  282. hikyuu/gui/data/tool.py +43 -0
  283. hikyuu/gui/dataserver.py +33 -0
  284. hikyuu/gui/hikyuu.ico +0 -0
  285. hikyuu/gui/images/hikyuu_small.png +0 -0
  286. hikyuu/gui/images/star.png +0 -0
  287. hikyuu/gui/importdata.py +166 -0
  288. hikyuu/gui/spot_server.py +326 -0
  289. hikyuu/gui/start_huatai_insight.py +510 -0
  290. hikyuu/gui/start_qmt.py +139 -0
  291. hikyuu/hub.py +771 -0
  292. hikyuu/hub.pyi +295 -0
  293. hikyuu/include/__init__.py +1 -0
  294. hikyuu/include/hikyuu/Block.h +193 -0
  295. hikyuu/include/hikyuu/DataType.h +179 -0
  296. hikyuu/include/hikyuu/GlobalInitializer.h +46 -0
  297. hikyuu/include/hikyuu/HistoryFinanceInfo.h +35 -0
  298. hikyuu/include/hikyuu/KData.h +334 -0
  299. hikyuu/include/hikyuu/KDataImp.h +83 -0
  300. hikyuu/include/hikyuu/KDataPrivatedBufferImp.h +73 -0
  301. hikyuu/include/hikyuu/KDataSharedBufferImp.h +69 -0
  302. hikyuu/include/hikyuu/KQuery.h +289 -0
  303. hikyuu/include/hikyuu/KRecord.h +97 -0
  304. hikyuu/include/hikyuu/MarketInfo.h +138 -0
  305. hikyuu/include/hikyuu/Stock.h +376 -0
  306. hikyuu/include/hikyuu/StockManager.h +418 -0
  307. hikyuu/include/hikyuu/StockMapIterator.h +72 -0
  308. hikyuu/include/hikyuu/StockTypeInfo.h +133 -0
  309. hikyuu/include/hikyuu/StockWeight.h +148 -0
  310. hikyuu/include/hikyuu/StrategyContext.h +116 -0
  311. hikyuu/include/hikyuu/TimeLineRecord.h +71 -0
  312. hikyuu/include/hikyuu/TransRecord.h +73 -0
  313. hikyuu/include/hikyuu/ZhBond10.h +36 -0
  314. hikyuu/include/hikyuu/__init__.py +1 -0
  315. hikyuu/include/hikyuu/analysis/__init__.py +1 -0
  316. hikyuu/include/hikyuu/analysis/analysis_sys.h +76 -0
  317. hikyuu/include/hikyuu/analysis/combinate.h +115 -0
  318. hikyuu/include/hikyuu/config.h +51 -0
  319. hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +236 -0
  320. hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +108 -0
  321. hikyuu/include/hikyuu/data_driver/DataDriverFactory.h +58 -0
  322. hikyuu/include/hikyuu/data_driver/DriverConnectPool.h +146 -0
  323. hikyuu/include/hikyuu/data_driver/HistoryFinanceReader.h +36 -0
  324. hikyuu/include/hikyuu/data_driver/KDataDriver.h +199 -0
  325. hikyuu/include/hikyuu/data_driver/__init__.py +1 -0
  326. hikyuu/include/hikyuu/data_driver/base_info/__init__.py +1 -0
  327. hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +54 -0
  328. hikyuu/include/hikyuu/data_driver/base_info/mysql/__init__.py +1 -0
  329. hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +50 -0
  330. hikyuu/include/hikyuu/data_driver/base_info/sqlite/__init__.py +1 -0
  331. hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceFieldTable.h +19 -0
  332. hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceTable.h +23 -0
  333. hikyuu/include/hikyuu/data_driver/base_info/table/HolidayTable.h +29 -0
  334. hikyuu/include/hikyuu/data_driver/base_info/table/MarketInfoTable.h +127 -0
  335. hikyuu/include/hikyuu/data_driver/base_info/table/StockTable.h +64 -0
  336. hikyuu/include/hikyuu/data_driver/base_info/table/StockTypeInfoTable.h +108 -0
  337. hikyuu/include/hikyuu/data_driver/base_info/table/StockWeightTable.h +52 -0
  338. hikyuu/include/hikyuu/data_driver/base_info/table/ZhBond10Table.h +20 -0
  339. hikyuu/include/hikyuu/data_driver/base_info/table/__init__.py +1 -0
  340. hikyuu/include/hikyuu/data_driver/block_info/__init__.py +1 -0
  341. hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +36 -0
  342. hikyuu/include/hikyuu/data_driver/block_info/mysql/__init__.py +1 -0
  343. hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +31 -0
  344. hikyuu/include/hikyuu/data_driver/block_info/qianlong/__init__.py +1 -0
  345. hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +36 -0
  346. hikyuu/include/hikyuu/data_driver/block_info/sqlite/__init__.py +1 -0
  347. hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +33 -0
  348. hikyuu/include/hikyuu/data_driver/kdata/__init__.py +1 -0
  349. hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +106 -0
  350. hikyuu/include/hikyuu/data_driver/kdata/cvs/__init__.py +1 -0
  351. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +89 -0
  352. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5Record.h +50 -0
  353. hikyuu/include/hikyuu/data_driver/kdata/hdf5/__init__.py +1 -0
  354. hikyuu/include/hikyuu/data_driver/kdata/mysql/KRecordTable.h +164 -0
  355. hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +78 -0
  356. hikyuu/include/hikyuu/data_driver/kdata/mysql/__init__.py +1 -0
  357. hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +62 -0
  358. hikyuu/include/hikyuu/data_driver/kdata/sqlite/__init__.py +1 -0
  359. hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +63 -0
  360. hikyuu/include/hikyuu/data_driver/kdata/tdx/__init__.py +1 -0
  361. hikyuu/include/hikyuu/debug.h +32 -0
  362. hikyuu/include/hikyuu/doc.h +170 -0
  363. hikyuu/include/hikyuu/global/GlobalSpotAgent.h +41 -0
  364. hikyuu/include/hikyuu/global/SpotRecord.h +36 -0
  365. hikyuu/include/hikyuu/global/__init__.py +1 -0
  366. hikyuu/include/hikyuu/global/agent/SpotAgent.h +148 -0
  367. hikyuu/include/hikyuu/global/agent/__init__.py +1 -0
  368. hikyuu/include/hikyuu/global/agent/spot_generated.h +343 -0
  369. hikyuu/include/hikyuu/global/schedule/__init__.py +1 -0
  370. hikyuu/include/hikyuu/global/schedule/inner_tasks.h +16 -0
  371. hikyuu/include/hikyuu/global/schedule/scheduler.h +24 -0
  372. hikyuu/include/hikyuu/global/sysinfo.h +67 -0
  373. hikyuu/include/hikyuu/hikyuu.h +55 -0
  374. hikyuu/include/hikyuu/indicator/IndParam.h +39 -0
  375. hikyuu/include/hikyuu/indicator/Indicator.h +487 -0
  376. hikyuu/include/hikyuu/indicator/Indicator2InImp.h +75 -0
  377. hikyuu/include/hikyuu/indicator/IndicatorImp.h +490 -0
  378. hikyuu/include/hikyuu/indicator/__init__.py +1 -0
  379. hikyuu/include/hikyuu/indicator/build_in.h +133 -0
  380. hikyuu/include/hikyuu/indicator/crt/ABS.h +34 -0
  381. hikyuu/include/hikyuu/indicator/crt/ACOS.h +36 -0
  382. hikyuu/include/hikyuu/indicator/crt/AD.h +28 -0
  383. hikyuu/include/hikyuu/indicator/crt/ADVANCE.h +34 -0
  384. hikyuu/include/hikyuu/indicator/crt/ALIGN.h +42 -0
  385. hikyuu/include/hikyuu/indicator/crt/AMA.h +114 -0
  386. hikyuu/include/hikyuu/indicator/crt/ASIN.h +36 -0
  387. hikyuu/include/hikyuu/indicator/crt/ATAN.h +36 -0
  388. hikyuu/include/hikyuu/indicator/crt/ATR.h +33 -0
  389. hikyuu/include/hikyuu/indicator/crt/AVEDEV.h +45 -0
  390. hikyuu/include/hikyuu/indicator/crt/BACKSET.h +44 -0
  391. hikyuu/include/hikyuu/indicator/crt/BARSCOUNT.h +37 -0
  392. hikyuu/include/hikyuu/indicator/crt/BARSLAST.h +41 -0
  393. hikyuu/include/hikyuu/indicator/crt/BARSLASTCOUNT.h +33 -0
  394. hikyuu/include/hikyuu/indicator/crt/BARSSINCE.h +53 -0
  395. hikyuu/include/hikyuu/indicator/crt/BETWEEN.h +85 -0
  396. hikyuu/include/hikyuu/indicator/crt/BLOCKSETNUM.h +23 -0
  397. hikyuu/include/hikyuu/indicator/crt/CEILING.h +38 -0
  398. hikyuu/include/hikyuu/indicator/crt/CONTEXT.h +36 -0
  399. hikyuu/include/hikyuu/indicator/crt/CORR.h +26 -0
  400. hikyuu/include/hikyuu/indicator/crt/COS.h +36 -0
  401. hikyuu/include/hikyuu/indicator/crt/COST.h +37 -0
  402. hikyuu/include/hikyuu/indicator/crt/COUNT.h +54 -0
  403. hikyuu/include/hikyuu/indicator/crt/CROSS.h +48 -0
  404. hikyuu/include/hikyuu/indicator/crt/CVAL.h +35 -0
  405. hikyuu/include/hikyuu/indicator/crt/CYCLE.h +27 -0
  406. hikyuu/include/hikyuu/indicator/crt/DECLINE.h +34 -0
  407. hikyuu/include/hikyuu/indicator/crt/DEVSQ.h +40 -0
  408. hikyuu/include/hikyuu/indicator/crt/DIFF.h +31 -0
  409. hikyuu/include/hikyuu/indicator/crt/DISCARD.h +27 -0
  410. hikyuu/include/hikyuu/indicator/crt/DMA.h +35 -0
  411. hikyuu/include/hikyuu/indicator/crt/DOWNNDAY.h +43 -0
  412. hikyuu/include/hikyuu/indicator/crt/DROPNA.h +31 -0
  413. hikyuu/include/hikyuu/indicator/crt/EMA.h +44 -0
  414. hikyuu/include/hikyuu/indicator/crt/EVERY.h +44 -0
  415. hikyuu/include/hikyuu/indicator/crt/EXIST.h +44 -0
  416. hikyuu/include/hikyuu/indicator/crt/EXP.h +34 -0
  417. hikyuu/include/hikyuu/indicator/crt/FILTER.h +44 -0
  418. hikyuu/include/hikyuu/indicator/crt/FINANCE.h +20 -0
  419. hikyuu/include/hikyuu/indicator/crt/FLOOR.h +38 -0
  420. hikyuu/include/hikyuu/indicator/crt/HHV.h +44 -0
  421. hikyuu/include/hikyuu/indicator/crt/HHVBARS.h +44 -0
  422. hikyuu/include/hikyuu/indicator/crt/HSL.h +27 -0
  423. hikyuu/include/hikyuu/indicator/crt/IC.h +49 -0
  424. hikyuu/include/hikyuu/indicator/crt/ICIR.h +55 -0
  425. hikyuu/include/hikyuu/indicator/crt/INBLOCK.h +31 -0
  426. hikyuu/include/hikyuu/indicator/crt/INDEX.h +60 -0
  427. hikyuu/include/hikyuu/indicator/crt/INSUM.h +33 -0
  428. hikyuu/include/hikyuu/indicator/crt/INTPART.h +38 -0
  429. hikyuu/include/hikyuu/indicator/crt/IR.h +44 -0
  430. hikyuu/include/hikyuu/indicator/crt/ISINF.h +28 -0
  431. hikyuu/include/hikyuu/indicator/crt/ISINFA.h +28 -0
  432. hikyuu/include/hikyuu/indicator/crt/ISLASTBAR.h +30 -0
  433. hikyuu/include/hikyuu/indicator/crt/ISNA.h +29 -0
  434. hikyuu/include/hikyuu/indicator/crt/JUMPDOWN.h +24 -0
  435. hikyuu/include/hikyuu/indicator/crt/JUMPUP.h +24 -0
  436. hikyuu/include/hikyuu/indicator/crt/KALMAN.h +30 -0
  437. hikyuu/include/hikyuu/indicator/crt/KDATA.h +72 -0
  438. hikyuu/include/hikyuu/indicator/crt/LAST.h +100 -0
  439. hikyuu/include/hikyuu/indicator/crt/LASTVALUE.h +29 -0
  440. hikyuu/include/hikyuu/indicator/crt/LIUTONGPAN.h +24 -0
  441. hikyuu/include/hikyuu/indicator/crt/LLV.h +46 -0
  442. hikyuu/include/hikyuu/indicator/crt/LLVBARS.h +44 -0
  443. hikyuu/include/hikyuu/indicator/crt/LN.h +36 -0
  444. hikyuu/include/hikyuu/indicator/crt/LOG.h +35 -0
  445. hikyuu/include/hikyuu/indicator/crt/LONGCROSS.h +68 -0
  446. hikyuu/include/hikyuu/indicator/crt/MA.h +44 -0
  447. hikyuu/include/hikyuu/indicator/crt/MACD.h +62 -0
  448. hikyuu/include/hikyuu/indicator/crt/MAX.h +45 -0
  449. hikyuu/include/hikyuu/indicator/crt/MDD.h +29 -0
  450. hikyuu/include/hikyuu/indicator/crt/MIN.h +45 -0
  451. hikyuu/include/hikyuu/indicator/crt/MOD.h +49 -0
  452. hikyuu/include/hikyuu/indicator/crt/MRR.h +29 -0
  453. hikyuu/include/hikyuu/indicator/crt/NDAY.h +43 -0
  454. hikyuu/include/hikyuu/indicator/crt/NOT.h +35 -0
  455. hikyuu/include/hikyuu/indicator/crt/POS.h +21 -0
  456. hikyuu/include/hikyuu/indicator/crt/POW.h +48 -0
  457. hikyuu/include/hikyuu/indicator/crt/PRICELIST.h +47 -0
  458. hikyuu/include/hikyuu/indicator/crt/RECOVER.h +45 -0
  459. hikyuu/include/hikyuu/indicator/crt/REF.h +48 -0
  460. hikyuu/include/hikyuu/indicator/crt/REFX.h +25 -0
  461. hikyuu/include/hikyuu/indicator/crt/REPLACE.h +29 -0
  462. hikyuu/include/hikyuu/indicator/crt/RESULT.h +20 -0
  463. hikyuu/include/hikyuu/indicator/crt/REVERSE.h +36 -0
  464. hikyuu/include/hikyuu/indicator/crt/ROC.h +39 -0
  465. hikyuu/include/hikyuu/indicator/crt/ROCP.h +39 -0
  466. hikyuu/include/hikyuu/indicator/crt/ROCR.h +39 -0
  467. hikyuu/include/hikyuu/indicator/crt/ROCR100.h +39 -0
  468. hikyuu/include/hikyuu/indicator/crt/ROUND.h +36 -0
  469. hikyuu/include/hikyuu/indicator/crt/ROUNDDOWN.h +36 -0
  470. hikyuu/include/hikyuu/indicator/crt/ROUNDUP.h +36 -0
  471. hikyuu/include/hikyuu/indicator/crt/RSI.h +27 -0
  472. hikyuu/include/hikyuu/indicator/crt/SAFTYLOSS.h +79 -0
  473. hikyuu/include/hikyuu/indicator/crt/SGN.h +34 -0
  474. hikyuu/include/hikyuu/indicator/crt/SIN.h +36 -0
  475. hikyuu/include/hikyuu/indicator/crt/SLICE.h +44 -0
  476. hikyuu/include/hikyuu/indicator/crt/SLOPE.h +44 -0
  477. hikyuu/include/hikyuu/indicator/crt/SMA.h +72 -0
  478. hikyuu/include/hikyuu/indicator/crt/SPEARMAN.h +25 -0
  479. hikyuu/include/hikyuu/indicator/crt/SQRT.h +41 -0
  480. hikyuu/include/hikyuu/indicator/crt/STDEV.h +44 -0
  481. hikyuu/include/hikyuu/indicator/crt/STDP.h +38 -0
  482. hikyuu/include/hikyuu/indicator/crt/SUM.h +44 -0
  483. hikyuu/include/hikyuu/indicator/crt/SUMBARS.h +44 -0
  484. hikyuu/include/hikyuu/indicator/crt/TAN.h +36 -0
  485. hikyuu/include/hikyuu/indicator/crt/TIME.h +69 -0
  486. hikyuu/include/hikyuu/indicator/crt/TIMELINE.h +23 -0
  487. hikyuu/include/hikyuu/indicator/crt/TIMELINEVOL.h +21 -0
  488. hikyuu/include/hikyuu/indicator/crt/TR.h +32 -0
  489. hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +21 -0
  490. hikyuu/include/hikyuu/indicator/crt/UPNDAY.h +43 -0
  491. hikyuu/include/hikyuu/indicator/crt/VAR.h +40 -0
  492. hikyuu/include/hikyuu/indicator/crt/VARP.h +40 -0
  493. hikyuu/include/hikyuu/indicator/crt/VIGOR.h +34 -0
  494. hikyuu/include/hikyuu/indicator/crt/WINNER.h +38 -0
  495. hikyuu/include/hikyuu/indicator/crt/WMA.h +46 -0
  496. hikyuu/include/hikyuu/indicator/crt/ZHBOND10.h +27 -0
  497. hikyuu/include/hikyuu/indicator/crt/ZONGGUBEN.h +17 -0
  498. hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +30 -0
  499. hikyuu/include/hikyuu/indicator/crt/__init__.py +1 -0
  500. hikyuu/include/hikyuu/indicator/imp/IAbs.h +26 -0
  501. hikyuu/include/hikyuu/indicator/imp/IAcos.h +28 -0
  502. hikyuu/include/hikyuu/indicator/imp/IAd.h +30 -0
  503. hikyuu/include/hikyuu/indicator/imp/IAdvance.h +29 -0
  504. hikyuu/include/hikyuu/indicator/imp/IAlign.h +28 -0
  505. hikyuu/include/hikyuu/indicator/imp/IAma.h +38 -0
  506. hikyuu/include/hikyuu/indicator/imp/IAsin.h +28 -0
  507. hikyuu/include/hikyuu/indicator/imp/IAtan.h +28 -0
  508. hikyuu/include/hikyuu/indicator/imp/IAtr.h +30 -0
  509. hikyuu/include/hikyuu/indicator/imp/IBackset.h +33 -0
  510. hikyuu/include/hikyuu/indicator/imp/IBarsCount.h +28 -0
  511. hikyuu/include/hikyuu/indicator/imp/IBarsLast.h +28 -0
  512. hikyuu/include/hikyuu/indicator/imp/IBarsLastCount.h +27 -0
  513. hikyuu/include/hikyuu/indicator/imp/IBarsSince.h +34 -0
  514. hikyuu/include/hikyuu/indicator/imp/IBlockSetNum.h +28 -0
  515. hikyuu/include/hikyuu/indicator/imp/ICeil.h +31 -0
  516. hikyuu/include/hikyuu/indicator/imp/IContext.h +49 -0
  517. hikyuu/include/hikyuu/indicator/imp/ICorr.h +26 -0
  518. hikyuu/include/hikyuu/indicator/imp/ICos.h +28 -0
  519. hikyuu/include/hikyuu/indicator/imp/ICost.h +31 -0
  520. hikyuu/include/hikyuu/indicator/imp/ICount.h +32 -0
  521. hikyuu/include/hikyuu/indicator/imp/ICval.h +35 -0
  522. hikyuu/include/hikyuu/indicator/imp/ICycle.h +30 -0
  523. hikyuu/include/hikyuu/indicator/imp/IDecline.h +29 -0
  524. hikyuu/include/hikyuu/indicator/imp/IDevsq.h +29 -0
  525. hikyuu/include/hikyuu/indicator/imp/IDiff.h +29 -0
  526. hikyuu/include/hikyuu/indicator/imp/IDiscard.h +28 -0
  527. hikyuu/include/hikyuu/indicator/imp/IDma.h +30 -0
  528. hikyuu/include/hikyuu/indicator/imp/IDropna.h +37 -0
  529. hikyuu/include/hikyuu/indicator/imp/IEma.h +29 -0
  530. hikyuu/include/hikyuu/indicator/imp/IEvery.h +32 -0
  531. hikyuu/include/hikyuu/indicator/imp/IExist.h +32 -0
  532. hikyuu/include/hikyuu/indicator/imp/IExp.h +28 -0
  533. hikyuu/include/hikyuu/indicator/imp/IFilter.h +34 -0
  534. hikyuu/include/hikyuu/indicator/imp/IFinance.h +25 -0
  535. hikyuu/include/hikyuu/indicator/imp/IFloor.h +31 -0
  536. hikyuu/include/hikyuu/indicator/imp/IHhvbars.h +29 -0
  537. hikyuu/include/hikyuu/indicator/imp/IHighLine.h +34 -0
  538. hikyuu/include/hikyuu/indicator/imp/IHsl.h +30 -0
  539. hikyuu/include/hikyuu/indicator/imp/IIc.h +46 -0
  540. hikyuu/include/hikyuu/indicator/imp/IInBlock.h +30 -0
  541. hikyuu/include/hikyuu/indicator/imp/IInSum.h +28 -0
  542. hikyuu/include/hikyuu/indicator/imp/IIndex.h +26 -0
  543. hikyuu/include/hikyuu/indicator/imp/IIntpart.h +31 -0
  544. hikyuu/include/hikyuu/indicator/imp/IIsInf.h +26 -0
  545. hikyuu/include/hikyuu/indicator/imp/IIsInfa.h +26 -0
  546. hikyuu/include/hikyuu/indicator/imp/IIsLastBar.h +27 -0
  547. hikyuu/include/hikyuu/indicator/imp/IIsNa.h +26 -0
  548. hikyuu/include/hikyuu/indicator/imp/IJumpDown.h +24 -0
  549. hikyuu/include/hikyuu/indicator/imp/IJumpUp.h +24 -0
  550. hikyuu/include/hikyuu/indicator/imp/IKData.h +29 -0
  551. hikyuu/include/hikyuu/indicator/imp/IKalman.h +27 -0
  552. hikyuu/include/hikyuu/indicator/imp/ILastValue.h +26 -0
  553. hikyuu/include/hikyuu/indicator/imp/ILiuTongPan.h +29 -0
  554. hikyuu/include/hikyuu/indicator/imp/ILn.h +28 -0
  555. hikyuu/include/hikyuu/indicator/imp/ILog.h +28 -0
  556. hikyuu/include/hikyuu/indicator/imp/ILowLine.h +30 -0
  557. hikyuu/include/hikyuu/indicator/imp/ILowLineBars.h +29 -0
  558. hikyuu/include/hikyuu/indicator/imp/IMa.h +27 -0
  559. hikyuu/include/hikyuu/indicator/imp/IMacd.h +41 -0
  560. hikyuu/include/hikyuu/indicator/imp/IMdd.h +23 -0
  561. hikyuu/include/hikyuu/indicator/imp/IMrr.h +23 -0
  562. hikyuu/include/hikyuu/indicator/imp/INot.h +26 -0
  563. hikyuu/include/hikyuu/indicator/imp/IPow.h +32 -0
  564. hikyuu/include/hikyuu/indicator/imp/IPriceList.h +30 -0
  565. hikyuu/include/hikyuu/indicator/imp/IRecover.h +29 -0
  566. hikyuu/include/hikyuu/indicator/imp/IRef.h +34 -0
  567. hikyuu/include/hikyuu/indicator/imp/IRefX.h +23 -0
  568. hikyuu/include/hikyuu/indicator/imp/IReplace.h +26 -0
  569. hikyuu/include/hikyuu/indicator/imp/IResult.h +26 -0
  570. hikyuu/include/hikyuu/indicator/imp/IReverse.h +28 -0
  571. hikyuu/include/hikyuu/indicator/imp/IRoc.h +29 -0
  572. hikyuu/include/hikyuu/indicator/imp/IRocp.h +29 -0
  573. hikyuu/include/hikyuu/indicator/imp/IRocr.h +29 -0
  574. hikyuu/include/hikyuu/indicator/imp/IRocr100.h +29 -0
  575. hikyuu/include/hikyuu/indicator/imp/IRound.h +32 -0
  576. hikyuu/include/hikyuu/indicator/imp/IRoundDown.h +32 -0
  577. hikyuu/include/hikyuu/indicator/imp/IRoundUp.h +32 -0
  578. hikyuu/include/hikyuu/indicator/imp/ISaftyLoss.h +44 -0
  579. hikyuu/include/hikyuu/indicator/imp/ISign.h +28 -0
  580. hikyuu/include/hikyuu/indicator/imp/ISin.h +28 -0
  581. hikyuu/include/hikyuu/indicator/imp/ISlice.h +25 -0
  582. hikyuu/include/hikyuu/indicator/imp/ISlope.h +25 -0
  583. hikyuu/include/hikyuu/indicator/imp/ISma.h +34 -0
  584. hikyuu/include/hikyuu/indicator/imp/ISpearman.h +26 -0
  585. hikyuu/include/hikyuu/indicator/imp/ISqrt.h +31 -0
  586. hikyuu/include/hikyuu/indicator/imp/IStdev.h +31 -0
  587. hikyuu/include/hikyuu/indicator/imp/IStdp.h +33 -0
  588. hikyuu/include/hikyuu/indicator/imp/ISum.h +27 -0
  589. hikyuu/include/hikyuu/indicator/imp/ISumBars.h +30 -0
  590. hikyuu/include/hikyuu/indicator/imp/ITan.h +28 -0
  591. hikyuu/include/hikyuu/indicator/imp/ITime.h +33 -0
  592. hikyuu/include/hikyuu/indicator/imp/ITimeLine.h +32 -0
  593. hikyuu/include/hikyuu/indicator/imp/ITr.h +35 -0
  594. hikyuu/include/hikyuu/indicator/imp/IVar.h +32 -0
  595. hikyuu/include/hikyuu/indicator/imp/IVarp.h +32 -0
  596. hikyuu/include/hikyuu/indicator/imp/IVigor.h +35 -0
  597. hikyuu/include/hikyuu/indicator/imp/IWinner.h +26 -0
  598. hikyuu/include/hikyuu/indicator/imp/IWma.h +30 -0
  599. hikyuu/include/hikyuu/indicator/imp/IZScore.h +25 -0
  600. hikyuu/include/hikyuu/indicator/imp/IZhBond10.h +30 -0
  601. hikyuu/include/hikyuu/indicator/imp/IZongGuBen.h +25 -0
  602. hikyuu/include/hikyuu/indicator/imp/__init__.py +1 -0
  603. hikyuu/include/hikyuu/indicator_talib/__init__.py +1 -0
  604. hikyuu/include/hikyuu/indicator_talib/imp/TaAdosc.h +26 -0
  605. hikyuu/include/hikyuu/indicator_talib/imp/TaApo.h +24 -0
  606. hikyuu/include/hikyuu/indicator_talib/imp/TaBbands.h +24 -0
  607. hikyuu/include/hikyuu/indicator_talib/imp/TaMa.h +24 -0
  608. hikyuu/include/hikyuu/indicator_talib/imp/TaMacd.h +24 -0
  609. hikyuu/include/hikyuu/indicator_talib/imp/TaMacdext.h +24 -0
  610. hikyuu/include/hikyuu/indicator_talib/imp/TaMama.h +24 -0
  611. hikyuu/include/hikyuu/indicator_talib/imp/TaMavp.h +27 -0
  612. hikyuu/include/hikyuu/indicator_talib/imp/TaPpo.h +24 -0
  613. hikyuu/include/hikyuu/indicator_talib/imp/TaSar.h +26 -0
  614. hikyuu/include/hikyuu/indicator_talib/imp/TaSarext.h +31 -0
  615. hikyuu/include/hikyuu/indicator_talib/imp/TaStddev.h +24 -0
  616. hikyuu/include/hikyuu/indicator_talib/imp/TaStoch.h +27 -0
  617. hikyuu/include/hikyuu/indicator_talib/imp/TaStochf.h +26 -0
  618. hikyuu/include/hikyuu/indicator_talib/imp/TaStochrsi.h +24 -0
  619. hikyuu/include/hikyuu/indicator_talib/imp/TaT3.h +24 -0
  620. hikyuu/include/hikyuu/indicator_talib/imp/TaUltosc.h +26 -0
  621. hikyuu/include/hikyuu/indicator_talib/imp/TaVar.h +24 -0
  622. hikyuu/include/hikyuu/indicator_talib/imp/__init__.py +1 -0
  623. hikyuu/include/hikyuu/indicator_talib/imp/ta_defines.h +237 -0
  624. hikyuu/include/hikyuu/indicator_talib/imp/ta_imp.h +1328 -0
  625. hikyuu/include/hikyuu/indicator_talib/ta_crt.h +322 -0
  626. hikyuu/include/hikyuu/lang.h +27 -0
  627. hikyuu/include/hikyuu/plugin/KDataToHdf5Importer.h +41 -0
  628. hikyuu/include/hikyuu/plugin/__init__.py +1 -0
  629. hikyuu/include/hikyuu/plugin/backtest.h +40 -0
  630. hikyuu/include/hikyuu/plugin/dataserver.h +43 -0
  631. hikyuu/include/hikyuu/plugin/device.h +33 -0
  632. hikyuu/include/hikyuu/plugin/extind.h +195 -0
  633. hikyuu/include/hikyuu/plugin/hkuextra.h +77 -0
  634. hikyuu/include/hikyuu/plugin/interface/BackTestPluginInterface.h +27 -0
  635. hikyuu/include/hikyuu/plugin/interface/DataDriverPluginInterface.h +27 -0
  636. hikyuu/include/hikyuu/plugin/interface/DataServerPluginInterface.h +24 -0
  637. hikyuu/include/hikyuu/plugin/interface/DevicePluginInterface.h +26 -0
  638. hikyuu/include/hikyuu/plugin/interface/ExtendIndicatorsPluginInterface.h +26 -0
  639. hikyuu/include/hikyuu/plugin/interface/HkuExtraPluginInterface.h +54 -0
  640. hikyuu/include/hikyuu/plugin/interface/ImportKDataToHdf5PluginInterface.h +45 -0
  641. hikyuu/include/hikyuu/plugin/interface/TMReportPluginInterface.h +81 -0
  642. hikyuu/include/hikyuu/plugin/interface/__init__.py +1 -0
  643. hikyuu/include/hikyuu/plugin/interface/plugins.h +30 -0
  644. hikyuu/include/hikyuu/python/__init__.py +1 -0
  645. hikyuu/include/hikyuu/python/convert_any.h +299 -0
  646. hikyuu/include/hikyuu/python/pickle_support.h +90 -0
  647. hikyuu/include/hikyuu/python/pybind_utils.h +128 -0
  648. hikyuu/include/hikyuu/serialization/Block_serialization.h +55 -0
  649. hikyuu/include/hikyuu/serialization/Datetime_serialization.h +40 -0
  650. hikyuu/include/hikyuu/serialization/KData_serialization.h +45 -0
  651. hikyuu/include/hikyuu/serialization/KQuery_serialization.h +79 -0
  652. hikyuu/include/hikyuu/serialization/KRecord_serialization.h +50 -0
  653. hikyuu/include/hikyuu/serialization/MarketInfo_serialization.h +68 -0
  654. hikyuu/include/hikyuu/serialization/PriceList_serialization.h +66 -0
  655. hikyuu/include/hikyuu/serialization/StockTypeInfo_serialization.h +62 -0
  656. hikyuu/include/hikyuu/serialization/StockWeight_serialization.h +65 -0
  657. hikyuu/include/hikyuu/serialization/Stock_serialization.h +47 -0
  658. hikyuu/include/hikyuu/serialization/TimeDelta_serialization.h +44 -0
  659. hikyuu/include/hikyuu/serialization/TimeLineRecord_serialization.h +42 -0
  660. hikyuu/include/hikyuu/serialization/TransRecord_serialization.h +44 -0
  661. hikyuu/include/hikyuu/serialization/__init__.py +1 -0
  662. hikyuu/include/hikyuu/serialization/all.h +26 -0
  663. hikyuu/include/hikyuu/strategy/BrokerTradeManager.h +436 -0
  664. hikyuu/include/hikyuu/strategy/RunPortfolioInStrategy.h +37 -0
  665. hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +38 -0
  666. hikyuu/include/hikyuu/strategy/Strategy.h +271 -0
  667. hikyuu/include/hikyuu/strategy/__init__.py +1 -0
  668. hikyuu/include/hikyuu/trade_manage/BorrowRecord.h +91 -0
  669. hikyuu/include/hikyuu/trade_manage/CostRecord.h +67 -0
  670. hikyuu/include/hikyuu/trade_manage/FundsRecord.h +110 -0
  671. hikyuu/include/hikyuu/trade_manage/LoanRecord.h +64 -0
  672. hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h +214 -0
  673. hikyuu/include/hikyuu/trade_manage/Performance.h +87 -0
  674. hikyuu/include/hikyuu/trade_manage/PositionExtInfo.h +92 -0
  675. hikyuu/include/hikyuu/trade_manage/PositionRecord.h +120 -0
  676. hikyuu/include/hikyuu/trade_manage/TradeCostBase.h +179 -0
  677. hikyuu/include/hikyuu/trade_manage/TradeManager.h +494 -0
  678. hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +850 -0
  679. hikyuu/include/hikyuu/trade_manage/TradeRecord.h +163 -0
  680. hikyuu/include/hikyuu/trade_manage/__init__.py +1 -0
  681. hikyuu/include/hikyuu/trade_manage/build_in.h +19 -0
  682. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA.h +45 -0
  683. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2015.h +43 -0
  684. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2017.h +44 -0
  685. hikyuu/include/hikyuu/trade_manage/crt/TC_TestStub.h +21 -0
  686. hikyuu/include/hikyuu/trade_manage/crt/TC_Zero.h +25 -0
  687. hikyuu/include/hikyuu/trade_manage/crt/__init__.py +1 -0
  688. hikyuu/include/hikyuu/trade_manage/crt/crtTM.h +33 -0
  689. hikyuu/include/hikyuu/trade_manage/imp/FixedA2015TradeCost.h +53 -0
  690. hikyuu/include/hikyuu/trade_manage/imp/FixedA2017TradeCost.h +56 -0
  691. hikyuu/include/hikyuu/trade_manage/imp/FixedATradeCost.h +88 -0
  692. hikyuu/include/hikyuu/trade_manage/imp/TradeCostStub.h +48 -0
  693. hikyuu/include/hikyuu/trade_manage/imp/ZeroTradeCost.h +50 -0
  694. hikyuu/include/hikyuu/trade_manage/imp/__init__.py +1 -0
  695. hikyuu/include/hikyuu/trade_sys/__init__.py +1 -0
  696. hikyuu/include/hikyuu/trade_sys/all.h +24 -0
  697. hikyuu/include/hikyuu/trade_sys/allocatefunds/AllocateFundsBase.h +234 -0
  698. hikyuu/include/hikyuu/trade_sys/allocatefunds/__init__.py +1 -0
  699. hikyuu/include/hikyuu/trade_sys/allocatefunds/build_in.h +17 -0
  700. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_EqualWeight.h +25 -0
  701. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_FixedWeight.h +26 -0
  702. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_FixedWeightList.h +22 -0
  703. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_MultiFactor.h +21 -0
  704. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/__init__.py +1 -0
  705. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/EqualWeightAllocateFunds.h +27 -0
  706. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/FixedWeightAllocateFunds.h +28 -0
  707. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/FixedWeightListAllocateFunds.h +25 -0
  708. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/MultiFactorAllocaterFunds.h +26 -0
  709. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/__init__.py +1 -0
  710. hikyuu/include/hikyuu/trade_sys/condition/ConditionBase.h +249 -0
  711. hikyuu/include/hikyuu/trade_sys/condition/__init__.py +1 -0
  712. hikyuu/include/hikyuu/trade_sys/condition/build_in.h +17 -0
  713. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Bool.h +22 -0
  714. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Logic.h +35 -0
  715. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Manual.h +20 -0
  716. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_OPLine.h +26 -0
  717. hikyuu/include/hikyuu/trade_sys/condition/crt/__init__.py +1 -0
  718. hikyuu/include/hikyuu/trade_sys/condition/imp/BoolCondition.h +40 -0
  719. hikyuu/include/hikyuu/trade_sys/condition/imp/ManualCondition.h +23 -0
  720. hikyuu/include/hikyuu/trade_sys/condition/imp/OPLineCondition.h +44 -0
  721. hikyuu/include/hikyuu/trade_sys/condition/imp/__init__.py +1 -0
  722. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AddCondition.h +42 -0
  723. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AndCondition.h +42 -0
  724. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/DivCondition.h +42 -0
  725. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/MultiCondition.h +42 -0
  726. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/OrCondition.h +42 -0
  727. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/SubCondition.h +42 -0
  728. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/__init__.py +1 -0
  729. hikyuu/include/hikyuu/trade_sys/environment/EnvironmentBase.h +197 -0
  730. hikyuu/include/hikyuu/trade_sys/environment/__init__.py +1 -0
  731. hikyuu/include/hikyuu/trade_sys/environment/build_in.h +17 -0
  732. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Bool.h +23 -0
  733. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Logic.h +35 -0
  734. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Manual.h +20 -0
  735. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_TwoLine.h +28 -0
  736. hikyuu/include/hikyuu/trade_sys/environment/crt/__init__.py +1 -0
  737. hikyuu/include/hikyuu/trade_sys/environment/imp/BoolEnvironment.h +41 -0
  738. hikyuu/include/hikyuu/trade_sys/environment/imp/ManualEnvironment.h +23 -0
  739. hikyuu/include/hikyuu/trade_sys/environment/imp/TwoLineEnvironment.h +47 -0
  740. hikyuu/include/hikyuu/trade_sys/environment/imp/__init__.py +1 -0
  741. hikyuu/include/hikyuu/trade_sys/environment/imp/logic/AddEnvironment.h +42 -0
  742. hikyuu/include/hikyuu/trade_sys/environment/imp/logic/AndEnvironment.h +42 -0
  743. hikyuu/include/hikyuu/trade_sys/environment/imp/logic/DivEnvironment.h +42 -0
  744. hikyuu/include/hikyuu/trade_sys/environment/imp/logic/MultiEnvironment.h +42 -0
  745. hikyuu/include/hikyuu/trade_sys/environment/imp/logic/OrEnvironment.h +42 -0
  746. hikyuu/include/hikyuu/trade_sys/environment/imp/logic/SubEnvironment.h +42 -0
  747. hikyuu/include/hikyuu/trade_sys/environment/imp/logic/__init__.py +1 -0
  748. hikyuu/include/hikyuu/trade_sys/moneymanager/MoneyManagerBase.h +248 -0
  749. hikyuu/include/hikyuu/trade_sys/moneymanager/__init__.py +1 -0
  750. hikyuu/include/hikyuu/trade_sys/moneymanager/build_in.h +22 -0
  751. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCapital.h +26 -0
  752. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCapitalFunds.h +26 -0
  753. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCount.h +28 -0
  754. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCountTps.h +27 -0
  755. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedPercent.h +27 -0
  756. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedRisk.h +26 -0
  757. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedUnits.h +26 -0
  758. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_Nothing.h +24 -0
  759. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_WilliamsFixedRisk.h +27 -0
  760. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/__init__.py +1 -0
  761. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalFundsMM.h +28 -0
  762. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalMoneyManager.h +28 -0
  763. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCountMoneyManager.h +38 -0
  764. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCountTpsMM.h +44 -0
  765. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedPercentMoneyManager.h +34 -0
  766. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedRiskMoneyManager.h +28 -0
  767. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedUnitsMoneyManager.h +28 -0
  768. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/NotMoneyManager.h +30 -0
  769. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/WilliamsFixedRiskMoneyManager.h +28 -0
  770. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/__init__.py +1 -0
  771. hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +281 -0
  772. hikyuu/include/hikyuu/trade_sys/multifactor/ScoreRecord.h +51 -0
  773. hikyuu/include/hikyuu/trade_sys/multifactor/__init__.py +1 -0
  774. hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +13 -0
  775. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_EqualWeight.h +32 -0
  776. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICIRWeight.h +33 -0
  777. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICWeight.h +33 -0
  778. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_Weight.h +33 -0
  779. hikyuu/include/hikyuu/trade_sys/multifactor/crt/__init__.py +1 -0
  780. hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +26 -0
  781. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +28 -0
  782. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +28 -0
  783. hikyuu/include/hikyuu/trade_sys/multifactor/imp/WeightMultiFactor.h +41 -0
  784. hikyuu/include/hikyuu/trade_sys/multifactor/imp/__init__.py +1 -0
  785. hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +258 -0
  786. hikyuu/include/hikyuu/trade_sys/portfolio/__init__.py +1 -0
  787. hikyuu/include/hikyuu/trade_sys/portfolio/build_in.h +15 -0
  788. hikyuu/include/hikyuu/trade_sys/portfolio/crt/PF_Simple.h +47 -0
  789. hikyuu/include/hikyuu/trade_sys/portfolio/crt/PF_WithoutAF.h +50 -0
  790. hikyuu/include/hikyuu/trade_sys/portfolio/crt/__init__.py +1 -0
  791. hikyuu/include/hikyuu/trade_sys/portfolio/imp/SimplePortfolio.h +53 -0
  792. hikyuu/include/hikyuu/trade_sys/portfolio/imp/WithoutAFPortfolio.h +57 -0
  793. hikyuu/include/hikyuu/trade_sys/portfolio/imp/__init__.py +1 -0
  794. hikyuu/include/hikyuu/trade_sys/profitgoal/ProfitGoalBase.h +194 -0
  795. hikyuu/include/hikyuu/trade_sys/profitgoal/__init__.py +1 -0
  796. hikyuu/include/hikyuu/trade_sys/profitgoal/build_in.h +16 -0
  797. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedHoldDays.h +26 -0
  798. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedPercent.h +25 -0
  799. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_NoGoal.h +24 -0
  800. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/__init__.py +1 -0
  801. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedHoldDays.h +29 -0
  802. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedPercentProfitGoal.h +28 -0
  803. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/NoGoalProfitGoal.h +27 -0
  804. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/__init__.py +1 -0
  805. hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +251 -0
  806. hikyuu/include/hikyuu/trade_sys/selector/SystemWeight.h +70 -0
  807. hikyuu/include/hikyuu/trade_sys/selector/__init__.py +1 -0
  808. hikyuu/include/hikyuu/trade_sys/selector/build_in.h +18 -0
  809. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Fixed.h +38 -0
  810. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Logic.h +43 -0
  811. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor.h +40 -0
  812. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Optimal.h +34 -0
  813. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Signal.h +30 -0
  814. hikyuu/include/hikyuu/trade_sys/selector/crt/__init__.py +1 -0
  815. hikyuu/include/hikyuu/trade_sys/selector/imp/FixedSelector.h +28 -0
  816. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +59 -0
  817. hikyuu/include/hikyuu/trade_sys/selector/imp/SignalSelector.h +30 -0
  818. hikyuu/include/hikyuu/trade_sys/selector/imp/__init__.py +1 -0
  819. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddSelector.h +19 -0
  820. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddValueSelector.h +19 -0
  821. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivSelector.h +19 -0
  822. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivValueSelector.h +19 -0
  823. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertDivValueSelector.h +19 -0
  824. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertSubValueSelector.h +19 -0
  825. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulSelector.h +19 -0
  826. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulValueSelector.h +19 -0
  827. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +108 -0
  828. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubSelector.h +19 -0
  829. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubValueSelector.h +19 -0
  830. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +94 -0
  831. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/__init__.py +1 -0
  832. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/MaxFundsOptimalSelector.h +27 -0
  833. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/OptimalEvaluateSelector.h +28 -0
  834. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/OptimalSelectorBase.h +87 -0
  835. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/PerformanceOptimalSelector.h +42 -0
  836. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/__init__.py +1 -0
  837. hikyuu/include/hikyuu/trade_sys/signal/SignalBase.h +294 -0
  838. hikyuu/include/hikyuu/trade_sys/signal/__init__.py +1 -0
  839. hikyuu/include/hikyuu/trade_sys/signal/build_in.h +24 -0
  840. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_AllwaysBuy.h +20 -0
  841. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Band.h +37 -0
  842. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Bool.h +29 -0
  843. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cross.h +28 -0
  844. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_CrossGold.h +29 -0
  845. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cycle.h +20 -0
  846. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Flex.h +29 -0
  847. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Logic.h +127 -0
  848. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Manual.h +20 -0
  849. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_OneSide.h +38 -0
  850. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Single.h +56 -0
  851. hikyuu/include/hikyuu/trade_sys/signal/crt/__init__.py +1 -0
  852. hikyuu/include/hikyuu/trade_sys/signal/imp/AllwaysBuySignal.h +25 -0
  853. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal.h +46 -0
  854. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +47 -0
  855. hikyuu/include/hikyuu/trade_sys/signal/imp/BoolSignal.h +46 -0
  856. hikyuu/include/hikyuu/trade_sys/signal/imp/CrossGoldSignal.h +46 -0
  857. hikyuu/include/hikyuu/trade_sys/signal/imp/CrossSignal.h +46 -0
  858. hikyuu/include/hikyuu/trade_sys/signal/imp/CycleSignal.h +25 -0
  859. hikyuu/include/hikyuu/trade_sys/signal/imp/ManualSignal.h +23 -0
  860. hikyuu/include/hikyuu/trade_sys/signal/imp/OneSideSignal.h +46 -0
  861. hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal.h +45 -0
  862. hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal2.h +45 -0
  863. hikyuu/include/hikyuu/trade_sys/signal/imp/__init__.py +1 -0
  864. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/AddSignal.h +19 -0
  865. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/AddValueSignal.h +19 -0
  866. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/AndSignal.h +19 -0
  867. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/DivSignal.h +19 -0
  868. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/DivValueSignal.h +22 -0
  869. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/MulSignal.h +19 -0
  870. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/MulValueSignal.h +19 -0
  871. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorSignal.h +70 -0
  872. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorValueSignal.h +68 -0
  873. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OrSignal.h +19 -0
  874. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/SubSignal.h +19 -0
  875. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/SubValueSignal.h +22 -0
  876. hikyuu/include/hikyuu/trade_sys/signal/imp/logic/__init__.py +1 -0
  877. hikyuu/include/hikyuu/trade_sys/slippage/SlippageBase.h +175 -0
  878. hikyuu/include/hikyuu/trade_sys/slippage/__init__.py +1 -0
  879. hikyuu/include/hikyuu/trade_sys/slippage/build_in.h +15 -0
  880. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedPercent.h +26 -0
  881. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedValue.h +26 -0
  882. hikyuu/include/hikyuu/trade_sys/slippage/crt/__init__.py +1 -0
  883. hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedPercentSlippage.h +28 -0
  884. hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedValueSlippage.h +28 -0
  885. hikyuu/include/hikyuu/trade_sys/slippage/imp/__init__.py +1 -0
  886. hikyuu/include/hikyuu/trade_sys/stoploss/StoplossBase.h +204 -0
  887. hikyuu/include/hikyuu/trade_sys/stoploss/__init__.py +1 -0
  888. hikyuu/include/hikyuu/trade_sys/stoploss/build_in.h +16 -0
  889. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_FixedPercent.h +25 -0
  890. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Indicator.h +21 -0
  891. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Saftyloss.h +37 -0
  892. hikyuu/include/hikyuu/trade_sys/stoploss/crt/__init__.py +1 -0
  893. hikyuu/include/hikyuu/trade_sys/stoploss/imp/FixedPercentStoploss.h +30 -0
  894. hikyuu/include/hikyuu/trade_sys/stoploss/imp/IndicatorStoploss.h +49 -0
  895. hikyuu/include/hikyuu/trade_sys/stoploss/imp/__init__.py +1 -0
  896. hikyuu/include/hikyuu/trade_sys/system/System.h +653 -0
  897. hikyuu/include/hikyuu/trade_sys/system/SystemPart.h +54 -0
  898. hikyuu/include/hikyuu/trade_sys/system/TradeRequest.h +97 -0
  899. hikyuu/include/hikyuu/trade_sys/system/__init__.py +1 -0
  900. hikyuu/include/hikyuu/trade_sys/system/build_in.h +15 -0
  901. hikyuu/include/hikyuu/trade_sys/system/crt/SYS_Simple.h +50 -0
  902. hikyuu/include/hikyuu/trade_sys/system/crt/SYS_WalkForward.h +21 -0
  903. hikyuu/include/hikyuu/trade_sys/system/crt/__init__.py +1 -0
  904. hikyuu/include/hikyuu/trade_sys/system/imp/DelegateSystem.h +50 -0
  905. hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardSystem.h +69 -0
  906. hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardTradeManager.h +470 -0
  907. hikyuu/include/hikyuu/trade_sys/system/imp/__init__.py +1 -0
  908. hikyuu/include/hikyuu/utilities/ConnectPool.h +163 -0
  909. hikyuu/include/hikyuu/utilities/DllLoader.h +226 -0
  910. hikyuu/include/hikyuu/utilities/FilterNode.h +267 -0
  911. hikyuu/include/hikyuu/utilities/LRUCache11.h +230 -0
  912. hikyuu/include/hikyuu/utilities/Log.h +438 -0
  913. hikyuu/include/hikyuu/utilities/Null.h +176 -0
  914. hikyuu/include/hikyuu/utilities/Parameter.h +511 -0
  915. hikyuu/include/hikyuu/utilities/ResourcePool.h +636 -0
  916. hikyuu/include/hikyuu/utilities/SpendTimer.h +305 -0
  917. hikyuu/include/hikyuu/utilities/TimerManager.h +552 -0
  918. hikyuu/include/hikyuu/utilities/__init__.py +1 -0
  919. hikyuu/include/hikyuu/utilities/any_to_string.h +142 -0
  920. hikyuu/include/hikyuu/utilities/arithmetic.h +411 -0
  921. hikyuu/include/hikyuu/utilities/base64.h +52 -0
  922. hikyuu/include/hikyuu/utilities/config.h +39 -0
  923. hikyuu/include/hikyuu/utilities/cppdef.h +25 -0
  924. hikyuu/include/hikyuu/utilities/datetime/Datetime.h +460 -0
  925. hikyuu/include/hikyuu/utilities/datetime/TimeDelta.h +357 -0
  926. hikyuu/include/hikyuu/utilities/datetime/__init__.py +1 -0
  927. hikyuu/include/hikyuu/utilities/db_connect/AutoTransAction.h +124 -0
  928. hikyuu/include/hikyuu/utilities/db_connect/DBCondition.h +252 -0
  929. hikyuu/include/hikyuu/utilities/db_connect/DBConnect.h +30 -0
  930. hikyuu/include/hikyuu/utilities/db_connect/DBConnectBase.h +658 -0
  931. hikyuu/include/hikyuu/utilities/db_connect/DBUpgrade.h +28 -0
  932. hikyuu/include/hikyuu/utilities/db_connect/SQLException.h +62 -0
  933. hikyuu/include/hikyuu/utilities/db_connect/SQLResultSet.h +248 -0
  934. hikyuu/include/hikyuu/utilities/db_connect/SQLStatementBase.h +305 -0
  935. hikyuu/include/hikyuu/utilities/db_connect/TableMacro.h +2579 -0
  936. hikyuu/include/hikyuu/utilities/db_connect/__init__.py +1 -0
  937. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +60 -0
  938. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +88 -0
  939. hikyuu/include/hikyuu/utilities/db_connect/mysql/__init__.py +1 -0
  940. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +89 -0
  941. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +71 -0
  942. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteUtil.h +80 -0
  943. hikyuu/include/hikyuu/utilities/db_connect/sqlite/__init__.py +1 -0
  944. hikyuu/include/hikyuu/utilities/exception.h +52 -0
  945. hikyuu/include/hikyuu/utilities/http_client/HttpClient.h +229 -0
  946. hikyuu/include/hikyuu/utilities/http_client/__init__.py +1 -0
  947. hikyuu/include/hikyuu/utilities/http_client/nng_wrap.h +517 -0
  948. hikyuu/include/hikyuu/utilities/http_client/url.h +25 -0
  949. hikyuu/include/hikyuu/utilities/ini_parser/IniParser.h +104 -0
  950. hikyuu/include/hikyuu/utilities/ini_parser/__init__.py +1 -0
  951. hikyuu/include/hikyuu/utilities/md5.h +41 -0
  952. hikyuu/include/hikyuu/utilities/moFileReader.h +836 -0
  953. hikyuu/include/hikyuu/utilities/node/NodeClient.h +175 -0
  954. hikyuu/include/hikyuu/utilities/node/NodeError.h +66 -0
  955. hikyuu/include/hikyuu/utilities/node/NodeMessage.h +80 -0
  956. hikyuu/include/hikyuu/utilities/node/NodeServer.h +246 -0
  957. hikyuu/include/hikyuu/utilities/node/__init__.py +1 -0
  958. hikyuu/include/hikyuu/utilities/os.h +115 -0
  959. hikyuu/include/hikyuu/utilities/osdef.h +159 -0
  960. hikyuu/include/hikyuu/utilities/plugin/PluginBase.h +47 -0
  961. hikyuu/include/hikyuu/utilities/plugin/PluginClient.h +55 -0
  962. hikyuu/include/hikyuu/utilities/plugin/PluginLoader.h +118 -0
  963. hikyuu/include/hikyuu/utilities/plugin/PluginManager.h +72 -0
  964. hikyuu/include/hikyuu/utilities/plugin/__init__.py +1 -0
  965. hikyuu/include/hikyuu/utilities/runtimeinfo.h +35 -0
  966. hikyuu/include/hikyuu/utilities/snowflake.h +110 -0
  967. hikyuu/include/hikyuu/utilities/string_view.h +70 -0
  968. hikyuu/include/hikyuu/utilities/thread/FuncWrapper.h +85 -0
  969. hikyuu/include/hikyuu/utilities/thread/GlobalMQStealThreadPool.h +315 -0
  970. hikyuu/include/hikyuu/utilities/thread/GlobalMQThreadPool.h +271 -0
  971. hikyuu/include/hikyuu/utilities/thread/GlobalStealThreadPool.h +310 -0
  972. hikyuu/include/hikyuu/utilities/thread/GlobalThreadPool.h +224 -0
  973. hikyuu/include/hikyuu/utilities/thread/InterruptFlag.h +46 -0
  974. hikyuu/include/hikyuu/utilities/thread/MQStealQueue.h +112 -0
  975. hikyuu/include/hikyuu/utilities/thread/MQThreadPool.h +238 -0
  976. hikyuu/include/hikyuu/utilities/thread/ThreadPool.h +203 -0
  977. hikyuu/include/hikyuu/utilities/thread/ThreadSafeQueue.h +105 -0
  978. hikyuu/include/hikyuu/utilities/thread/WorkStealQueue.h +105 -0
  979. hikyuu/include/hikyuu/utilities/thread/__init__.py +1 -0
  980. hikyuu/include/hikyuu/utilities/thread/algorithm.h +116 -0
  981. hikyuu/include/hikyuu/utilities/thread/thread.h +14 -0
  982. hikyuu/include/hikyuu/version.h +24 -0
  983. hikyuu/include/hikyuu/views/__init__.py +1 -0
  984. hikyuu/include/hikyuu/views/arrow_common.h +38 -0
  985. hikyuu/include/hikyuu/views/arrow_views.h +117 -0
  986. hikyuu/indicator/__init__.py +28 -0
  987. hikyuu/indicator/indicator.py +119 -0
  988. hikyuu/indicator/pyind.py +47 -0
  989. hikyuu/interactive.py +68 -0
  990. hikyuu/plugin/__init__.py +1 -0
  991. hikyuu/plugin/libbacktest.so +0 -0
  992. hikyuu/plugin/libclickhousedriver.so +0 -0
  993. hikyuu/plugin/libdataserver.so +0 -0
  994. hikyuu/plugin/libdevice.so +0 -0
  995. hikyuu/plugin/libextind.so +0 -0
  996. hikyuu/plugin/libhkuextra.so +0 -0
  997. hikyuu/plugin/libimport2hdf5.so +0 -0
  998. hikyuu/plugin/libtmreport.so +0 -0
  999. hikyuu/setup.py +104 -0
  1000. hikyuu/shell/__init__.py +0 -0
  1001. hikyuu/shell/cmdserver.py +126 -0
  1002. hikyuu/shell/hkucmd.py +110 -0
  1003. hikyuu/shell/hkushell.py +20 -0
  1004. hikyuu/strategy/__init__.py +2 -0
  1005. hikyuu/strategy/strategy_demo1.py +53 -0
  1006. hikyuu/strategy/strategy_demo2.py +47 -0
  1007. hikyuu/strategy/strategy_demo3.py +24 -0
  1008. hikyuu/test/AllocateFunds.py +25 -0
  1009. hikyuu/test/Condition.py +95 -0
  1010. hikyuu/test/Datetime.py +61 -0
  1011. hikyuu/test/Environment.py +88 -0
  1012. hikyuu/test/Indicator.py +233 -0
  1013. hikyuu/test/KData.py +64 -0
  1014. hikyuu/test/MarketInfo.py +26 -0
  1015. hikyuu/test/MoneyManager.py +88 -0
  1016. hikyuu/test/Parameter.py +62 -0
  1017. hikyuu/test/ProfitGoal.py +83 -0
  1018. hikyuu/test/Signal.py +160 -0
  1019. hikyuu/test/Slippage.py +88 -0
  1020. hikyuu/test/Stock.py +127 -0
  1021. hikyuu/test/StockTypeInfo.py +47 -0
  1022. hikyuu/test/Stoploss.py +86 -0
  1023. hikyuu/test/TradeCost.py +71 -0
  1024. hikyuu/test/__init__.py +0 -0
  1025. hikyuu/test/test.py +63 -0
  1026. hikyuu/test/test_init.py +95 -0
  1027. hikyuu/test/test_real_tdx_import.py +336 -0
  1028. hikyuu/test/test_tdx_import.py +315 -0
  1029. hikyuu/test/test_tdx_real_data_import.py +281 -0
  1030. hikyuu/tools/__init__.py +1 -0
  1031. hikyuu/tools/copy_file.py +16 -0
  1032. hikyuu/tools/delete_index.py +50 -0
  1033. hikyuu/tools/fenge.py +139 -0
  1034. hikyuu/tools/h5_data_clear.py +163 -0
  1035. hikyuu/tools/mysql_clear_last_day_data.py +61 -0
  1036. hikyuu/tools/update_block_info.py +168 -0
  1037. hikyuu/trade_manage/__init__.py +30 -0
  1038. hikyuu/trade_manage/__init__.pyi +656 -0
  1039. hikyuu/trade_manage/broker.py +95 -0
  1040. hikyuu/trade_manage/broker.pyi +54 -0
  1041. hikyuu/trade_manage/broker_easytrader.py +63 -0
  1042. hikyuu/trade_manage/broker_easytrader.pyi +21 -0
  1043. hikyuu/trade_manage/broker_mail.py +101 -0
  1044. hikyuu/trade_manage/broker_mail.pyi +55 -0
  1045. hikyuu/trade_manage/trade.py +56 -0
  1046. hikyuu/trade_manage/trade.pyi +650 -0
  1047. hikyuu/trade_sys/__init__.py +42 -0
  1048. hikyuu/trade_sys/trade_sys.py +252 -0
  1049. hikyuu/util/__init__.py +51 -0
  1050. hikyuu/util/__init__.pyi +56 -0
  1051. hikyuu/util/check.py +161 -0
  1052. hikyuu/util/check.pyi +63 -0
  1053. hikyuu/util/mylog.py +291 -0
  1054. hikyuu/util/mylog.pyi +72 -0
  1055. hikyuu/util/notebook.py +47 -0
  1056. hikyuu/util/notebook.pyi +23 -0
  1057. hikyuu/util/singleton.py +29 -0
  1058. hikyuu/util/singleton.pyi +18 -0
  1059. hikyuu/util/slice.py +43 -0
  1060. hikyuu/util/timeout.py +83 -0
  1061. hikyuu-2.6.8.dist-info/METADATA +172 -0
  1062. hikyuu-2.6.8.dist-info/RECORD +1066 -0
  1063. hikyuu-2.6.8.dist-info/WHEEL +5 -0
  1064. hikyuu-2.6.8.dist-info/entry_points.txt +4 -0
  1065. hikyuu-2.6.8.dist-info/licenses/LICENSE +201 -0
  1066. hikyuu-2.6.8.dist-info/top_level.txt +123 -0
@@ -0,0 +1,470 @@
1
+ /*
2
+ * Copyright (c) 2024 hikyuu.org
3
+ *
4
+ * Created on: 2024-09-19
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include "hikyuu/trade_manage/TradeManagerBase.h"
11
+
12
+ namespace hku {
13
+
14
+ class WalkForwardTradeManager : public TradeManagerBase {
15
+ public:
16
+ WalkForwardTradeManager() : TradeManagerBase("", TC_Zero()) {}
17
+
18
+ // 只允许执行>=run_start的实际交易
19
+ WalkForwardTradeManager(const TMPtr& tm, const Datetime& run_start) : m_run_start(run_start) {
20
+ HKU_ASSERT(tm);
21
+ m_tm = tm;
22
+
23
+ m_name = tm->name();
24
+ m_costfunc = m_tm->costFunc();
25
+ }
26
+
27
+ virtual ~WalkForwardTradeManager() {}
28
+
29
+ virtual void _reset() override {
30
+ m_tm->_reset();
31
+ }
32
+
33
+ virtual shared_ptr<TradeManagerBase> _clone() override {
34
+ WalkForwardTradeManager* p = new WalkForwardTradeManager();
35
+ p->m_tm = m_tm->clone();
36
+ p->m_run_start = m_run_start;
37
+ return shared_ptr<TradeManagerBase>(p);
38
+ }
39
+
40
+ /**
41
+ * 根据权息信息更新当前持仓与交易情况
42
+ * @note 必须按时间顺序调用
43
+ * @param datetime 当前时刻
44
+ */
45
+ virtual void updateWithWeight(const Datetime& datetime) override {
46
+ m_tm->updateWithWeight(datetime);
47
+ }
48
+
49
+ /**
50
+ * 获取指定对象的保证金比率
51
+ * @param datetime 日期
52
+ * @param stock 指定对象
53
+ */
54
+ virtual double getMarginRate(const Datetime& datetime, const Stock& stock) override {
55
+ return (datetime >= m_run_start) ? m_tm->getMarginRate(datetime, stock) : 0.0;
56
+ }
57
+
58
+ /** 初始资金 */
59
+ virtual price_t initCash() const override {
60
+ return m_tm->initCash();
61
+ }
62
+
63
+ /** 账户建立日期 */
64
+ virtual Datetime initDatetime() const override {
65
+ return m_tm->initDatetime();
66
+ }
67
+
68
+ /** 第一笔买入交易发生日期,如未发生交易返回Null<Datetime>() */
69
+ virtual Datetime firstDatetime() const override {
70
+ return m_tm->firstDatetime();
71
+ }
72
+
73
+ /** 最后一笔交易日期,注意和交易类型无关,如未发生交易返回账户建立日期 */
74
+ virtual Datetime lastDatetime() const override {
75
+ return m_tm->lastDatetime();
76
+ }
77
+
78
+ /**
79
+ * 返回当前现金
80
+ * @note 仅返回当前信息,不会根据权息进行调整
81
+ */
82
+ virtual price_t currentCash() const override {
83
+ return m_tm->currentCash();
84
+ }
85
+
86
+ /**
87
+ * 获取指定日期的现金
88
+ * @note 如果不带日期参数,无法根据权息信息调整持仓
89
+ */
90
+ virtual price_t cash(const Datetime& datetime, KQuery::KType ktype = KQuery::DAY) override {
91
+ return m_tm->cash(datetime, ktype);
92
+ }
93
+
94
+ /**
95
+ * 当前是否持有指定的证券
96
+ * @note 这里未使用日期参数,必须保证是按日期顺序执行
97
+ * @param stock 指定证券
98
+ * @return true 是 | false 否
99
+ */
100
+ virtual bool have(const Stock& stock) const override {
101
+ return m_tm->have(stock);
102
+ }
103
+
104
+ /**
105
+ * 当前空头仓位是否持有指定的证券
106
+ * @note 这里未使用日期参数,必须保证是按日期顺序执行
107
+ * @param stock 指定证券
108
+ * @return true 是 | false 否
109
+ */
110
+ virtual bool haveShort(const Stock& stock) const override {
111
+ return m_tm->haveShort(stock);
112
+ }
113
+
114
+ /** 当前持有的证券种类数量 */
115
+ virtual size_t getStockNumber() const override {
116
+ return m_tm->getStockNumber();
117
+ }
118
+
119
+ /** 当前空头持有的证券种类数量 */
120
+ virtual size_t getShortStockNumber() const override {
121
+ return m_tm->getShortStockNumber();
122
+ }
123
+
124
+ /** 获取指定时刻的某证券持有数量 */
125
+ virtual double getHoldNumber(const Datetime& datetime, const Stock& stock) override {
126
+ return m_tm->getHoldNumber(datetime, stock);
127
+ }
128
+
129
+ /** 获取指定时刻的空头某证券持有数量 */
130
+ virtual double getShortHoldNumber(const Datetime& datetime, const Stock& stock) override {
131
+ return m_tm->getShortHoldNumber(datetime, stock);
132
+ }
133
+
134
+ /** 获取指定时刻已借入的股票数量 */
135
+ virtual double getDebtNumber(const Datetime& datetime, const Stock& stock) override {
136
+ return m_tm->getDebtNumber(datetime, stock);
137
+ }
138
+
139
+ /** 获取指定时刻已借入的现金额 */
140
+ virtual price_t getDebtCash(const Datetime& datetime) override {
141
+ return m_tm->getDebtCash(datetime);
142
+ }
143
+
144
+ /** 获取全部交易记录 */
145
+ virtual TradeRecordList getTradeList() const override {
146
+ return m_tm->getTradeList();
147
+ }
148
+
149
+ /**
150
+ * 获取指定日期范围内的交易记录[start, end)
151
+ * @param start 起始日期
152
+ * @param end 结束日期
153
+ * @return 交易记录列表
154
+ */
155
+ virtual TradeRecordList getTradeList(const Datetime& start,
156
+ const Datetime& end) const override {
157
+ return m_tm->getTradeList(start, end);
158
+ }
159
+
160
+ /** 获取当前全部持仓记录 */
161
+ virtual PositionRecordList getPositionList() const override {
162
+ return m_tm->getPositionList();
163
+ }
164
+
165
+ /** 获取全部历史持仓记录,即已平仓记录 */
166
+ virtual PositionRecordList getHistoryPositionList() const override {
167
+ return m_tm->getHistoryPositionList();
168
+ }
169
+
170
+ /** 获取当前全部空头仓位记录 */
171
+ virtual PositionRecordList getShortPositionList() const override {
172
+ return m_tm->getShortPositionList();
173
+ }
174
+
175
+ /** 获取全部空头历史仓位记录 */
176
+ virtual PositionRecordList getShortHistoryPositionList() const override {
177
+ return m_tm->getShortHistoryPositionList();
178
+ }
179
+
180
+ /**
181
+ * 获取指定证券的持仓记录
182
+ * @param date 指定日期
183
+ * @param stock 指定的证券
184
+ */
185
+ virtual PositionRecord getPosition(const Datetime& date, const Stock& stock) override {
186
+ return m_tm->getPosition(date, stock);
187
+ }
188
+
189
+ /**
190
+ * 获取指定证券的空头持仓记录
191
+ * @param stock 指定的证券
192
+ */
193
+ virtual PositionRecord getShortPosition(const Stock& stock) const override {
194
+ return m_tm->getShortPosition(stock);
195
+ }
196
+
197
+ /** 获取当前借入的股票列表 */
198
+ virtual BorrowRecordList getBorrowStockList() const override {
199
+ return m_tm->getBorrowStockList();
200
+ }
201
+
202
+ /**
203
+ * 存入资金
204
+ * @param datetime 存入时间
205
+ * @param cash 存入的资金量
206
+ * @return true | false
207
+ */
208
+ virtual bool checkin(const Datetime& datetime, price_t cash) override {
209
+ return (datetime >= m_run_start) ? m_tm->checkin(datetime, cash) : false;
210
+ }
211
+
212
+ /**
213
+ * 取出资金
214
+ * @param datetime 取出时间
215
+ * @param cash 取出的资金量
216
+ * @return true | false
217
+ */
218
+ virtual bool checkout(const Datetime& datetime, price_t cash) override {
219
+ return (datetime >= m_run_start) ? m_tm->checkout(datetime, cash) : false;
220
+ }
221
+
222
+ /**
223
+ * 存入资产
224
+ * @param datetime 存入日期
225
+ * @param stock 待存入的股票
226
+ * @param price 存入股票的每股价格
227
+ * @param number 存入股票的数量
228
+ * @return true | false
229
+ */
230
+ virtual bool checkinStock(const Datetime& datetime, const Stock& stock, price_t price,
231
+ double number) override {
232
+ return (datetime >= m_run_start) ? m_tm->checkinStock(datetime, stock, price, number)
233
+ : false;
234
+ }
235
+
236
+ /**
237
+ * 取出当前资产
238
+ * @param datetime 取出日期
239
+ * @param stock 待取出的股票
240
+ * @param price 取出的每股价格
241
+ * @param number 取出的数量
242
+ * @return true | false
243
+ * @note 应该不会被用到
244
+ */
245
+ virtual bool checkoutStock(const Datetime& datetime, const Stock& stock, price_t price,
246
+ double number) override {
247
+ return (datetime >= m_run_start) ? m_tm->checkoutStock(datetime, stock, price, number)
248
+ : false;
249
+ }
250
+
251
+ /**
252
+ * 买入操作
253
+ * @param datetime 买入时间
254
+ * @param stock 买入的证券
255
+ * @param realPrice 实际买入价格
256
+ * @param number 买入数量
257
+ * @param stoploss 止损价
258
+ * @param goalPrice 目标价格
259
+ * @param planPrice 计划买入价格
260
+ * @param from 记录是哪个系统部件发出的买入指示
261
+ * @return 返回对应的交易记录,如果操作失败,business等于BUSINESS_INVALID
262
+ */
263
+ virtual TradeRecord buy(const Datetime& datetime, const Stock& stock, price_t realPrice,
264
+ double number, price_t stoploss = 0.0, price_t goalPrice = 0.0,
265
+ price_t planPrice = 0.0, SystemPart from = PART_INVALID,
266
+ const string& remark = "") override {
267
+ return (datetime >= m_run_start) ? m_tm->buy(datetime, stock, realPrice, number, stoploss,
268
+ goalPrice, planPrice, from, remark)
269
+ : TradeRecord();
270
+ }
271
+
272
+ /**
273
+ * 卖出操作
274
+ * @param datetime 卖出时间
275
+ * @param stock 卖出的证券
276
+ * @param realPrice 实际卖出价格
277
+ * @param number 卖出数量,如果是 MAX_DOUBLE, 表示全部卖出
278
+ * @param stoploss 新的止损价
279
+ * @param goalPrice 新的目标价格
280
+ * @param planPrice 原计划卖出价格
281
+ * @param from 记录是哪个系统部件发出的卖出指示
282
+ * @return 返回对应的交易记录,如果操作失败,business等于BUSINESS_INVALID
283
+ */
284
+ virtual TradeRecord sell(const Datetime& datetime, const Stock& stock, price_t realPrice,
285
+ double number = MAX_DOUBLE, price_t stoploss = 0.0,
286
+ price_t goalPrice = 0.0, price_t planPrice = 0.0,
287
+ SystemPart from = PART_INVALID, const string& remark = "") override {
288
+ return (datetime >= m_run_start) ? m_tm->sell(datetime, stock, realPrice, number, stoploss,
289
+ goalPrice, planPrice, from, remark)
290
+ : TradeRecord();
291
+ }
292
+
293
+ /**
294
+ * 卖空
295
+ * @param datetime 卖空时间
296
+ * @param stock 卖空的证券
297
+ * @param realPrice 实际卖空价格
298
+ * @param number 卖出数量
299
+ * @param stoploss 止损价
300
+ * @param goalPrice 目标价格
301
+ * @param planPrice 计划卖空价格
302
+ * @param from 记录是哪个系统部件发出的买入指示
303
+ * @return 返回对应的交易记录,如果操作失败,business等于BUSINESS_INVALID
304
+ */
305
+ virtual TradeRecord sellShort(const Datetime& datetime, const Stock& stock, price_t realPrice,
306
+ double number, price_t stoploss = 0.0, price_t goalPrice = 0.0,
307
+ price_t planPrice = 0.0, SystemPart from = PART_INVALID,
308
+ const string& remark = "") override {
309
+ return (datetime >= m_run_start)
310
+ ? m_tm->sellShort(datetime, stock, realPrice, number, stoploss, goalPrice,
311
+ planPrice, from, remark)
312
+ : TradeRecord();
313
+ }
314
+
315
+ /**
316
+ * 卖空后回补
317
+ * @param datetime 买入时间
318
+ * @param stock 买入的证券
319
+ * @param realPrice 实际买入价格
320
+ * @param number 卖出数量,如果是 MAX_DOUBLE, 表示全部卖出
321
+ * @param stoploss 止损价
322
+ * @param goalPrice 目标价格
323
+ * @param planPrice 计划买入价格
324
+ * @param from 记录是哪个系统部件发出的卖出指示
325
+ * @return 返回对应的交易记录,如果操作失败,business等于BUSINESS_INVALID
326
+ */
327
+ virtual TradeRecord buyShort(const Datetime& datetime, const Stock& stock, price_t realPrice,
328
+ double number = MAX_DOUBLE, price_t stoploss = 0.0,
329
+ price_t goalPrice = 0.0, price_t planPrice = 0.0,
330
+ SystemPart from = PART_INVALID,
331
+ const string& remark = "") override {
332
+ return (datetime >= m_run_start)
333
+ ? m_tm->buyShort(datetime, stock, realPrice, number, stoploss, goalPrice,
334
+ planPrice, from, remark)
335
+ : TradeRecord();
336
+ }
337
+
338
+ /**
339
+ * 借入资金,从其他来源借取的资金,如融资
340
+ * @param datetime 借入时间
341
+ * @param cash 借入的现金
342
+ * @return true | false
343
+ */
344
+ virtual bool borrowCash(const Datetime& datetime, price_t cash) override {
345
+ return (datetime >= m_run_start) ? m_tm->borrowCash(datetime, cash) : false;
346
+ }
347
+
348
+ /**
349
+ * 归还资金
350
+ * @param datetime 归还日期
351
+ * @param cash 归还现金
352
+ * @return true | false
353
+ */
354
+ virtual bool returnCash(const Datetime& datetime, price_t cash) override {
355
+ return (datetime >= m_run_start) ? m_tm->returnCash(datetime, cash) : false;
356
+ }
357
+
358
+ /**
359
+ * 借入证券
360
+ * @param datetime 借入时间
361
+ * @param stock 借入的stock
362
+ * @param price 借入时单股价格
363
+ * @param number 借入时数量
364
+ * @return true | false
365
+ */
366
+ virtual bool borrowStock(const Datetime& datetime, const Stock& stock, price_t price,
367
+ double number) override {
368
+ return (datetime >= m_run_start) ? m_tm->borrowStock(datetime, stock, price, number)
369
+ : false;
370
+ }
371
+
372
+ /**
373
+ * 归还证券
374
+ * @param datetime 归还时间
375
+ * @param stock 归还的stock
376
+ * @param price 归还时单股价格
377
+ * @param number 归还数量
378
+ * @return true | false
379
+ */
380
+ virtual bool returnStock(const Datetime& datetime, const Stock& stock, price_t price,
381
+ double number) override {
382
+ return (datetime >= m_run_start) ? m_tm->returnStock(datetime, stock, price, number)
383
+ : false;
384
+ }
385
+
386
+ /**
387
+ * 获取账户当前时刻的资产详情
388
+ * @param ktype 日期的类型
389
+ * @return 资产详情
390
+ */
391
+ virtual FundsRecord getFunds(KQuery::KType ktype = KQuery::DAY) const override {
392
+ return m_tm->getFunds(ktype);
393
+ }
394
+
395
+ /**
396
+ * 获取指定时刻的资产市值详情
397
+ * @param datetime 必须大于帐户建立的初始日期,或为Null<Datetime>()
398
+ * @param ktype 日期的类型
399
+ * @return 资产详情
400
+ * @note 当datetime等于Null<Datetime>()时,与getFunds(KType)同
401
+ */
402
+ virtual FundsRecord getFunds(const Datetime& datetime,
403
+ KQuery::KType ktype = KQuery::DAY) override {
404
+ return m_tm->getFunds(datetime, ktype);
405
+ }
406
+
407
+ /**
408
+ * 直接加入交易记录
409
+ * @note 如果加入初始化账户记录,将清除全部已有交易及持仓记录
410
+ * @param tr 待加入的交易记录
411
+ * @return bool true 成功 | false 失败
412
+ */
413
+ virtual bool addTradeRecord(const TradeRecord& tr) override {
414
+ return (tr.datetime >= m_run_start) ? m_tm->addTradeRecord(tr) : false;
415
+ }
416
+
417
+ /**
418
+ * 直接加入持仓记录
419
+ * @param pr 持仓记录
420
+ * @return true 成功
421
+ * @return false 失败
422
+ */
423
+ virtual bool addPosition(const PositionRecord& pr) override {
424
+ return m_tm->addPosition(pr);
425
+ }
426
+
427
+ /** 字符串输出 */
428
+ virtual string str() const override {
429
+ return m_tm->str();
430
+ }
431
+
432
+ /**
433
+ * 以csv格式输出交易记录、未平仓记录、已平仓记录、资产净值曲线
434
+ * @param path 输出文件所在目录
435
+ */
436
+ virtual void tocsv(const string& path) override {
437
+ m_tm->tocsv(path);
438
+ }
439
+
440
+ /**
441
+ * 从订单代理实例同步当前账户资产信息(包含资金、持仓等)
442
+ * @param broker 订单代理实例
443
+ */
444
+ virtual void fetchAssetInfoFromBroker(const OrderBrokerPtr& broker,
445
+ const Datetime& datetime = Null<Datetime>()) override {
446
+ m_tm->fetchAssetInfoFromBroker(broker, datetime);
447
+ }
448
+
449
+ private:
450
+ TMPtr m_tm;
451
+ Datetime m_run_start;
452
+
453
+ //============================================
454
+ // 序列化支持
455
+ //============================================
456
+ #if HKU_SUPPORT_SERIALIZATION
457
+ friend class boost::serialization::access;
458
+ template <class Archive>
459
+ void serialize(Archive& ar, const unsigned int version) {
460
+ ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(TradeManagerBase);
461
+ ar& BOOST_SERIALIZATION_NVP(m_tm);
462
+ }
463
+ #endif /* HKU_SUPPORT_SERIALIZATION */
464
+ };
465
+
466
+ inline TMPtr crtWalkForwardTM(const TMPtr& tm, const Datetime& run_start) {
467
+ return std::make_shared<WalkForwardTradeManager>(tm, run_start);
468
+ }
469
+
470
+ } // namespace hku
@@ -0,0 +1,163 @@
1
+ /*
2
+ * ConnectPool.h
3
+ *
4
+ * Copyright (c) 2019, hikyuu.org
5
+ *
6
+ * Created on: 2019-8-5
7
+ * Author: fasiondog
8
+ */
9
+ #pragma once
10
+ #ifndef HIKYUU_UTILITIES_CONNECTPOOL_H
11
+ #define HIKYUU_UTILITIES_CONNECTPOOL_H
12
+
13
+ #include <thread>
14
+ #include <mutex>
15
+ #include <queue>
16
+ #include "Parameter.h"
17
+
18
+ namespace hku {
19
+
20
+ /**
21
+ * 通用连接池
22
+ * @ingroup Utilities
23
+ */
24
+ template <typename ConnectType>
25
+ class ConnectPool {
26
+ public:
27
+ ConnectPool() = delete;
28
+ ConnectPool(const ConnectPool &) = delete;
29
+ ConnectPool &operator=(const ConnectPool &) = delete;
30
+
31
+ /**
32
+ * 构造函数
33
+ * @param param 连接参数
34
+ * @param maxConnect 允许的最大连接数,为 0 表示不限制
35
+ * @param maxIdleConnect 运行的最大空闲连接数,等于 0 时表示立刻释放
36
+ */
37
+ explicit ConnectPool(const Parameter &param, size_t maxConnect = 0, size_t maxIdleConnect = 100)
38
+ : m_maxConnectSize(maxConnect),
39
+ m_maxIdelSize(maxIdleConnect),
40
+ m_count(0),
41
+ m_param(param),
42
+ m_closer(this) {}
43
+
44
+ /**
45
+ * 析构函数,释放所有缓存的连接
46
+ */
47
+ virtual ~ConnectPool() {
48
+ while (!m_connectList.empty()) {
49
+ ConnectType *p = m_connectList.front();
50
+ m_connectList.pop();
51
+ if (p) {
52
+ delete p;
53
+ }
54
+ }
55
+ }
56
+
57
+ /** 连接实例指针类型 */
58
+ typedef std::shared_ptr<ConnectType> ConnectPtr;
59
+
60
+ /** 获取可用连接,如超出允许的最大连接数将返回空指针 */
61
+ ConnectPtr getConnect() noexcept {
62
+ std::lock_guard<std::mutex> lock(m_mutex);
63
+ if (m_connectList.empty()) {
64
+ if (m_maxConnectSize > 0 && m_count >= m_maxConnectSize) {
65
+ HKU_WARN(
66
+ "There are no idle connections. The current maximum number of connections: {}",
67
+ m_maxConnectSize);
68
+ return ConnectPtr();
69
+ }
70
+ m_count++;
71
+ return ConnectPtr(new ConnectType(m_param), m_closer);
72
+ }
73
+ ConnectType *p = m_connectList.front();
74
+ m_connectList.pop();
75
+ return ConnectPtr(p, m_closer);
76
+ }
77
+
78
+ /**
79
+ * 等待并获取连接,如果超出将抛出异常
80
+ * @param timeout 超时时长(毫秒),如果等于或小于0,则表示不作超时限制
81
+ * @return 连接指针
82
+ */
83
+ ConnectPtr getAndWait(int timeout = 0) {
84
+ int sleep = 100;
85
+ int count = 0, max_count = timeout / sleep;
86
+ ConnectPtr result = getConnect();
87
+ while (!result) {
88
+ std::this_thread::sleep_for(std::chrono::milliseconds(sleep));
89
+ result = getConnect();
90
+ if (timeout > 0) {
91
+ HKU_CHECK(count++ < max_count, "Can't get connect, timeout!");
92
+ }
93
+ }
94
+ return result;
95
+ }
96
+
97
+ /** 当前活动的连接数 */
98
+ size_t count() const {
99
+ return m_count;
100
+ }
101
+
102
+ /** 当前空闲的资源数 */
103
+ size_t idleCount() const {
104
+ return m_connectList.size();
105
+ }
106
+
107
+ /** 释放当前所有的空闲资源 */
108
+ void releaseIdleConnect() {
109
+ std::lock_guard<std::mutex> lock(m_mutex);
110
+ while (!m_connectList.empty()) {
111
+ ConnectType *p = m_connectList.front();
112
+ m_connectList.pop();
113
+ m_count--;
114
+ if (p) {
115
+ delete p;
116
+ }
117
+ }
118
+ }
119
+
120
+ private:
121
+ /** 归还至连接池 */
122
+ void returnDriver(ConnectType *p) {
123
+ std::lock_guard<std::mutex> lock(m_mutex);
124
+ if (p) {
125
+ if (m_connectList.size() < m_maxIdelSize) {
126
+ m_connectList.push(p);
127
+ } else {
128
+ delete p;
129
+ m_count--;
130
+ }
131
+ } else {
132
+ m_count--;
133
+ HKU_WARN("Trying to return an empty pointer!");
134
+ }
135
+ }
136
+
137
+ private:
138
+ size_t m_maxConnectSize; //允许的最大连接数
139
+ size_t m_maxIdelSize; //允许的最大空闲连接数
140
+ size_t m_count; //当前活动的连接数
141
+ Parameter m_param;
142
+ std::mutex m_mutex;
143
+ std::queue<ConnectType *> m_connectList;
144
+
145
+ class ConnectCloser {
146
+ public:
147
+ explicit ConnectCloser(ConnectPool *pool) : m_pool(pool) {}
148
+ void operator()(ConnectType *conn) {
149
+ if (m_pool && conn) {
150
+ m_pool->returnDriver(conn);
151
+ }
152
+ }
153
+
154
+ private:
155
+ ConnectPool *m_pool;
156
+ };
157
+
158
+ ConnectCloser m_closer;
159
+ };
160
+
161
+ } // namespace hku
162
+
163
+ #endif /* HIKYUU_UTILITIES_CONNECTPOOL_H */