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.
Files changed (818) hide show
  1. hikyuu/LICENSE.txt +21 -0
  2. hikyuu/__init__.py +137 -0
  3. hikyuu/analysis/__init__.py +14 -0
  4. hikyuu/analysis/analysis.py +151 -0
  5. hikyuu/config/__init__.py +1 -0
  6. hikyuu/config/block/__init__.py +0 -0
  7. hikyuu/config/block/dybk.ini +5357 -0
  8. hikyuu/config/block/gnbk.ini +50024 -0
  9. hikyuu/config/block/hybk.ini +5464 -0
  10. hikyuu/config/block/self.ini +10 -0
  11. hikyuu/config/block/zsbk.ini +65543 -0
  12. hikyuu/core.py +27 -0
  13. hikyuu/cpp/__init__.py +1 -0
  14. hikyuu/cpp/core310.so +0 -0
  15. hikyuu/cpp/core311.so +0 -0
  16. hikyuu/cpp/core312.so +0 -0
  17. hikyuu/cpp/core313.so +0 -0
  18. hikyuu/cpp/libcrypto.3.dylib +0 -0
  19. hikyuu/cpp/libcrypto.dylib +0 -0
  20. hikyuu/cpp/libhku_hdf5.200.2.0.dylib +0 -0
  21. hikyuu/cpp/libhku_hdf5.200.dylib +0 -0
  22. hikyuu/cpp/libhku_hdf5.dylib +0 -0
  23. hikyuu/cpp/libhku_hdf5_cpp.200.2.0.dylib +0 -0
  24. hikyuu/cpp/libhku_hdf5_cpp.200.dylib +0 -0
  25. hikyuu/cpp/libhku_hdf5_cpp.dylib +0 -0
  26. hikyuu/cpp/libhku_hdf5_hl.200.1.0.dylib +0 -0
  27. hikyuu/cpp/libhku_hdf5_hl.200.dylib +0 -0
  28. hikyuu/cpp/libhku_hdf5_hl.dylib +0 -0
  29. hikyuu/cpp/libhku_hdf5_hl_cpp.200.1.0.dylib +0 -0
  30. hikyuu/cpp/libhku_hdf5_hl_cpp.200.dylib +0 -0
  31. hikyuu/cpp/libhku_hdf5_hl_cpp.dylib +0 -0
  32. hikyuu/cpp/libhku_hdf5_tools.200.1.1.dylib +0 -0
  33. hikyuu/cpp/libhku_hdf5_tools.200.dylib +0 -0
  34. hikyuu/cpp/libhku_hdf5_tools.dylib +0 -0
  35. hikyuu/cpp/libmysqlclient.21.dylib +0 -0
  36. hikyuu/cpp/libmysqlclient.dylib +0 -0
  37. hikyuu/cpp/libsqlite3.dylib +0 -0
  38. hikyuu/cpp/libssl.3.dylib +0 -0
  39. hikyuu/cpp/libssl.dylib +0 -0
  40. hikyuu/data/__init__.py +1 -0
  41. hikyuu/data/common.py +248 -0
  42. hikyuu/data/common_h5.py +398 -0
  43. hikyuu/data/common_mysql.py +485 -0
  44. hikyuu/data/common_pytdx.py +108 -0
  45. hikyuu/data/common_sqlite3.py +140 -0
  46. hikyuu/data/em_block_to_mysql.py +120 -0
  47. hikyuu/data/em_block_to_sqlite.py +117 -0
  48. hikyuu/data/hku_config_template.py +266 -0
  49. hikyuu/data/mysql_upgrade/0001.sql +5 -0
  50. hikyuu/data/mysql_upgrade/0002.sql +3 -0
  51. hikyuu/data/mysql_upgrade/0003.sql +9 -0
  52. hikyuu/data/mysql_upgrade/0004.sql +26 -0
  53. hikyuu/data/mysql_upgrade/0005.sql +3 -0
  54. hikyuu/data/mysql_upgrade/0006.sql +2 -0
  55. hikyuu/data/mysql_upgrade/0007.sql +20 -0
  56. hikyuu/data/mysql_upgrade/0008.sql +6 -0
  57. hikyuu/data/mysql_upgrade/0009.sql +36 -0
  58. hikyuu/data/mysql_upgrade/0010.sql +5 -0
  59. hikyuu/data/mysql_upgrade/0011.sql +5 -0
  60. hikyuu/data/mysql_upgrade/0012.sql +5 -0
  61. hikyuu/data/mysql_upgrade/0013.sql +2389 -0
  62. hikyuu/data/mysql_upgrade/0014.sql +3 -0
  63. hikyuu/data/mysql_upgrade/0015.sql +4 -0
  64. hikyuu/data/mysql_upgrade/0016.sql +4 -0
  65. hikyuu/data/mysql_upgrade/0017.sql +5 -0
  66. hikyuu/data/mysql_upgrade/0018.sql +2 -0
  67. hikyuu/data/mysql_upgrade/0019.sql +6 -0
  68. hikyuu/data/mysql_upgrade/0020.sql +4 -0
  69. hikyuu/data/mysql_upgrade/0021.sql +4 -0
  70. hikyuu/data/mysql_upgrade/0022.sql +5 -0
  71. hikyuu/data/mysql_upgrade/0023.sql +4 -0
  72. hikyuu/data/mysql_upgrade/0024.sql +2 -0
  73. hikyuu/data/mysql_upgrade/__init__.py +1 -0
  74. hikyuu/data/mysql_upgrade/createdb.sql +265 -0
  75. hikyuu/data/pytdx_finance_to_mysql.py +129 -0
  76. hikyuu/data/pytdx_finance_to_sqlite.py +162 -0
  77. hikyuu/data/pytdx_to_h5.py +662 -0
  78. hikyuu/data/pytdx_to_mysql.py +803 -0
  79. hikyuu/data/pytdx_weight_to_mysql.py +196 -0
  80. hikyuu/data/pytdx_weight_to_sqlite.py +192 -0
  81. hikyuu/data/sqlite_mem.py +84 -0
  82. hikyuu/data/sqlite_mem_sql/__init__.py +1 -0
  83. hikyuu/data/sqlite_mem_sql/createdb.sql +126 -0
  84. hikyuu/data/sqlite_upgrade/0001.sql +4 -0
  85. hikyuu/data/sqlite_upgrade/0002.sql +48 -0
  86. hikyuu/data/sqlite_upgrade/0003.sql +18 -0
  87. hikyuu/data/sqlite_upgrade/0004.sql +11 -0
  88. hikyuu/data/sqlite_upgrade/0005.sql +28 -0
  89. hikyuu/data/sqlite_upgrade/0006.sql +5 -0
  90. hikyuu/data/sqlite_upgrade/0007.sql +4 -0
  91. hikyuu/data/sqlite_upgrade/0008.sql +22 -0
  92. hikyuu/data/sqlite_upgrade/0009.sql +8 -0
  93. hikyuu/data/sqlite_upgrade/0010.sql +5 -0
  94. hikyuu/data/sqlite_upgrade/0011.sql +16 -0
  95. hikyuu/data/sqlite_upgrade/0012.sql +15 -0
  96. hikyuu/data/sqlite_upgrade/0013.sql +9 -0
  97. hikyuu/data/sqlite_upgrade/0014.sql +607 -0
  98. hikyuu/data/sqlite_upgrade/0015.sql +7 -0
  99. hikyuu/data/sqlite_upgrade/0016.sql +8 -0
  100. hikyuu/data/sqlite_upgrade/0017.sql +16 -0
  101. hikyuu/data/sqlite_upgrade/0018.sql +5 -0
  102. hikyuu/data/sqlite_upgrade/0019.sql +4 -0
  103. hikyuu/data/sqlite_upgrade/0020.sql +4 -0
  104. hikyuu/data/sqlite_upgrade/0021.sql +6 -0
  105. hikyuu/data/sqlite_upgrade/0022.sql +6 -0
  106. hikyuu/data/sqlite_upgrade/0023.sql +7 -0
  107. hikyuu/data/sqlite_upgrade/0024.sql +22 -0
  108. hikyuu/data/sqlite_upgrade/__init__.py +1 -0
  109. hikyuu/data/sqlite_upgrade/createdb.sql +61 -0
  110. hikyuu/data/tdx_to_h5.py +464 -0
  111. hikyuu/data/tdx_to_mysql.py +464 -0
  112. hikyuu/data/weight_to_mysql.py +72 -0
  113. hikyuu/data/weight_to_sqlite.py +70 -0
  114. hikyuu/data/zh_bond10_to_mysql.py +30 -0
  115. hikyuu/data/zh_bond10_to_sqlite.py +42 -0
  116. hikyuu/data_driver/__init__.py +49 -0
  117. hikyuu/data_driver/jqdata_data_driver.py +277 -0
  118. hikyuu/data_driver/pytdx_data_driver.py +292 -0
  119. hikyuu/deprecated.py +651 -0
  120. hikyuu/draw/__init__.py +59 -0
  121. hikyuu/draw/drawplot/__init__.py +291 -0
  122. hikyuu/draw/drawplot/bokeh_draw.py +583 -0
  123. hikyuu/draw/drawplot/common.py +89 -0
  124. hikyuu/draw/drawplot/echarts_draw.py +402 -0
  125. hikyuu/draw/drawplot/matplotlib_draw.py +837 -0
  126. hikyuu/draw/elder.py +135 -0
  127. hikyuu/draw/kaufman.py +192 -0
  128. hikyuu/draw/volume.py +122 -0
  129. hikyuu/examples/Turtle_SG.py +47 -0
  130. hikyuu/examples/__init__.py +1 -0
  131. hikyuu/examples/examples_init.py +33 -0
  132. hikyuu/examples/notebook/000-Index.ipynb +76 -0
  133. hikyuu/examples/notebook/001-overview.ipynb +345 -0
  134. hikyuu/examples/notebook/002-HowToGetStock.ipynb +265 -0
  135. hikyuu/examples/notebook/003-HowToGetKDataAndDraw.ipynb +375 -0
  136. hikyuu/examples/notebook/004-IndicatorOverview.ipynb +501 -0
  137. hikyuu/examples/notebook/005-Drawplot.ipynb +321 -0
  138. hikyuu/examples/notebook/006-TradeManager.ipynb +381 -0
  139. hikyuu/examples/notebook/007-SystemDetails.ipynb +380 -0
  140. hikyuu/examples/notebook/008-Pickle.ipynb +127 -0
  141. hikyuu/examples/notebook/009-RealData.ipynb +110 -0
  142. hikyuu/examples/notebook/010-Portfolio.ipynb +333 -0
  143. hikyuu/examples/notebook/011-PyechartsDrawplot.ipynb +21821 -0
  144. hikyuu/examples/notebook/Demo/Demo1.ipynb +623 -0
  145. hikyuu/examples/notebook/Demo/Demo2.ipynb +665 -0
  146. hikyuu/examples/notebook/Demo/__init__.py +1 -0
  147. hikyuu/examples/notebook/README.md +1 -0
  148. hikyuu/examples/notebook/__init__.py +1 -0
  149. hikyuu/examples/notebook/images/002_01_block_config.png +0 -0
  150. hikyuu/examples/notebook/images/008_01_tocsv.png +0 -0
  151. hikyuu/examples/notebook/images/008_02_tocsv_look.png +0 -0
  152. hikyuu/examples/notebook/images/008_03_pickle.png +0 -0
  153. hikyuu/examples/notebook/images/__init__.py +1 -0
  154. hikyuu/examples/quick_crtsg.py +40 -0
  155. hikyuu/extend.py +387 -0
  156. hikyuu/fetcher/__init__.py +8 -0
  157. hikyuu/fetcher/proxy/__init__.py +12 -0
  158. hikyuu/fetcher/proxy/proxy.py +39 -0
  159. hikyuu/fetcher/proxy/zhima.py +63 -0
  160. hikyuu/fetcher/stock/__init__.py +8 -0
  161. hikyuu/fetcher/stock/zh_block_em.py +140 -0
  162. hikyuu/fetcher/stock/zh_stock_a_huatai.py +51 -0
  163. hikyuu/fetcher/stock/zh_stock_a_pytdx.py +139 -0
  164. hikyuu/fetcher/stock/zh_stock_a_qmt.py +58 -0
  165. hikyuu/fetcher/stock/zh_stock_a_sina_qq.py +229 -0
  166. hikyuu/flat/Spot.py +440 -0
  167. hikyuu/flat/SpotList.py +74 -0
  168. hikyuu/flat/__init__.py +4 -0
  169. hikyuu/gui/HikyuuTDX.py +840 -0
  170. hikyuu/gui/__init__.py +1 -0
  171. hikyuu/gui/data/CollectSpotThread.py +43 -0
  172. hikyuu/gui/data/CollectToMemThread.py +123 -0
  173. hikyuu/gui/data/CollectToMySQLThread.py +178 -0
  174. hikyuu/gui/data/EscapetimeThread.py +32 -0
  175. hikyuu/gui/data/ImportBlockInfoTask.py +55 -0
  176. hikyuu/gui/data/ImportHistoryFinanceTask.py +141 -0
  177. hikyuu/gui/data/ImportPytdxTimeToH5Task.py +94 -0
  178. hikyuu/gui/data/ImportPytdxToH5Task.py +98 -0
  179. hikyuu/gui/data/ImportPytdxTransToH5Task.py +94 -0
  180. hikyuu/gui/data/ImportTdxToH5Task.py +111 -0
  181. hikyuu/gui/data/ImportWeightToSqliteTask.py +114 -0
  182. hikyuu/gui/data/ImportZhBond10Task.py +48 -0
  183. hikyuu/gui/data/MainWindow.py +824 -0
  184. hikyuu/gui/data/SchedImportThread.py +62 -0
  185. hikyuu/gui/data/UsePytdxImportToH5Thread.py +371 -0
  186. hikyuu/gui/data/UseTdxImportToH5Thread.py +182 -0
  187. hikyuu/gui/data/__init__.py +1 -0
  188. hikyuu/gui/data/tool.py +43 -0
  189. hikyuu/gui/hikyuu.ico +0 -0
  190. hikyuu/gui/importdata.py +166 -0
  191. hikyuu/gui/spot_server.py +336 -0
  192. hikyuu/gui/start_huatai_insight.py +510 -0
  193. hikyuu/gui/start_qmt.py +122 -0
  194. hikyuu/hub.py +634 -0
  195. hikyuu/include/__init__.py +1 -0
  196. hikyuu/include/hikyuu/Block.h +173 -0
  197. hikyuu/include/hikyuu/DataType.h +173 -0
  198. hikyuu/include/hikyuu/GlobalInitializer.h +46 -0
  199. hikyuu/include/hikyuu/HistoryFinanceInfo.h +35 -0
  200. hikyuu/include/hikyuu/KData.h +271 -0
  201. hikyuu/include/hikyuu/KDataImp.h +94 -0
  202. hikyuu/include/hikyuu/KQuery.h +275 -0
  203. hikyuu/include/hikyuu/KRecord.h +94 -0
  204. hikyuu/include/hikyuu/MarketInfo.h +132 -0
  205. hikyuu/include/hikyuu/Stock.h +351 -0
  206. hikyuu/include/hikyuu/StockManager.h +371 -0
  207. hikyuu/include/hikyuu/StockMapIterator.h +72 -0
  208. hikyuu/include/hikyuu/StockTypeInfo.h +127 -0
  209. hikyuu/include/hikyuu/StockWeight.h +148 -0
  210. hikyuu/include/hikyuu/StrategyContext.h +107 -0
  211. hikyuu/include/hikyuu/TimeLineRecord.h +71 -0
  212. hikyuu/include/hikyuu/TransRecord.h +79 -0
  213. hikyuu/include/hikyuu/ZhBond10.h +36 -0
  214. hikyuu/include/hikyuu/__init__.py +1 -0
  215. hikyuu/include/hikyuu/analysis/__init__.py +1 -0
  216. hikyuu/include/hikyuu/analysis/analysis_sys.h +76 -0
  217. hikyuu/include/hikyuu/analysis/combinate.h +115 -0
  218. hikyuu/include/hikyuu/config.h +48 -0
  219. hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +201 -0
  220. hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +108 -0
  221. hikyuu/include/hikyuu/data_driver/DataDriverFactory.h +58 -0
  222. hikyuu/include/hikyuu/data_driver/DriverConnectPool.h +146 -0
  223. hikyuu/include/hikyuu/data_driver/HistoryFinanceReader.h +36 -0
  224. hikyuu/include/hikyuu/data_driver/KDataDriver.h +194 -0
  225. hikyuu/include/hikyuu/data_driver/__init__.py +1 -0
  226. hikyuu/include/hikyuu/data_driver/base_info/__init__.py +1 -0
  227. hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +54 -0
  228. hikyuu/include/hikyuu/data_driver/base_info/mysql/__init__.py +1 -0
  229. hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +50 -0
  230. hikyuu/include/hikyuu/data_driver/base_info/sqlite/__init__.py +1 -0
  231. hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceFieldTable.h +19 -0
  232. hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceTable.h +23 -0
  233. hikyuu/include/hikyuu/data_driver/base_info/table/HolidayTable.h +29 -0
  234. hikyuu/include/hikyuu/data_driver/base_info/table/MarketInfoTable.h +127 -0
  235. hikyuu/include/hikyuu/data_driver/base_info/table/StockTable.h +64 -0
  236. hikyuu/include/hikyuu/data_driver/base_info/table/StockTypeInfoTable.h +108 -0
  237. hikyuu/include/hikyuu/data_driver/base_info/table/StockWeightTable.h +52 -0
  238. hikyuu/include/hikyuu/data_driver/base_info/table/ZhBond10Table.h +20 -0
  239. hikyuu/include/hikyuu/data_driver/base_info/table/__init__.py +1 -0
  240. hikyuu/include/hikyuu/data_driver/block_info/__init__.py +1 -0
  241. hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +36 -0
  242. hikyuu/include/hikyuu/data_driver/block_info/mysql/__init__.py +1 -0
  243. hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +31 -0
  244. hikyuu/include/hikyuu/data_driver/block_info/qianlong/__init__.py +1 -0
  245. hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +36 -0
  246. hikyuu/include/hikyuu/data_driver/block_info/sqlite/__init__.py +1 -0
  247. hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +33 -0
  248. hikyuu/include/hikyuu/data_driver/kdata/__init__.py +1 -0
  249. hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +106 -0
  250. hikyuu/include/hikyuu/data_driver/kdata/cvs/__init__.py +1 -0
  251. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +89 -0
  252. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5Record.h +50 -0
  253. hikyuu/include/hikyuu/data_driver/kdata/hdf5/__init__.py +1 -0
  254. hikyuu/include/hikyuu/data_driver/kdata/mysql/KRecordTable.h +124 -0
  255. hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +78 -0
  256. hikyuu/include/hikyuu/data_driver/kdata/mysql/__init__.py +1 -0
  257. hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +62 -0
  258. hikyuu/include/hikyuu/data_driver/kdata/sqlite/__init__.py +1 -0
  259. hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +63 -0
  260. hikyuu/include/hikyuu/data_driver/kdata/tdx/__init__.py +1 -0
  261. hikyuu/include/hikyuu/debug.h +32 -0
  262. hikyuu/include/hikyuu/doc.h +166 -0
  263. hikyuu/include/hikyuu/global/GlobalSpotAgent.h +33 -0
  264. hikyuu/include/hikyuu/global/SpotRecord.h +52 -0
  265. hikyuu/include/hikyuu/global/__init__.py +1 -0
  266. hikyuu/include/hikyuu/global/agent/SpotAgent.h +143 -0
  267. hikyuu/include/hikyuu/global/agent/__init__.py +1 -0
  268. hikyuu/include/hikyuu/global/agent/hikyuu/__init__.py +1 -0
  269. hikyuu/include/hikyuu/global/agent/hikyuu/flat/__init__.py +1 -0
  270. hikyuu/include/hikyuu/global/agent/spot_generated.h +527 -0
  271. hikyuu/include/hikyuu/global/schedule/__init__.py +1 -0
  272. hikyuu/include/hikyuu/global/schedule/inner_tasks.h +16 -0
  273. hikyuu/include/hikyuu/global/schedule/scheduler.h +24 -0
  274. hikyuu/include/hikyuu/global/sysinfo.h +67 -0
  275. hikyuu/include/hikyuu/hikyuu.h +55 -0
  276. hikyuu/include/hikyuu/indicator/IndParam.h +39 -0
  277. hikyuu/include/hikyuu/indicator/Indicator.h +403 -0
  278. hikyuu/include/hikyuu/indicator/IndicatorImp.h +413 -0
  279. hikyuu/include/hikyuu/indicator/__init__.py +1 -0
  280. hikyuu/include/hikyuu/indicator/build_in.h +114 -0
  281. hikyuu/include/hikyuu/indicator/crt/ABS.h +34 -0
  282. hikyuu/include/hikyuu/indicator/crt/ACOS.h +36 -0
  283. hikyuu/include/hikyuu/indicator/crt/AD.h +28 -0
  284. hikyuu/include/hikyuu/indicator/crt/ADVANCE.h +32 -0
  285. hikyuu/include/hikyuu/indicator/crt/ALIGN.h +42 -0
  286. hikyuu/include/hikyuu/indicator/crt/AMA.h +113 -0
  287. hikyuu/include/hikyuu/indicator/crt/ASIN.h +36 -0
  288. hikyuu/include/hikyuu/indicator/crt/ATAN.h +36 -0
  289. hikyuu/include/hikyuu/indicator/crt/ATR.h +44 -0
  290. hikyuu/include/hikyuu/indicator/crt/AVEDEV.h +45 -0
  291. hikyuu/include/hikyuu/indicator/crt/BACKSET.h +44 -0
  292. hikyuu/include/hikyuu/indicator/crt/BARSCOUNT.h +37 -0
  293. hikyuu/include/hikyuu/indicator/crt/BARSLAST.h +41 -0
  294. hikyuu/include/hikyuu/indicator/crt/BARSSINCE.h +41 -0
  295. hikyuu/include/hikyuu/indicator/crt/BETWEEN.h +85 -0
  296. hikyuu/include/hikyuu/indicator/crt/BLOCKSETNUM.h +23 -0
  297. hikyuu/include/hikyuu/indicator/crt/CEILING.h +38 -0
  298. hikyuu/include/hikyuu/indicator/crt/CORR.h +24 -0
  299. hikyuu/include/hikyuu/indicator/crt/COS.h +36 -0
  300. hikyuu/include/hikyuu/indicator/crt/COST.h +34 -0
  301. hikyuu/include/hikyuu/indicator/crt/COUNT.h +54 -0
  302. hikyuu/include/hikyuu/indicator/crt/CROSS.h +48 -0
  303. hikyuu/include/hikyuu/indicator/crt/CVAL.h +35 -0
  304. hikyuu/include/hikyuu/indicator/crt/DECLINE.h +32 -0
  305. hikyuu/include/hikyuu/indicator/crt/DEVSQ.h +40 -0
  306. hikyuu/include/hikyuu/indicator/crt/DIFF.h +31 -0
  307. hikyuu/include/hikyuu/indicator/crt/DMA.h +34 -0
  308. hikyuu/include/hikyuu/indicator/crt/DOWNNDAY.h +43 -0
  309. hikyuu/include/hikyuu/indicator/crt/DROPNA.h +31 -0
  310. hikyuu/include/hikyuu/indicator/crt/EMA.h +44 -0
  311. hikyuu/include/hikyuu/indicator/crt/EVERY.h +44 -0
  312. hikyuu/include/hikyuu/indicator/crt/EXIST.h +44 -0
  313. hikyuu/include/hikyuu/indicator/crt/EXP.h +34 -0
  314. hikyuu/include/hikyuu/indicator/crt/FILTER.h +44 -0
  315. hikyuu/include/hikyuu/indicator/crt/FINANCE.h +20 -0
  316. hikyuu/include/hikyuu/indicator/crt/FLOOR.h +38 -0
  317. hikyuu/include/hikyuu/indicator/crt/HHV.h +44 -0
  318. hikyuu/include/hikyuu/indicator/crt/HHVBARS.h +44 -0
  319. hikyuu/include/hikyuu/indicator/crt/HSL.h +39 -0
  320. hikyuu/include/hikyuu/indicator/crt/IC.h +41 -0
  321. hikyuu/include/hikyuu/indicator/crt/ICIR.h +51 -0
  322. hikyuu/include/hikyuu/indicator/crt/INSUM.h +33 -0
  323. hikyuu/include/hikyuu/indicator/crt/INTPART.h +38 -0
  324. hikyuu/include/hikyuu/indicator/crt/IR.h +44 -0
  325. hikyuu/include/hikyuu/indicator/crt/KDATA.h +72 -0
  326. hikyuu/include/hikyuu/indicator/crt/LAST.h +100 -0
  327. hikyuu/include/hikyuu/indicator/crt/LIUTONGPAN.h +23 -0
  328. hikyuu/include/hikyuu/indicator/crt/LLV.h +46 -0
  329. hikyuu/include/hikyuu/indicator/crt/LLVBARS.h +44 -0
  330. hikyuu/include/hikyuu/indicator/crt/LN.h +36 -0
  331. hikyuu/include/hikyuu/indicator/crt/LOG.h +35 -0
  332. hikyuu/include/hikyuu/indicator/crt/LONGCROSS.h +68 -0
  333. hikyuu/include/hikyuu/indicator/crt/MA.h +44 -0
  334. hikyuu/include/hikyuu/indicator/crt/MACD.h +62 -0
  335. hikyuu/include/hikyuu/indicator/crt/MAX.h +45 -0
  336. hikyuu/include/hikyuu/indicator/crt/MDD.h +29 -0
  337. hikyuu/include/hikyuu/indicator/crt/MIN.h +45 -0
  338. hikyuu/include/hikyuu/indicator/crt/MOD.h +49 -0
  339. hikyuu/include/hikyuu/indicator/crt/MRR.h +29 -0
  340. hikyuu/include/hikyuu/indicator/crt/NDAY.h +43 -0
  341. hikyuu/include/hikyuu/indicator/crt/NOT.h +35 -0
  342. hikyuu/include/hikyuu/indicator/crt/POS.h +21 -0
  343. hikyuu/include/hikyuu/indicator/crt/POW.h +48 -0
  344. hikyuu/include/hikyuu/indicator/crt/PRICELIST.h +59 -0
  345. hikyuu/include/hikyuu/indicator/crt/RECOVER.h +45 -0
  346. hikyuu/include/hikyuu/indicator/crt/REF.h +48 -0
  347. hikyuu/include/hikyuu/indicator/crt/RESULT.h +20 -0
  348. hikyuu/include/hikyuu/indicator/crt/REVERSE.h +36 -0
  349. hikyuu/include/hikyuu/indicator/crt/ROC.h +39 -0
  350. hikyuu/include/hikyuu/indicator/crt/ROCP.h +39 -0
  351. hikyuu/include/hikyuu/indicator/crt/ROCR.h +39 -0
  352. hikyuu/include/hikyuu/indicator/crt/ROCR100.h +39 -0
  353. hikyuu/include/hikyuu/indicator/crt/ROUND.h +36 -0
  354. hikyuu/include/hikyuu/indicator/crt/ROUNDDOWN.h +36 -0
  355. hikyuu/include/hikyuu/indicator/crt/ROUNDUP.h +36 -0
  356. hikyuu/include/hikyuu/indicator/crt/RSI.h +43 -0
  357. hikyuu/include/hikyuu/indicator/crt/SAFTYLOSS.h +79 -0
  358. hikyuu/include/hikyuu/indicator/crt/SGN.h +34 -0
  359. hikyuu/include/hikyuu/indicator/crt/SIN.h +36 -0
  360. hikyuu/include/hikyuu/indicator/crt/SLICE.h +44 -0
  361. hikyuu/include/hikyuu/indicator/crt/SLOPE.h +44 -0
  362. hikyuu/include/hikyuu/indicator/crt/SMA.h +72 -0
  363. hikyuu/include/hikyuu/indicator/crt/SPEARMAN.h +23 -0
  364. hikyuu/include/hikyuu/indicator/crt/SQRT.h +41 -0
  365. hikyuu/include/hikyuu/indicator/crt/STDEV.h +44 -0
  366. hikyuu/include/hikyuu/indicator/crt/STDP.h +38 -0
  367. hikyuu/include/hikyuu/indicator/crt/SUM.h +44 -0
  368. hikyuu/include/hikyuu/indicator/crt/SUMBARS.h +44 -0
  369. hikyuu/include/hikyuu/indicator/crt/TAN.h +36 -0
  370. hikyuu/include/hikyuu/indicator/crt/TIME.h +69 -0
  371. hikyuu/include/hikyuu/indicator/crt/TIMELINE.h +23 -0
  372. hikyuu/include/hikyuu/indicator/crt/TIMELINEVOL.h +21 -0
  373. hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +21 -0
  374. hikyuu/include/hikyuu/indicator/crt/UPNDAY.h +43 -0
  375. hikyuu/include/hikyuu/indicator/crt/VAR.h +40 -0
  376. hikyuu/include/hikyuu/indicator/crt/VARP.h +40 -0
  377. hikyuu/include/hikyuu/indicator/crt/VIGOR.h +34 -0
  378. hikyuu/include/hikyuu/indicator/crt/ZHBOND10.h +27 -0
  379. hikyuu/include/hikyuu/indicator/crt/ZONGGUBEN.h +17 -0
  380. hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +30 -0
  381. hikyuu/include/hikyuu/indicator/crt/__init__.py +1 -0
  382. hikyuu/include/hikyuu/indicator/imp/IAbs.h +26 -0
  383. hikyuu/include/hikyuu/indicator/imp/IAcos.h +28 -0
  384. hikyuu/include/hikyuu/indicator/imp/IAd.h +30 -0
  385. hikyuu/include/hikyuu/indicator/imp/IAdvance.h +29 -0
  386. hikyuu/include/hikyuu/indicator/imp/IAlign.h +28 -0
  387. hikyuu/include/hikyuu/indicator/imp/IAma.h +38 -0
  388. hikyuu/include/hikyuu/indicator/imp/IAsin.h +28 -0
  389. hikyuu/include/hikyuu/indicator/imp/IAtan.h +28 -0
  390. hikyuu/include/hikyuu/indicator/imp/IAtr.h +28 -0
  391. hikyuu/include/hikyuu/indicator/imp/IBackset.h +33 -0
  392. hikyuu/include/hikyuu/indicator/imp/IBarsCount.h +28 -0
  393. hikyuu/include/hikyuu/indicator/imp/IBarsLast.h +28 -0
  394. hikyuu/include/hikyuu/indicator/imp/IBarsSince.h +28 -0
  395. hikyuu/include/hikyuu/indicator/imp/IBlockSetNum.h +28 -0
  396. hikyuu/include/hikyuu/indicator/imp/ICeil.h +31 -0
  397. hikyuu/include/hikyuu/indicator/imp/ICorr.h +42 -0
  398. hikyuu/include/hikyuu/indicator/imp/ICos.h +28 -0
  399. hikyuu/include/hikyuu/indicator/imp/ICount.h +32 -0
  400. hikyuu/include/hikyuu/indicator/imp/ICval.h +29 -0
  401. hikyuu/include/hikyuu/indicator/imp/IDecline.h +29 -0
  402. hikyuu/include/hikyuu/indicator/imp/IDevsq.h +29 -0
  403. hikyuu/include/hikyuu/indicator/imp/IDiff.h +29 -0
  404. hikyuu/include/hikyuu/indicator/imp/IDma.h +47 -0
  405. hikyuu/include/hikyuu/indicator/imp/IDropna.h +28 -0
  406. hikyuu/include/hikyuu/indicator/imp/IEma.h +29 -0
  407. hikyuu/include/hikyuu/indicator/imp/IEvery.h +32 -0
  408. hikyuu/include/hikyuu/indicator/imp/IExist.h +32 -0
  409. hikyuu/include/hikyuu/indicator/imp/IExp.h +28 -0
  410. hikyuu/include/hikyuu/indicator/imp/IFilter.h +34 -0
  411. hikyuu/include/hikyuu/indicator/imp/IFinance.h +25 -0
  412. hikyuu/include/hikyuu/indicator/imp/IFloor.h +31 -0
  413. hikyuu/include/hikyuu/indicator/imp/IHhvbars.h +29 -0
  414. hikyuu/include/hikyuu/indicator/imp/IHighLine.h +34 -0
  415. hikyuu/include/hikyuu/indicator/imp/IIc.h +45 -0
  416. hikyuu/include/hikyuu/indicator/imp/IInSum.h +28 -0
  417. hikyuu/include/hikyuu/indicator/imp/IIntpart.h +31 -0
  418. hikyuu/include/hikyuu/indicator/imp/IKData.h +29 -0
  419. hikyuu/include/hikyuu/indicator/imp/ILiuTongPan.h +29 -0
  420. hikyuu/include/hikyuu/indicator/imp/ILn.h +28 -0
  421. hikyuu/include/hikyuu/indicator/imp/ILog.h +28 -0
  422. hikyuu/include/hikyuu/indicator/imp/ILowLine.h +30 -0
  423. hikyuu/include/hikyuu/indicator/imp/ILowLineBars.h +29 -0
  424. hikyuu/include/hikyuu/indicator/imp/IMa.h +27 -0
  425. hikyuu/include/hikyuu/indicator/imp/IMacd.h +41 -0
  426. hikyuu/include/hikyuu/indicator/imp/IMdd.h +23 -0
  427. hikyuu/include/hikyuu/indicator/imp/IMrr.h +23 -0
  428. hikyuu/include/hikyuu/indicator/imp/INot.h +26 -0
  429. hikyuu/include/hikyuu/indicator/imp/IPow.h +32 -0
  430. hikyuu/include/hikyuu/indicator/imp/IPriceList.h +29 -0
  431. hikyuu/include/hikyuu/indicator/imp/IRecover.h +29 -0
  432. hikyuu/include/hikyuu/indicator/imp/IRef.h +34 -0
  433. hikyuu/include/hikyuu/indicator/imp/IResult.h +26 -0
  434. hikyuu/include/hikyuu/indicator/imp/IReverse.h +28 -0
  435. hikyuu/include/hikyuu/indicator/imp/IRoc.h +29 -0
  436. hikyuu/include/hikyuu/indicator/imp/IRocp.h +29 -0
  437. hikyuu/include/hikyuu/indicator/imp/IRocr.h +29 -0
  438. hikyuu/include/hikyuu/indicator/imp/IRocr100.h +29 -0
  439. hikyuu/include/hikyuu/indicator/imp/IRound.h +32 -0
  440. hikyuu/include/hikyuu/indicator/imp/IRoundDown.h +32 -0
  441. hikyuu/include/hikyuu/indicator/imp/IRoundUp.h +32 -0
  442. hikyuu/include/hikyuu/indicator/imp/ISaftyLoss.h +44 -0
  443. hikyuu/include/hikyuu/indicator/imp/ISign.h +28 -0
  444. hikyuu/include/hikyuu/indicator/imp/ISin.h +28 -0
  445. hikyuu/include/hikyuu/indicator/imp/ISlice.h +25 -0
  446. hikyuu/include/hikyuu/indicator/imp/ISlope.h +25 -0
  447. hikyuu/include/hikyuu/indicator/imp/ISma.h +34 -0
  448. hikyuu/include/hikyuu/indicator/imp/ISpearman.h +42 -0
  449. hikyuu/include/hikyuu/indicator/imp/ISqrt.h +31 -0
  450. hikyuu/include/hikyuu/indicator/imp/IStdev.h +31 -0
  451. hikyuu/include/hikyuu/indicator/imp/IStdp.h +33 -0
  452. hikyuu/include/hikyuu/indicator/imp/ISum.h +27 -0
  453. hikyuu/include/hikyuu/indicator/imp/ISumBars.h +30 -0
  454. hikyuu/include/hikyuu/indicator/imp/ITan.h +28 -0
  455. hikyuu/include/hikyuu/indicator/imp/ITime.h +33 -0
  456. hikyuu/include/hikyuu/indicator/imp/ITimeLine.h +32 -0
  457. hikyuu/include/hikyuu/indicator/imp/IVar.h +32 -0
  458. hikyuu/include/hikyuu/indicator/imp/IVarp.h +32 -0
  459. hikyuu/include/hikyuu/indicator/imp/IVigor.h +35 -0
  460. hikyuu/include/hikyuu/indicator/imp/IZScore.h +25 -0
  461. hikyuu/include/hikyuu/indicator/imp/IZhBond10.h +30 -0
  462. hikyuu/include/hikyuu/indicator/imp/IZongGuBen.h +25 -0
  463. hikyuu/include/hikyuu/indicator/imp/__init__.py +1 -0
  464. hikyuu/include/hikyuu/python/__init__.py +1 -0
  465. hikyuu/include/hikyuu/python/pickle_support.h +90 -0
  466. hikyuu/include/hikyuu/python/pybind_utils.h +103 -0
  467. hikyuu/include/hikyuu/serialization/Block_serialization.h +55 -0
  468. hikyuu/include/hikyuu/serialization/Datetime_serialization.h +40 -0
  469. hikyuu/include/hikyuu/serialization/KData_serialization.h +45 -0
  470. hikyuu/include/hikyuu/serialization/KQuery_serialization.h +79 -0
  471. hikyuu/include/hikyuu/serialization/KRecord_serialization.h +50 -0
  472. hikyuu/include/hikyuu/serialization/MarketInfo_serialization.h +68 -0
  473. hikyuu/include/hikyuu/serialization/PriceList_serialization.h +66 -0
  474. hikyuu/include/hikyuu/serialization/StockTypeInfo_serialization.h +62 -0
  475. hikyuu/include/hikyuu/serialization/StockWeight_serialization.h +65 -0
  476. hikyuu/include/hikyuu/serialization/Stock_serialization.h +47 -0
  477. hikyuu/include/hikyuu/serialization/TimeDelta_serialization.h +44 -0
  478. hikyuu/include/hikyuu/serialization/TimeLineRecord_serialization.h +42 -0
  479. hikyuu/include/hikyuu/serialization/TransRecord_serialization.h +44 -0
  480. hikyuu/include/hikyuu/serialization/__init__.py +1 -0
  481. hikyuu/include/hikyuu/serialization/all.h +26 -0
  482. hikyuu/include/hikyuu/strategy/BrokerTradeManager.h +433 -0
  483. hikyuu/include/hikyuu/strategy/RunPortfolioInStrategy.h +37 -0
  484. hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +38 -0
  485. hikyuu/include/hikyuu/strategy/Strategy.h +191 -0
  486. hikyuu/include/hikyuu/strategy/__init__.py +1 -0
  487. hikyuu/include/hikyuu/trade_manage/BorrowRecord.h +91 -0
  488. hikyuu/include/hikyuu/trade_manage/CostRecord.h +67 -0
  489. hikyuu/include/hikyuu/trade_manage/FundsRecord.h +110 -0
  490. hikyuu/include/hikyuu/trade_manage/LoanRecord.h +64 -0
  491. hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h +207 -0
  492. hikyuu/include/hikyuu/trade_manage/Performance.h +80 -0
  493. hikyuu/include/hikyuu/trade_manage/PositionRecord.h +108 -0
  494. hikyuu/include/hikyuu/trade_manage/TradeCostBase.h +174 -0
  495. hikyuu/include/hikyuu/trade_manage/TradeManager.h +487 -0
  496. hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +778 -0
  497. hikyuu/include/hikyuu/trade_manage/TradeRecord.h +151 -0
  498. hikyuu/include/hikyuu/trade_manage/__init__.py +1 -0
  499. hikyuu/include/hikyuu/trade_manage/build_in.h +19 -0
  500. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA.h +45 -0
  501. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2015.h +43 -0
  502. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2017.h +44 -0
  503. hikyuu/include/hikyuu/trade_manage/crt/TC_TestStub.h +21 -0
  504. hikyuu/include/hikyuu/trade_manage/crt/TC_Zero.h +25 -0
  505. hikyuu/include/hikyuu/trade_manage/crt/__init__.py +1 -0
  506. hikyuu/include/hikyuu/trade_manage/crt/crtTM.h +33 -0
  507. hikyuu/include/hikyuu/trade_manage/imp/FixedA2015TradeCost.h +53 -0
  508. hikyuu/include/hikyuu/trade_manage/imp/FixedA2017TradeCost.h +56 -0
  509. hikyuu/include/hikyuu/trade_manage/imp/FixedATradeCost.h +88 -0
  510. hikyuu/include/hikyuu/trade_manage/imp/TradeCostStub.h +48 -0
  511. hikyuu/include/hikyuu/trade_manage/imp/ZeroTradeCost.h +50 -0
  512. hikyuu/include/hikyuu/trade_manage/imp/__init__.py +1 -0
  513. hikyuu/include/hikyuu/trade_sys/__init__.py +1 -0
  514. hikyuu/include/hikyuu/trade_sys/all.h +24 -0
  515. hikyuu/include/hikyuu/trade_sys/allocatefunds/AllocateFundsBase.h +229 -0
  516. hikyuu/include/hikyuu/trade_sys/allocatefunds/__init__.py +1 -0
  517. hikyuu/include/hikyuu/trade_sys/allocatefunds/build_in.h +16 -0
  518. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_EqualWeight.h +25 -0
  519. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_FixedWeight.h +26 -0
  520. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_MultiFactor.h +21 -0
  521. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/__init__.py +1 -0
  522. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/EqualWeightAllocateFunds.h +27 -0
  523. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/FixedWeightAllocateFunds.h +28 -0
  524. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/MultiFactorAllocaterFunds.h +23 -0
  525. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/__init__.py +1 -0
  526. hikyuu/include/hikyuu/trade_sys/condition/ConditionBase.h +241 -0
  527. hikyuu/include/hikyuu/trade_sys/condition/__init__.py +1 -0
  528. hikyuu/include/hikyuu/trade_sys/condition/build_in.h +17 -0
  529. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Bool.h +22 -0
  530. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Logic.h +35 -0
  531. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Manual.h +20 -0
  532. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_OPLine.h +26 -0
  533. hikyuu/include/hikyuu/trade_sys/condition/crt/__init__.py +1 -0
  534. hikyuu/include/hikyuu/trade_sys/condition/imp/BoolCondition.h +40 -0
  535. hikyuu/include/hikyuu/trade_sys/condition/imp/ManualCondition.h +23 -0
  536. hikyuu/include/hikyuu/trade_sys/condition/imp/OPLineCondition.h +44 -0
  537. hikyuu/include/hikyuu/trade_sys/condition/imp/SubCondition.h +42 -0
  538. hikyuu/include/hikyuu/trade_sys/condition/imp/__init__.py +1 -0
  539. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AddCondition.h +42 -0
  540. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AndCondition.h +42 -0
  541. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/DivCondition.h +42 -0
  542. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/MultiCondition.h +42 -0
  543. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/OrCondition.h +42 -0
  544. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/__init__.py +1 -0
  545. hikyuu/include/hikyuu/trade_sys/environment/EnvironmentBase.h +178 -0
  546. hikyuu/include/hikyuu/trade_sys/environment/__init__.py +1 -0
  547. hikyuu/include/hikyuu/trade_sys/environment/build_in.h +16 -0
  548. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Bool.h +23 -0
  549. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Manual.h +20 -0
  550. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_TwoLine.h +28 -0
  551. hikyuu/include/hikyuu/trade_sys/environment/crt/__init__.py +1 -0
  552. hikyuu/include/hikyuu/trade_sys/environment/imp/BoolEnvironment.h +41 -0
  553. hikyuu/include/hikyuu/trade_sys/environment/imp/ManualEnvironment.h +23 -0
  554. hikyuu/include/hikyuu/trade_sys/environment/imp/TwoLineEnvironment.h +47 -0
  555. hikyuu/include/hikyuu/trade_sys/environment/imp/__init__.py +1 -0
  556. hikyuu/include/hikyuu/trade_sys/moneymanager/MoneyManagerBase.h +230 -0
  557. hikyuu/include/hikyuu/trade_sys/moneymanager/__init__.py +1 -0
  558. hikyuu/include/hikyuu/trade_sys/moneymanager/build_in.h +20 -0
  559. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCapital.h +20 -0
  560. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCount.h +28 -0
  561. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedPercent.h +27 -0
  562. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedRisk.h +20 -0
  563. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedUnits.h +20 -0
  564. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_Nothing.h +24 -0
  565. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_WilliamsFixedRisk.h +20 -0
  566. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/__init__.py +1 -0
  567. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalMoneyManager.h +28 -0
  568. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCountMoneyManager.h +38 -0
  569. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedPercentMoneyManager.h +34 -0
  570. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedRiskMoneyManager.h +28 -0
  571. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedUnitsMoneyManager.h +28 -0
  572. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/NotMoneyManager.h +30 -0
  573. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/WilliamsFixedRiskMoneyManager.h +28 -0
  574. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/__init__.py +1 -0
  575. hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +275 -0
  576. hikyuu/include/hikyuu/trade_sys/multifactor/ScoreRecord.h +51 -0
  577. hikyuu/include/hikyuu/trade_sys/multifactor/__init__.py +1 -0
  578. hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +12 -0
  579. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_EqualWeight.h +29 -0
  580. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICIRWeight.h +30 -0
  581. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICWeight.h +30 -0
  582. hikyuu/include/hikyuu/trade_sys/multifactor/crt/__init__.py +1 -0
  583. hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +25 -0
  584. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +27 -0
  585. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +27 -0
  586. hikyuu/include/hikyuu/trade_sys/multifactor/imp/__init__.py +1 -0
  587. hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +256 -0
  588. hikyuu/include/hikyuu/trade_sys/portfolio/__init__.py +1 -0
  589. hikyuu/include/hikyuu/trade_sys/portfolio/build_in.h +14 -0
  590. hikyuu/include/hikyuu/trade_sys/portfolio/crt/PF_Simple.h +23 -0
  591. hikyuu/include/hikyuu/trade_sys/portfolio/crt/__init__.py +1 -0
  592. hikyuu/include/hikyuu/trade_sys/portfolio/imp/__init__.py +1 -0
  593. hikyuu/include/hikyuu/trade_sys/profitgoal/ProfitGoalBase.h +189 -0
  594. hikyuu/include/hikyuu/trade_sys/profitgoal/__init__.py +1 -0
  595. hikyuu/include/hikyuu/trade_sys/profitgoal/build_in.h +16 -0
  596. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedHoldDays.h +26 -0
  597. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedPercent.h +25 -0
  598. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_NoGoal.h +24 -0
  599. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/__init__.py +1 -0
  600. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedHoldDays.h +29 -0
  601. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedPercentProfitGoal.h +28 -0
  602. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/NoGoalProfitGoal.h +27 -0
  603. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/__init__.py +1 -0
  604. hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +245 -0
  605. hikyuu/include/hikyuu/trade_sys/selector/SystemWeight.h +70 -0
  606. hikyuu/include/hikyuu/trade_sys/selector/__init__.py +1 -0
  607. hikyuu/include/hikyuu/trade_sys/selector/build_in.h +18 -0
  608. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Fixed.h +38 -0
  609. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Logic.h +43 -0
  610. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor.h +40 -0
  611. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Optimal.h +26 -0
  612. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Signal.h +30 -0
  613. hikyuu/include/hikyuu/trade_sys/selector/crt/__init__.py +1 -0
  614. hikyuu/include/hikyuu/trade_sys/selector/imp/FixedSelector.h +28 -0
  615. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +52 -0
  616. hikyuu/include/hikyuu/trade_sys/selector/imp/SignalSelector.h +30 -0
  617. hikyuu/include/hikyuu/trade_sys/selector/imp/__init__.py +1 -0
  618. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddSelector.h +19 -0
  619. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddValueSelector.h +19 -0
  620. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivSelector.h +19 -0
  621. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivValueSelector.h +19 -0
  622. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertDivValueSelector.h +19 -0
  623. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertSubValueSelector.h +19 -0
  624. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulSelector.h +19 -0
  625. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulValueSelector.h +19 -0
  626. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +108 -0
  627. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubSelector.h +19 -0
  628. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubValueSelector.h +19 -0
  629. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +94 -0
  630. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/__init__.py +1 -0
  631. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/MaxFundsOptimalSelector.h +27 -0
  632. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/OptimalSelectorBase.h +86 -0
  633. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/PerformanceOptimalSelector.h +42 -0
  634. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/__init__.py +1 -0
  635. hikyuu/include/hikyuu/trade_sys/signal/SignalBase.h +249 -0
  636. hikyuu/include/hikyuu/trade_sys/signal/__init__.py +1 -0
  637. hikyuu/include/hikyuu/trade_sys/signal/build_in.h +22 -0
  638. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_AllwaysBuy.h +20 -0
  639. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Band.h +37 -0
  640. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Bool.h +28 -0
  641. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cross.h +28 -0
  642. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_CrossGold.h +29 -0
  643. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cycle.h +20 -0
  644. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Flex.h +29 -0
  645. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Manual.h +20 -0
  646. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Single.h +56 -0
  647. hikyuu/include/hikyuu/trade_sys/signal/crt/__init__.py +1 -0
  648. hikyuu/include/hikyuu/trade_sys/signal/imp/AllwaysBuySignal.h +25 -0
  649. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal.h +46 -0
  650. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +47 -0
  651. hikyuu/include/hikyuu/trade_sys/signal/imp/BoolSignal.h +46 -0
  652. hikyuu/include/hikyuu/trade_sys/signal/imp/CrossGoldSignal.h +46 -0
  653. hikyuu/include/hikyuu/trade_sys/signal/imp/CrossSignal.h +46 -0
  654. hikyuu/include/hikyuu/trade_sys/signal/imp/CycleSignal.h +25 -0
  655. hikyuu/include/hikyuu/trade_sys/signal/imp/ManualSignal.h +23 -0
  656. hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal.h +45 -0
  657. hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal2.h +45 -0
  658. hikyuu/include/hikyuu/trade_sys/signal/imp/__init__.py +1 -0
  659. hikyuu/include/hikyuu/trade_sys/slippage/SlippageBase.h +170 -0
  660. hikyuu/include/hikyuu/trade_sys/slippage/__init__.py +1 -0
  661. hikyuu/include/hikyuu/trade_sys/slippage/build_in.h +15 -0
  662. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedPercent.h +26 -0
  663. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedValue.h +26 -0
  664. hikyuu/include/hikyuu/trade_sys/slippage/crt/__init__.py +1 -0
  665. hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedPercentSlippage.h +28 -0
  666. hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedValueSlippage.h +28 -0
  667. hikyuu/include/hikyuu/trade_sys/slippage/imp/__init__.py +1 -0
  668. hikyuu/include/hikyuu/trade_sys/stoploss/StoplossBase.h +199 -0
  669. hikyuu/include/hikyuu/trade_sys/stoploss/__init__.py +1 -0
  670. hikyuu/include/hikyuu/trade_sys/stoploss/build_in.h +16 -0
  671. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_FixedPercent.h +25 -0
  672. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Indicator.h +21 -0
  673. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Saftyloss.h +37 -0
  674. hikyuu/include/hikyuu/trade_sys/stoploss/crt/__init__.py +1 -0
  675. hikyuu/include/hikyuu/trade_sys/stoploss/imp/FixedPercentStoploss.h +30 -0
  676. hikyuu/include/hikyuu/trade_sys/stoploss/imp/IndicatorStoploss.h +50 -0
  677. hikyuu/include/hikyuu/trade_sys/stoploss/imp/__init__.py +1 -0
  678. hikyuu/include/hikyuu/trade_sys/system/System.h +639 -0
  679. hikyuu/include/hikyuu/trade_sys/system/SystemPart.h +54 -0
  680. hikyuu/include/hikyuu/trade_sys/system/TradeRequest.h +94 -0
  681. hikyuu/include/hikyuu/trade_sys/system/__init__.py +1 -0
  682. hikyuu/include/hikyuu/trade_sys/system/build_in.h +15 -0
  683. hikyuu/include/hikyuu/trade_sys/system/crt/SYS_Simple.h +50 -0
  684. hikyuu/include/hikyuu/trade_sys/system/crt/SYS_WalkForward.h +21 -0
  685. hikyuu/include/hikyuu/trade_sys/system/crt/__init__.py +1 -0
  686. hikyuu/include/hikyuu/trade_sys/system/imp/DelegateSystem.h +51 -0
  687. hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardSystem.h +70 -0
  688. hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardTradeManager.h +465 -0
  689. hikyuu/include/hikyuu/trade_sys/system/imp/__init__.py +1 -0
  690. hikyuu/include/hikyuu/utilities/ConnectPool.h +163 -0
  691. hikyuu/include/hikyuu/utilities/FilterNode.h +267 -0
  692. hikyuu/include/hikyuu/utilities/LRUCache11.h +230 -0
  693. hikyuu/include/hikyuu/utilities/Log.h +411 -0
  694. hikyuu/include/hikyuu/utilities/Null.h +143 -0
  695. hikyuu/include/hikyuu/utilities/Parameter.h +511 -0
  696. hikyuu/include/hikyuu/utilities/ResourcePool.h +636 -0
  697. hikyuu/include/hikyuu/utilities/SpendTimer.h +305 -0
  698. hikyuu/include/hikyuu/utilities/TimerManager.h +552 -0
  699. hikyuu/include/hikyuu/utilities/__init__.py +1 -0
  700. hikyuu/include/hikyuu/utilities/any_to_string.h +142 -0
  701. hikyuu/include/hikyuu/utilities/arithmetic.h +401 -0
  702. hikyuu/include/hikyuu/utilities/base64.h +52 -0
  703. hikyuu/include/hikyuu/utilities/config.h +41 -0
  704. hikyuu/include/hikyuu/utilities/cppdef.h +25 -0
  705. hikyuu/include/hikyuu/utilities/datetime/Datetime.h +438 -0
  706. hikyuu/include/hikyuu/utilities/datetime/TimeDelta.h +343 -0
  707. hikyuu/include/hikyuu/utilities/datetime/__init__.py +1 -0
  708. hikyuu/include/hikyuu/utilities/db_connect/AutoTransAction.h +124 -0
  709. hikyuu/include/hikyuu/utilities/db_connect/DBCondition.h +248 -0
  710. hikyuu/include/hikyuu/utilities/db_connect/DBConnect.h +30 -0
  711. hikyuu/include/hikyuu/utilities/db_connect/DBConnectBase.h +658 -0
  712. hikyuu/include/hikyuu/utilities/db_connect/DBUpgrade.h +28 -0
  713. hikyuu/include/hikyuu/utilities/db_connect/SQLException.h +62 -0
  714. hikyuu/include/hikyuu/utilities/db_connect/SQLResultSet.h +248 -0
  715. hikyuu/include/hikyuu/utilities/db_connect/SQLStatementBase.h +305 -0
  716. hikyuu/include/hikyuu/utilities/db_connect/TableMacro.h +2579 -0
  717. hikyuu/include/hikyuu/utilities/db_connect/__init__.py +1 -0
  718. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +56 -0
  719. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +88 -0
  720. hikyuu/include/hikyuu/utilities/db_connect/mysql/__init__.py +1 -0
  721. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +89 -0
  722. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +71 -0
  723. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteUtil.h +80 -0
  724. hikyuu/include/hikyuu/utilities/db_connect/sqlite/__init__.py +1 -0
  725. hikyuu/include/hikyuu/utilities/exception.h +52 -0
  726. hikyuu/include/hikyuu/utilities/http_client/HttpClient.h +229 -0
  727. hikyuu/include/hikyuu/utilities/http_client/__init__.py +1 -0
  728. hikyuu/include/hikyuu/utilities/http_client/nng_wrap.h +517 -0
  729. hikyuu/include/hikyuu/utilities/http_client/url.h +25 -0
  730. hikyuu/include/hikyuu/utilities/ini_parser/IniParser.h +104 -0
  731. hikyuu/include/hikyuu/utilities/ini_parser/__init__.py +1 -0
  732. hikyuu/include/hikyuu/utilities/md5.h +41 -0
  733. hikyuu/include/hikyuu/utilities/mo/__init__.py +1 -0
  734. hikyuu/include/hikyuu/utilities/mo/mo.h +48 -0
  735. hikyuu/include/hikyuu/utilities/mo/moFileReader.h +836 -0
  736. hikyuu/include/hikyuu/utilities/node/NodeClient.h +175 -0
  737. hikyuu/include/hikyuu/utilities/node/NodeError.h +66 -0
  738. hikyuu/include/hikyuu/utilities/node/NodeMessage.h +80 -0
  739. hikyuu/include/hikyuu/utilities/node/NodeServer.h +246 -0
  740. hikyuu/include/hikyuu/utilities/node/__init__.py +1 -0
  741. hikyuu/include/hikyuu/utilities/os.h +102 -0
  742. hikyuu/include/hikyuu/utilities/osdef.h +159 -0
  743. hikyuu/include/hikyuu/utilities/runtimeinfo.h +35 -0
  744. hikyuu/include/hikyuu/utilities/snowflake.h +110 -0
  745. hikyuu/include/hikyuu/utilities/string_view.h +70 -0
  746. hikyuu/include/hikyuu/utilities/thread/FuncWrapper.h +85 -0
  747. hikyuu/include/hikyuu/utilities/thread/InterruptFlag.h +30 -0
  748. hikyuu/include/hikyuu/utilities/thread/MQStealQueue.h +112 -0
  749. hikyuu/include/hikyuu/utilities/thread/MQStealThreadPool.h +315 -0
  750. hikyuu/include/hikyuu/utilities/thread/MQThreadPool.h +275 -0
  751. hikyuu/include/hikyuu/utilities/thread/StealThreadPool.h +309 -0
  752. hikyuu/include/hikyuu/utilities/thread/ThreadPool.h +231 -0
  753. hikyuu/include/hikyuu/utilities/thread/ThreadSafeQueue.h +101 -0
  754. hikyuu/include/hikyuu/utilities/thread/WorkStealQueue.h +105 -0
  755. hikyuu/include/hikyuu/utilities/thread/__init__.py +1 -0
  756. hikyuu/include/hikyuu/utilities/thread/algorithm.h +110 -0
  757. hikyuu/include/hikyuu/utilities/thread/thread.h +10 -0
  758. hikyuu/include/hikyuu/version.h +24 -0
  759. hikyuu/indicator/__init__.py +29 -0
  760. hikyuu/indicator/indicator.py +157 -0
  761. hikyuu/indicator/pyind.py +47 -0
  762. hikyuu/indicator/talib_wrap.py +1264 -0
  763. hikyuu/interactive.py +331 -0
  764. hikyuu/setup.py +104 -0
  765. hikyuu/shell/__init__.py +0 -0
  766. hikyuu/shell/cmdserver.py +126 -0
  767. hikyuu/shell/hkucmd.py +110 -0
  768. hikyuu/shell/hkushell.py +20 -0
  769. hikyuu/strategy/__init__.py +2 -0
  770. hikyuu/strategy/strategy_demo1.py +54 -0
  771. hikyuu/strategy/strategy_demo2.py +47 -0
  772. hikyuu/strategy/strategy_demo3.py +24 -0
  773. hikyuu/test/AllocateFunds.py +25 -0
  774. hikyuu/test/Condition.py +95 -0
  775. hikyuu/test/Datetime.py +61 -0
  776. hikyuu/test/Environment.py +88 -0
  777. hikyuu/test/Indicator.py +233 -0
  778. hikyuu/test/KData.py +64 -0
  779. hikyuu/test/MarketInfo.py +26 -0
  780. hikyuu/test/MoneyManager.py +88 -0
  781. hikyuu/test/Parameter.py +62 -0
  782. hikyuu/test/ProfitGoal.py +83 -0
  783. hikyuu/test/Signal.py +160 -0
  784. hikyuu/test/Slippage.py +88 -0
  785. hikyuu/test/Stock.py +127 -0
  786. hikyuu/test/StockTypeInfo.py +47 -0
  787. hikyuu/test/Stoploss.py +86 -0
  788. hikyuu/test/TradeCost.py +71 -0
  789. hikyuu/test/__init__.py +0 -0
  790. hikyuu/test/test.py +63 -0
  791. hikyuu/test/test_init.py +36 -0
  792. hikyuu/tools/__init__.py +1 -0
  793. hikyuu/tools/copy_file.py +16 -0
  794. hikyuu/tools/delete_index.py +50 -0
  795. hikyuu/tools/fenge.py +139 -0
  796. hikyuu/tools/h5_data_clear.py +163 -0
  797. hikyuu/tools/mysql_clear_last_day_data.py +61 -0
  798. hikyuu/tools/update_block_info.py +168 -0
  799. hikyuu/trade_manage/__init__.py +30 -0
  800. hikyuu/trade_manage/broker.py +95 -0
  801. hikyuu/trade_manage/broker_easytrader.py +63 -0
  802. hikyuu/trade_manage/broker_mail.py +101 -0
  803. hikyuu/trade_manage/trade.py +111 -0
  804. hikyuu/trade_sys/__init__.py +27 -0
  805. hikyuu/trade_sys/trade_sys.py +251 -0
  806. hikyuu/util/__init__.py +49 -0
  807. hikyuu/util/check.py +153 -0
  808. hikyuu/util/mylog.py +264 -0
  809. hikyuu/util/notebook.py +47 -0
  810. hikyuu/util/singleton.py +29 -0
  811. hikyuu/util/slice.py +43 -0
  812. hikyuu/util/timeout.py +83 -0
  813. hikyuu-2.2.4.dist-info/LICENSE +201 -0
  814. hikyuu-2.2.4.dist-info/METADATA +150 -0
  815. hikyuu-2.2.4.dist-info/RECORD +818 -0
  816. hikyuu-2.2.4.dist-info/WHEEL +5 -0
  817. hikyuu-2.2.4.dist-info/entry_points.txt +3 -0
  818. hikyuu-2.2.4.dist-info/top_level.txt +112 -0
