hikyuu 2.3.1__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 (931) hide show
  1. hikyuu/LICENSE.txt +21 -0
  2. hikyuu/__init__.py +137 -0
  3. hikyuu/__init__.pyi +782 -0
  4. hikyuu/analysis/__init__.py +14 -0
  5. hikyuu/analysis/__init__.pyi +473 -0
  6. hikyuu/analysis/analysis.py +151 -0
  7. hikyuu/analysis/analysis.pyi +503 -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 +468 -0
  17. hikyuu/cpp/__init__.py +1 -0
  18. hikyuu/cpp/__init__.pyi +3 -0
  19. hikyuu/cpp/core310.so +0 -0
  20. hikyuu/cpp/core311.so +0 -0
  21. hikyuu/cpp/core312.pyi +12475 -0
  22. hikyuu/cpp/core312.so +0 -0
  23. hikyuu/cpp/core313.so +0 -0
  24. hikyuu/cpp/core39.so +0 -0
  25. hikyuu/cpp/libcrypto.3.dylib +0 -0
  26. hikyuu/cpp/libcrypto.dylib +0 -0
  27. hikyuu/cpp/libhku_hdf5.200.2.0.dylib +0 -0
  28. hikyuu/cpp/libhku_hdf5.200.dylib +0 -0
  29. hikyuu/cpp/libhku_hdf5.dylib +0 -0
  30. hikyuu/cpp/libhku_hdf5_cpp.200.2.0.dylib +0 -0
  31. hikyuu/cpp/libhku_hdf5_cpp.200.dylib +0 -0
  32. hikyuu/cpp/libhku_hdf5_cpp.dylib +0 -0
  33. hikyuu/cpp/libhku_hdf5_hl.200.1.0.dylib +0 -0
  34. hikyuu/cpp/libhku_hdf5_hl.200.dylib +0 -0
  35. hikyuu/cpp/libhku_hdf5_hl.dylib +0 -0
  36. hikyuu/cpp/libhku_hdf5_hl_cpp.200.1.0.dylib +0 -0
  37. hikyuu/cpp/libhku_hdf5_hl_cpp.200.dylib +0 -0
  38. hikyuu/cpp/libhku_hdf5_hl_cpp.dylib +0 -0
  39. hikyuu/cpp/libhku_hdf5_tools.200.1.1.dylib +0 -0
  40. hikyuu/cpp/libhku_hdf5_tools.200.dylib +0 -0
  41. hikyuu/cpp/libhku_hdf5_tools.dylib +0 -0
  42. hikyuu/cpp/libmysqlclient.21.dylib +0 -0
  43. hikyuu/cpp/libmysqlclient.dylib +0 -0
  44. hikyuu/cpp/libsqlite3.dylib +0 -0
  45. hikyuu/cpp/libssl.3.dylib +0 -0
  46. hikyuu/cpp/libssl.dylib +0 -0
  47. hikyuu/data/__init__.py +1 -0
  48. hikyuu/data/common.py +248 -0
  49. hikyuu/data/common_h5.py +398 -0
  50. hikyuu/data/common_mysql.py +485 -0
  51. hikyuu/data/common_pytdx.py +108 -0
  52. hikyuu/data/common_sqlite3.py +140 -0
  53. hikyuu/data/em_block_to_mysql.py +120 -0
  54. hikyuu/data/em_block_to_sqlite.py +117 -0
  55. hikyuu/data/hku_config_template.py +266 -0
  56. hikyuu/data/mysql_upgrade/0001.sql +5 -0
  57. hikyuu/data/mysql_upgrade/0002.sql +3 -0
  58. hikyuu/data/mysql_upgrade/0003.sql +9 -0
  59. hikyuu/data/mysql_upgrade/0004.sql +26 -0
  60. hikyuu/data/mysql_upgrade/0005.sql +3 -0
  61. hikyuu/data/mysql_upgrade/0006.sql +2 -0
  62. hikyuu/data/mysql_upgrade/0007.sql +20 -0
  63. hikyuu/data/mysql_upgrade/0008.sql +6 -0
  64. hikyuu/data/mysql_upgrade/0009.sql +36 -0
  65. hikyuu/data/mysql_upgrade/0010.sql +5 -0
  66. hikyuu/data/mysql_upgrade/0011.sql +5 -0
  67. hikyuu/data/mysql_upgrade/0012.sql +5 -0
  68. hikyuu/data/mysql_upgrade/0013.sql +2389 -0
  69. hikyuu/data/mysql_upgrade/0014.sql +3 -0
  70. hikyuu/data/mysql_upgrade/0015.sql +4 -0
  71. hikyuu/data/mysql_upgrade/0016.sql +4 -0
  72. hikyuu/data/mysql_upgrade/0017.sql +5 -0
  73. hikyuu/data/mysql_upgrade/0018.sql +2 -0
  74. hikyuu/data/mysql_upgrade/0019.sql +6 -0
  75. hikyuu/data/mysql_upgrade/0020.sql +4 -0
  76. hikyuu/data/mysql_upgrade/0021.sql +4 -0
  77. hikyuu/data/mysql_upgrade/0022.sql +5 -0
  78. hikyuu/data/mysql_upgrade/0023.sql +4 -0
  79. hikyuu/data/mysql_upgrade/0024.sql +2 -0
  80. hikyuu/data/mysql_upgrade/0025.sql +61 -0
  81. hikyuu/data/mysql_upgrade/__init__.py +1 -0
  82. hikyuu/data/mysql_upgrade/createdb.sql +265 -0
  83. hikyuu/data/pytdx_finance_to_mysql.py +129 -0
  84. hikyuu/data/pytdx_finance_to_sqlite.py +162 -0
  85. hikyuu/data/pytdx_to_h5.py +662 -0
  86. hikyuu/data/pytdx_to_mysql.py +803 -0
  87. hikyuu/data/pytdx_weight_to_mysql.py +196 -0
  88. hikyuu/data/pytdx_weight_to_sqlite.py +192 -0
  89. hikyuu/data/sqlite_mem.py +84 -0
  90. hikyuu/data/sqlite_mem_sql/__init__.py +1 -0
  91. hikyuu/data/sqlite_mem_sql/createdb.sql +126 -0
  92. hikyuu/data/sqlite_upgrade/0001.sql +4 -0
  93. hikyuu/data/sqlite_upgrade/0002.sql +48 -0
  94. hikyuu/data/sqlite_upgrade/0003.sql +18 -0
  95. hikyuu/data/sqlite_upgrade/0004.sql +11 -0
  96. hikyuu/data/sqlite_upgrade/0005.sql +28 -0
  97. hikyuu/data/sqlite_upgrade/0006.sql +5 -0
  98. hikyuu/data/sqlite_upgrade/0007.sql +4 -0
  99. hikyuu/data/sqlite_upgrade/0008.sql +22 -0
  100. hikyuu/data/sqlite_upgrade/0009.sql +8 -0
  101. hikyuu/data/sqlite_upgrade/0010.sql +5 -0
  102. hikyuu/data/sqlite_upgrade/0011.sql +16 -0
  103. hikyuu/data/sqlite_upgrade/0012.sql +15 -0
  104. hikyuu/data/sqlite_upgrade/0013.sql +9 -0
  105. hikyuu/data/sqlite_upgrade/0014.sql +607 -0
  106. hikyuu/data/sqlite_upgrade/0015.sql +7 -0
  107. hikyuu/data/sqlite_upgrade/0016.sql +8 -0
  108. hikyuu/data/sqlite_upgrade/0017.sql +16 -0
  109. hikyuu/data/sqlite_upgrade/0018.sql +5 -0
  110. hikyuu/data/sqlite_upgrade/0019.sql +4 -0
  111. hikyuu/data/sqlite_upgrade/0020.sql +4 -0
  112. hikyuu/data/sqlite_upgrade/0021.sql +6 -0
  113. hikyuu/data/sqlite_upgrade/0022.sql +6 -0
  114. hikyuu/data/sqlite_upgrade/0023.sql +7 -0
  115. hikyuu/data/sqlite_upgrade/0024.sql +22 -0
  116. hikyuu/data/sqlite_upgrade/0025.sql +63 -0
  117. hikyuu/data/sqlite_upgrade/__init__.py +1 -0
  118. hikyuu/data/sqlite_upgrade/createdb.sql +61 -0
  119. hikyuu/data/tdx_to_h5.py +464 -0
  120. hikyuu/data/tdx_to_mysql.py +464 -0
  121. hikyuu/data/weight_to_mysql.py +72 -0
  122. hikyuu/data/weight_to_sqlite.py +70 -0
  123. hikyuu/data/zh_bond10_to_mysql.py +30 -0
  124. hikyuu/data/zh_bond10_to_sqlite.py +42 -0
  125. hikyuu/data_driver/__init__.py +49 -0
  126. hikyuu/data_driver/jqdata_data_driver.py +277 -0
  127. hikyuu/data_driver/pytdx_data_driver.py +292 -0
  128. hikyuu/deprecated.py +651 -0
  129. hikyuu/draw/__init__.py +65 -0
  130. hikyuu/draw/drawplot/__init__.py +300 -0
  131. hikyuu/draw/drawplot/bokeh_draw.py +583 -0
  132. hikyuu/draw/drawplot/common.py +89 -0
  133. hikyuu/draw/drawplot/echarts_draw.py +604 -0
  134. hikyuu/draw/drawplot/icon/1.png +0 -0
  135. hikyuu/draw/drawplot/icon/10.png +0 -0
  136. hikyuu/draw/drawplot/icon/11.png +0 -0
  137. hikyuu/draw/drawplot/icon/12.png +0 -0
  138. hikyuu/draw/drawplot/icon/13.png +0 -0
  139. hikyuu/draw/drawplot/icon/14.png +0 -0
  140. hikyuu/draw/drawplot/icon/15.png +0 -0
  141. hikyuu/draw/drawplot/icon/16.png +0 -0
  142. hikyuu/draw/drawplot/icon/17.png +0 -0
  143. hikyuu/draw/drawplot/icon/18.png +0 -0
  144. hikyuu/draw/drawplot/icon/19.png +0 -0
  145. hikyuu/draw/drawplot/icon/2.png +0 -0
  146. hikyuu/draw/drawplot/icon/20.png +0 -0
  147. hikyuu/draw/drawplot/icon/21.png +0 -0
  148. hikyuu/draw/drawplot/icon/22.png +0 -0
  149. hikyuu/draw/drawplot/icon/23.png +0 -0
  150. hikyuu/draw/drawplot/icon/24.png +0 -0
  151. hikyuu/draw/drawplot/icon/25.png +0 -0
  152. hikyuu/draw/drawplot/icon/26.png +0 -0
  153. hikyuu/draw/drawplot/icon/27.png +0 -0
  154. hikyuu/draw/drawplot/icon/28.png +0 -0
  155. hikyuu/draw/drawplot/icon/29.png +0 -0
  156. hikyuu/draw/drawplot/icon/3.png +0 -0
  157. hikyuu/draw/drawplot/icon/30.png +0 -0
  158. hikyuu/draw/drawplot/icon/31.png +0 -0
  159. hikyuu/draw/drawplot/icon/32.png +0 -0
  160. hikyuu/draw/drawplot/icon/33.png +0 -0
  161. hikyuu/draw/drawplot/icon/34.png +0 -0
  162. hikyuu/draw/drawplot/icon/35.png +0 -0
  163. hikyuu/draw/drawplot/icon/36.png +0 -0
  164. hikyuu/draw/drawplot/icon/37.png +0 -0
  165. hikyuu/draw/drawplot/icon/38.png +0 -0
  166. hikyuu/draw/drawplot/icon/39.png +0 -0
  167. hikyuu/draw/drawplot/icon/4.png +0 -0
  168. hikyuu/draw/drawplot/icon/40.png +0 -0
  169. hikyuu/draw/drawplot/icon/41.png +0 -0
  170. hikyuu/draw/drawplot/icon/42.png +0 -0
  171. hikyuu/draw/drawplot/icon/43.png +0 -0
  172. hikyuu/draw/drawplot/icon/44.png +0 -0
  173. hikyuu/draw/drawplot/icon/45.png +0 -0
  174. hikyuu/draw/drawplot/icon/46.png +0 -0
  175. hikyuu/draw/drawplot/icon/47.png +0 -0
  176. hikyuu/draw/drawplot/icon/48.png +0 -0
  177. hikyuu/draw/drawplot/icon/49.png +0 -0
  178. hikyuu/draw/drawplot/icon/5.png +0 -0
  179. hikyuu/draw/drawplot/icon/6.png +0 -0
  180. hikyuu/draw/drawplot/icon/7.png +0 -0
  181. hikyuu/draw/drawplot/icon/8.png +0 -0
  182. hikyuu/draw/drawplot/icon/9.png +0 -0
  183. hikyuu/draw/drawplot/icon/__init__.py +0 -0
  184. hikyuu/draw/drawplot/matplotlib_draw.py +1381 -0
  185. hikyuu/draw/elder.py +135 -0
  186. hikyuu/draw/kaufman.py +192 -0
  187. hikyuu/draw/volume.py +122 -0
  188. hikyuu/examples/Turtle_SG.py +47 -0
  189. hikyuu/examples/__init__.py +1 -0
  190. hikyuu/examples/examples_init.py +33 -0
  191. hikyuu/examples/notebook/000-Index.ipynb +76 -0
  192. hikyuu/examples/notebook/001-overview.ipynb +345 -0
  193. hikyuu/examples/notebook/002-HowToGetStock.ipynb +265 -0
  194. hikyuu/examples/notebook/003-HowToGetKDataAndDraw.ipynb +375 -0
  195. hikyuu/examples/notebook/004-IndicatorOverview.ipynb +501 -0
  196. hikyuu/examples/notebook/005-Drawplot.ipynb +321 -0
  197. hikyuu/examples/notebook/006-TradeManager.ipynb +381 -0
  198. hikyuu/examples/notebook/007-SystemDetails.ipynb +380 -0
  199. hikyuu/examples/notebook/008-Pickle.ipynb +127 -0
  200. hikyuu/examples/notebook/009-RealData.ipynb +110 -0
  201. hikyuu/examples/notebook/010-Portfolio.ipynb +333 -0
  202. hikyuu/examples/notebook/011-PyechartsDrawplot.ipynb +21821 -0
  203. hikyuu/examples/notebook/Demo/Demo1.ipynb +623 -0
  204. hikyuu/examples/notebook/Demo/Demo2.ipynb +665 -0
  205. hikyuu/examples/notebook/Demo/__init__.py +1 -0
  206. hikyuu/examples/notebook/README.md +1 -0
  207. hikyuu/examples/notebook/__init__.py +1 -0
  208. hikyuu/examples/notebook/images/002_01_block_config.png +0 -0
  209. hikyuu/examples/notebook/images/008_01_tocsv.png +0 -0
  210. hikyuu/examples/notebook/images/008_02_tocsv_look.png +0 -0
  211. hikyuu/examples/notebook/images/008_03_pickle.png +0 -0
  212. hikyuu/examples/notebook/images/__init__.py +1 -0
  213. hikyuu/examples/quick_crtsg.py +40 -0
  214. hikyuu/extend.py +387 -0
  215. hikyuu/extend.pyi +621 -0
  216. hikyuu/fetcher/__init__.py +8 -0
  217. hikyuu/fetcher/proxy/__init__.py +12 -0
  218. hikyuu/fetcher/proxy/proxy.py +39 -0
  219. hikyuu/fetcher/proxy/zhima.py +63 -0
  220. hikyuu/fetcher/stock/__init__.py +8 -0
  221. hikyuu/fetcher/stock/zh_block_em.py +140 -0
  222. hikyuu/fetcher/stock/zh_stock_a_huatai.py +51 -0
  223. hikyuu/fetcher/stock/zh_stock_a_pytdx.py +139 -0
  224. hikyuu/fetcher/stock/zh_stock_a_qmt.py +58 -0
  225. hikyuu/fetcher/stock/zh_stock_a_sina_qq.py +229 -0
  226. hikyuu/flat/Spot.py +440 -0
  227. hikyuu/flat/SpotList.py +74 -0
  228. hikyuu/flat/__init__.py +4 -0
  229. hikyuu/gui/HikyuuTDX.py +842 -0
  230. hikyuu/gui/__init__.py +1 -0
  231. hikyuu/gui/data/CollectSpotThread.py +43 -0
  232. hikyuu/gui/data/CollectToMemThread.py +123 -0
  233. hikyuu/gui/data/CollectToMySQLThread.py +178 -0
  234. hikyuu/gui/data/EscapetimeThread.py +32 -0
  235. hikyuu/gui/data/ImportBlockInfoTask.py +55 -0
  236. hikyuu/gui/data/ImportHistoryFinanceTask.py +141 -0
  237. hikyuu/gui/data/ImportPytdxTimeToH5Task.py +94 -0
  238. hikyuu/gui/data/ImportPytdxToH5Task.py +98 -0
  239. hikyuu/gui/data/ImportPytdxTransToH5Task.py +94 -0
  240. hikyuu/gui/data/ImportTdxToH5Task.py +111 -0
  241. hikyuu/gui/data/ImportWeightToSqliteTask.py +114 -0
  242. hikyuu/gui/data/ImportZhBond10Task.py +48 -0
  243. hikyuu/gui/data/MainWindow.py +824 -0
  244. hikyuu/gui/data/SchedImportThread.py +62 -0
  245. hikyuu/gui/data/UsePytdxImportToH5Thread.py +371 -0
  246. hikyuu/gui/data/UseTdxImportToH5Thread.py +182 -0
  247. hikyuu/gui/data/__init__.py +1 -0
  248. hikyuu/gui/data/tool.py +43 -0
  249. hikyuu/gui/hikyuu.ico +0 -0
  250. hikyuu/gui/hikyuu_small.png +0 -0
  251. hikyuu/gui/importdata.py +166 -0
  252. hikyuu/gui/spot_server.py +336 -0
  253. hikyuu/gui/start_huatai_insight.py +510 -0
  254. hikyuu/gui/start_qmt.py +122 -0
  255. hikyuu/hub.py +634 -0
  256. hikyuu/hub.pyi +255 -0
  257. hikyuu/include/__init__.py +1 -0
  258. hikyuu/include/hikyuu/Block.h +173 -0
  259. hikyuu/include/hikyuu/DataType.h +173 -0
  260. hikyuu/include/hikyuu/GlobalInitializer.h +46 -0
  261. hikyuu/include/hikyuu/HistoryFinanceInfo.h +35 -0
  262. hikyuu/include/hikyuu/KData.h +271 -0
  263. hikyuu/include/hikyuu/KDataImp.h +94 -0
  264. hikyuu/include/hikyuu/KQuery.h +275 -0
  265. hikyuu/include/hikyuu/KRecord.h +94 -0
  266. hikyuu/include/hikyuu/MarketInfo.h +132 -0
  267. hikyuu/include/hikyuu/Stock.h +351 -0
  268. hikyuu/include/hikyuu/StockManager.h +371 -0
  269. hikyuu/include/hikyuu/StockMapIterator.h +72 -0
  270. hikyuu/include/hikyuu/StockTypeInfo.h +127 -0
  271. hikyuu/include/hikyuu/StockWeight.h +148 -0
  272. hikyuu/include/hikyuu/StrategyContext.h +107 -0
  273. hikyuu/include/hikyuu/TimeLineRecord.h +71 -0
  274. hikyuu/include/hikyuu/TransRecord.h +79 -0
  275. hikyuu/include/hikyuu/ZhBond10.h +36 -0
  276. hikyuu/include/hikyuu/__init__.py +1 -0
  277. hikyuu/include/hikyuu/analysis/__init__.py +1 -0
  278. hikyuu/include/hikyuu/analysis/analysis_sys.h +76 -0
  279. hikyuu/include/hikyuu/analysis/combinate.h +115 -0
  280. hikyuu/include/hikyuu/config.h +51 -0
  281. hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +201 -0
  282. hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +108 -0
  283. hikyuu/include/hikyuu/data_driver/DataDriverFactory.h +58 -0
  284. hikyuu/include/hikyuu/data_driver/DriverConnectPool.h +146 -0
  285. hikyuu/include/hikyuu/data_driver/HistoryFinanceReader.h +36 -0
  286. hikyuu/include/hikyuu/data_driver/KDataDriver.h +194 -0
  287. hikyuu/include/hikyuu/data_driver/__init__.py +1 -0
  288. hikyuu/include/hikyuu/data_driver/base_info/__init__.py +1 -0
  289. hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +54 -0
  290. hikyuu/include/hikyuu/data_driver/base_info/mysql/__init__.py +1 -0
  291. hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +50 -0
  292. hikyuu/include/hikyuu/data_driver/base_info/sqlite/__init__.py +1 -0
  293. hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceFieldTable.h +19 -0
  294. hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceTable.h +23 -0
  295. hikyuu/include/hikyuu/data_driver/base_info/table/HolidayTable.h +29 -0
  296. hikyuu/include/hikyuu/data_driver/base_info/table/MarketInfoTable.h +127 -0
  297. hikyuu/include/hikyuu/data_driver/base_info/table/StockTable.h +64 -0
  298. hikyuu/include/hikyuu/data_driver/base_info/table/StockTypeInfoTable.h +108 -0
  299. hikyuu/include/hikyuu/data_driver/base_info/table/StockWeightTable.h +52 -0
  300. hikyuu/include/hikyuu/data_driver/base_info/table/ZhBond10Table.h +20 -0
  301. hikyuu/include/hikyuu/data_driver/base_info/table/__init__.py +1 -0
  302. hikyuu/include/hikyuu/data_driver/block_info/__init__.py +1 -0
  303. hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +36 -0
  304. hikyuu/include/hikyuu/data_driver/block_info/mysql/__init__.py +1 -0
  305. hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +31 -0
  306. hikyuu/include/hikyuu/data_driver/block_info/qianlong/__init__.py +1 -0
  307. hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +36 -0
  308. hikyuu/include/hikyuu/data_driver/block_info/sqlite/__init__.py +1 -0
  309. hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +33 -0
  310. hikyuu/include/hikyuu/data_driver/kdata/__init__.py +1 -0
  311. hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +106 -0
  312. hikyuu/include/hikyuu/data_driver/kdata/cvs/__init__.py +1 -0
  313. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +89 -0
  314. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5Record.h +50 -0
  315. hikyuu/include/hikyuu/data_driver/kdata/hdf5/__init__.py +1 -0
  316. hikyuu/include/hikyuu/data_driver/kdata/mysql/KRecordTable.h +124 -0
  317. hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +78 -0
  318. hikyuu/include/hikyuu/data_driver/kdata/mysql/__init__.py +1 -0
  319. hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +62 -0
  320. hikyuu/include/hikyuu/data_driver/kdata/sqlite/__init__.py +1 -0
  321. hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +63 -0
  322. hikyuu/include/hikyuu/data_driver/kdata/tdx/__init__.py +1 -0
  323. hikyuu/include/hikyuu/debug.h +32 -0
  324. hikyuu/include/hikyuu/doc.h +166 -0
  325. hikyuu/include/hikyuu/global/GlobalSpotAgent.h +33 -0
  326. hikyuu/include/hikyuu/global/SpotRecord.h +52 -0
  327. hikyuu/include/hikyuu/global/__init__.py +1 -0
  328. hikyuu/include/hikyuu/global/agent/SpotAgent.h +143 -0
  329. hikyuu/include/hikyuu/global/agent/__init__.py +1 -0
  330. hikyuu/include/hikyuu/global/agent/hikyuu/__init__.py +1 -0
  331. hikyuu/include/hikyuu/global/agent/hikyuu/flat/__init__.py +1 -0
  332. hikyuu/include/hikyuu/global/agent/spot_generated.h +527 -0
  333. hikyuu/include/hikyuu/global/schedule/__init__.py +1 -0
  334. hikyuu/include/hikyuu/global/schedule/inner_tasks.h +16 -0
  335. hikyuu/include/hikyuu/global/schedule/scheduler.h +24 -0
  336. hikyuu/include/hikyuu/global/sysinfo.h +67 -0
  337. hikyuu/include/hikyuu/hikyuu.h +55 -0
  338. hikyuu/include/hikyuu/indicator/IndParam.h +39 -0
  339. hikyuu/include/hikyuu/indicator/Indicator.h +410 -0
  340. hikyuu/include/hikyuu/indicator/IndicatorImp.h +419 -0
  341. hikyuu/include/hikyuu/indicator/__init__.py +1 -0
  342. hikyuu/include/hikyuu/indicator/build_in.h +122 -0
  343. hikyuu/include/hikyuu/indicator/crt/ABS.h +34 -0
  344. hikyuu/include/hikyuu/indicator/crt/ACOS.h +36 -0
  345. hikyuu/include/hikyuu/indicator/crt/AD.h +28 -0
  346. hikyuu/include/hikyuu/indicator/crt/ADVANCE.h +34 -0
  347. hikyuu/include/hikyuu/indicator/crt/ALIGN.h +42 -0
  348. hikyuu/include/hikyuu/indicator/crt/AMA.h +113 -0
  349. hikyuu/include/hikyuu/indicator/crt/ASIN.h +36 -0
  350. hikyuu/include/hikyuu/indicator/crt/ATAN.h +36 -0
  351. hikyuu/include/hikyuu/indicator/crt/ATR.h +44 -0
  352. hikyuu/include/hikyuu/indicator/crt/AVEDEV.h +45 -0
  353. hikyuu/include/hikyuu/indicator/crt/BACKSET.h +44 -0
  354. hikyuu/include/hikyuu/indicator/crt/BARSCOUNT.h +37 -0
  355. hikyuu/include/hikyuu/indicator/crt/BARSLAST.h +41 -0
  356. hikyuu/include/hikyuu/indicator/crt/BARSSINCE.h +41 -0
  357. hikyuu/include/hikyuu/indicator/crt/BETWEEN.h +85 -0
  358. hikyuu/include/hikyuu/indicator/crt/BLOCKSETNUM.h +23 -0
  359. hikyuu/include/hikyuu/indicator/crt/CEILING.h +38 -0
  360. hikyuu/include/hikyuu/indicator/crt/CONTEXT.h +30 -0
  361. hikyuu/include/hikyuu/indicator/crt/CORR.h +26 -0
  362. hikyuu/include/hikyuu/indicator/crt/COS.h +36 -0
  363. hikyuu/include/hikyuu/indicator/crt/COST.h +34 -0
  364. hikyuu/include/hikyuu/indicator/crt/COUNT.h +54 -0
  365. hikyuu/include/hikyuu/indicator/crt/CROSS.h +48 -0
  366. hikyuu/include/hikyuu/indicator/crt/CVAL.h +35 -0
  367. hikyuu/include/hikyuu/indicator/crt/DECLINE.h +34 -0
  368. hikyuu/include/hikyuu/indicator/crt/DEVSQ.h +40 -0
  369. hikyuu/include/hikyuu/indicator/crt/DIFF.h +31 -0
  370. hikyuu/include/hikyuu/indicator/crt/DMA.h +35 -0
  371. hikyuu/include/hikyuu/indicator/crt/DOWNNDAY.h +43 -0
  372. hikyuu/include/hikyuu/indicator/crt/DROPNA.h +31 -0
  373. hikyuu/include/hikyuu/indicator/crt/EMA.h +44 -0
  374. hikyuu/include/hikyuu/indicator/crt/EVERY.h +44 -0
  375. hikyuu/include/hikyuu/indicator/crt/EXIST.h +44 -0
  376. hikyuu/include/hikyuu/indicator/crt/EXP.h +34 -0
  377. hikyuu/include/hikyuu/indicator/crt/FILTER.h +44 -0
  378. hikyuu/include/hikyuu/indicator/crt/FINANCE.h +20 -0
  379. hikyuu/include/hikyuu/indicator/crt/FLOOR.h +38 -0
  380. hikyuu/include/hikyuu/indicator/crt/HHV.h +44 -0
  381. hikyuu/include/hikyuu/indicator/crt/HHVBARS.h +44 -0
  382. hikyuu/include/hikyuu/indicator/crt/HSL.h +39 -0
  383. hikyuu/include/hikyuu/indicator/crt/IC.h +41 -0
  384. hikyuu/include/hikyuu/indicator/crt/ICIR.h +51 -0
  385. hikyuu/include/hikyuu/indicator/crt/INDEX.h +48 -0
  386. hikyuu/include/hikyuu/indicator/crt/INSUM.h +36 -0
  387. hikyuu/include/hikyuu/indicator/crt/INTPART.h +38 -0
  388. hikyuu/include/hikyuu/indicator/crt/IR.h +44 -0
  389. hikyuu/include/hikyuu/indicator/crt/ISINF.h +28 -0
  390. hikyuu/include/hikyuu/indicator/crt/ISINFA.h +28 -0
  391. hikyuu/include/hikyuu/indicator/crt/ISLASTBAR.h +30 -0
  392. hikyuu/include/hikyuu/indicator/crt/ISNA.h +29 -0
  393. hikyuu/include/hikyuu/indicator/crt/KDATA.h +72 -0
  394. hikyuu/include/hikyuu/indicator/crt/LAST.h +100 -0
  395. hikyuu/include/hikyuu/indicator/crt/LIUTONGPAN.h +23 -0
  396. hikyuu/include/hikyuu/indicator/crt/LLV.h +46 -0
  397. hikyuu/include/hikyuu/indicator/crt/LLVBARS.h +44 -0
  398. hikyuu/include/hikyuu/indicator/crt/LN.h +36 -0
  399. hikyuu/include/hikyuu/indicator/crt/LOG.h +35 -0
  400. hikyuu/include/hikyuu/indicator/crt/LONGCROSS.h +68 -0
  401. hikyuu/include/hikyuu/indicator/crt/MA.h +44 -0
  402. hikyuu/include/hikyuu/indicator/crt/MACD.h +62 -0
  403. hikyuu/include/hikyuu/indicator/crt/MAX.h +45 -0
  404. hikyuu/include/hikyuu/indicator/crt/MDD.h +29 -0
  405. hikyuu/include/hikyuu/indicator/crt/MIN.h +45 -0
  406. hikyuu/include/hikyuu/indicator/crt/MOD.h +49 -0
  407. hikyuu/include/hikyuu/indicator/crt/MRR.h +29 -0
  408. hikyuu/include/hikyuu/indicator/crt/NDAY.h +43 -0
  409. hikyuu/include/hikyuu/indicator/crt/NOT.h +35 -0
  410. hikyuu/include/hikyuu/indicator/crt/POS.h +21 -0
  411. hikyuu/include/hikyuu/indicator/crt/POW.h +48 -0
  412. hikyuu/include/hikyuu/indicator/crt/PRICELIST.h +59 -0
  413. hikyuu/include/hikyuu/indicator/crt/RECOVER.h +45 -0
  414. hikyuu/include/hikyuu/indicator/crt/REF.h +48 -0
  415. hikyuu/include/hikyuu/indicator/crt/REPLACE.h +29 -0
  416. hikyuu/include/hikyuu/indicator/crt/RESULT.h +20 -0
  417. hikyuu/include/hikyuu/indicator/crt/REVERSE.h +36 -0
  418. hikyuu/include/hikyuu/indicator/crt/ROC.h +39 -0
  419. hikyuu/include/hikyuu/indicator/crt/ROCP.h +39 -0
  420. hikyuu/include/hikyuu/indicator/crt/ROCR.h +39 -0
  421. hikyuu/include/hikyuu/indicator/crt/ROCR100.h +39 -0
  422. hikyuu/include/hikyuu/indicator/crt/ROUND.h +36 -0
  423. hikyuu/include/hikyuu/indicator/crt/ROUNDDOWN.h +36 -0
  424. hikyuu/include/hikyuu/indicator/crt/ROUNDUP.h +36 -0
  425. hikyuu/include/hikyuu/indicator/crt/RSI.h +43 -0
  426. hikyuu/include/hikyuu/indicator/crt/SAFTYLOSS.h +79 -0
  427. hikyuu/include/hikyuu/indicator/crt/SGN.h +34 -0
  428. hikyuu/include/hikyuu/indicator/crt/SIN.h +36 -0
  429. hikyuu/include/hikyuu/indicator/crt/SLICE.h +44 -0
  430. hikyuu/include/hikyuu/indicator/crt/SLOPE.h +44 -0
  431. hikyuu/include/hikyuu/indicator/crt/SMA.h +72 -0
  432. hikyuu/include/hikyuu/indicator/crt/SPEARMAN.h +24 -0
  433. hikyuu/include/hikyuu/indicator/crt/SQRT.h +41 -0
  434. hikyuu/include/hikyuu/indicator/crt/STDEV.h +44 -0
  435. hikyuu/include/hikyuu/indicator/crt/STDP.h +38 -0
  436. hikyuu/include/hikyuu/indicator/crt/SUM.h +44 -0
  437. hikyuu/include/hikyuu/indicator/crt/SUMBARS.h +44 -0
  438. hikyuu/include/hikyuu/indicator/crt/TAN.h +36 -0
  439. hikyuu/include/hikyuu/indicator/crt/TIME.h +69 -0
  440. hikyuu/include/hikyuu/indicator/crt/TIMELINE.h +23 -0
  441. hikyuu/include/hikyuu/indicator/crt/TIMELINEVOL.h +21 -0
  442. hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +21 -0
  443. hikyuu/include/hikyuu/indicator/crt/UPNDAY.h +43 -0
  444. hikyuu/include/hikyuu/indicator/crt/VAR.h +40 -0
  445. hikyuu/include/hikyuu/indicator/crt/VARP.h +40 -0
  446. hikyuu/include/hikyuu/indicator/crt/VIGOR.h +34 -0
  447. hikyuu/include/hikyuu/indicator/crt/WMA.h +46 -0
  448. hikyuu/include/hikyuu/indicator/crt/ZHBOND10.h +27 -0
  449. hikyuu/include/hikyuu/indicator/crt/ZONGGUBEN.h +17 -0
  450. hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +30 -0
  451. hikyuu/include/hikyuu/indicator/crt/__init__.py +1 -0
  452. hikyuu/include/hikyuu/indicator/imp/IAbs.h +26 -0
  453. hikyuu/include/hikyuu/indicator/imp/IAcos.h +28 -0
  454. hikyuu/include/hikyuu/indicator/imp/IAd.h +30 -0
  455. hikyuu/include/hikyuu/indicator/imp/IAdvance.h +29 -0
  456. hikyuu/include/hikyuu/indicator/imp/IAlign.h +28 -0
  457. hikyuu/include/hikyuu/indicator/imp/IAma.h +38 -0
  458. hikyuu/include/hikyuu/indicator/imp/IAsin.h +28 -0
  459. hikyuu/include/hikyuu/indicator/imp/IAtan.h +28 -0
  460. hikyuu/include/hikyuu/indicator/imp/IAtr.h +28 -0
  461. hikyuu/include/hikyuu/indicator/imp/IBackset.h +33 -0
  462. hikyuu/include/hikyuu/indicator/imp/IBarsCount.h +28 -0
  463. hikyuu/include/hikyuu/indicator/imp/IBarsLast.h +28 -0
  464. hikyuu/include/hikyuu/indicator/imp/IBarsSince.h +28 -0
  465. hikyuu/include/hikyuu/indicator/imp/IBlockSetNum.h +28 -0
  466. hikyuu/include/hikyuu/indicator/imp/ICeil.h +31 -0
  467. hikyuu/include/hikyuu/indicator/imp/IContext.h +44 -0
  468. hikyuu/include/hikyuu/indicator/imp/ICorr.h +41 -0
  469. hikyuu/include/hikyuu/indicator/imp/ICos.h +28 -0
  470. hikyuu/include/hikyuu/indicator/imp/ICount.h +32 -0
  471. hikyuu/include/hikyuu/indicator/imp/ICval.h +29 -0
  472. hikyuu/include/hikyuu/indicator/imp/IDecline.h +29 -0
  473. hikyuu/include/hikyuu/indicator/imp/IDevsq.h +29 -0
  474. hikyuu/include/hikyuu/indicator/imp/IDiff.h +29 -0
  475. hikyuu/include/hikyuu/indicator/imp/IDma.h +47 -0
  476. hikyuu/include/hikyuu/indicator/imp/IDropna.h +28 -0
  477. hikyuu/include/hikyuu/indicator/imp/IEma.h +29 -0
  478. hikyuu/include/hikyuu/indicator/imp/IEvery.h +32 -0
  479. hikyuu/include/hikyuu/indicator/imp/IExist.h +32 -0
  480. hikyuu/include/hikyuu/indicator/imp/IExp.h +28 -0
  481. hikyuu/include/hikyuu/indicator/imp/IFilter.h +34 -0
  482. hikyuu/include/hikyuu/indicator/imp/IFinance.h +25 -0
  483. hikyuu/include/hikyuu/indicator/imp/IFloor.h +31 -0
  484. hikyuu/include/hikyuu/indicator/imp/IHhvbars.h +29 -0
  485. hikyuu/include/hikyuu/indicator/imp/IHighLine.h +34 -0
  486. hikyuu/include/hikyuu/indicator/imp/IIc.h +45 -0
  487. hikyuu/include/hikyuu/indicator/imp/IInSum.h +28 -0
  488. hikyuu/include/hikyuu/indicator/imp/IIntpart.h +31 -0
  489. hikyuu/include/hikyuu/indicator/imp/IIsInf.h +26 -0
  490. hikyuu/include/hikyuu/indicator/imp/IIsInfa.h +26 -0
  491. hikyuu/include/hikyuu/indicator/imp/IIsLastBar.h +27 -0
  492. hikyuu/include/hikyuu/indicator/imp/IIsNa.h +26 -0
  493. hikyuu/include/hikyuu/indicator/imp/IKData.h +29 -0
  494. hikyuu/include/hikyuu/indicator/imp/ILiuTongPan.h +29 -0
  495. hikyuu/include/hikyuu/indicator/imp/ILn.h +28 -0
  496. hikyuu/include/hikyuu/indicator/imp/ILog.h +28 -0
  497. hikyuu/include/hikyuu/indicator/imp/ILowLine.h +30 -0
  498. hikyuu/include/hikyuu/indicator/imp/ILowLineBars.h +29 -0
  499. hikyuu/include/hikyuu/indicator/imp/IMa.h +27 -0
  500. hikyuu/include/hikyuu/indicator/imp/IMacd.h +41 -0
  501. hikyuu/include/hikyuu/indicator/imp/IMdd.h +23 -0
  502. hikyuu/include/hikyuu/indicator/imp/IMrr.h +23 -0
  503. hikyuu/include/hikyuu/indicator/imp/INot.h +26 -0
  504. hikyuu/include/hikyuu/indicator/imp/IPow.h +32 -0
  505. hikyuu/include/hikyuu/indicator/imp/IPriceList.h +29 -0
  506. hikyuu/include/hikyuu/indicator/imp/IRecover.h +29 -0
  507. hikyuu/include/hikyuu/indicator/imp/IRef.h +34 -0
  508. hikyuu/include/hikyuu/indicator/imp/IReplace.h +26 -0
  509. hikyuu/include/hikyuu/indicator/imp/IResult.h +26 -0
  510. hikyuu/include/hikyuu/indicator/imp/IReverse.h +28 -0
  511. hikyuu/include/hikyuu/indicator/imp/IRoc.h +29 -0
  512. hikyuu/include/hikyuu/indicator/imp/IRocp.h +29 -0
  513. hikyuu/include/hikyuu/indicator/imp/IRocr.h +29 -0
  514. hikyuu/include/hikyuu/indicator/imp/IRocr100.h +29 -0
  515. hikyuu/include/hikyuu/indicator/imp/IRound.h +32 -0
  516. hikyuu/include/hikyuu/indicator/imp/IRoundDown.h +32 -0
  517. hikyuu/include/hikyuu/indicator/imp/IRoundUp.h +32 -0
  518. hikyuu/include/hikyuu/indicator/imp/ISaftyLoss.h +44 -0
  519. hikyuu/include/hikyuu/indicator/imp/ISign.h +28 -0
  520. hikyuu/include/hikyuu/indicator/imp/ISin.h +28 -0
  521. hikyuu/include/hikyuu/indicator/imp/ISlice.h +25 -0
  522. hikyuu/include/hikyuu/indicator/imp/ISlope.h +25 -0
  523. hikyuu/include/hikyuu/indicator/imp/ISma.h +34 -0
  524. hikyuu/include/hikyuu/indicator/imp/ISpearman.h +41 -0
  525. hikyuu/include/hikyuu/indicator/imp/ISqrt.h +31 -0
  526. hikyuu/include/hikyuu/indicator/imp/IStdev.h +31 -0
  527. hikyuu/include/hikyuu/indicator/imp/IStdp.h +33 -0
  528. hikyuu/include/hikyuu/indicator/imp/ISum.h +27 -0
  529. hikyuu/include/hikyuu/indicator/imp/ISumBars.h +30 -0
  530. hikyuu/include/hikyuu/indicator/imp/ITan.h +28 -0
  531. hikyuu/include/hikyuu/indicator/imp/ITime.h +33 -0
  532. hikyuu/include/hikyuu/indicator/imp/ITimeLine.h +32 -0
  533. hikyuu/include/hikyuu/indicator/imp/IVar.h +32 -0
  534. hikyuu/include/hikyuu/indicator/imp/IVarp.h +32 -0
  535. hikyuu/include/hikyuu/indicator/imp/IVigor.h +35 -0
  536. hikyuu/include/hikyuu/indicator/imp/IWma.h +30 -0
  537. hikyuu/include/hikyuu/indicator/imp/IZScore.h +25 -0
  538. hikyuu/include/hikyuu/indicator/imp/IZhBond10.h +30 -0
  539. hikyuu/include/hikyuu/indicator/imp/IZongGuBen.h +25 -0
  540. hikyuu/include/hikyuu/indicator/imp/__init__.py +1 -0
  541. hikyuu/include/hikyuu/indicator_talib/__init__.py +1 -0
  542. hikyuu/include/hikyuu/indicator_talib/imp/TaAdosc.h +26 -0
  543. hikyuu/include/hikyuu/indicator_talib/imp/TaApo.h +24 -0
  544. hikyuu/include/hikyuu/indicator_talib/imp/TaBbands.h +24 -0
  545. hikyuu/include/hikyuu/indicator_talib/imp/TaMa.h +24 -0
  546. hikyuu/include/hikyuu/indicator_talib/imp/TaMacd.h +24 -0
  547. hikyuu/include/hikyuu/indicator_talib/imp/TaMacdext.h +24 -0
  548. hikyuu/include/hikyuu/indicator_talib/imp/TaMama.h +24 -0
  549. hikyuu/include/hikyuu/indicator_talib/imp/TaMavp.h +41 -0
  550. hikyuu/include/hikyuu/indicator_talib/imp/TaPpo.h +24 -0
  551. hikyuu/include/hikyuu/indicator_talib/imp/TaSar.h +26 -0
  552. hikyuu/include/hikyuu/indicator_talib/imp/TaSarext.h +31 -0
  553. hikyuu/include/hikyuu/indicator_talib/imp/TaStddev.h +24 -0
  554. hikyuu/include/hikyuu/indicator_talib/imp/TaStoch.h +27 -0
  555. hikyuu/include/hikyuu/indicator_talib/imp/TaStochf.h +26 -0
  556. hikyuu/include/hikyuu/indicator_talib/imp/TaStochrsi.h +24 -0
  557. hikyuu/include/hikyuu/indicator_talib/imp/TaT3.h +24 -0
  558. hikyuu/include/hikyuu/indicator_talib/imp/TaUltosc.h +26 -0
  559. hikyuu/include/hikyuu/indicator_talib/imp/TaVar.h +24 -0
  560. hikyuu/include/hikyuu/indicator_talib/imp/__init__.py +1 -0
  561. hikyuu/include/hikyuu/indicator_talib/imp/ta_defines.h +288 -0
  562. hikyuu/include/hikyuu/indicator_talib/imp/ta_imp.h +1374 -0
  563. hikyuu/include/hikyuu/indicator_talib/ta_crt.h +322 -0
  564. hikyuu/include/hikyuu/python/__init__.py +1 -0
  565. hikyuu/include/hikyuu/python/pickle_support.h +90 -0
  566. hikyuu/include/hikyuu/python/pybind_utils.h +103 -0
  567. hikyuu/include/hikyuu/serialization/Block_serialization.h +55 -0
  568. hikyuu/include/hikyuu/serialization/Datetime_serialization.h +40 -0
  569. hikyuu/include/hikyuu/serialization/KData_serialization.h +45 -0
  570. hikyuu/include/hikyuu/serialization/KQuery_serialization.h +79 -0
  571. hikyuu/include/hikyuu/serialization/KRecord_serialization.h +50 -0
  572. hikyuu/include/hikyuu/serialization/MarketInfo_serialization.h +68 -0
  573. hikyuu/include/hikyuu/serialization/PriceList_serialization.h +66 -0
  574. hikyuu/include/hikyuu/serialization/StockTypeInfo_serialization.h +62 -0
  575. hikyuu/include/hikyuu/serialization/StockWeight_serialization.h +65 -0
  576. hikyuu/include/hikyuu/serialization/Stock_serialization.h +47 -0
  577. hikyuu/include/hikyuu/serialization/TimeDelta_serialization.h +44 -0
  578. hikyuu/include/hikyuu/serialization/TimeLineRecord_serialization.h +42 -0
  579. hikyuu/include/hikyuu/serialization/TransRecord_serialization.h +44 -0
  580. hikyuu/include/hikyuu/serialization/__init__.py +1 -0
  581. hikyuu/include/hikyuu/serialization/all.h +26 -0
  582. hikyuu/include/hikyuu/strategy/BrokerTradeManager.h +433 -0
  583. hikyuu/include/hikyuu/strategy/RunPortfolioInStrategy.h +37 -0
  584. hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +38 -0
  585. hikyuu/include/hikyuu/strategy/Strategy.h +191 -0
  586. hikyuu/include/hikyuu/strategy/__init__.py +1 -0
  587. hikyuu/include/hikyuu/trade_manage/BorrowRecord.h +91 -0
  588. hikyuu/include/hikyuu/trade_manage/CostRecord.h +67 -0
  589. hikyuu/include/hikyuu/trade_manage/FundsRecord.h +110 -0
  590. hikyuu/include/hikyuu/trade_manage/LoanRecord.h +64 -0
  591. hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h +207 -0
  592. hikyuu/include/hikyuu/trade_manage/Performance.h +80 -0
  593. hikyuu/include/hikyuu/trade_manage/PositionRecord.h +108 -0
  594. hikyuu/include/hikyuu/trade_manage/TradeCostBase.h +174 -0
  595. hikyuu/include/hikyuu/trade_manage/TradeManager.h +487 -0
  596. hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +778 -0
  597. hikyuu/include/hikyuu/trade_manage/TradeRecord.h +151 -0
  598. hikyuu/include/hikyuu/trade_manage/__init__.py +1 -0
  599. hikyuu/include/hikyuu/trade_manage/build_in.h +19 -0
  600. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA.h +45 -0
  601. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2015.h +43 -0
  602. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2017.h +44 -0
  603. hikyuu/include/hikyuu/trade_manage/crt/TC_TestStub.h +21 -0
  604. hikyuu/include/hikyuu/trade_manage/crt/TC_Zero.h +25 -0
  605. hikyuu/include/hikyuu/trade_manage/crt/__init__.py +1 -0
  606. hikyuu/include/hikyuu/trade_manage/crt/crtTM.h +33 -0
  607. hikyuu/include/hikyuu/trade_manage/imp/FixedA2015TradeCost.h +53 -0
  608. hikyuu/include/hikyuu/trade_manage/imp/FixedA2017TradeCost.h +56 -0
  609. hikyuu/include/hikyuu/trade_manage/imp/FixedATradeCost.h +88 -0
  610. hikyuu/include/hikyuu/trade_manage/imp/TradeCostStub.h +48 -0
  611. hikyuu/include/hikyuu/trade_manage/imp/ZeroTradeCost.h +50 -0
  612. hikyuu/include/hikyuu/trade_manage/imp/__init__.py +1 -0
  613. hikyuu/include/hikyuu/trade_sys/__init__.py +1 -0
  614. hikyuu/include/hikyuu/trade_sys/all.h +24 -0
  615. hikyuu/include/hikyuu/trade_sys/allocatefunds/AllocateFundsBase.h +229 -0
  616. hikyuu/include/hikyuu/trade_sys/allocatefunds/__init__.py +1 -0
  617. hikyuu/include/hikyuu/trade_sys/allocatefunds/build_in.h +16 -0
  618. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_EqualWeight.h +25 -0
  619. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_FixedWeight.h +26 -0
  620. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_MultiFactor.h +21 -0
  621. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/__init__.py +1 -0
  622. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/EqualWeightAllocateFunds.h +27 -0
  623. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/FixedWeightAllocateFunds.h +28 -0
  624. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/MultiFactorAllocaterFunds.h +23 -0
  625. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/__init__.py +1 -0
  626. hikyuu/include/hikyuu/trade_sys/condition/ConditionBase.h +241 -0
  627. hikyuu/include/hikyuu/trade_sys/condition/__init__.py +1 -0
  628. hikyuu/include/hikyuu/trade_sys/condition/build_in.h +17 -0
  629. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Bool.h +22 -0
  630. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Logic.h +35 -0
  631. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Manual.h +20 -0
  632. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_OPLine.h +26 -0
  633. hikyuu/include/hikyuu/trade_sys/condition/crt/__init__.py +1 -0
  634. hikyuu/include/hikyuu/trade_sys/condition/imp/BoolCondition.h +40 -0
  635. hikyuu/include/hikyuu/trade_sys/condition/imp/ManualCondition.h +23 -0
  636. hikyuu/include/hikyuu/trade_sys/condition/imp/OPLineCondition.h +44 -0
  637. hikyuu/include/hikyuu/trade_sys/condition/imp/SubCondition.h +42 -0
  638. hikyuu/include/hikyuu/trade_sys/condition/imp/__init__.py +1 -0
  639. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AddCondition.h +42 -0
  640. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AndCondition.h +42 -0
  641. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/DivCondition.h +42 -0
  642. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/MultiCondition.h +42 -0
  643. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/OrCondition.h +42 -0
  644. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/__init__.py +1 -0
  645. hikyuu/include/hikyuu/trade_sys/environment/EnvironmentBase.h +178 -0
  646. hikyuu/include/hikyuu/trade_sys/environment/__init__.py +1 -0
  647. hikyuu/include/hikyuu/trade_sys/environment/build_in.h +16 -0
  648. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Bool.h +23 -0
  649. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Manual.h +20 -0
  650. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_TwoLine.h +28 -0
  651. hikyuu/include/hikyuu/trade_sys/environment/crt/__init__.py +1 -0
  652. hikyuu/include/hikyuu/trade_sys/environment/imp/BoolEnvironment.h +41 -0
  653. hikyuu/include/hikyuu/trade_sys/environment/imp/ManualEnvironment.h +23 -0
  654. hikyuu/include/hikyuu/trade_sys/environment/imp/TwoLineEnvironment.h +47 -0
  655. hikyuu/include/hikyuu/trade_sys/environment/imp/__init__.py +1 -0
  656. hikyuu/include/hikyuu/trade_sys/moneymanager/MoneyManagerBase.h +230 -0
  657. hikyuu/include/hikyuu/trade_sys/moneymanager/__init__.py +1 -0
  658. hikyuu/include/hikyuu/trade_sys/moneymanager/build_in.h +20 -0
  659. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCapital.h +20 -0
  660. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCount.h +28 -0
  661. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedPercent.h +27 -0
  662. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedRisk.h +20 -0
  663. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedUnits.h +20 -0
  664. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_Nothing.h +24 -0
  665. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_WilliamsFixedRisk.h +20 -0
  666. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/__init__.py +1 -0
  667. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalMoneyManager.h +28 -0
  668. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCountMoneyManager.h +38 -0
  669. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedPercentMoneyManager.h +34 -0
  670. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedRiskMoneyManager.h +28 -0
  671. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedUnitsMoneyManager.h +28 -0
  672. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/NotMoneyManager.h +30 -0
  673. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/WilliamsFixedRiskMoneyManager.h +28 -0
  674. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/__init__.py +1 -0
  675. hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +275 -0
  676. hikyuu/include/hikyuu/trade_sys/multifactor/ScoreRecord.h +51 -0
  677. hikyuu/include/hikyuu/trade_sys/multifactor/__init__.py +1 -0
  678. hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +13 -0
  679. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_EqualWeight.h +29 -0
  680. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICIRWeight.h +30 -0
  681. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICWeight.h +30 -0
  682. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_Weight.h +30 -0
  683. hikyuu/include/hikyuu/trade_sys/multifactor/crt/__init__.py +1 -0
  684. hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +25 -0
  685. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +27 -0
  686. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +27 -0
  687. hikyuu/include/hikyuu/trade_sys/multifactor/imp/WeightMultiFactor.h +41 -0
  688. hikyuu/include/hikyuu/trade_sys/multifactor/imp/__init__.py +1 -0
  689. hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +256 -0
  690. hikyuu/include/hikyuu/trade_sys/portfolio/__init__.py +1 -0
  691. hikyuu/include/hikyuu/trade_sys/portfolio/build_in.h +14 -0
  692. hikyuu/include/hikyuu/trade_sys/portfolio/crt/PF_Simple.h +23 -0
  693. hikyuu/include/hikyuu/trade_sys/portfolio/crt/__init__.py +1 -0
  694. hikyuu/include/hikyuu/trade_sys/portfolio/imp/__init__.py +1 -0
  695. hikyuu/include/hikyuu/trade_sys/profitgoal/ProfitGoalBase.h +189 -0
  696. hikyuu/include/hikyuu/trade_sys/profitgoal/__init__.py +1 -0
  697. hikyuu/include/hikyuu/trade_sys/profitgoal/build_in.h +16 -0
  698. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedHoldDays.h +26 -0
  699. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedPercent.h +25 -0
  700. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_NoGoal.h +24 -0
  701. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/__init__.py +1 -0
  702. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedHoldDays.h +29 -0
  703. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedPercentProfitGoal.h +28 -0
  704. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/NoGoalProfitGoal.h +27 -0
  705. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/__init__.py +1 -0
  706. hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +245 -0
  707. hikyuu/include/hikyuu/trade_sys/selector/SystemWeight.h +70 -0
  708. hikyuu/include/hikyuu/trade_sys/selector/__init__.py +1 -0
  709. hikyuu/include/hikyuu/trade_sys/selector/build_in.h +18 -0
  710. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Fixed.h +38 -0
  711. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Logic.h +43 -0
  712. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor.h +40 -0
  713. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Optimal.h +26 -0
  714. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Signal.h +30 -0
  715. hikyuu/include/hikyuu/trade_sys/selector/crt/__init__.py +1 -0
  716. hikyuu/include/hikyuu/trade_sys/selector/imp/FixedSelector.h +28 -0
  717. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +52 -0
  718. hikyuu/include/hikyuu/trade_sys/selector/imp/SignalSelector.h +30 -0
  719. hikyuu/include/hikyuu/trade_sys/selector/imp/__init__.py +1 -0
  720. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddSelector.h +19 -0
  721. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddValueSelector.h +19 -0
  722. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivSelector.h +19 -0
  723. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivValueSelector.h +19 -0
  724. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertDivValueSelector.h +19 -0
  725. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertSubValueSelector.h +19 -0
  726. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulSelector.h +19 -0
  727. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulValueSelector.h +19 -0
  728. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +108 -0
  729. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubSelector.h +19 -0
  730. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubValueSelector.h +19 -0
  731. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +94 -0
  732. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/__init__.py +1 -0
  733. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/MaxFundsOptimalSelector.h +27 -0
  734. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/OptimalSelectorBase.h +86 -0
  735. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/PerformanceOptimalSelector.h +42 -0
  736. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/__init__.py +1 -0
  737. hikyuu/include/hikyuu/trade_sys/signal/SignalBase.h +249 -0
  738. hikyuu/include/hikyuu/trade_sys/signal/__init__.py +1 -0
  739. hikyuu/include/hikyuu/trade_sys/signal/build_in.h +22 -0
  740. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_AllwaysBuy.h +20 -0
  741. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Band.h +37 -0
  742. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Bool.h +28 -0
  743. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cross.h +28 -0
  744. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_CrossGold.h +29 -0
  745. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cycle.h +20 -0
  746. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Flex.h +29 -0
  747. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Manual.h +20 -0
  748. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Single.h +56 -0
  749. hikyuu/include/hikyuu/trade_sys/signal/crt/__init__.py +1 -0
  750. hikyuu/include/hikyuu/trade_sys/signal/imp/AllwaysBuySignal.h +25 -0
  751. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal.h +46 -0
  752. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +47 -0
  753. hikyuu/include/hikyuu/trade_sys/signal/imp/BoolSignal.h +46 -0
  754. hikyuu/include/hikyuu/trade_sys/signal/imp/CrossGoldSignal.h +46 -0
  755. hikyuu/include/hikyuu/trade_sys/signal/imp/CrossSignal.h +46 -0
  756. hikyuu/include/hikyuu/trade_sys/signal/imp/CycleSignal.h +25 -0
  757. hikyuu/include/hikyuu/trade_sys/signal/imp/ManualSignal.h +23 -0
  758. hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal.h +45 -0
  759. hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal2.h +45 -0
  760. hikyuu/include/hikyuu/trade_sys/signal/imp/__init__.py +1 -0
  761. hikyuu/include/hikyuu/trade_sys/slippage/SlippageBase.h +170 -0
  762. hikyuu/include/hikyuu/trade_sys/slippage/__init__.py +1 -0
  763. hikyuu/include/hikyuu/trade_sys/slippage/build_in.h +15 -0
  764. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedPercent.h +26 -0
  765. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedValue.h +26 -0
  766. hikyuu/include/hikyuu/trade_sys/slippage/crt/__init__.py +1 -0
  767. hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedPercentSlippage.h +28 -0
  768. hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedValueSlippage.h +28 -0
  769. hikyuu/include/hikyuu/trade_sys/slippage/imp/__init__.py +1 -0
  770. hikyuu/include/hikyuu/trade_sys/stoploss/StoplossBase.h +199 -0
  771. hikyuu/include/hikyuu/trade_sys/stoploss/__init__.py +1 -0
  772. hikyuu/include/hikyuu/trade_sys/stoploss/build_in.h +16 -0
  773. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_FixedPercent.h +25 -0
  774. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Indicator.h +21 -0
  775. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Saftyloss.h +37 -0
  776. hikyuu/include/hikyuu/trade_sys/stoploss/crt/__init__.py +1 -0
  777. hikyuu/include/hikyuu/trade_sys/stoploss/imp/FixedPercentStoploss.h +30 -0
  778. hikyuu/include/hikyuu/trade_sys/stoploss/imp/IndicatorStoploss.h +50 -0
  779. hikyuu/include/hikyuu/trade_sys/stoploss/imp/__init__.py +1 -0
  780. hikyuu/include/hikyuu/trade_sys/system/System.h +639 -0
  781. hikyuu/include/hikyuu/trade_sys/system/SystemPart.h +54 -0
  782. hikyuu/include/hikyuu/trade_sys/system/TradeRequest.h +94 -0
  783. hikyuu/include/hikyuu/trade_sys/system/__init__.py +1 -0
  784. hikyuu/include/hikyuu/trade_sys/system/build_in.h +15 -0
  785. hikyuu/include/hikyuu/trade_sys/system/crt/SYS_Simple.h +50 -0
  786. hikyuu/include/hikyuu/trade_sys/system/crt/SYS_WalkForward.h +21 -0
  787. hikyuu/include/hikyuu/trade_sys/system/crt/__init__.py +1 -0
  788. hikyuu/include/hikyuu/trade_sys/system/imp/DelegateSystem.h +51 -0
  789. hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardSystem.h +70 -0
  790. hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardTradeManager.h +465 -0
  791. hikyuu/include/hikyuu/trade_sys/system/imp/__init__.py +1 -0
  792. hikyuu/include/hikyuu/utilities/ConnectPool.h +163 -0
  793. hikyuu/include/hikyuu/utilities/FilterNode.h +267 -0
  794. hikyuu/include/hikyuu/utilities/LRUCache11.h +230 -0
  795. hikyuu/include/hikyuu/utilities/Log.h +411 -0
  796. hikyuu/include/hikyuu/utilities/Null.h +176 -0
  797. hikyuu/include/hikyuu/utilities/Parameter.h +511 -0
  798. hikyuu/include/hikyuu/utilities/ResourcePool.h +636 -0
  799. hikyuu/include/hikyuu/utilities/SpendTimer.h +305 -0
  800. hikyuu/include/hikyuu/utilities/TimerManager.h +552 -0
  801. hikyuu/include/hikyuu/utilities/__init__.py +1 -0
  802. hikyuu/include/hikyuu/utilities/any_to_string.h +142 -0
  803. hikyuu/include/hikyuu/utilities/arithmetic.h +401 -0
  804. hikyuu/include/hikyuu/utilities/base64.h +52 -0
  805. hikyuu/include/hikyuu/utilities/config.h +41 -0
  806. hikyuu/include/hikyuu/utilities/cppdef.h +25 -0
  807. hikyuu/include/hikyuu/utilities/datetime/Datetime.h +438 -0
  808. hikyuu/include/hikyuu/utilities/datetime/TimeDelta.h +343 -0
  809. hikyuu/include/hikyuu/utilities/datetime/__init__.py +1 -0
  810. hikyuu/include/hikyuu/utilities/db_connect/AutoTransAction.h +124 -0
  811. hikyuu/include/hikyuu/utilities/db_connect/DBCondition.h +248 -0
  812. hikyuu/include/hikyuu/utilities/db_connect/DBConnect.h +30 -0
  813. hikyuu/include/hikyuu/utilities/db_connect/DBConnectBase.h +658 -0
  814. hikyuu/include/hikyuu/utilities/db_connect/DBUpgrade.h +28 -0
  815. hikyuu/include/hikyuu/utilities/db_connect/SQLException.h +62 -0
  816. hikyuu/include/hikyuu/utilities/db_connect/SQLResultSet.h +248 -0
  817. hikyuu/include/hikyuu/utilities/db_connect/SQLStatementBase.h +305 -0
  818. hikyuu/include/hikyuu/utilities/db_connect/TableMacro.h +2579 -0
  819. hikyuu/include/hikyuu/utilities/db_connect/__init__.py +1 -0
  820. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +56 -0
  821. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +88 -0
  822. hikyuu/include/hikyuu/utilities/db_connect/mysql/__init__.py +1 -0
  823. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +89 -0
  824. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +71 -0
  825. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteUtil.h +80 -0
  826. hikyuu/include/hikyuu/utilities/db_connect/sqlite/__init__.py +1 -0
  827. hikyuu/include/hikyuu/utilities/exception.h +52 -0
  828. hikyuu/include/hikyuu/utilities/http_client/HttpClient.h +229 -0
  829. hikyuu/include/hikyuu/utilities/http_client/__init__.py +1 -0
  830. hikyuu/include/hikyuu/utilities/http_client/nng_wrap.h +517 -0
  831. hikyuu/include/hikyuu/utilities/http_client/url.h +25 -0
  832. hikyuu/include/hikyuu/utilities/ini_parser/IniParser.h +104 -0
  833. hikyuu/include/hikyuu/utilities/ini_parser/__init__.py +1 -0
  834. hikyuu/include/hikyuu/utilities/md5.h +41 -0
  835. hikyuu/include/hikyuu/utilities/mo/__init__.py +1 -0
  836. hikyuu/include/hikyuu/utilities/mo/mo.h +48 -0
  837. hikyuu/include/hikyuu/utilities/mo/moFileReader.h +836 -0
  838. hikyuu/include/hikyuu/utilities/node/NodeClient.h +175 -0
  839. hikyuu/include/hikyuu/utilities/node/NodeError.h +66 -0
  840. hikyuu/include/hikyuu/utilities/node/NodeMessage.h +80 -0
  841. hikyuu/include/hikyuu/utilities/node/NodeServer.h +246 -0
  842. hikyuu/include/hikyuu/utilities/node/__init__.py +1 -0
  843. hikyuu/include/hikyuu/utilities/os.h +102 -0
  844. hikyuu/include/hikyuu/utilities/osdef.h +159 -0
  845. hikyuu/include/hikyuu/utilities/runtimeinfo.h +35 -0
  846. hikyuu/include/hikyuu/utilities/snowflake.h +110 -0
  847. hikyuu/include/hikyuu/utilities/string_view.h +70 -0
  848. hikyuu/include/hikyuu/utilities/thread/FuncWrapper.h +85 -0
  849. hikyuu/include/hikyuu/utilities/thread/InterruptFlag.h +30 -0
  850. hikyuu/include/hikyuu/utilities/thread/MQStealQueue.h +112 -0
  851. hikyuu/include/hikyuu/utilities/thread/MQStealThreadPool.h +315 -0
  852. hikyuu/include/hikyuu/utilities/thread/MQThreadPool.h +275 -0
  853. hikyuu/include/hikyuu/utilities/thread/StealThreadPool.h +309 -0
  854. hikyuu/include/hikyuu/utilities/thread/ThreadPool.h +231 -0
  855. hikyuu/include/hikyuu/utilities/thread/ThreadSafeQueue.h +101 -0
  856. hikyuu/include/hikyuu/utilities/thread/WorkStealQueue.h +105 -0
  857. hikyuu/include/hikyuu/utilities/thread/__init__.py +1 -0
  858. hikyuu/include/hikyuu/utilities/thread/algorithm.h +110 -0
  859. hikyuu/include/hikyuu/utilities/thread/thread.h +10 -0
  860. hikyuu/include/hikyuu/version.h +24 -0
  861. hikyuu/indicator/__init__.py +29 -0
  862. hikyuu/indicator/indicator.py +157 -0
  863. hikyuu/indicator/pyind.py +47 -0
  864. hikyuu/indicator/talib_wrap.py +1273 -0
  865. hikyuu/interactive.py +385 -0
  866. hikyuu/setup.py +104 -0
  867. hikyuu/shell/__init__.py +0 -0
  868. hikyuu/shell/cmdserver.py +126 -0
  869. hikyuu/shell/hkucmd.py +110 -0
  870. hikyuu/shell/hkushell.py +20 -0
  871. hikyuu/strategy/__init__.py +2 -0
  872. hikyuu/strategy/strategy_demo1.py +54 -0
  873. hikyuu/strategy/strategy_demo2.py +47 -0
  874. hikyuu/strategy/strategy_demo3.py +24 -0
  875. hikyuu/test/AllocateFunds.py +25 -0
  876. hikyuu/test/Condition.py +95 -0
  877. hikyuu/test/Datetime.py +61 -0
  878. hikyuu/test/Environment.py +88 -0
  879. hikyuu/test/Indicator.py +233 -0
  880. hikyuu/test/KData.py +64 -0
  881. hikyuu/test/MarketInfo.py +26 -0
  882. hikyuu/test/MoneyManager.py +88 -0
  883. hikyuu/test/Parameter.py +62 -0
  884. hikyuu/test/ProfitGoal.py +83 -0
  885. hikyuu/test/Signal.py +160 -0
  886. hikyuu/test/Slippage.py +88 -0
  887. hikyuu/test/Stock.py +127 -0
  888. hikyuu/test/StockTypeInfo.py +47 -0
  889. hikyuu/test/Stoploss.py +86 -0
  890. hikyuu/test/TradeCost.py +71 -0
  891. hikyuu/test/__init__.py +0 -0
  892. hikyuu/test/test.py +63 -0
  893. hikyuu/test/test_init.py +36 -0
  894. hikyuu/tools/__init__.py +1 -0
  895. hikyuu/tools/copy_file.py +16 -0
  896. hikyuu/tools/delete_index.py +50 -0
  897. hikyuu/tools/fenge.py +139 -0
  898. hikyuu/tools/h5_data_clear.py +163 -0
  899. hikyuu/tools/mysql_clear_last_day_data.py +61 -0
  900. hikyuu/tools/update_block_info.py +168 -0
  901. hikyuu/trade_manage/__init__.py +30 -0
  902. hikyuu/trade_manage/__init__.pyi +713 -0
  903. hikyuu/trade_manage/broker.py +95 -0
  904. hikyuu/trade_manage/broker.pyi +54 -0
  905. hikyuu/trade_manage/broker_easytrader.py +63 -0
  906. hikyuu/trade_manage/broker_easytrader.pyi +21 -0
  907. hikyuu/trade_manage/broker_mail.py +101 -0
  908. hikyuu/trade_manage/broker_mail.pyi +55 -0
  909. hikyuu/trade_manage/trade.py +111 -0
  910. hikyuu/trade_manage/trade.pyi +719 -0
  911. hikyuu/trade_sys/__init__.py +27 -0
  912. hikyuu/trade_sys/trade_sys.py +251 -0
  913. hikyuu/util/__init__.py +49 -0
  914. hikyuu/util/__init__.pyi +55 -0
  915. hikyuu/util/check.py +153 -0
  916. hikyuu/util/check.pyi +59 -0
  917. hikyuu/util/mylog.py +264 -0
  918. hikyuu/util/mylog.pyi +70 -0
  919. hikyuu/util/notebook.py +47 -0
  920. hikyuu/util/notebook.pyi +23 -0
  921. hikyuu/util/singleton.py +29 -0
  922. hikyuu/util/singleton.pyi +18 -0
  923. hikyuu/util/slice.py +43 -0
  924. hikyuu/util/slice.pyi +8 -0
  925. hikyuu/util/timeout.py +83 -0
  926. hikyuu-2.3.1.dist-info/LICENSE +201 -0
  927. hikyuu-2.3.1.dist-info/METADATA +151 -0
  928. hikyuu-2.3.1.dist-info/RECORD +931 -0
  929. hikyuu-2.3.1.dist-info/WHEEL +5 -0
  930. hikyuu-2.3.1.dist-info/entry_points.txt +3 -0
  931. hikyuu-2.3.1.dist-info/top_level.txt +115 -0
