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