@@ -0,0 +1,194 @@
1
+ /*
2
+ * KDataDriver.h
3
+ *
4
+ * Created on: 2012-9-8
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #ifndef KDATADRIVER_H_
10
+ #define KDATADRIVER_H_
11
+
12
+ #include "../utilities/Parameter.h"
13
+ #include "../KQuery.h"
14
+ #include "../TimeLineRecord.h"
15
+ #include "../TransRecord.h"
16
+
17
+ namespace hku {
18
+
19
+ /**
20
+ * K线数据驱动基类
21
+ * @ingroup DataDriver
22
+ */
23
+ class HKU_API KDataDriver {
24
+ PARAMETER_SUPPORT
25
+
26
+ public:
27
+ KDataDriver();
28
+
29
+ KDataDriver(const Parameter& params);
30
+
31
+ /**
32
+ * 构造函数
33
+ * @param name 驱动名称
34
+ */
35
+ KDataDriver(const string& name);
36
+ virtual ~KDataDriver() {}
37
+
38
+ /** 获取驱动名称 */
39
+ const string& name() const;
40
+
41
+ /** 驱动初始化 */
42
+ bool init(const Parameter&);
43
+
44
+ typedef shared_ptr<KDataDriver> KDataDriverPtr;
45
+ /**
46
+ * 克隆实现
47
+ */
48
+ KDataDriverPtr clone();
49
+
50
+ /**
51
+ * 子类克隆函数实现
52
+ */
53
+ virtual KDataDriverPtr _clone() = 0;
54
+
55
+ /**
56
+ * 子类初始化私有变量接口
57
+ * @return
58
+ */
59
+ virtual bool _init() {
60
+ return true;
61
+ }
62
+
63
+ /**
64
+ * 判断该引擎是否是位置索引方式查询速度更快,还是按日期方式查询更快
65
+ */
66
+ virtual bool isIndexFirst() = 0;
67
+
68
+ /**
69
+ * 是否支持并行数据加载
70
+ */
71
+ virtual bool canParallelLoad() = 0;
72
+
73
+ /**
74
+ * 获取指定类型的K线数据量
75
+ * @param market 市场简称
76
+ * @param code 证券代码
77
+ * @param kType K线类型
78
+ * @return
79
+ */
80
+ virtual size_t getCount(const string& market, const string& code, const KQuery::KType& kType);
81
+
82
+ /**
83
+ * 获取指定日期范围对应的K线记录索引
84
+ * @param market 市场简称
85
+ * @param code 证券代码
86
+ * @param query 查询条件
87
+ * @param out_start [out] 对应K线记录位置
88
+ * @param out_end [out] 对应的K线记录位置
89
+ * @return
90
+ */
91
+ virtual bool getIndexRangeByDate(const string& market, const string& code, const KQuery& query,
92
+ size_t& out_start, size_t& out_end);
93
+
94
+ /**
95
+ * 获取 K 线数据
96
+ * @param market 市场简称
97
+ * @param code 证券代码
98
+ * @param query 查询条件
99
+ */
100
+ virtual KRecordList getKRecordList(const string& market, const string& code,
101
+ const KQuery& query);
102
+
103
+ /**
104
+ * 获取分时线
105
+ * @param market 市场简称
106
+ * @param code 证券代码
107
+ * @param query 查询条件
108
+ * @return
109
+ */
110
+ virtual TimeLineList getTimeLineList(const string& market, const string& code,
111
+ const KQuery& query);
112
+
113
+ /**
114
+ * 获取历史分笔数据
115
+ * @param market 市场简称
116
+ * @param code 证券代码
117
+ * @param query 查询条件
118
+ * @return
119
+ */
120
+ virtual TransList getTransList(const string& market, const string& code, const KQuery& query);
121
+
122
+ private:
123
+ bool checkType();
124
+
125
+ private:
126
+ string m_name;
127
+ };
128
+
129
+ typedef shared_ptr<KDataDriver> KDataDriverPtr;
130
+
131
+ HKU_API std::ostream& operator<<(std::ostream&, const KDataDriver&);
132
+ HKU_API std::ostream& operator<<(std::ostream&, const KDataDriverPtr&);
133
+
134
+ inline const string& KDataDriver::name() const {
135
+ return m_name;
136
+ }
137
+
138
+ class KDataDriverConnect {
139
+ public:
140
+ typedef KDataDriver DriverType;
141
+ typedef KDataDriverPtr DriverTypePtr;
142
+
143
+ explicit KDataDriverConnect(const KDataDriverPtr& driver) : m_driver(driver) {}
144
+ ~KDataDriverConnect() = default;
145
+
146
+ KDataDriverConnect(const KDataDriverConnect&) = delete;
147
+ KDataDriverConnect(KDataDriverConnect&&) = delete;
148
+ KDataDriverConnect& operator=(const KDataDriverConnect&) = delete;
149
+ KDataDriverConnect& operator=(KDataDriverConnect&&) = delete;
150
+
151
+ explicit operator bool() const noexcept {
152
+ return m_driver.get() != nullptr;
153
+ }
154
+
155
+ const string& name() const {
156
+ return m_driver->name();
157
+ }
158
+
159
+ bool isIndexFirst() {
160
+ return m_driver->isIndexFirst();
161
+ }
162
+
163
+ bool canParallelLoad() {
164
+ return m_driver->canParallelLoad();
165
+ }
166
+
167
+ size_t getCount(const string& market, const string& code, KQuery::KType kType) {
168
+ return m_driver->getCount(market, code, kType);
169
+ }
170
+
171
+ bool getIndexRangeByDate(const string& market, const string& code, const KQuery& query,
172
+ size_t& out_start, size_t& out_end) {
173
+ return m_driver->getIndexRangeByDate(market, code, query, out_start, out_end);
174
+ }
175
+
176
+ KRecordList getKRecordList(const string& market, const string& code, const KQuery& query) {
177
+ return m_driver->getKRecordList(market, code, query);
178
+ }
179
+
180
+ TimeLineList getTimeLineList(const string& market, const string& code, const KQuery& query) {
181
+ return m_driver->getTimeLineList(market, code, query);
182
+ }
183
+
184
+ TransList getTransList(const string& market, const string& code, const KQuery& query) {
185
+ return m_driver->getTransList(market, code, query);
186
+ }
187
+
188
+ private:
189
+ KDataDriverPtr m_driver;
190
+ };
191
+
192
+ } // namespace hku
193
+
194
+ #endif /* KDATADRIVER_H_ */
@@ -0,0 +1,54 @@
1
+ /*
2
+ * MySQLBaseInfoDriver.h
3
+ *
4
+ * Created on: 2014年8月27日
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #ifndef MYSQLBASEINFODRIVER_H_
10
+ #define MYSQLBASEINFODRIVER_H_
11
+
12
+ #include "../../../utilities/ConnectPool.h"
13
+ #include "../../../utilities/db_connect/mysql/MySQLConnect.h"
14
+ #include "../../BaseInfoDriver.h"
15
+
16
+ #if defined(_MSC_VER)
17
+ #include <mysql.h>
18
+ #else
19
+ #include <mysql/mysql.h>
20
+ #endif
21
+
22
+ namespace hku {
23
+
24
+ class MySQLBaseInfoDriver : public BaseInfoDriver {
25
+ public:
26
+ MySQLBaseInfoDriver();
27
+ virtual ~MySQLBaseInfoDriver();
28
+
29
+ virtual bool _init() override;
30
+ virtual vector<StockInfo> getAllStockInfo() override;
31
+ virtual vector<MarketInfo> getAllMarketInfo() override;
32
+ virtual vector<StockTypeInfo> getAllStockTypeInfo() override;
33
+
34
+ virtual Parameter getFinanceInfo(const string& market, const string& code) override;
35
+ virtual StockWeightList getStockWeightList(const string& market, const string& code,
36
+ Datetime start, Datetime end) override;
37
+ virtual unordered_map<string, StockWeightList> getAllStockWeightList() override;
38
+ virtual MarketInfo getMarketInfo(const string& market) override;
39
+ virtual StockTypeInfo getStockTypeInfo(uint32_t type) override;
40
+ virtual StockInfo getStockInfo(string market, const string& code) override;
41
+ virtual std::unordered_set<Datetime> getAllHolidays() override;
42
+ virtual ZhBond10List getAllZhBond10() override;
43
+
44
+ virtual vector<std::pair<size_t, string>> getHistoryFinanceField() override;
45
+ virtual vector<HistoryFinanceInfo> getHistoryFinance(const string& market, const string& code,
46
+ Datetime start, Datetime end) override;
47
+
48
+ private:
49
+ ConnectPool<MySQLConnect>* m_pool;
50
+ };
51
+
52
+ } /* namespace hku */
53
+
54
+ #endif /* MYSQLBASEINFODRIVER_H_ */
@@ -0,0 +1,50 @@
1
+ /*
2
+ * SQLiteBaseInfoDriver.h
3
+ *
4
+ * Copyright (c) 2019 fasiondog
5
+ *
6
+ * Created on: 2019-8-11
7
+ * Author: fasiondog
8
+ */
9
+
10
+ #pragma once
11
+ #ifndef HIKYUU_DATA_DRIVER_BASE_INFO_SQLITE_SQLITEBASEINFODRIVER_H
12
+ #define HIKYUU_DATA_DRIVER_BASE_INFO_SQLITE_SQLITEBASEINFODRIVER_H
13
+
14
+ #include "../../../utilities/db_connect/sqlite/SQLiteConnect.h"
15
+ #include "../../../utilities/ConnectPool.h"
16
+ #include "../../BaseInfoDriver.h"
17
+
18
+ namespace hku {
19
+
20
+ class SQLiteBaseInfoDriver : public BaseInfoDriver {
21
+ public:
22
+ SQLiteBaseInfoDriver();
23
+ virtual ~SQLiteBaseInfoDriver();
24
+
25
+ virtual bool _init() override;
26
+ virtual vector<MarketInfo> getAllMarketInfo() override;
27
+ virtual vector<StockTypeInfo> getAllStockTypeInfo() override;
28
+
29
+ virtual Parameter getFinanceInfo(const string& market, const string& code) override;
30
+ virtual StockWeightList getStockWeightList(const string& market, const string& code,
31
+ Datetime start, Datetime end) override;
32
+ virtual unordered_map<string, StockWeightList> getAllStockWeightList() override;
33
+ virtual MarketInfo getMarketInfo(const string& market) override;
34
+ virtual StockTypeInfo getStockTypeInfo(uint32_t type) override;
35
+ virtual StockInfo getStockInfo(string market, const string& code) override;
36
+ virtual vector<StockInfo> getAllStockInfo() override;
37
+ virtual std::unordered_set<Datetime> getAllHolidays() override;
38
+ virtual ZhBond10List getAllZhBond10() override;
39
+
40
+ virtual vector<std::pair<size_t, string>> getHistoryFinanceField() override;
41
+ virtual vector<HistoryFinanceInfo> getHistoryFinance(const string& market, const string& code,
42
+ Datetime start, Datetime end) override;
43
+
44
+ private:
45
+ // 股票基本信息数据库实例
46
+ ConnectPool<SQLiteConnect>* m_pool;
47
+ };
48
+
49
+ } /* namespace hku */
50
+ #endif /* HIKYUU_DATA_DRIVER_BASE_INFO_SQLITE_SQLITEBASEINFODRIVER_H */
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Copyright (c) 2024 hikyuu.org
3
+ *
4
+ * Created on: 2024-04-13
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include "hikyuu/utilities/db_connect/TableMacro.h"
11
+
12
+ namespace hku {
13
+
14
+ struct HistoryFinanceFieldTable {
15
+ TABLE_BIND1(HistoryFinanceFieldTable, HistoryFinanceField, name)
16
+ std::string name;
17
+ };
18
+
19
+ }
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) 2024 hikyuu.org
3
+ *
4
+ * Created on: 2024-04-13
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include "hikyuu/utilities/db_connect/TableMacro.h"
11
+
12
+ namespace hku {
13
+
14
+ struct HistoryFinanceTable {
15
+ TABLE_BIND4(HistoryFinanceTable, HistoryFinance, file_date, report_date, market_code, values)
16
+ uint64_t file_date{0};
17
+ uint64_t report_date{0};
18
+ std::string market_code;
19
+ // std::vector<float> values;
20
+ std::vector<char> values;
21
+ };
22
+
23
+ } // namespace hku
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright(C) 2021 hikyuu.org
3
+ *
4
+ * Create on: 2021-02-06
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <limits>
11
+ #include "../../../utilities/db_connect/SQLStatementBase.h"
12
+ #include "../../../utilities/db_connect/TableMacro.h"
13
+
14
+ namespace hku {
15
+
16
+ class HolidayTable {
17
+ TABLE_BIND1(HolidayTable, holiday, date)
18
+
19
+ public:
20
+ Datetime datetime() const {
21
+ HKU_CHECK(date <= 99999999, "Invalid holiday date: {}!", date);
22
+ return Datetime(date * 10000LL);
23
+ }
24
+
25
+ private:
26
+ uint64_t date{Datetime().number()};
27
+ };
28
+
29
+ } // namespace hku
@@ -0,0 +1,127 @@
1
+ /*
2
+ * MarketInfoTable.h
3
+ *
4
+ * Copyright (c) 2019 fasiondog
5
+ *
6
+ * Created on: 2019-8-11
7
+ * Author: fasiondog
8
+ */
9
+
10
+ #pragma once
11
+ #ifndef HIKYUU_DATA_DRIVER_BASE_INFO_TABLE_MARKETINFOTABLE_H
12
+ #define HIKYUU_DATA_DRIVER_BASE_INFO_TABLE_MARKETINFOTABLE_H
13
+
14
+ #include "../../../utilities/db_connect/SQLStatementBase.h"
15
+
16
+ namespace hku {
17
+
18
+ class MarketInfoTable {
19
+ public:
20
+ MarketInfoTable()
21
+ : m_marketid(0),
22
+ m_lastDate(0),
23
+ m_openTime1(0),
24
+ m_closeTime1(0),
25
+ m_openTime2(0),
26
+ m_closeTime2(0) {}
27
+
28
+ uint64_t id() const {
29
+ return m_marketid;
30
+ }
31
+
32
+ const string& market() const {
33
+ return m_market;
34
+ }
35
+
36
+ const string& name() const {
37
+ return m_name;
38
+ }
39
+
40
+ const string& description() const {
41
+ return m_description;
42
+ }
43
+
44
+ const string& code() const {
45
+ return m_code;
46
+ }
47
+
48
+ Datetime lastDate() const {
49
+ HKU_CHECK(m_lastDate <= 99999999, "Invalid lastDate: {}!", m_lastDate);
50
+ return Datetime(m_lastDate * 10000LL);
51
+ }
52
+
53
+ TimeDelta openTime1() const {
54
+ return _transTimeDelta(m_openTime1);
55
+ }
56
+
57
+ TimeDelta closeTime1() const {
58
+ return _transTimeDelta(m_closeTime1);
59
+ }
60
+
61
+ TimeDelta openTime2() const {
62
+ return _transTimeDelta(m_openTime2);
63
+ }
64
+
65
+ TimeDelta closeTime2() const {
66
+ return _transTimeDelta(m_closeTime2);
67
+ }
68
+
69
+ private:
70
+ TimeDelta _transTimeDelta(uint64_t time) const {
71
+ int64_t hours = time / 100;
72
+ HKU_CHECK(hours >= 0 && hours <= 23, "Invalid time: {}!", time);
73
+ int64_t mins = time - hours * 100;
74
+ HKU_CHECK(mins >= 0 && mins <= 59, "Invalid time: {}!", time);
75
+ return TimeDelta(0, hours, mins);
76
+ }
77
+
78
+ public:
79
+ static const char* getInsertSQL() {
80
+ return "insert into `market` "
81
+ "(`marketid`, `market`, `name`, `description`, `code`, `lastDate`,"
82
+ " `openTime1`, `closeTime1`, `openTime2`, `closeTime2`) "
83
+ "values (?,?,?,?,?,?,?,?,?,?)";
84
+ }
85
+
86
+ static const char* getUpdateSQL() {
87
+ return "update `market` set `market`=?, `name`=?, `description`=?, "
88
+ "`code`=?, `lastDate`=?, `openTime1`=?, `closeTime1`=?, "
89
+ "`openTime2=`=?, `closeTime2`=? where `marketid`=?";
90
+ }
91
+
92
+ static const char* getSelectSQL() {
93
+ return "select `marketid`,`market`,`name`, `description`, `code`, `lastDate`, "
94
+ "`openTime1`, `closeTime1`, `openTime2`, `closeTime2` from `market`";
95
+ }
96
+
97
+ void save(const SQLStatementPtr& st) const {
98
+ st->bind(0, m_marketid, m_market, m_name, m_description, m_code, m_lastDate, m_openTime1,
99
+ m_closeTime1, m_openTime2, m_closeTime2);
100
+ }
101
+
102
+ void update(const SQLStatementPtr& st) const {
103
+ st->bind(0, m_market, m_name, m_description, m_code, m_lastDate, m_openTime1, m_closeTime1,
104
+ m_openTime2, m_closeTime2, m_marketid);
105
+ }
106
+
107
+ void load(const SQLStatementPtr& st) {
108
+ st->getColumn(0, m_marketid, m_market, m_name, m_description, m_code, m_lastDate,
109
+ m_openTime1, m_closeTime1, m_openTime2, m_closeTime2);
110
+ }
111
+
112
+ private:
113
+ uint64_t m_marketid;
114
+ string m_market;
115
+ string m_name;
116
+ string m_description;
117
+ string m_code;
118
+ uint64_t m_lastDate;
119
+ uint64_t m_openTime1;
120
+ uint64_t m_closeTime1;
121
+ uint64_t m_openTime2;
122
+ uint64_t m_closeTime2;
123
+ };
124
+
125
+ } // namespace hku
126
+
127
+ #endif /* HIKYUU_DATA_DRIVER_BASE_INFO_TABLE_MARKETINFOTABLE_H */
@@ -0,0 +1,64 @@
1
+ /*
2
+ * StockTable.h
3
+ *
4
+ * Copyright (c) 2019 fasiondog
5
+ *
6
+ * Created on: 2019-8-14
7
+ * Author: fasiondog
8
+ */
9
+
10
+ #pragma once
11
+ #ifndef HIKYUU_DATA_DRIVER_BASE_INFO_TABLE_STOCKTABLE_H
12
+ #define HIKYUU_DATA_DRIVER_BASE_INFO_TABLE_STOCKTABLE_H
13
+
14
+ #include "../../../utilities/db_connect/SQLStatementBase.h"
15
+
16
+ namespace hku {
17
+
18
+ class StockTable {
19
+ public:
20
+ StockTable() : stockid(0), marketid(0), type(0), valid(0), startDate(0), endDate(0) {}
21
+
22
+ public:
23
+ static const char* getInsertSQL() {
24
+ return "insert into `stock` "
25
+ "(`marketid`, `code`, `name`, `type`, `valid`, `startDate`, `endDate`) "
26
+ "values (?,?,?,?,?,?,?)";
27
+ }
28
+
29
+ static const char* getUpdateSQL() {
30
+ return "update `stock` set `marketid`=?, `code`=?, `name`=?, `type`=?, "
31
+ "`valid`=?, `startDate`=?, `endDate`=?, `lastDate`=? where `stockid`=?";
32
+ }
33
+
34
+ static const char* getSelectSQL() {
35
+ return "select `stockid`,`marketid`, `code`, `name`, `type`, `valid`, "
36
+ "`startDate`, `endDate` from `stock`";
37
+ }
38
+
39
+ void save(const SQLStatementPtr& st) const {
40
+ st->bind(0, marketid, code, name, type, valid, startDate, endDate);
41
+ }
42
+
43
+ void update(const SQLStatementPtr& st) const {
44
+ st->bind(0, marketid, code, name, type, valid, startDate, endDate, stockid);
45
+ }
46
+
47
+ void load(const SQLStatementPtr& st) {
48
+ st->getColumn(0, stockid, marketid, code, name, type, valid, startDate, endDate);
49
+ }
50
+
51
+ public:
52
+ uint64_t stockid;
53
+ uint64_t marketid;
54
+ string code;
55
+ string name;
56
+ uint32_t type;
57
+ uint32_t valid;
58
+ uint64_t startDate;
59
+ uint64_t endDate;
60
+ };
61
+
62
+ } // namespace hku
63
+
64
+ #endif /* HIKYUU_DATA_DRIVER_BASE_INFO_TABLE_STOCKTABLE_H */
@@ -0,0 +1,108 @@
1
+ /*
2
+ * StockTypeInfoTable.h
3
+ *
4
+ * Copyright (c) 2019 fasiondog
5
+ *
6
+ * Created on: 2019-8-11
7
+ * Author: fasiondog
8
+ */
9
+
10
+ #pragma once
11
+ #ifndef HIKYUU_DATA_DRIVER_BASE_INFO_TABLE_STOCKTYPEINFOTABLE_H
12
+ #define HIKYUU_DATA_DRIVER_BASE_INFO_TABLE_STOCKTYPEINFOTABLE_H
13
+
14
+ #include "../../../utilities/db_connect/SQLStatementBase.h"
15
+
16
+ namespace hku {
17
+
18
+ class StockTypeInfoTable {
19
+ public:
20
+ StockTypeInfoTable()
21
+ : m_id(0),
22
+ m_type(Null<uint32_t>()),
23
+ m_precision(0),
24
+ m_tick(0.0),
25
+ m_tickValue(0.0),
26
+ m_minTradeNumber(0),
27
+ m_maxTradeNumber(0) {}
28
+
29
+ int64_t id() const {
30
+ return m_id;
31
+ }
32
+
33
+ uint32_t type() const {
34
+ return m_type;
35
+ }
36
+
37
+ uint32_t precision() const {
38
+ return m_precision;
39
+ }
40
+
41
+ double tick() const {
42
+ return m_tick;
43
+ }
44
+
45
+ double tickValue() const {
46
+ return m_tickValue;
47
+ }
48
+
49
+ double minTradeNumber() const {
50
+ return m_minTradeNumber;
51
+ }
52
+
53
+ double maxTradeNumber() const {
54
+ return m_maxTradeNumber;
55
+ }
56
+
57
+ const string& description() const {
58
+ return m_description;
59
+ }
60
+
61
+ public:
62
+ static const char* getInsertSQL() {
63
+ return "insert into `stocktypeinfo` "
64
+ "(`id`, `type`, `precision`, `tick`, `tickValue`, "
65
+ "`minTradeNumber`, `maxTradeNumber`, `description`) "
66
+ "values (?,?,?,?,?,?,?,?)";
67
+ }
68
+
69
+ static const char* getUpdateSQL() {
70
+ return "update `stocktypeinfo` set `type`=?, `precision`=?, `tick`=?, "
71
+ "`tickValue`=?, `minTradeNumber`=?, `maxTradeNumber`=?"
72
+ "`description`=? where `id`=?";
73
+ }
74
+
75
+ static const char* getSelectSQL() {
76
+ return "select `id`,`type`,`precision`, `tick`, `tickValue`, "
77
+ "`minTradeNumber`, `maxTradeNumber`, `description` from `stocktypeinfo`";
78
+ }
79
+
80
+ void save(const SQLStatementPtr& st) const {
81
+ st->bind(0, m_id, m_type, m_precision, m_tick, m_tickValue, m_minTradeNumber,
82
+ m_maxTradeNumber, m_description);
83
+ }
84
+
85
+ void update(const SQLStatementPtr& st) const {
86
+ st->bind(0, m_type, m_precision, m_tick, m_tickValue, m_minTradeNumber, m_maxTradeNumber,
87
+ m_description, m_id);
88
+ }
89
+
90
+ void load(const SQLStatementPtr& st) {
91
+ st->getColumn(0, m_id, m_type, m_precision, m_tick, m_tickValue, m_minTradeNumber,
92
+ m_maxTradeNumber, m_description);
93
+ }
94
+
95
+ private:
96
+ int64_t m_id;
97
+ uint32_t m_type; //证券类型
98
+ uint32_t m_precision; //价格精度
99
+ double m_tick; //最小跳动量
100
+ double m_tickValue; //每一个tick价格
101
+ double m_minTradeNumber; //每笔最小交易量
102
+ double m_maxTradeNumber; //每笔最大交易量
103
+ string m_description; //描述信息
104
+ };
105
+
106
+ } // namespace hku
107
+
108
+ #endif /* HIKYUU_DATA_DRIVER_BASE_INFO_TABLE_STOCKTYPEINFOTABLE_H */