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,27 @@
1
+ #!/usr/bin/python
2
+ # -*- coding: utf8 -*-
3
+ # cp936
4
+ #
5
+ # The MIT License (MIT)
6
+ #
7
+ # Copyright (c) 2010-2017 fasiondog
8
+ #
9
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ # of this software and associated documentation files (the "Software"), to deal
11
+ # in the Software without restriction, including without limitation the rights
12
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ # copies of the Software, and to permit persons to whom the Software is
14
+ # furnished to do so, subject to the following conditions:
15
+ #
16
+ # The above copyright notice and this permission notice shall be included in all
17
+ # copies or substantial portions of the Software.
18
+ #
19
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25
+ # SOFTWARE.
26
+
27
+ from .trade_sys import *
@@ -0,0 +1,251 @@
1
+ # -*- coding: utf8 -*-
2
+
3
+ from hikyuu.core import (
4
+ System, SystemPart, ConditionBase, EnvironmentBase, MoneyManagerBase,
5
+ ProfitGoalBase, SelectorBase, SignalBase, SlippageBase, StoplossBase, AllocateFundsBase,
6
+ MultiFactorBase
7
+ )
8
+
9
+
10
+ def part_iter(self):
11
+ for i in range(len(self)):
12
+ yield self[i]
13
+
14
+
15
+ ConditionBase.__iter__ = part_iter
16
+
17
+
18
+ def part_init(self, name='', params={}):
19
+ super(self.__class__, self).__init__(name)
20
+ self._name = name
21
+ self._params = params
22
+ for k, v in params.items():
23
+ self.set_param(k, v)
24
+
25
+
26
+ def part_clone(self):
27
+ cloned = self.__class__.__new__(self.__class__)
28
+ self.__class__.__init__(cloned, self)
29
+ cloned.__dict__.update(self.__dict__)
30
+ return cloned
31
+
32
+
33
+ # ------------------------------------------------------------------
34
+ # System
35
+ # ------------------------------------------------------------------
36
+ System.Part = SystemPart
37
+ System.ENVIRONMENT = System.Part.ENVIRONMENT
38
+ System.CONDITION = System.Part.CONDITION
39
+ System.SIGNAL = System.Part.SIGNAL
40
+ System.STOPLOSS = System.Part.STOPLOSS
41
+ System.TAKEPROFIT = System.Part.TAKEPROFIT
42
+ System.MONEYMANAGER = System.Part.MONEYMANAGER
43
+ System.PROFITGOAL = System.Part.PROFITGOAL
44
+ System.SLIPPAGE = System.Part.SLIPPAGE
45
+ System.INVALID = System.Part.INVALID
46
+
47
+
48
+ # ------------------------------------------------------------------
49
+ # condition
50
+ # ------------------------------------------------------------------
51
+ def crtCN(func, params={}, name='crtCN'):
52
+ """
53
+ 快速创建系统有效条件
54
+
55
+ :param func: 系统有效条件函数
56
+ :param {} params: 参数字典
57
+ :param str name: 自定义名称
58
+ :return: 自定义系统有效条件实例
59
+ """
60
+ meta_x = type(name, (ConditionBase, ), {'__init__': part_init, '_clone': part_clone})
61
+ meta_x._calculate = func
62
+ # 强制引入全局空间,避免 hub 使用是自定义继承丢失虚拟函数接口
63
+ ret = meta_x(name, params)
64
+ globals().update(dict(_=ret))
65
+ return ret
66
+
67
+
68
+ # ------------------------------------------------------------------
69
+ # environment
70
+ # ------------------------------------------------------------------
71
+ def crtEV(func, params={}, name='crtEV'):
72
+ """
73
+ 快速创建市场环境判断策略
74
+
75
+ :param func: 市场环境判断策略函数
76
+ :param {} params: 参数字典
77
+ :param str name: 自定义名称
78
+ :return: 自定义市场环境判断策略实例
79
+ """
80
+ meta_x = type(name, (EnvironmentBase, ), {'__init__': part_init, '_clone': part_clone})
81
+ meta_x._calculate = func
82
+ ret = meta_x(name, params)
83
+ globals().update(dict(_=ret))
84
+ return ret
85
+
86
+
87
+ # ------------------------------------------------------------------
88
+ # moneymanager
89
+ # ------------------------------------------------------------------
90
+ def crtMM(get_buy_num, get_sell_num, params={}, name='crtMM', buy_notify=None, sell_notify=None):
91
+ """
92
+ 快速创建资金管理策略
93
+
94
+ :param get_buy_num: 买入数量接口
95
+ :param sell_buy_num: 卖出数量接口
96
+ :param {} params: 参数字典
97
+ :param str name: 自定义名称
98
+ :param buy_notify: 接收买入交易记录通知
99
+ :param sell_notify: 接收卖出交易记录通知
100
+ :return: 自定义资金管理策略实例
101
+ """
102
+ meta_x = type(name, (MoneyManagerBase, ), {'__init__': part_init, '_clone': part_clone})
103
+ meta_x._get_buy_num = get_buy_num
104
+ meta_x._get_sell_num = get_sell_num
105
+ if buy_notify is not None:
106
+ meta_x._buy_notify = buy_notify
107
+ if sell_notify is not None:
108
+ meta_x._sell_notify = sell_notify
109
+ ret = meta_x(name, params)
110
+ globals().update(dict(_=ret))
111
+ return ret
112
+
113
+
114
+ # ------------------------------------------------------------------
115
+ # profitgoal
116
+ # ------------------------------------------------------------------
117
+ def crtPG(func, params={}, name='crtPG'):
118
+ """
119
+ 快速创建盈利目标策略
120
+
121
+ :param func: 盈利目标策略函数
122
+ :param {} params: 参数字典
123
+ :param str name: 自定义名称
124
+ :return: 盈利目标策略实例
125
+ """
126
+ meta_x = type(name, (ProfitGoalBase, ), {'__init__': part_init, '_clone': part_clone})
127
+ meta_x._calculate = func
128
+ ret = meta_x(name, params)
129
+ globals().update(dict(_=ret))
130
+ return ret
131
+
132
+
133
+ # ------------------------------------------------------------------
134
+ # signal
135
+ # ------------------------------------------------------------------
136
+ def crtSG(func, params={}, name='crtSG'):
137
+ """
138
+ 快速创建信号指示器
139
+
140
+ :param func: 信号策略函数
141
+ :param {} params: 参数字典
142
+ :param str name: 自定义名称
143
+ :return: 自定义信号指示器实例
144
+ """
145
+ meta_x = type(name, (SignalBase, ), {'__init__': part_init, '_clone': part_clone})
146
+ meta_x._calculate = func
147
+ return meta_x(name, params)
148
+
149
+
150
+ # ------------------------------------------------------------------
151
+ # Selector
152
+ # ------------------------------------------------------------------
153
+ def crtSE(calculate, get_selected, is_match_af=None, params={}, name='crtSE'):
154
+ """
155
+ 快速创建交易对象选择算法
156
+
157
+ :param calculate function: 计算函数
158
+ :param get_selected_on_close function: 收盘时刻选择算法
159
+ :param get_selected_on_open function: 开盘时刻选择算法
160
+ :param {} params: 参数字典
161
+ :param str name: 自定义名称
162
+ :return: 自定义交易对象选择算法实例
163
+ """
164
+ meta_x = type(name, (SelectorBase, ), {'__init__': part_init, '_clone': part_clone})
165
+ meta_x._calculate = calculate
166
+ meta_x.get_selected = get_selected
167
+ meta_x.is_match_af = (lambda self, af: True) if is_match_af is None else is_match_af
168
+ ret = meta_x(name, params)
169
+ globals().update(dict(_=ret))
170
+ return ret
171
+
172
+
173
+ # ------------------------------------------------------------------
174
+ # allocatefunds
175
+ # ------------------------------------------------------------------
176
+ def crtAF(allocate_weight_func, params={}, name='crtAF'):
177
+ """
178
+ 快速创建资产分配算法
179
+
180
+ :param allocate_weight_func: 资产分配算法
181
+ :param {} params: 参数字典
182
+ :param str name: 自定义名称
183
+ :return: 自定义资产分配算法实例
184
+ """
185
+ meta_x = type(name, (AllocateFundsBase, ), {'__init__': part_init, '_clone': part_clone})
186
+ meta_x._allocate_weight = allocate_weight_func
187
+ ret = meta_x(name, params)
188
+ globals().update(dict(_=ret))
189
+ return ret
190
+
191
+
192
+ # ------------------------------------------------------------------
193
+ # multi_factor
194
+ # ------------------------------------------------------------------
195
+ def crtMF(calculate_func, params={}, name='crtMF'):
196
+ """
197
+ 快速多因子合成算法
198
+
199
+ :param calculate_func: 合成算法
200
+ :param {} params: 参数字典
201
+ :param str name: 自定义名称
202
+ :return: 自定义多因子合成算法实例
203
+ """
204
+ meta_x = type(name, (MultiFactorBase, ), {'__init__': part_init, '_clone': part_clone})
205
+ meta_x._calculate = calculate_func
206
+ ret = meta_x(name, params)
207
+ globals().update(dict(_=ret))
208
+ return ret
209
+
210
+
211
+ # ------------------------------------------------------------------
212
+ # slippage
213
+ # ------------------------------------------------------------------
214
+ def crtSP(get_real_buy_price, get_real_sell_price, params={}, name='crtSP', calculate=None):
215
+ """
216
+ 快速创建移滑价差算法
217
+
218
+ :param get_real_buy_price: 移滑价差算法接口计算实际买入价格
219
+ :param get_real_sell_price: 移滑价差算法接口计算实际买入价格
220
+ :param {} params: 参数字典
221
+ :param str name: 自定义名称
222
+ :param calculate: 预处理函数
223
+ :return: 移滑价差算法实例
224
+ """
225
+ meta_x = type(name, (SlippageBase, ), {'__init__': part_init, '_clone': part_clone})
226
+ meta_x.get_real_buy_price = get_real_buy_price
227
+ meta_x.get_real_sell_price = get_real_sell_price
228
+ if calculate is not None:
229
+ meta_x._calculate = calculate
230
+ ret = meta_x(name, params)
231
+ globals().update(dict(_=ret))
232
+ return ret
233
+
234
+
235
+ # ------------------------------------------------------------------
236
+ # stoploss
237
+ # ------------------------------------------------------------------
238
+ def crtST(func, params={}, name='crtST'):
239
+ """
240
+ 快速创建止损/止盈策略
241
+
242
+ :param func: 止损/止盈策略函数
243
+ :param {} params: 参数字典
244
+ :param str name: 自定义名称
245
+ :return: 止损/止盈策略实例
246
+ """
247
+ meta_x = type(name, (StoplossBase, ), {'__init__': part_init, '_clone': part_clone})
248
+ meta_x._calculate = func
249
+ ret = meta_x(name, params)
250
+ globals().update(dict(_=ret))
251
+ return ret
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/python
2
+ # -*- coding: utf8 -*-
3
+ # cp936
4
+
5
+ # ===============================================================================
6
+ # 作者:fasiondog
7
+ # 历史:1)20090527, Added by fasiondog
8
+ # ===============================================================================
9
+
10
+ # from singleton import Singleton
11
+
12
+ from .mylog import *
13
+ from .check import *
14
+ from .timeout import *
15
+ from .notebook import *
16
+
17
+ __all__ = [
18
+ 'spend_time',
19
+ 'timeout',
20
+ 'hku_logger',
21
+ 'class_logger',
22
+ 'add_class_logger_handler',
23
+ 'HKUCheckError',
24
+ 'hku_check',
25
+ 'hku_check_throw',
26
+ 'hku_check_ignore',
27
+ 'hku_catch',
28
+ 'hku_to_async',
29
+ 'hku_trace',
30
+ 'hku_debug',
31
+ 'hku_info',
32
+ 'hku_warn',
33
+ 'hku_error',
34
+ 'hku_fatal',
35
+ 'hku_trace_if',
36
+ 'hku_debug_if',
37
+ 'hku_info_if',
38
+ 'hku_warn_if',
39
+ 'hku_info_if',
40
+ 'hku_warn_if',
41
+ 'hku_error_if',
42
+ 'hku_fatal_if',
43
+ 'with_trace',
44
+ 'set_my_logger_file',
45
+ 'capture_multiprocess_all_logger',
46
+ 'LoggingContext',
47
+ 'in_interactive_session',
48
+ 'in_ipython_frontend',
49
+ ]
@@ -0,0 +1,55 @@
1
+ from __future__ import annotations
2
+ import asyncio as asyncio
3
+ import ctypes as ctypes
4
+ import functools as functools
5
+ from hikyuu.util.check import HKUCheckError
6
+ from hikyuu.util.check import HKUIngoreError
7
+ from hikyuu.util.check import checkif
8
+ from hikyuu.util.check import get_exception_info
9
+ from hikyuu.util.check import hku_catch
10
+ from hikyuu.util.check import hku_check
11
+ from hikyuu.util.check import hku_check_ignore
12
+ from hikyuu.util.check import hku_check_throw
13
+ from hikyuu.util.check import hku_to_async
14
+ from hikyuu.util.mylog import LoggingContext
15
+ from hikyuu.util.mylog import add_class_logger_handler
16
+ from hikyuu.util.mylog import capture_multiprocess_all_logger
17
+ from hikyuu.util.mylog import class_logger
18
+ from hikyuu.util.mylog import get_default_logger
19
+ from hikyuu.util.mylog import hku_debug as hku_trace
20
+ from hikyuu.util.mylog import hku_debug
21
+ from hikyuu.util.mylog import hku_debug_if as hku_trace_if
22
+ from hikyuu.util.mylog import hku_debug_if
23
+ from hikyuu.util.mylog import hku_error
24
+ from hikyuu.util.mylog import hku_error_if
25
+ from hikyuu.util.mylog import hku_fatal
26
+ from hikyuu.util.mylog import hku_fatal_if
27
+ from hikyuu.util.mylog import hku_info
28
+ from hikyuu.util.mylog import hku_info_if
29
+ from hikyuu.util.mylog import hku_warn
30
+ from hikyuu.util.mylog import hku_warn_if
31
+ from hikyuu.util.mylog import set_my_logger_file
32
+ from hikyuu.util.mylog import spend_time
33
+ from hikyuu.util.mylog import with_trace
34
+ from hikyuu.util.notebook import in_interactive_session
35
+ from hikyuu.util.notebook import in_ipython_frontend
36
+ from hikyuu.util.timeout import TerminableThread
37
+ from hikyuu.util.timeout import ThreadKiller
38
+ from hikyuu.util.timeout import timeout
39
+ import logging as logging
40
+ import multiprocessing as multiprocessing
41
+ import os as os
42
+ import sys as sys
43
+ import threading as threading
44
+ import time as time
45
+ import traceback as traceback
46
+ from . import check
47
+ from . import mylog
48
+ from . import notebook
49
+ from . import singleton
50
+ from . import slice
51
+ __all__: list = ['spend_time', 'timeout', 'hku_logger', 'class_logger', 'add_class_logger_handler', 'HKUCheckError', 'hku_check', 'hku_check_throw', 'hku_check_ignore', 'hku_catch', 'hku_to_async', 'hku_trace', 'hku_debug', 'hku_info', 'hku_warn', 'hku_error', 'hku_fatal', 'hku_trace_if', 'hku_debug_if', 'hku_info_if', 'hku_warn_if', 'hku_info_if', 'hku_warn_if', 'hku_error_if', 'hku_fatal_if', 'with_trace', 'set_my_logger_file', 'capture_multiprocess_all_logger', 'LoggingContext', 'in_interactive_session', 'in_ipython_frontend']
52
+ FORMAT: str = '%(asctime)-15s [%(levelname)s] %(message)s [%(name)s::%(funcName)s]'
53
+ g_hku_logger_lock: multiprocessing.synchronize.Lock # value = <Lock(owner=unknown)>
54
+ hku_logger: logging.Logger # value = <Logger hikyuu (INFO)>
55
+ hku_logger_name: str = 'hikyuu'
hikyuu/util/check.py ADDED
@@ -0,0 +1,153 @@
1
+ #!/usr/bin/python
2
+ # -*- coding: utf8 -*-
3
+ # cp936
4
+
5
+ # ==========================================================
6
+ # History
7
+ # 1. 20200821, Added by fasiondog
8
+ # ==========================================================
9
+
10
+ import sys
11
+ import traceback
12
+ import functools
13
+ import asyncio
14
+ from .mylog import hku_logger, g_hku_logger_lock
15
+
16
+
17
+ class HKUCheckError(Exception):
18
+ def __init__(self, expression, message):
19
+ self.expression = expression
20
+ self.message = message
21
+
22
+ def __str__(self):
23
+ return str(self.message)
24
+
25
+
26
+ class HKUIngoreError(Exception):
27
+ def __init__(self, expression, message=None):
28
+ self.expression = expression
29
+ self.message = message if message is not None else 'ignore'
30
+
31
+ def __str__(self):
32
+ return str(self.message)
33
+
34
+
35
+ def checkif(expression, message, excepion=None, **kwargs):
36
+ """如果 expression 为 True,则抛出异常。注意:该函数的判定和 assert 是相反的。
37
+
38
+ :param boolean expression: 判断条件
39
+ :param str message: 异常注解信息
40
+ :param Exception exception: 指定的异常类,为None时,为默认 HKUCheckError 异常
41
+ """
42
+ if expression:
43
+ if excepion is None:
44
+ raise HKUCheckError(expression, message)
45
+ else:
46
+ raise excepion(message, **kwargs)
47
+
48
+
49
+ def hku_check(exp, msg, *args, **kwargs):
50
+ if not exp:
51
+ st = traceback.extract_stack()[-2]
52
+ check_exp = st._line.split(',')[0]
53
+ errmsg = "{}) {} [{}] [{}:{}]".format(check_exp, msg.format(*args, **kwargs), st.name, st.filename, st.lineno)
54
+ raise HKUCheckError(exp, errmsg)
55
+
56
+
57
+ def hku_check_throw(expression, message, excepion=None, **kwargs):
58
+ """如果 expression 为 False,则抛出异常。
59
+
60
+ :param boolean expression: 判断条件
61
+ :param str message: 异常注解信息
62
+ :param Exception exception: 指定的异常类,为None时,为默认 HKUCheckError 异常
63
+ """
64
+ if not expression:
65
+ st = traceback.extract_stack()[-2]
66
+ check_exp = st._line.split(',')[0]
67
+ errmsg = "{}) {} [{}] [{}:{}]".format(check_exp, message, st.name, st.filename, st.lineno)
68
+ if excepion is None:
69
+ raise HKUCheckError(expression, errmsg)
70
+ else:
71
+ raise excepion(errmsg, **kwargs)
72
+
73
+
74
+ def hku_check_ignore(exp, *args, **kwargs):
75
+ """可忽略的检查"""
76
+ if not exp:
77
+ st = traceback.extract_stack()[-2]
78
+ check_exp = st._line.split(',')[0]
79
+ msg = kwargs.pop("msg") if "msg" in kwargs else ''
80
+ if msg:
81
+ errmsg = "{}) {} [{}] [{}:{}]".format(
82
+ check_exp, msg.format(*args, **kwargs), st.name, st.filename, st.lineno
83
+ )
84
+ elif args:
85
+ msg = args[0]
86
+ errmsg = "{}) {} [{}] [{}:{}]".format(
87
+ check_exp, msg.format(*args[1:], **kwargs), st.name, st.filename, st.lineno
88
+ )
89
+ raise HKUIngoreError(exp, errmsg)
90
+
91
+
92
+ def get_exception_info():
93
+ info = sys.exc_info()
94
+ return "{}: {}".format(info[0].__name__, info[1])
95
+
96
+
97
+ def hku_catch(ret=None, trace=False, callback=None, retry=1, with_msg=False, re_raise=False):
98
+ """捕获发生的异常, 包装方式: @hku_catch()
99
+ :param ret: 异常发生时返回值, with_msg为True时, 返回为 (ret, errmsg)
100
+ :param boolean trace: 打印异常堆栈信息
101
+ :param func callback: 发生异常后的回调函数, 入参同func
102
+ :param int retry: 尝试执行的次数
103
+ :param boolean with_msg: 是否返回异常错误信息, 为True时, 函数返回为 (ret, errmsg)
104
+ :param boolean re_raise: 是否将错误信息以异常的方式重新抛出
105
+ """
106
+ def hku_catch_wrap(func):
107
+ @functools.wraps(func)
108
+ def wrappedFunc(*args, **kargs):
109
+ for i in range(retry):
110
+ errmsg = ""
111
+ try:
112
+ val = func(*args, **kargs)
113
+ return (val, errmsg) if with_msg else val
114
+ except HKUIngoreError:
115
+ errmsg = "{} [{}.{}]".format(get_exception_info(), func.__module__, func.__name__)
116
+ hku_logger.debug(errmsg)
117
+ except Exception:
118
+ errmsg = "{} [{}.{}]".format(get_exception_info(), func.__module__, func.__name__)
119
+ with g_hku_logger_lock:
120
+ hku_logger.error(errmsg)
121
+ if trace:
122
+ hku_logger.error(traceback.format_exc())
123
+ if i == (retry - 1):
124
+ if callback is not None:
125
+ callback(*args, **kargs)
126
+ if re_raise:
127
+ raise Exception(errmsg)
128
+ except KeyboardInterrupt:
129
+ raise KeyboardInterrupt()
130
+ except:
131
+ errmsg = "Unknown error! {} [{}.{}]".format(get_exception_info(), func.__module__, func.__name__)
132
+ with g_hku_logger_lock:
133
+ hku_logger.error(errmsg)
134
+ if trace:
135
+ hku_logger.error(traceback.format_exc())
136
+ if i == (retry - 1):
137
+ if callback is not None:
138
+ callback(*args, **kargs)
139
+ if re_raise:
140
+ raise Exception(errmsg)
141
+ return (ret, errmsg) if with_msg else ret
142
+
143
+ return wrappedFunc
144
+
145
+ return hku_catch_wrap
146
+
147
+
148
+ def hku_to_async(func):
149
+ @functools.wraps(func)
150
+ async def async_func(*args, **kwargs):
151
+ loop = asyncio.get_event_loop()
152
+ return await loop.run_in_executor(None, func, *args, **kwargs)
153
+ return async_func
hikyuu/util/check.pyi ADDED
@@ -0,0 +1,59 @@
1
+ from __future__ import annotations
2
+ import asyncio as asyncio
3
+ import functools as functools
4
+ import logging
5
+ import multiprocessing.synchronize
6
+ import sys as sys
7
+ import traceback as traceback
8
+ __all__ = ['HKUCheckError', 'HKUIngoreError', 'asyncio', 'checkif', 'functools', 'g_hku_logger_lock', 'get_exception_info', 'hku_catch', 'hku_check', 'hku_check_ignore', 'hku_check_throw', 'hku_logger', 'hku_to_async', 'sys', 'traceback']
9
+ class HKUCheckError(Exception):
10
+ def __init__(self, expression, message):
11
+ ...
12
+ def __str__(self):
13
+ ...
14
+ class HKUIngoreError(Exception):
15
+ def __init__(self, expression, message = None):
16
+ ...
17
+ def __str__(self):
18
+ ...
19
+ def checkif(expression, message, excepion = None, **kwargs):
20
+ """
21
+ 如果 expression 为 True,则抛出异常。注意:该函数的判定和 assert 是相反的。
22
+
23
+ :param boolean expression: 判断条件
24
+ :param str message: 异常注解信息
25
+ :param Exception exception: 指定的异常类,为None时,为默认 HKUCheckError 异常
26
+
27
+ """
28
+ def get_exception_info():
29
+ ...
30
+ def hku_catch(ret = None, trace = False, callback = None, retry = 1, with_msg = False, re_raise = False):
31
+ """
32
+ 捕获发生的异常, 包装方式: @hku_catch()
33
+ :param ret: 异常发生时返回值, with_msg为True时, 返回为 (ret, errmsg)
34
+ :param boolean trace: 打印异常堆栈信息
35
+ :param func callback: 发生异常后的回调函数, 入参同func
36
+ :param int retry: 尝试执行的次数
37
+ :param boolean with_msg: 是否返回异常错误信息, 为True时, 函数返回为 (ret, errmsg)
38
+ :param boolean re_raise: 是否将错误信息以异常的方式重新抛出
39
+
40
+ """
41
+ def hku_check(exp, msg, *args, **kwargs):
42
+ ...
43
+ def hku_check_ignore(exp, *args, **kwargs):
44
+ """
45
+ 可忽略的检查
46
+ """
47
+ def hku_check_throw(expression, message, excepion = None, **kwargs):
48
+ """
49
+ 如果 expression 为 False,则抛出异常。
50
+
51
+ :param boolean expression: 判断条件
52
+ :param str message: 异常注解信息
53
+ :param Exception exception: 指定的异常类,为None时,为默认 HKUCheckError 异常
54
+
55
+ """
56
+ def hku_to_async(func):
57
+ ...
58
+ g_hku_logger_lock: multiprocessing.synchronize.Lock # value = <Lock(owner=unknown)>
59
+ hku_logger: logging.Logger # value = <Logger hikyuu (INFO)>