@@ -0,0 +1,433 @@
1
+ /*
2
+ * Copyright (c) 2024 hikyuu.org
3
+ *
4
+ * Created on: 2024-08-16
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include "hikyuu/trade_manage/TradeManagerBase.h"
11
+
12
+ namespace hku {
13
+
14
+ class HKU_API BrokerTradeManager : public TradeManagerBase {
15
+ public:
16
+ BrokerTradeManager() = default;
17
+ explicit BrokerTradeManager(const OrderBrokerPtr& broker,
18
+ const TradeCostPtr& costfunc = TC_Zero(),
19
+ const string& name = "SYS");
20
+ virtual ~BrokerTradeManager() {}
21
+
22
+ virtual void _reset() override;
23
+
24
+ virtual shared_ptr<TradeManagerBase> _clone() override;
25
+
26
+ virtual void fetchAssetInfoFromBroker(const OrderBrokerPtr& broker) override;
27
+
28
+ /**
29
+ * 根据权息信息更新当前持仓与交易情况
30
+ * @note 必须按时间顺序调用
31
+ * @param datetime 当前时刻
32
+ */
33
+ virtual void updateWithWeight(const Datetime& datetime) override {}
34
+
35
+ /**
36
+ * 获取指定对象的保证金比率
37
+ * @param datetime 日期
38
+ * @param stock 指定对象
39
+ */
40
+ virtual double getMarginRate(const Datetime& datetime, const Stock& stock) override {
41
+ HKU_WARN("The subclass does not implement a getMarginRate method");
42
+ return 0.0;
43
+ }
44
+
45
+ /** 初始资金 */
46
+ virtual price_t initCash() const override {
47
+ return m_cash;
48
+ }
49
+
50
+ /** 账户建立日期 */
51
+ virtual Datetime initDatetime() const override {
52
+ return m_datetime;
53
+ }
54
+
55
+ /** 第一笔买入交易发生日期,如未发生交易返回Null<Datetime>() */
56
+ virtual Datetime firstDatetime() const override {
57
+ return m_datetime;
58
+ }
59
+
60
+ /** 最后一笔交易日期,注意和交易类型无关,如未发生交易返回账户建立日期 */
61
+ virtual Datetime lastDatetime() const override {
62
+ return m_datetime;
63
+ }
64
+
65
+ /**
66
+ * 返回当前现金
67
+ * @note 仅返回当前信息,不会根据权息进行调整
68
+ */
69
+ virtual price_t currentCash() const override {
70
+ return m_cash;
71
+ }
72
+
73
+ /**
74
+ * 获取指定日期的现金
75
+ * @note 如果不带日期参数,无法根据权息信息调整持仓
76
+ */
77
+ virtual price_t cash(const Datetime& datetime, KQuery::KType ktype = KQuery::DAY) override {
78
+ return m_cash;
79
+ }
80
+
81
+ /**
82
+ * 当前是否持有指定的证券
83
+ * @note 这里未使用日期参数,必须保证是按日期顺序执行
84
+ * @param stock 指定证券
85
+ * @return true 是 | false 否
86
+ */
87
+ virtual bool have(const Stock& stock) const override {
88
+ return m_position.count(stock.id()) ? true : false;
89
+ }
90
+
91
+ /**
92
+ * 当前空头仓位是否持有指定的证券
93
+ * @note 这里未使用日期参数,必须保证是按日期顺序执行
94
+ * @param stock 指定证券
95
+ * @return true 是 | false 否
96
+ */
97
+ virtual bool haveShort(const Stock& stock) const override {
98
+ HKU_WARN("The subclass does not implement this method");
99
+ return false;
100
+ }
101
+
102
+ /** 当前持有的证券种类数量 */
103
+ virtual size_t getStockNumber() const override {
104
+ return m_position.size();
105
+ }
106
+
107
+ /** 当前空头持有的证券种类数量 */
108
+ virtual size_t getShortStockNumber() const override {
109
+ HKU_WARN("The subclass does not implement this method");
110
+ return 0;
111
+ }
112
+
113
+ /** 获取指定时刻的某证券持有数量 */
114
+ virtual double getHoldNumber(const Datetime& datetime, const Stock& stock) override {
115
+ HKU_WARN("The subclass does not implement this method");
116
+ return 0.0;
117
+ }
118
+
119
+ /** 获取指定时刻的空头某证券持有数量 */
120
+ virtual double getShortHoldNumber(const Datetime& datetime, const Stock& stock) override {
121
+ HKU_WARN("The subclass does not implement this method");
122
+ return 0.0;
123
+ }
124
+
125
+ /** 获取指定时刻已借入的股票数量 */
126
+ virtual double getDebtNumber(const Datetime& datetime, const Stock& stock) override {
127
+ HKU_WARN("The subclass does not implement this method");
128
+ return 0.0;
129
+ }
130
+
131
+ /** 获取指定时刻已借入的现金额 */
132
+ virtual price_t getDebtCash(const Datetime& datetime) override {
133
+ HKU_WARN("The subclass does not implement this method");
134
+ return 0.0;
135
+ }
136
+
137
+ /** 获取全部交易记录 */
138
+ virtual TradeRecordList getTradeList() const override {
139
+ HKU_WARN("The subclass does not implement this method");
140
+ return TradeRecordList();
141
+ }
142
+
143
+ /**
144
+ * 获取指定日期范围内的交易记录[start, end)
145
+ * @param start 起始日期
146
+ * @param end 结束日期
147
+ * @return 交易记录列表
148
+ */
149
+ virtual TradeRecordList getTradeList(const Datetime& start,
150
+ const Datetime& end) const override {
151
+ HKU_WARN("The subclass does not implement this method");
152
+ return TradeRecordList();
153
+ }
154
+
155
+ /** 获取当前全部持仓记录 */
156
+ virtual PositionRecordList getPositionList() const override;
157
+
158
+ /** 获取全部历史持仓记录,即已平仓记录 */
159
+ virtual PositionRecordList getHistoryPositionList() const override {
160
+ HKU_WARN("The subclass does not implement this method");
161
+ return PositionRecordList();
162
+ }
163
+
164
+ /** 获取当前全部空头仓位记录 */
165
+ virtual PositionRecordList getShortPositionList() const override {
166
+ HKU_WARN("The subclass does not implement this method");
167
+ return PositionRecordList();
168
+ }
169
+
170
+ /** 获取全部空头历史仓位记录 */
171
+ virtual PositionRecordList getShortHistoryPositionList() const override {
172
+ HKU_WARN("The subclass does not implement this method");
173
+ return PositionRecordList();
174
+ }
175
+
176
+ /**
177
+ * 获取指定证券的持仓记录
178
+ * @param date 指定日期
179
+ * @param stock 指定的证券
180
+ */
181
+ virtual PositionRecord getPosition(const Datetime& date, const Stock& stock) override;
182
+
183
+ /**
184
+ * 获取指定证券的空头持仓记录
185
+ * @param stock 指定的证券
186
+ */
187
+ virtual PositionRecord getShortPosition(const Stock& stock) const override {
188
+ HKU_WARN("The subclass does not implement this method");
189
+ return PositionRecord();
190
+ }
191
+
192
+ /** 获取当前借入的股票列表 */
193
+ virtual BorrowRecordList getBorrowStockList() const override {
194
+ HKU_WARN("The subclass does not implement this method");
195
+ return BorrowRecordList();
196
+ }
197
+
198
+ /**
199
+ * 存入资金
200
+ * @param datetime 存入时间
201
+ * @param cash 存入的资金量
202
+ * @return true | false
203
+ */
204
+ virtual bool checkin(const Datetime& datetime, price_t cash) override;
205
+
206
+ /**
207
+ * 取出资金
208
+ * @param datetime 取出时间
209
+ * @param cash 取出的资金量
210
+ * @return true | false
211
+ */
212
+ virtual bool checkout(const Datetime& datetime, price_t cash) override {
213
+ m_cash = (cash > m_cash) ? 0.0 : m_cash - cash;
214
+ return true;
215
+ }
216
+
217
+ /**
218
+ * 存入资产
219
+ * @param datetime 存入日期
220
+ * @param stock 待存入的股票
221
+ * @param price 存入股票的每股价格
222
+ * @param number 存入股票的数量
223
+ * @return true | false
224
+ */
225
+ virtual bool checkinStock(const Datetime& datetime, const Stock& stock, price_t price,
226
+ double number) override {
227
+ HKU_WARN("The subclass does not implement this method");
228
+ return false;
229
+ }
230
+
231
+ /**
232
+ * 取出当前资产
233
+ * @param datetime 取出日期
234
+ * @param stock 待取出的股票
235
+ * @param price 取出的每股价格
236
+ * @param number 取出的数量
237
+ * @return true | false
238
+ * @note 应该不会被用到
239
+ */
240
+ virtual bool checkoutStock(const Datetime& datetime, const Stock& stock, price_t price,
241
+ double number) override {
242
+ HKU_WARN("The subclass does not implement this method");
243
+ return false;
244
+ }
245
+
246
+ /**
247
+ * 买入操作
248
+ * @param datetime 买入时间
249
+ * @param stock 买入的证券
250
+ * @param realPrice 实际买入价格
251
+ * @param number 买入数量
252
+ * @param stoploss 止损价
253
+ * @param goalPrice 目标价格
254
+ * @param planPrice 计划买入价格
255
+ * @param from 记录是哪个系统部件发出的买入指示
256
+ * @return 返回对应的交易记录,如果操作失败,business等于BUSINESS_INVALID
257
+ */
258
+ virtual TradeRecord buy(const Datetime& datetime, const Stock& stock, price_t realPrice,
259
+ double number, price_t stoploss = 0.0, price_t goalPrice = 0.0,
260
+ price_t planPrice = 0.0, SystemPart from = PART_INVALID) override;
261
+
262
+ /**
263
+ * 卖出操作
264
+ * @param datetime 卖出时间
265
+ * @param stock 卖出的证券
266
+ * @param realPrice 实际卖出价格
267
+ * @param number 卖出数量,如果是 MAX_DOUBLE, 表示全部卖出
268
+ * @param stoploss 新的止损价
269
+ * @param goalPrice 新的目标价格
270
+ * @param planPrice 原计划卖出价格
271
+ * @param from 记录是哪个系统部件发出的卖出指示
272
+ * @return 返回对应的交易记录,如果操作失败,business等于BUSINESS_INVALID
273
+ */
274
+ virtual TradeRecord sell(const Datetime& datetime, const Stock& stock, price_t realPrice,
275
+ double number = MAX_DOUBLE, price_t stoploss = 0.0,
276
+ price_t goalPrice = 0.0, price_t planPrice = 0.0,
277
+ SystemPart from = PART_INVALID) override;
278
+
279
+ /**
280
+ * 卖空
281
+ * @param datetime 卖空时间
282
+ * @param stock 卖空的证券
283
+ * @param realPrice 实际卖空价格
284
+ * @param number 卖出数量
285
+ * @param stoploss 止损价
286
+ * @param goalPrice 目标价格
287
+ * @param planPrice 计划卖空价格
288
+ * @param from 记录是哪个系统部件发出的买入指示
289
+ * @return 返回对应的交易记录,如果操作失败,business等于BUSINESS_INVALID
290
+ */
291
+ virtual TradeRecord sellShort(const Datetime& datetime, const Stock& stock, price_t realPrice,
292
+ double number, price_t stoploss = 0.0, price_t goalPrice = 0.0,
293
+ price_t planPrice = 0.0,
294
+ SystemPart from = PART_INVALID) override {
295
+ HKU_WARN("The subclass does not implement this method");
296
+ return TradeRecord();
297
+ }
298
+
299
+ /**
300
+ * 卖空后回补
301
+ * @param datetime 买入时间
302
+ * @param stock 买入的证券
303
+ * @param realPrice 实际买入价格
304
+ * @param number 卖出数量,如果是 MAX_DOUBLE, 表示全部卖出
305
+ * @param stoploss 止损价
306
+ * @param goalPrice 目标价格
307
+ * @param planPrice 计划买入价格
308
+ * @param from 记录是哪个系统部件发出的卖出指示
309
+ * @return 返回对应的交易记录,如果操作失败,business等于BUSINESS_INVALID
310
+ */
311
+ virtual TradeRecord buyShort(const Datetime& datetime, const Stock& stock, price_t realPrice,
312
+ double number = MAX_DOUBLE, price_t stoploss = 0.0,
313
+ price_t goalPrice = 0.0, price_t planPrice = 0.0,
314
+ SystemPart from = PART_INVALID) override {
315
+ HKU_WARN("The subclass does not implement this method");
316
+ return TradeRecord();
317
+ }
318
+
319
+ /**
320
+ * 借入资金,从其他来源借取的资金,如融资
321
+ * @param datetime 借入时间
322
+ * @param cash 借入的现金
323
+ * @return true | false
324
+ */
325
+ virtual bool borrowCash(const Datetime& datetime, price_t cash) override {
326
+ HKU_WARN("The subclass does not implement this method");
327
+ return false;
328
+ }
329
+
330
+ /**
331
+ * 归还资金
332
+ * @param datetime 归还日期
333
+ * @param cash 归还现金
334
+ * @return true | false
335
+ */
336
+ virtual bool returnCash(const Datetime& datetime, price_t cash) override {
337
+ HKU_WARN("The subclass does not implement this method");
338
+ return false;
339
+ }
340
+
341
+ /**
342
+ * 借入证券
343
+ * @param datetime 借入时间
344
+ * @param stock 借入的stock
345
+ * @param price 借入时单股价格
346
+ * @param number 借入时数量
347
+ * @return true | false
348
+ */
349
+ virtual bool borrowStock(const Datetime& datetime, const Stock& stock, price_t price,
350
+ double number) override {
351
+ HKU_WARN("The subclass does not implement this method");
352
+ return false;
353
+ }
354
+
355
+ /**
356
+ * 归还证券
357
+ * @param datetime 归还时间
358
+ * @param stock 归还的stock
359
+ * @param price 归还时单股价格
360
+ * @param number 归还数量
361
+ * @return true | false
362
+ */
363
+ virtual bool returnStock(const Datetime& datetime, const Stock& stock, price_t price,
364
+ double number) override {
365
+ HKU_WARN("The subclass does not implement this method");
366
+ return false;
367
+ }
368
+
369
+ /**
370
+ * 获取账户当前时刻的资产详情
371
+ * @param ktype 日期的类型
372
+ * @return 资产详情
373
+ */
374
+ virtual FundsRecord getFunds(KQuery::KType ktype = KQuery::DAY) const override;
375
+
376
+ /**
377
+ * 获取指定时刻的资产市值详情
378
+ * @param datetime 必须大于帐户建立的初始日期,或为Null<Datetime>()
379
+ * @param ktype 日期的类型
380
+ * @return 资产详情
381
+ * @note 当datetime等于Null<Datetime>()时,与getFunds(KType)同
382
+ */
383
+ virtual FundsRecord getFunds(const Datetime& datetime,
384
+ KQuery::KType ktype = KQuery::DAY) override;
385
+
386
+ /**
387
+ * 直接加入交易记录
388
+ * @note 如果加入初始化账户记录,将清除全部已有交易及持仓记录
389
+ * @param tr 待加入的交易记录
390
+ * @return bool true 成功 | false 失败
391
+ */
392
+ virtual bool addTradeRecord(const TradeRecord& tr) override {
393
+ HKU_WARN("The subclass does not implement this method");
394
+ return false;
395
+ }
396
+
397
+ /**
398
+ * 直接加入持仓记录
399
+ * @param pr 持仓记录
400
+ * @return true 成功
401
+ * @return false 失败
402
+ */
403
+ virtual bool addPosition(const PositionRecord& pr) override {
404
+ HKU_WARN("The subclass does not implement this method");
405
+ return false;
406
+ }
407
+
408
+ /** 字符串输出 */
409
+ virtual string str() const override;
410
+
411
+ /**
412
+ * 以csv格式输出交易记录、未平仓记录、已平仓记录、资产净值曲线
413
+ * @param path 输出文件所在目录
414
+ */
415
+ virtual void tocsv(const string& path) override {
416
+ HKU_WARN("The subclass does not implement this method");
417
+ }
418
+
419
+ private:
420
+ Datetime m_datetime; // 当前日期
421
+
422
+ price_t m_cash{0.0}; // 当前可用现金
423
+
424
+ typedef map<uint64_t, PositionRecord> position_map_type;
425
+ position_map_type m_position; // 当前持仓交易对象的持仓记录
426
+ };
427
+
428
+ TradeManagerPtr HKU_API crtBrokerTM(const OrderBrokerPtr& broker,
429
+ const TradeCostPtr& costfunc = TC_Zero(),
430
+ const string& name = "SYS",
431
+ const std::vector<OrderBrokerPtr>& other_brokers = {});
432
+
433
+ } // namespace hku
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Copyright (c) 2024 hikyuu.org
3
+ *
4
+ * Created on: 2024-08-25
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include "hikyuu/trade_sys/portfolio/Portfolio.h"
11
+ #include "Strategy.h"
12
+
13
+ namespace hku {
14
+
15
+ class HKU_API RunPortfolioInStrategy {
16
+ public:
17
+ RunPortfolioInStrategy() = default;
18
+ RunPortfolioInStrategy(const PFPtr& pf, const KQuery& query, int adjust_cycle,
19
+ const OrderBrokerPtr& broker, const TradeCostPtr& costfunc);
20
+ virtual ~RunPortfolioInStrategy() = default;
21
+
22
+ void run();
23
+
24
+ private:
25
+ PFPtr m_pf;
26
+ OrderBrokerPtr m_broker;
27
+ KQuery m_query;
28
+ int m_adjust_cycle = 1;
29
+ };
30
+
31
+ StrategyPtr HKU_API crtPFStrategy(const PFPtr& pf, const KQuery& query, int adjust_cycle,
32
+ const OrderBrokerPtr& broker, const TradeCostPtr& costfunc,
33
+ const string& name = "PFStrategy",
34
+ const std::vector<OrderBrokerPtr>& other_brokers = {},
35
+ const string& config_file = "");
36
+
37
+ } // namespace hku
@@ -0,0 +1,38 @@
1
+ /*
2
+ * Copyright (c) 2024 hikyuu.org
3
+ *
4
+ * Created on: 2024-08-24
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #include "hikyuu/trade_sys/system/System.h"
10
+ #include "Strategy.h"
11
+
12
+ namespace hku {
13
+
14
+ class HKU_API RunSystemInStrategy {
15
+ public:
16
+ RunSystemInStrategy() = default;
17
+ RunSystemInStrategy(const SYSPtr& sys, const OrderBrokerPtr& broker, const KQuery& query,
18
+ const TradeCostPtr& costfunc);
19
+ virtual ~RunSystemInStrategy() = default;
20
+
21
+ void run(const Stock& stock);
22
+
23
+ private:
24
+ SYSPtr m_sys;
25
+ OrderBrokerPtr m_broker;
26
+ KQuery m_query;
27
+
28
+ TradeRequest m_buyRequest;
29
+ TradeRequest m_sellRequest;
30
+ };
31
+
32
+ StrategyPtr HKU_API crtSysStrategy(const SYSPtr& sys, const string& stk_market_code,
33
+ const KQuery& query, const OrderBrokerPtr& broker,
34
+ const TradeCostPtr& costfunc, const string& name = "SYSStrategy",
35
+ const std::vector<OrderBrokerPtr>& other_brokers = {},
36
+ const string& config_file = "");
37
+
38
+ } // namespace hku
@@ -0,0 +1,191 @@
1
+ /*
2
+ * Copyright(C) 2021 hikyuu.org
3
+ *
4
+ * Create on: 2021-02-16
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <future>
11
+ #include "hikyuu/DataType.h"
12
+ #include "hikyuu/StrategyContext.h"
13
+ #include "hikyuu/global/SpotRecord.h"
14
+ #include "hikyuu/utilities/thread/FuncWrapper.h"
15
+ #include "hikyuu/utilities/thread/ThreadSafeQueue.h"
16
+ #include "hikyuu/trade_sys/portfolio/Portfolio.h"
17
+ #include "BrokerTradeManager.h"
18
+
19
+ namespace hku {
20
+
21
+ /**
22
+ * @ingroup Strategy
23
+ * @{
24
+ */
25
+
26
+ /**
27
+ * @brief 策略运行时
28
+ */
29
+ class HKU_API Strategy {
30
+ CLASS_LOGGER_IMP(Strategy)
31
+ PARAMETER_SUPPORT_WITH_CHECK
32
+
33
+ public:
34
+ Strategy();
35
+ explicit Strategy(const string& name, const string& config_file = "");
36
+ Strategy(const vector<string>& codeList, const vector<KQuery::KType>& ktypeList,
37
+ const string& name = "Strategy", const string& config_file = "");
38
+ explicit Strategy(const StrategyContext& context, const string& name = "Strategy",
39
+ const string& config_file = "");
40
+
41
+ Strategy(const Strategy&) = delete;
42
+ Strategy& operator=(const Strategy&) = delete;
43
+
44
+ virtual ~Strategy();
45
+
46
+ const string& name() const {
47
+ return m_name;
48
+ }
49
+
50
+ void name(const string& name) {
51
+ m_name = name;
52
+ }
53
+
54
+ const StrategyContext& context() const {
55
+ return m_context;
56
+ }
57
+
58
+ /**
59
+ * 每日开盘时间内,以 delta 为周期循环定时执行指定任务
60
+ * @param func 待执行的任务
61
+ * @param delta 间隔时间
62
+ * @param market 指定的市场
63
+ * @param ignoreMarket 是否忽略市场时间限制,如为 true,则为定时循环不受开闭市时间限制
64
+ */
65
+ void runDaily(std::function<void()>&& func, const TimeDelta& delta,
66
+ const std::string& market = "SH", bool ignoreMarket = false);
67
+
68
+ /**
69
+ * 每日在指定时刻执行任务
70
+ * @param func 待执行的任务
71
+ * @param delta 指定时刻
72
+ * @param ignoreHoliday 忽略节假日,即节假日不执行
73
+ */
74
+ void runDailyAt(std::function<void()>&& func, const TimeDelta& delta,
75
+ bool ignoreHoliday = true);
76
+
77
+ /**
78
+ * 正确数据发生变化调用,即接收到相应行情数据变更
79
+ * @note 通常用于调试。且只要收到行情采集消息就会触发,不受开、闭市时间限制
80
+ * @param changeFunc 回调函数
81
+ */
82
+ void onChange(std::function<void(const Stock&, const SpotRecord& spot)>&& changeFunc);
83
+
84
+ /**
85
+ * 一批行情数据接受完毕后通知
86
+ * @note 通常仅用于调试打印,该批行情数据中不一定含有上下文中包含的 stock
87
+ * 且只要收到行情采集消息就会触发,不受开、闭市时间限制。
88
+ * @param recievedFucn 回调函数
89
+ */
90
+ void onReceivedSpot(std::function<void(const Datetime&)>&& recievedFucn);
91
+
92
+ /**
93
+ * 启动策略执行,必须在已注册相关处理函数后执行
94
+ */
95
+ void start(bool autoRecieveSpot = true);
96
+
97
+ private:
98
+ string m_name;
99
+ string m_config_file;
100
+ StrategyContext m_context;
101
+ std::function<void(const Datetime&)> m_on_recieved_spot;
102
+ std::function<void(const Stock&, const SpotRecord& spot)> m_on_change;
103
+
104
+ std::function<void()> m_run_daily_func;
105
+ TimeDelta m_run_daily_delta;
106
+ string m_run_daily_market;
107
+ bool m_ignoreMarket{false};
108
+
109
+ std::map<TimeDelta, std::function<void()>> m_run_daily_at_funcs;
110
+
111
+ private:
112
+ void _initParam();
113
+ void _init();
114
+ void _receivedSpot(const SpotRecord& spot);
115
+ void _runDaily();
116
+ void _runDailyAt();
117
+
118
+ private:
119
+ static std::atomic_bool ms_keep_running;
120
+ static void sig_handler(int sig);
121
+
122
+ typedef FuncWrapper event_type;
123
+ ThreadSafeQueue<event_type> m_event_queue; // 消息队列
124
+
125
+ /** 先消息队列提交任务后返回的对应 future 的类型 */
126
+ template <typename ResultType>
127
+ using event_handle = std::future<ResultType>;
128
+
129
+ #ifdef _MSC_VER
130
+ #pragma warning(push)
131
+ #pragma warning(disable : 4996)
132
+ #endif
133
+
134
+ /** 向线程池提交任务 */
135
+ template <typename FunctionType>
136
+ event_handle<typename std::result_of<FunctionType()>::type> event(FunctionType f) {
137
+ typedef typename std::result_of<FunctionType()>::type result_type;
138
+ std::packaged_task<result_type()> task(f);
139
+ event_handle<result_type> res(task.get_future());
140
+ m_event_queue.push(std::move(task));
141
+ return res;
142
+ }
143
+
144
+ #ifdef _MSC_VER
145
+ #pragma warning(pop)
146
+ #endif
147
+
148
+ void _startEventLoop();
149
+ };
150
+
151
+ typedef shared_ptr<Strategy> StrategyPtr;
152
+
153
+ /**
154
+ * @brief 在策略运行时中执行系统交易 SYS
155
+ * @note 目前仅支持 buy_delay| sell_delay 均为 false 的系统,即 close 时执行交易
156
+ * @param sys 交易系统
157
+ * @param stk 交易对象
158
+ * @param query 查询条件
159
+ * @param broker 订单代理(专用与和账户资产同步的订单代理)
160
+ * @param costfunc 成本函数
161
+ * @param other_brokers 其他的订单代理
162
+ */
163
+ void HKU_API runInStrategy(const SYSPtr& sys, const Stock& stk, const KQuery& query,
164
+ const OrderBrokerPtr& broker, const TradeCostPtr& costfunc,
165
+ const std::vector<OrderBrokerPtr>& other_brokers = {});
166
+
167
+ /**
168
+ * @brief 在策略运行时中执行组合策略 PF
169
+ * @note 目前仅支持 buy_delay| sell_delay 均为 false 的系统,即 close 时执行交易
170
+ * @param pf 资产组合
171
+ * @param query 查询条件
172
+ * @param adjust_cycle 调仓周期
173
+ * @param broker 订单代理(专用与和账户资产同步的订单代理)
174
+ * @param costfunc 成本函数
175
+ * @param other_brokers 其他的订单代理
176
+ */
177
+ void HKU_API runInStrategy(const PFPtr& pf, const KQuery& query, int adjust_cycle,
178
+ const OrderBrokerPtr& broker, const TradeCostPtr& costfunc,
179
+ const std::vector<OrderBrokerPtr>& other_brokers = {});
180
+
181
+ /**
182
+ * 从 hikyuu 数据缓存服务器拉取更新最新的缓存数据
183
+ * @param addr 缓存服务地址,如: tcp://192.168.1.1:9201
184
+ * @param stklist 待更新的股票列表
185
+ * @param ktype 指定更新的K线类型
186
+ */
187
+ void HKU_API getDataFromBufferServer(const std::string& addr, const StockList& stklist,
188
+ const KQuery::KType& ktype);
189
+
190
+ /** @} */
191
+ } // namespace hku
@@ -0,0 +1 @@
1
+