hikyuu 2.2.2__py3-none-win_amd64.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 (820) hide show
  1. hikyuu/LICENSE.txt +21 -0
  2. hikyuu/__init__.py +137 -0
  3. hikyuu/analysis/__init__.py +14 -0
  4. hikyuu/analysis/analysis.py +151 -0
  5. hikyuu/config/__init__.py +1 -0
  6. hikyuu/config/block/__init__.py +0 -0
  7. hikyuu/config/block/dybk.ini +5357 -0
  8. hikyuu/config/block/gnbk.ini +50024 -0
  9. hikyuu/config/block/hybk.ini +5464 -0
  10. hikyuu/config/block/self.ini +10 -0
  11. hikyuu/config/block/zsbk.ini +65543 -0
  12. hikyuu/core.py +27 -0
  13. hikyuu/cpp/__init__.py +1 -0
  14. hikyuu/cpp/boost_date_time-mt.dll +0 -0
  15. hikyuu/cpp/boost_serialization-mt.dll +0 -0
  16. hikyuu/cpp/boost_wserialization-mt.dll +0 -0
  17. hikyuu/cpp/concrt140.dll +0 -0
  18. hikyuu/cpp/core310.pyd +0 -0
  19. hikyuu/cpp/core311.pyd +0 -0
  20. hikyuu/cpp/core312.pyd +0 -0
  21. hikyuu/cpp/core313.pyd +0 -0
  22. hikyuu/cpp/core38.pyd +0 -0
  23. hikyuu/cpp/core39.pyd +0 -0
  24. hikyuu/cpp/hikyuu.dll +0 -0
  25. hikyuu/cpp/hku_hdf5.dll +0 -0
  26. hikyuu/cpp/hku_hdf5_cpp.dll +0 -0
  27. hikyuu/cpp/hku_hdf5_hl.dll +0 -0
  28. hikyuu/cpp/hku_hdf5_hl_cpp.dll +0 -0
  29. hikyuu/cpp/libcrypto-1_1-x64.dll +0 -0
  30. hikyuu/cpp/libmysql.dll +0 -0
  31. hikyuu/cpp/libssl-1_1-x64.dll +0 -0
  32. hikyuu/cpp/msvcp140.dll +0 -0
  33. hikyuu/cpp/msvcp140_1.dll +0 -0
  34. hikyuu/cpp/msvcp140_2.dll +0 -0
  35. hikyuu/cpp/msvcp140_atomic_wait.dll +0 -0
  36. hikyuu/cpp/msvcp140_codecvt_ids.dll +0 -0
  37. hikyuu/cpp/sqlite3.dll +0 -0
  38. hikyuu/cpp/vcruntime140.dll +0 -0
  39. hikyuu/cpp/vcruntime140_1.dll +0 -0
  40. hikyuu/data/__init__.py +1 -0
  41. hikyuu/data/common.py +248 -0
  42. hikyuu/data/common_h5.py +398 -0
  43. hikyuu/data/common_mysql.py +485 -0
  44. hikyuu/data/common_pytdx.py +108 -0
  45. hikyuu/data/common_sqlite3.py +140 -0
  46. hikyuu/data/em_block_to_mysql.py +120 -0
  47. hikyuu/data/em_block_to_sqlite.py +117 -0
  48. hikyuu/data/hku_config_template.py +266 -0
  49. hikyuu/data/mysql_upgrade/0001.sql +5 -0
  50. hikyuu/data/mysql_upgrade/0002.sql +3 -0
  51. hikyuu/data/mysql_upgrade/0003.sql +9 -0
  52. hikyuu/data/mysql_upgrade/0004.sql +26 -0
  53. hikyuu/data/mysql_upgrade/0005.sql +3 -0
  54. hikyuu/data/mysql_upgrade/0006.sql +2 -0
  55. hikyuu/data/mysql_upgrade/0007.sql +20 -0
  56. hikyuu/data/mysql_upgrade/0008.sql +6 -0
  57. hikyuu/data/mysql_upgrade/0009.sql +36 -0
  58. hikyuu/data/mysql_upgrade/0010.sql +5 -0
  59. hikyuu/data/mysql_upgrade/0011.sql +5 -0
  60. hikyuu/data/mysql_upgrade/0012.sql +5 -0
  61. hikyuu/data/mysql_upgrade/0013.sql +2389 -0
  62. hikyuu/data/mysql_upgrade/0014.sql +3 -0
  63. hikyuu/data/mysql_upgrade/0015.sql +4 -0
  64. hikyuu/data/mysql_upgrade/0016.sql +4 -0
  65. hikyuu/data/mysql_upgrade/0017.sql +5 -0
  66. hikyuu/data/mysql_upgrade/0018.sql +2 -0
  67. hikyuu/data/mysql_upgrade/0019.sql +6 -0
  68. hikyuu/data/mysql_upgrade/0020.sql +4 -0
  69. hikyuu/data/mysql_upgrade/0021.sql +4 -0
  70. hikyuu/data/mysql_upgrade/0022.sql +5 -0
  71. hikyuu/data/mysql_upgrade/0023.sql +4 -0
  72. hikyuu/data/mysql_upgrade/__init__.py +1 -0
  73. hikyuu/data/mysql_upgrade/createdb.sql +265 -0
  74. hikyuu/data/pytdx_finance_to_mysql.py +129 -0
  75. hikyuu/data/pytdx_finance_to_sqlite.py +162 -0
  76. hikyuu/data/pytdx_to_h5.py +662 -0
  77. hikyuu/data/pytdx_to_mysql.py +803 -0
  78. hikyuu/data/pytdx_weight_to_mysql.py +196 -0
  79. hikyuu/data/pytdx_weight_to_sqlite.py +192 -0
  80. hikyuu/data/sqlite_mem.py +84 -0
  81. hikyuu/data/sqlite_mem_sql/__init__.py +1 -0
  82. hikyuu/data/sqlite_mem_sql/createdb.sql +126 -0
  83. hikyuu/data/sqlite_upgrade/0001.sql +4 -0
  84. hikyuu/data/sqlite_upgrade/0002.sql +48 -0
  85. hikyuu/data/sqlite_upgrade/0003.sql +18 -0
  86. hikyuu/data/sqlite_upgrade/0004.sql +11 -0
  87. hikyuu/data/sqlite_upgrade/0005.sql +28 -0
  88. hikyuu/data/sqlite_upgrade/0006.sql +5 -0
  89. hikyuu/data/sqlite_upgrade/0007.sql +4 -0
  90. hikyuu/data/sqlite_upgrade/0008.sql +22 -0
  91. hikyuu/data/sqlite_upgrade/0009.sql +8 -0
  92. hikyuu/data/sqlite_upgrade/0010.sql +5 -0
  93. hikyuu/data/sqlite_upgrade/0011.sql +16 -0
  94. hikyuu/data/sqlite_upgrade/0012.sql +15 -0
  95. hikyuu/data/sqlite_upgrade/0013.sql +9 -0
  96. hikyuu/data/sqlite_upgrade/0014.sql +607 -0
  97. hikyuu/data/sqlite_upgrade/0015.sql +7 -0
  98. hikyuu/data/sqlite_upgrade/0016.sql +8 -0
  99. hikyuu/data/sqlite_upgrade/0017.sql +16 -0
  100. hikyuu/data/sqlite_upgrade/0018.sql +5 -0
  101. hikyuu/data/sqlite_upgrade/0019.sql +4 -0
  102. hikyuu/data/sqlite_upgrade/0020.sql +4 -0
  103. hikyuu/data/sqlite_upgrade/0021.sql +6 -0
  104. hikyuu/data/sqlite_upgrade/0022.sql +6 -0
  105. hikyuu/data/sqlite_upgrade/0023.sql +7 -0
  106. hikyuu/data/sqlite_upgrade/0024.sql +22 -0
  107. hikyuu/data/sqlite_upgrade/__init__.py +1 -0
  108. hikyuu/data/sqlite_upgrade/createdb.sql +61 -0
  109. hikyuu/data/tdx_to_h5.py +464 -0
  110. hikyuu/data/tdx_to_mysql.py +464 -0
  111. hikyuu/data/weight_to_mysql.py +72 -0
  112. hikyuu/data/weight_to_sqlite.py +70 -0
  113. hikyuu/data/zh_bond10_to_mysql.py +30 -0
  114. hikyuu/data/zh_bond10_to_sqlite.py +42 -0
  115. hikyuu/data_driver/__init__.py +49 -0
  116. hikyuu/data_driver/jqdata_data_driver.py +277 -0
  117. hikyuu/data_driver/pytdx_data_driver.py +292 -0
  118. hikyuu/deprecated.py +651 -0
  119. hikyuu/draw/__init__.py +59 -0
  120. hikyuu/draw/drawplot/__init__.py +291 -0
  121. hikyuu/draw/drawplot/bokeh_draw.py +583 -0
  122. hikyuu/draw/drawplot/common.py +89 -0
  123. hikyuu/draw/drawplot/echarts_draw.py +402 -0
  124. hikyuu/draw/drawplot/matplotlib_draw.py +832 -0
  125. hikyuu/draw/elder.py +135 -0
  126. hikyuu/draw/kaufman.py +192 -0
  127. hikyuu/draw/volume.py +122 -0
  128. hikyuu/examples/Turtle_SG.py +47 -0
  129. hikyuu/examples/__init__.py +1 -0
  130. hikyuu/examples/examples_init.py +33 -0
  131. hikyuu/examples/notebook/000-Index.ipynb +76 -0
  132. hikyuu/examples/notebook/001-overview.ipynb +345 -0
  133. hikyuu/examples/notebook/002-HowToGetStock.ipynb +265 -0
  134. hikyuu/examples/notebook/003-HowToGetKDataAndDraw.ipynb +375 -0
  135. hikyuu/examples/notebook/004-IndicatorOverview.ipynb +501 -0
  136. hikyuu/examples/notebook/005-Drawplot.ipynb +321 -0
  137. hikyuu/examples/notebook/006-TradeManager.ipynb +381 -0
  138. hikyuu/examples/notebook/007-SystemDetails.ipynb +380 -0
  139. hikyuu/examples/notebook/008-Pickle.ipynb +127 -0
  140. hikyuu/examples/notebook/009-RealData.ipynb +110 -0
  141. hikyuu/examples/notebook/010-Portfolio.ipynb +333 -0
  142. hikyuu/examples/notebook/011-PyechartsDrawplot.ipynb +21821 -0
  143. hikyuu/examples/notebook/Demo/Demo1.ipynb +622 -0
  144. hikyuu/examples/notebook/Demo/Demo2.ipynb +665 -0
  145. hikyuu/examples/notebook/Demo/__init__.py +1 -0
  146. hikyuu/examples/notebook/README.md +1 -0
  147. hikyuu/examples/notebook/__init__.py +1 -0
  148. hikyuu/examples/notebook/images/002_01_block_config.png +0 -0
  149. hikyuu/examples/notebook/images/008_01_tocsv.png +0 -0
  150. hikyuu/examples/notebook/images/008_02_tocsv_look.png +0 -0
  151. hikyuu/examples/notebook/images/008_03_pickle.png +0 -0
  152. hikyuu/examples/notebook/images/__init__.py +1 -0
  153. hikyuu/examples/quick_crtsg.py +40 -0
  154. hikyuu/extend.py +387 -0
  155. hikyuu/fetcher/__init__.py +8 -0
  156. hikyuu/fetcher/proxy/__init__.py +12 -0
  157. hikyuu/fetcher/proxy/proxy.py +39 -0
  158. hikyuu/fetcher/proxy/zhima.py +63 -0
  159. hikyuu/fetcher/stock/__init__.py +8 -0
  160. hikyuu/fetcher/stock/zh_block_em.py +140 -0
  161. hikyuu/fetcher/stock/zh_stock_a_huatai.py +51 -0
  162. hikyuu/fetcher/stock/zh_stock_a_pytdx.py +139 -0
  163. hikyuu/fetcher/stock/zh_stock_a_qmt.py +58 -0
  164. hikyuu/fetcher/stock/zh_stock_a_sina_qq.py +229 -0
  165. hikyuu/flat/Spot.py +440 -0
  166. hikyuu/flat/SpotList.py +74 -0
  167. hikyuu/flat/__init__.py +4 -0
  168. hikyuu/gui/HikyuuTDX.py +839 -0
  169. hikyuu/gui/__init__.py +1 -0
  170. hikyuu/gui/data/CollectSpotThread.py +43 -0
  171. hikyuu/gui/data/CollectToMemThread.py +123 -0
  172. hikyuu/gui/data/CollectToMySQLThread.py +178 -0
  173. hikyuu/gui/data/EscapetimeThread.py +32 -0
  174. hikyuu/gui/data/ImportBlockInfoTask.py +55 -0
  175. hikyuu/gui/data/ImportHistoryFinanceTask.py +141 -0
  176. hikyuu/gui/data/ImportPytdxTimeToH5Task.py +94 -0
  177. hikyuu/gui/data/ImportPytdxToH5Task.py +98 -0
  178. hikyuu/gui/data/ImportPytdxTransToH5Task.py +94 -0
  179. hikyuu/gui/data/ImportTdxToH5Task.py +111 -0
  180. hikyuu/gui/data/ImportWeightToSqliteTask.py +114 -0
  181. hikyuu/gui/data/ImportZhBond10Task.py +48 -0
  182. hikyuu/gui/data/MainWindow.py +807 -0
  183. hikyuu/gui/data/SchedImportThread.py +62 -0
  184. hikyuu/gui/data/UsePytdxImportToH5Thread.py +371 -0
  185. hikyuu/gui/data/UseTdxImportToH5Thread.py +182 -0
  186. hikyuu/gui/data/__init__.py +1 -0
  187. hikyuu/gui/data/tool.py +43 -0
  188. hikyuu/gui/hikyuu.ico +0 -0
  189. hikyuu/gui/importdata.py +166 -0
  190. hikyuu/gui/spot_server.py +336 -0
  191. hikyuu/gui/start_huatai_insight.py +510 -0
  192. hikyuu/gui/start_qmt.py +122 -0
  193. hikyuu/hub.py +634 -0
  194. hikyuu/include/__init__.py +1 -0
  195. hikyuu/include/hikyuu/Block.h +173 -0
  196. hikyuu/include/hikyuu/DataType.h +171 -0
  197. hikyuu/include/hikyuu/GlobalInitializer.h +46 -0
  198. hikyuu/include/hikyuu/HistoryFinanceInfo.h +35 -0
  199. hikyuu/include/hikyuu/KData.h +271 -0
  200. hikyuu/include/hikyuu/KDataImp.h +94 -0
  201. hikyuu/include/hikyuu/KQuery.h +275 -0
  202. hikyuu/include/hikyuu/KRecord.h +94 -0
  203. hikyuu/include/hikyuu/MarketInfo.h +132 -0
  204. hikyuu/include/hikyuu/Stock.h +351 -0
  205. hikyuu/include/hikyuu/StockManager.h +361 -0
  206. hikyuu/include/hikyuu/StockMapIterator.h +72 -0
  207. hikyuu/include/hikyuu/StockTypeInfo.h +127 -0
  208. hikyuu/include/hikyuu/StockWeight.h +148 -0
  209. hikyuu/include/hikyuu/StrategyContext.h +107 -0
  210. hikyuu/include/hikyuu/TimeLineRecord.h +71 -0
  211. hikyuu/include/hikyuu/TransRecord.h +79 -0
  212. hikyuu/include/hikyuu/ZhBond10.h +36 -0
  213. hikyuu/include/hikyuu/__init__.py +1 -0
  214. hikyuu/include/hikyuu/analysis/__init__.py +1 -0
  215. hikyuu/include/hikyuu/analysis/analysis_sys.h +76 -0
  216. hikyuu/include/hikyuu/analysis/combinate.h +115 -0
  217. hikyuu/include/hikyuu/config.h +48 -0
  218. hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +201 -0
  219. hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +94 -0
  220. hikyuu/include/hikyuu/data_driver/DataDriverFactory.h +58 -0
  221. hikyuu/include/hikyuu/data_driver/DriverConnectPool.h +146 -0
  222. hikyuu/include/hikyuu/data_driver/HistoryFinanceReader.h +36 -0
  223. hikyuu/include/hikyuu/data_driver/KDataDriver.h +194 -0
  224. hikyuu/include/hikyuu/data_driver/__init__.py +1 -0
  225. hikyuu/include/hikyuu/data_driver/base_info/__init__.py +1 -0
  226. hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +54 -0
  227. hikyuu/include/hikyuu/data_driver/base_info/mysql/__init__.py +1 -0
  228. hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +50 -0
  229. hikyuu/include/hikyuu/data_driver/base_info/sqlite/__init__.py +1 -0
  230. hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceFieldTable.h +19 -0
  231. hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceTable.h +23 -0
  232. hikyuu/include/hikyuu/data_driver/base_info/table/HolidayTable.h +29 -0
  233. hikyuu/include/hikyuu/data_driver/base_info/table/MarketInfoTable.h +127 -0
  234. hikyuu/include/hikyuu/data_driver/base_info/table/StockTable.h +64 -0
  235. hikyuu/include/hikyuu/data_driver/base_info/table/StockTypeInfoTable.h +108 -0
  236. hikyuu/include/hikyuu/data_driver/base_info/table/StockWeightTable.h +52 -0
  237. hikyuu/include/hikyuu/data_driver/base_info/table/ZhBond10Table.h +20 -0
  238. hikyuu/include/hikyuu/data_driver/base_info/table/__init__.py +1 -0
  239. hikyuu/include/hikyuu/data_driver/block_info/__init__.py +1 -0
  240. hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +29 -0
  241. hikyuu/include/hikyuu/data_driver/block_info/mysql/__init__.py +1 -0
  242. hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +29 -0
  243. hikyuu/include/hikyuu/data_driver/block_info/qianlong/__init__.py +1 -0
  244. hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +29 -0
  245. hikyuu/include/hikyuu/data_driver/block_info/sqlite/__init__.py +1 -0
  246. hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +33 -0
  247. hikyuu/include/hikyuu/data_driver/kdata/__init__.py +1 -0
  248. hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +106 -0
  249. hikyuu/include/hikyuu/data_driver/kdata/cvs/__init__.py +1 -0
  250. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +89 -0
  251. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5Record.h +50 -0
  252. hikyuu/include/hikyuu/data_driver/kdata/hdf5/__init__.py +1 -0
  253. hikyuu/include/hikyuu/data_driver/kdata/mysql/KRecordTable.h +124 -0
  254. hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +78 -0
  255. hikyuu/include/hikyuu/data_driver/kdata/mysql/__init__.py +1 -0
  256. hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +62 -0
  257. hikyuu/include/hikyuu/data_driver/kdata/sqlite/__init__.py +1 -0
  258. hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +63 -0
  259. hikyuu/include/hikyuu/data_driver/kdata/tdx/__init__.py +1 -0
  260. hikyuu/include/hikyuu/debug.h +32 -0
  261. hikyuu/include/hikyuu/doc.h +166 -0
  262. hikyuu/include/hikyuu/global/GlobalSpotAgent.h +33 -0
  263. hikyuu/include/hikyuu/global/SpotRecord.h +52 -0
  264. hikyuu/include/hikyuu/global/__init__.py +1 -0
  265. hikyuu/include/hikyuu/global/agent/SpotAgent.h +143 -0
  266. hikyuu/include/hikyuu/global/agent/__init__.py +1 -0
  267. hikyuu/include/hikyuu/global/agent/hikyuu/__init__.py +1 -0
  268. hikyuu/include/hikyuu/global/agent/hikyuu/flat/__init__.py +1 -0
  269. hikyuu/include/hikyuu/global/agent/spot_generated.h +527 -0
  270. hikyuu/include/hikyuu/global/schedule/__init__.py +1 -0
  271. hikyuu/include/hikyuu/global/schedule/inner_tasks.h +16 -0
  272. hikyuu/include/hikyuu/global/schedule/scheduler.h +24 -0
  273. hikyuu/include/hikyuu/global/sysinfo.h +67 -0
  274. hikyuu/include/hikyuu/hikyuu.h +55 -0
  275. hikyuu/include/hikyuu/indicator/IndParam.h +39 -0
  276. hikyuu/include/hikyuu/indicator/Indicator.h +403 -0
  277. hikyuu/include/hikyuu/indicator/IndicatorImp.h +413 -0
  278. hikyuu/include/hikyuu/indicator/__init__.py +1 -0
  279. hikyuu/include/hikyuu/indicator/build_in.h +114 -0
  280. hikyuu/include/hikyuu/indicator/crt/ABS.h +34 -0
  281. hikyuu/include/hikyuu/indicator/crt/ACOS.h +36 -0
  282. hikyuu/include/hikyuu/indicator/crt/AD.h +28 -0
  283. hikyuu/include/hikyuu/indicator/crt/ADVANCE.h +32 -0
  284. hikyuu/include/hikyuu/indicator/crt/ALIGN.h +42 -0
  285. hikyuu/include/hikyuu/indicator/crt/AMA.h +113 -0
  286. hikyuu/include/hikyuu/indicator/crt/ASIN.h +36 -0
  287. hikyuu/include/hikyuu/indicator/crt/ATAN.h +36 -0
  288. hikyuu/include/hikyuu/indicator/crt/ATR.h +44 -0
  289. hikyuu/include/hikyuu/indicator/crt/AVEDEV.h +45 -0
  290. hikyuu/include/hikyuu/indicator/crt/BACKSET.h +44 -0
  291. hikyuu/include/hikyuu/indicator/crt/BARSCOUNT.h +37 -0
  292. hikyuu/include/hikyuu/indicator/crt/BARSLAST.h +41 -0
  293. hikyuu/include/hikyuu/indicator/crt/BARSSINCE.h +41 -0
  294. hikyuu/include/hikyuu/indicator/crt/BETWEEN.h +85 -0
  295. hikyuu/include/hikyuu/indicator/crt/BLOCKSETNUM.h +23 -0
  296. hikyuu/include/hikyuu/indicator/crt/CEILING.h +38 -0
  297. hikyuu/include/hikyuu/indicator/crt/CORR.h +24 -0
  298. hikyuu/include/hikyuu/indicator/crt/COS.h +36 -0
  299. hikyuu/include/hikyuu/indicator/crt/COST.h +34 -0
  300. hikyuu/include/hikyuu/indicator/crt/COUNT.h +54 -0
  301. hikyuu/include/hikyuu/indicator/crt/CROSS.h +48 -0
  302. hikyuu/include/hikyuu/indicator/crt/CVAL.h +35 -0
  303. hikyuu/include/hikyuu/indicator/crt/DECLINE.h +32 -0
  304. hikyuu/include/hikyuu/indicator/crt/DEVSQ.h +40 -0
  305. hikyuu/include/hikyuu/indicator/crt/DIFF.h +31 -0
  306. hikyuu/include/hikyuu/indicator/crt/DMA.h +34 -0
  307. hikyuu/include/hikyuu/indicator/crt/DOWNNDAY.h +43 -0
  308. hikyuu/include/hikyuu/indicator/crt/DROPNA.h +31 -0
  309. hikyuu/include/hikyuu/indicator/crt/EMA.h +44 -0
  310. hikyuu/include/hikyuu/indicator/crt/EVERY.h +44 -0
  311. hikyuu/include/hikyuu/indicator/crt/EXIST.h +44 -0
  312. hikyuu/include/hikyuu/indicator/crt/EXP.h +34 -0
  313. hikyuu/include/hikyuu/indicator/crt/FILTER.h +44 -0
  314. hikyuu/include/hikyuu/indicator/crt/FINANCE.h +20 -0
  315. hikyuu/include/hikyuu/indicator/crt/FLOOR.h +38 -0
  316. hikyuu/include/hikyuu/indicator/crt/HHV.h +44 -0
  317. hikyuu/include/hikyuu/indicator/crt/HHVBARS.h +44 -0
  318. hikyuu/include/hikyuu/indicator/crt/HSL.h +39 -0
  319. hikyuu/include/hikyuu/indicator/crt/IC.h +41 -0
  320. hikyuu/include/hikyuu/indicator/crt/ICIR.h +51 -0
  321. hikyuu/include/hikyuu/indicator/crt/INSUM.h +33 -0
  322. hikyuu/include/hikyuu/indicator/crt/INTPART.h +38 -0
  323. hikyuu/include/hikyuu/indicator/crt/IR.h +44 -0
  324. hikyuu/include/hikyuu/indicator/crt/KDATA.h +72 -0
  325. hikyuu/include/hikyuu/indicator/crt/LAST.h +100 -0
  326. hikyuu/include/hikyuu/indicator/crt/LIUTONGPAN.h +23 -0
  327. hikyuu/include/hikyuu/indicator/crt/LLV.h +46 -0
  328. hikyuu/include/hikyuu/indicator/crt/LLVBARS.h +44 -0
  329. hikyuu/include/hikyuu/indicator/crt/LN.h +36 -0
  330. hikyuu/include/hikyuu/indicator/crt/LOG.h +35 -0
  331. hikyuu/include/hikyuu/indicator/crt/LONGCROSS.h +68 -0
  332. hikyuu/include/hikyuu/indicator/crt/MA.h +44 -0
  333. hikyuu/include/hikyuu/indicator/crt/MACD.h +62 -0
  334. hikyuu/include/hikyuu/indicator/crt/MAX.h +45 -0
  335. hikyuu/include/hikyuu/indicator/crt/MDD.h +29 -0
  336. hikyuu/include/hikyuu/indicator/crt/MIN.h +45 -0
  337. hikyuu/include/hikyuu/indicator/crt/MOD.h +49 -0
  338. hikyuu/include/hikyuu/indicator/crt/MRR.h +29 -0
  339. hikyuu/include/hikyuu/indicator/crt/NDAY.h +43 -0
  340. hikyuu/include/hikyuu/indicator/crt/NOT.h +35 -0
  341. hikyuu/include/hikyuu/indicator/crt/POS.h +21 -0
  342. hikyuu/include/hikyuu/indicator/crt/POW.h +48 -0
  343. hikyuu/include/hikyuu/indicator/crt/PRICELIST.h +59 -0
  344. hikyuu/include/hikyuu/indicator/crt/RECOVER.h +45 -0
  345. hikyuu/include/hikyuu/indicator/crt/REF.h +48 -0
  346. hikyuu/include/hikyuu/indicator/crt/RESULT.h +20 -0
  347. hikyuu/include/hikyuu/indicator/crt/REVERSE.h +36 -0
  348. hikyuu/include/hikyuu/indicator/crt/ROC.h +39 -0
  349. hikyuu/include/hikyuu/indicator/crt/ROCP.h +39 -0
  350. hikyuu/include/hikyuu/indicator/crt/ROCR.h +39 -0
  351. hikyuu/include/hikyuu/indicator/crt/ROCR100.h +39 -0
  352. hikyuu/include/hikyuu/indicator/crt/ROUND.h +36 -0
  353. hikyuu/include/hikyuu/indicator/crt/ROUNDDOWN.h +36 -0
  354. hikyuu/include/hikyuu/indicator/crt/ROUNDUP.h +36 -0
  355. hikyuu/include/hikyuu/indicator/crt/RSI.h +43 -0
  356. hikyuu/include/hikyuu/indicator/crt/SAFTYLOSS.h +79 -0
  357. hikyuu/include/hikyuu/indicator/crt/SGN.h +34 -0
  358. hikyuu/include/hikyuu/indicator/crt/SIN.h +36 -0
  359. hikyuu/include/hikyuu/indicator/crt/SLICE.h +44 -0
  360. hikyuu/include/hikyuu/indicator/crt/SLOPE.h +44 -0
  361. hikyuu/include/hikyuu/indicator/crt/SMA.h +72 -0
  362. hikyuu/include/hikyuu/indicator/crt/SPEARMAN.h +23 -0
  363. hikyuu/include/hikyuu/indicator/crt/SQRT.h +41 -0
  364. hikyuu/include/hikyuu/indicator/crt/STDEV.h +44 -0
  365. hikyuu/include/hikyuu/indicator/crt/STDP.h +38 -0
  366. hikyuu/include/hikyuu/indicator/crt/SUM.h +44 -0
  367. hikyuu/include/hikyuu/indicator/crt/SUMBARS.h +44 -0
  368. hikyuu/include/hikyuu/indicator/crt/TAN.h +36 -0
  369. hikyuu/include/hikyuu/indicator/crt/TIME.h +69 -0
  370. hikyuu/include/hikyuu/indicator/crt/TIMELINE.h +23 -0
  371. hikyuu/include/hikyuu/indicator/crt/TIMELINEVOL.h +21 -0
  372. hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +21 -0
  373. hikyuu/include/hikyuu/indicator/crt/UPNDAY.h +43 -0
  374. hikyuu/include/hikyuu/indicator/crt/VAR.h +40 -0
  375. hikyuu/include/hikyuu/indicator/crt/VARP.h +40 -0
  376. hikyuu/include/hikyuu/indicator/crt/VIGOR.h +34 -0
  377. hikyuu/include/hikyuu/indicator/crt/ZHBOND10.h +27 -0
  378. hikyuu/include/hikyuu/indicator/crt/ZONGGUBEN.h +17 -0
  379. hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +30 -0
  380. hikyuu/include/hikyuu/indicator/crt/__init__.py +1 -0
  381. hikyuu/include/hikyuu/indicator/imp/IAbs.h +26 -0
  382. hikyuu/include/hikyuu/indicator/imp/IAcos.h +28 -0
  383. hikyuu/include/hikyuu/indicator/imp/IAd.h +30 -0
  384. hikyuu/include/hikyuu/indicator/imp/IAdvance.h +29 -0
  385. hikyuu/include/hikyuu/indicator/imp/IAlign.h +28 -0
  386. hikyuu/include/hikyuu/indicator/imp/IAma.h +38 -0
  387. hikyuu/include/hikyuu/indicator/imp/IAsin.h +28 -0
  388. hikyuu/include/hikyuu/indicator/imp/IAtan.h +28 -0
  389. hikyuu/include/hikyuu/indicator/imp/IAtr.h +28 -0
  390. hikyuu/include/hikyuu/indicator/imp/IBackset.h +33 -0
  391. hikyuu/include/hikyuu/indicator/imp/IBarsCount.h +28 -0
  392. hikyuu/include/hikyuu/indicator/imp/IBarsLast.h +28 -0
  393. hikyuu/include/hikyuu/indicator/imp/IBarsSince.h +28 -0
  394. hikyuu/include/hikyuu/indicator/imp/IBlockSetNum.h +28 -0
  395. hikyuu/include/hikyuu/indicator/imp/ICeil.h +31 -0
  396. hikyuu/include/hikyuu/indicator/imp/ICorr.h +42 -0
  397. hikyuu/include/hikyuu/indicator/imp/ICos.h +28 -0
  398. hikyuu/include/hikyuu/indicator/imp/ICount.h +32 -0
  399. hikyuu/include/hikyuu/indicator/imp/ICval.h +29 -0
  400. hikyuu/include/hikyuu/indicator/imp/IDecline.h +29 -0
  401. hikyuu/include/hikyuu/indicator/imp/IDevsq.h +29 -0
  402. hikyuu/include/hikyuu/indicator/imp/IDiff.h +29 -0
  403. hikyuu/include/hikyuu/indicator/imp/IDma.h +47 -0
  404. hikyuu/include/hikyuu/indicator/imp/IDropna.h +28 -0
  405. hikyuu/include/hikyuu/indicator/imp/IEma.h +29 -0
  406. hikyuu/include/hikyuu/indicator/imp/IEvery.h +32 -0
  407. hikyuu/include/hikyuu/indicator/imp/IExist.h +32 -0
  408. hikyuu/include/hikyuu/indicator/imp/IExp.h +28 -0
  409. hikyuu/include/hikyuu/indicator/imp/IFilter.h +34 -0
  410. hikyuu/include/hikyuu/indicator/imp/IFinance.h +25 -0
  411. hikyuu/include/hikyuu/indicator/imp/IFloor.h +31 -0
  412. hikyuu/include/hikyuu/indicator/imp/IHhvbars.h +29 -0
  413. hikyuu/include/hikyuu/indicator/imp/IHighLine.h +34 -0
  414. hikyuu/include/hikyuu/indicator/imp/IIc.h +45 -0
  415. hikyuu/include/hikyuu/indicator/imp/IInSum.h +28 -0
  416. hikyuu/include/hikyuu/indicator/imp/IIntpart.h +31 -0
  417. hikyuu/include/hikyuu/indicator/imp/IKData.h +29 -0
  418. hikyuu/include/hikyuu/indicator/imp/ILiuTongPan.h +29 -0
  419. hikyuu/include/hikyuu/indicator/imp/ILn.h +28 -0
  420. hikyuu/include/hikyuu/indicator/imp/ILog.h +28 -0
  421. hikyuu/include/hikyuu/indicator/imp/ILowLine.h +30 -0
  422. hikyuu/include/hikyuu/indicator/imp/ILowLineBars.h +29 -0
  423. hikyuu/include/hikyuu/indicator/imp/IMa.h +27 -0
  424. hikyuu/include/hikyuu/indicator/imp/IMacd.h +41 -0
  425. hikyuu/include/hikyuu/indicator/imp/IMdd.h +23 -0
  426. hikyuu/include/hikyuu/indicator/imp/IMrr.h +23 -0
  427. hikyuu/include/hikyuu/indicator/imp/INot.h +26 -0
  428. hikyuu/include/hikyuu/indicator/imp/IPow.h +32 -0
  429. hikyuu/include/hikyuu/indicator/imp/IPriceList.h +29 -0
  430. hikyuu/include/hikyuu/indicator/imp/IRecover.h +29 -0
  431. hikyuu/include/hikyuu/indicator/imp/IRef.h +34 -0
  432. hikyuu/include/hikyuu/indicator/imp/IResult.h +26 -0
  433. hikyuu/include/hikyuu/indicator/imp/IReverse.h +28 -0
  434. hikyuu/include/hikyuu/indicator/imp/IRoc.h +29 -0
  435. hikyuu/include/hikyuu/indicator/imp/IRocp.h +29 -0
  436. hikyuu/include/hikyuu/indicator/imp/IRocr.h +29 -0
  437. hikyuu/include/hikyuu/indicator/imp/IRocr100.h +29 -0
  438. hikyuu/include/hikyuu/indicator/imp/IRound.h +32 -0
  439. hikyuu/include/hikyuu/indicator/imp/IRoundDown.h +32 -0
  440. hikyuu/include/hikyuu/indicator/imp/IRoundUp.h +32 -0
  441. hikyuu/include/hikyuu/indicator/imp/ISaftyLoss.h +44 -0
  442. hikyuu/include/hikyuu/indicator/imp/ISign.h +28 -0
  443. hikyuu/include/hikyuu/indicator/imp/ISin.h +28 -0
  444. hikyuu/include/hikyuu/indicator/imp/ISlice.h +25 -0
  445. hikyuu/include/hikyuu/indicator/imp/ISlope.h +25 -0
  446. hikyuu/include/hikyuu/indicator/imp/ISma.h +34 -0
  447. hikyuu/include/hikyuu/indicator/imp/ISpearman.h +42 -0
  448. hikyuu/include/hikyuu/indicator/imp/ISqrt.h +31 -0
  449. hikyuu/include/hikyuu/indicator/imp/IStdev.h +31 -0
  450. hikyuu/include/hikyuu/indicator/imp/IStdp.h +33 -0
  451. hikyuu/include/hikyuu/indicator/imp/ISum.h +27 -0
  452. hikyuu/include/hikyuu/indicator/imp/ISumBars.h +30 -0
  453. hikyuu/include/hikyuu/indicator/imp/ITan.h +28 -0
  454. hikyuu/include/hikyuu/indicator/imp/ITime.h +33 -0
  455. hikyuu/include/hikyuu/indicator/imp/ITimeLine.h +32 -0
  456. hikyuu/include/hikyuu/indicator/imp/IVar.h +32 -0
  457. hikyuu/include/hikyuu/indicator/imp/IVarp.h +32 -0
  458. hikyuu/include/hikyuu/indicator/imp/IVigor.h +35 -0
  459. hikyuu/include/hikyuu/indicator/imp/IZScore.h +25 -0
  460. hikyuu/include/hikyuu/indicator/imp/IZhBond10.h +30 -0
  461. hikyuu/include/hikyuu/indicator/imp/IZongGuBen.h +25 -0
  462. hikyuu/include/hikyuu/indicator/imp/__init__.py +1 -0
  463. hikyuu/include/hikyuu/python/__init__.py +1 -0
  464. hikyuu/include/hikyuu/python/pickle_support.h +90 -0
  465. hikyuu/include/hikyuu/python/pybind_utils.h +103 -0
  466. hikyuu/include/hikyuu/serialization/Block_serialization.h +55 -0
  467. hikyuu/include/hikyuu/serialization/Datetime_serialization.h +40 -0
  468. hikyuu/include/hikyuu/serialization/KData_serialization.h +45 -0
  469. hikyuu/include/hikyuu/serialization/KQuery_serialization.h +79 -0
  470. hikyuu/include/hikyuu/serialization/KRecord_serialization.h +50 -0
  471. hikyuu/include/hikyuu/serialization/MarketInfo_serialization.h +68 -0
  472. hikyuu/include/hikyuu/serialization/PriceList_serialization.h +66 -0
  473. hikyuu/include/hikyuu/serialization/StockTypeInfo_serialization.h +62 -0
  474. hikyuu/include/hikyuu/serialization/StockWeight_serialization.h +65 -0
  475. hikyuu/include/hikyuu/serialization/Stock_serialization.h +47 -0
  476. hikyuu/include/hikyuu/serialization/TimeDelta_serialization.h +44 -0
  477. hikyuu/include/hikyuu/serialization/TimeLineRecord_serialization.h +42 -0
  478. hikyuu/include/hikyuu/serialization/TransRecord_serialization.h +44 -0
  479. hikyuu/include/hikyuu/serialization/__init__.py +1 -0
  480. hikyuu/include/hikyuu/serialization/all.h +26 -0
  481. hikyuu/include/hikyuu/strategy/BrokerTradeManager.h +433 -0
  482. hikyuu/include/hikyuu/strategy/RunPortfolioInStrategy.h +37 -0
  483. hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +38 -0
  484. hikyuu/include/hikyuu/strategy/Strategy.h +191 -0
  485. hikyuu/include/hikyuu/strategy/__init__.py +1 -0
  486. hikyuu/include/hikyuu/trade_manage/BorrowRecord.h +91 -0
  487. hikyuu/include/hikyuu/trade_manage/CostRecord.h +67 -0
  488. hikyuu/include/hikyuu/trade_manage/FundsRecord.h +110 -0
  489. hikyuu/include/hikyuu/trade_manage/LoanRecord.h +64 -0
  490. hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h +182 -0
  491. hikyuu/include/hikyuu/trade_manage/Performance.h +80 -0
  492. hikyuu/include/hikyuu/trade_manage/PositionRecord.h +108 -0
  493. hikyuu/include/hikyuu/trade_manage/TradeCostBase.h +174 -0
  494. hikyuu/include/hikyuu/trade_manage/TradeManager.h +487 -0
  495. hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +782 -0
  496. hikyuu/include/hikyuu/trade_manage/TradeRecord.h +151 -0
  497. hikyuu/include/hikyuu/trade_manage/__init__.py +1 -0
  498. hikyuu/include/hikyuu/trade_manage/build_in.h +19 -0
  499. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA.h +45 -0
  500. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2015.h +43 -0
  501. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2017.h +44 -0
  502. hikyuu/include/hikyuu/trade_manage/crt/TC_TestStub.h +21 -0
  503. hikyuu/include/hikyuu/trade_manage/crt/TC_Zero.h +25 -0
  504. hikyuu/include/hikyuu/trade_manage/crt/__init__.py +1 -0
  505. hikyuu/include/hikyuu/trade_manage/crt/crtTM.h +33 -0
  506. hikyuu/include/hikyuu/trade_manage/imp/FixedA2015TradeCost.h +53 -0
  507. hikyuu/include/hikyuu/trade_manage/imp/FixedA2017TradeCost.h +56 -0
  508. hikyuu/include/hikyuu/trade_manage/imp/FixedATradeCost.h +88 -0
  509. hikyuu/include/hikyuu/trade_manage/imp/TradeCostStub.h +48 -0
  510. hikyuu/include/hikyuu/trade_manage/imp/ZeroTradeCost.h +50 -0
  511. hikyuu/include/hikyuu/trade_manage/imp/__init__.py +1 -0
  512. hikyuu/include/hikyuu/trade_sys/__init__.py +1 -0
  513. hikyuu/include/hikyuu/trade_sys/all.h +24 -0
  514. hikyuu/include/hikyuu/trade_sys/allocatefunds/AllocateFundsBase.h +229 -0
  515. hikyuu/include/hikyuu/trade_sys/allocatefunds/__init__.py +1 -0
  516. hikyuu/include/hikyuu/trade_sys/allocatefunds/build_in.h +16 -0
  517. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_EqualWeight.h +25 -0
  518. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_FixedWeight.h +26 -0
  519. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_MultiFactor.h +21 -0
  520. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/__init__.py +1 -0
  521. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/EqualWeightAllocateFunds.h +27 -0
  522. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/FixedWeightAllocateFunds.h +28 -0
  523. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/MultiFactorAllocaterFunds.h +23 -0
  524. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/__init__.py +1 -0
  525. hikyuu/include/hikyuu/trade_sys/condition/ConditionBase.h +241 -0
  526. hikyuu/include/hikyuu/trade_sys/condition/__init__.py +1 -0
  527. hikyuu/include/hikyuu/trade_sys/condition/build_in.h +17 -0
  528. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Bool.h +22 -0
  529. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Logic.h +35 -0
  530. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Manual.h +20 -0
  531. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_OPLine.h +26 -0
  532. hikyuu/include/hikyuu/trade_sys/condition/crt/__init__.py +1 -0
  533. hikyuu/include/hikyuu/trade_sys/condition/imp/BoolCondition.h +40 -0
  534. hikyuu/include/hikyuu/trade_sys/condition/imp/ManualCondition.h +23 -0
  535. hikyuu/include/hikyuu/trade_sys/condition/imp/OPLineCondition.h +44 -0
  536. hikyuu/include/hikyuu/trade_sys/condition/imp/SubCondition.h +42 -0
  537. hikyuu/include/hikyuu/trade_sys/condition/imp/__init__.py +1 -0
  538. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AddCondition.h +42 -0
  539. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AndCondition.h +42 -0
  540. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/DivCondition.h +42 -0
  541. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/MultiCondition.h +42 -0
  542. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/OrCondition.h +42 -0
  543. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/__init__.py +1 -0
  544. hikyuu/include/hikyuu/trade_sys/environment/EnvironmentBase.h +178 -0
  545. hikyuu/include/hikyuu/trade_sys/environment/__init__.py +1 -0
  546. hikyuu/include/hikyuu/trade_sys/environment/build_in.h +16 -0
  547. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Bool.h +23 -0
  548. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Manual.h +20 -0
  549. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_TwoLine.h +28 -0
  550. hikyuu/include/hikyuu/trade_sys/environment/crt/__init__.py +1 -0
  551. hikyuu/include/hikyuu/trade_sys/environment/imp/BoolEnvironment.h +41 -0
  552. hikyuu/include/hikyuu/trade_sys/environment/imp/ManualEnvironment.h +23 -0
  553. hikyuu/include/hikyuu/trade_sys/environment/imp/TwoLineEnvironment.h +47 -0
  554. hikyuu/include/hikyuu/trade_sys/environment/imp/__init__.py +1 -0
  555. hikyuu/include/hikyuu/trade_sys/moneymanager/MoneyManagerBase.h +230 -0
  556. hikyuu/include/hikyuu/trade_sys/moneymanager/__init__.py +1 -0
  557. hikyuu/include/hikyuu/trade_sys/moneymanager/build_in.h +20 -0
  558. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCapital.h +20 -0
  559. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCount.h +28 -0
  560. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedPercent.h +27 -0
  561. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedRisk.h +20 -0
  562. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedUnits.h +20 -0
  563. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_Nothing.h +24 -0
  564. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_WilliamsFixedRisk.h +20 -0
  565. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/__init__.py +1 -0
  566. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalMoneyManager.h +28 -0
  567. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCountMoneyManager.h +38 -0
  568. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedPercentMoneyManager.h +34 -0
  569. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedRiskMoneyManager.h +28 -0
  570. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedUnitsMoneyManager.h +28 -0
  571. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/NotMoneyManager.h +30 -0
  572. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/WilliamsFixedRiskMoneyManager.h +28 -0
  573. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/__init__.py +1 -0
  574. hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +275 -0
  575. hikyuu/include/hikyuu/trade_sys/multifactor/ScoreRecord.h +51 -0
  576. hikyuu/include/hikyuu/trade_sys/multifactor/__init__.py +1 -0
  577. hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +12 -0
  578. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_EqualWeight.h +29 -0
  579. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICIRWeight.h +30 -0
  580. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICWeight.h +30 -0
  581. hikyuu/include/hikyuu/trade_sys/multifactor/crt/__init__.py +1 -0
  582. hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +25 -0
  583. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +27 -0
  584. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +27 -0
  585. hikyuu/include/hikyuu/trade_sys/multifactor/imp/__init__.py +1 -0
  586. hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +256 -0
  587. hikyuu/include/hikyuu/trade_sys/portfolio/__init__.py +1 -0
  588. hikyuu/include/hikyuu/trade_sys/portfolio/build_in.h +14 -0
  589. hikyuu/include/hikyuu/trade_sys/portfolio/crt/PF_Simple.h +23 -0
  590. hikyuu/include/hikyuu/trade_sys/portfolio/crt/__init__.py +1 -0
  591. hikyuu/include/hikyuu/trade_sys/portfolio/imp/__init__.py +1 -0
  592. hikyuu/include/hikyuu/trade_sys/profitgoal/ProfitGoalBase.h +189 -0
  593. hikyuu/include/hikyuu/trade_sys/profitgoal/__init__.py +1 -0
  594. hikyuu/include/hikyuu/trade_sys/profitgoal/build_in.h +16 -0
  595. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedHoldDays.h +26 -0
  596. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedPercent.h +25 -0
  597. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_NoGoal.h +24 -0
  598. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/__init__.py +1 -0
  599. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedHoldDays.h +29 -0
  600. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedPercentProfitGoal.h +28 -0
  601. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/NoGoalProfitGoal.h +27 -0
  602. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/__init__.py +1 -0
  603. hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +245 -0
  604. hikyuu/include/hikyuu/trade_sys/selector/SystemWeight.h +70 -0
  605. hikyuu/include/hikyuu/trade_sys/selector/__init__.py +1 -0
  606. hikyuu/include/hikyuu/trade_sys/selector/build_in.h +18 -0
  607. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Fixed.h +38 -0
  608. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Logic.h +43 -0
  609. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor.h +40 -0
  610. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Optimal.h +26 -0
  611. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Signal.h +30 -0
  612. hikyuu/include/hikyuu/trade_sys/selector/crt/__init__.py +1 -0
  613. hikyuu/include/hikyuu/trade_sys/selector/imp/FixedSelector.h +28 -0
  614. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +52 -0
  615. hikyuu/include/hikyuu/trade_sys/selector/imp/SignalSelector.h +30 -0
  616. hikyuu/include/hikyuu/trade_sys/selector/imp/__init__.py +1 -0
  617. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddSelector.h +19 -0
  618. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddValueSelector.h +19 -0
  619. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivSelector.h +19 -0
  620. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivValueSelector.h +19 -0
  621. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertDivValueSelector.h +19 -0
  622. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertSubValueSelector.h +19 -0
  623. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulSelector.h +19 -0
  624. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulValueSelector.h +19 -0
  625. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +108 -0
  626. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubSelector.h +19 -0
  627. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubValueSelector.h +19 -0
  628. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +94 -0
  629. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/__init__.py +1 -0
  630. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/MaxFundsOptimalSelector.h +27 -0
  631. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/OptimalSelectorBase.h +86 -0
  632. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/PerformanceOptimalSelector.h +42 -0
  633. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/__init__.py +1 -0
  634. hikyuu/include/hikyuu/trade_sys/signal/SignalBase.h +249 -0
  635. hikyuu/include/hikyuu/trade_sys/signal/__init__.py +1 -0
  636. hikyuu/include/hikyuu/trade_sys/signal/build_in.h +22 -0
  637. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_AllwaysBuy.h +20 -0
  638. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Band.h +37 -0
  639. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Bool.h +28 -0
  640. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cross.h +28 -0
  641. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_CrossGold.h +29 -0
  642. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cycle.h +20 -0
  643. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Flex.h +29 -0
  644. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Manual.h +20 -0
  645. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Single.h +56 -0
  646. hikyuu/include/hikyuu/trade_sys/signal/crt/__init__.py +1 -0
  647. hikyuu/include/hikyuu/trade_sys/signal/imp/AllwaysBuySignal.h +25 -0
  648. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal.h +46 -0
  649. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +47 -0
  650. hikyuu/include/hikyuu/trade_sys/signal/imp/BoolSignal.h +46 -0
  651. hikyuu/include/hikyuu/trade_sys/signal/imp/CrossGoldSignal.h +46 -0
  652. hikyuu/include/hikyuu/trade_sys/signal/imp/CrossSignal.h +46 -0
  653. hikyuu/include/hikyuu/trade_sys/signal/imp/CycleSignal.h +25 -0
  654. hikyuu/include/hikyuu/trade_sys/signal/imp/ManualSignal.h +23 -0
  655. hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal.h +45 -0
  656. hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal2.h +45 -0
  657. hikyuu/include/hikyuu/trade_sys/signal/imp/__init__.py +1 -0
  658. hikyuu/include/hikyuu/trade_sys/slippage/SlippageBase.h +170 -0
  659. hikyuu/include/hikyuu/trade_sys/slippage/__init__.py +1 -0
  660. hikyuu/include/hikyuu/trade_sys/slippage/build_in.h +15 -0
  661. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedPercent.h +26 -0
  662. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedValue.h +26 -0
  663. hikyuu/include/hikyuu/trade_sys/slippage/crt/__init__.py +1 -0
  664. hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedPercentSlippage.h +28 -0
  665. hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedValueSlippage.h +28 -0
  666. hikyuu/include/hikyuu/trade_sys/slippage/imp/__init__.py +1 -0
  667. hikyuu/include/hikyuu/trade_sys/stoploss/StoplossBase.h +199 -0
  668. hikyuu/include/hikyuu/trade_sys/stoploss/__init__.py +1 -0
  669. hikyuu/include/hikyuu/trade_sys/stoploss/build_in.h +16 -0
  670. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_FixedPercent.h +25 -0
  671. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Indicator.h +21 -0
  672. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Saftyloss.h +37 -0
  673. hikyuu/include/hikyuu/trade_sys/stoploss/crt/__init__.py +1 -0
  674. hikyuu/include/hikyuu/trade_sys/stoploss/imp/FixedPercentStoploss.h +30 -0
  675. hikyuu/include/hikyuu/trade_sys/stoploss/imp/IndicatorStoploss.h +50 -0
  676. hikyuu/include/hikyuu/trade_sys/stoploss/imp/__init__.py +1 -0
  677. hikyuu/include/hikyuu/trade_sys/system/System.h +639 -0
  678. hikyuu/include/hikyuu/trade_sys/system/SystemPart.h +54 -0
  679. hikyuu/include/hikyuu/trade_sys/system/TradeRequest.h +94 -0
  680. hikyuu/include/hikyuu/trade_sys/system/__init__.py +1 -0
  681. hikyuu/include/hikyuu/trade_sys/system/build_in.h +15 -0
  682. hikyuu/include/hikyuu/trade_sys/system/crt/SYS_Simple.h +50 -0
  683. hikyuu/include/hikyuu/trade_sys/system/crt/SYS_WalkForward.h +27 -0
  684. hikyuu/include/hikyuu/trade_sys/system/crt/__init__.py +1 -0
  685. hikyuu/include/hikyuu/trade_sys/system/imp/DelegateSystem.h +51 -0
  686. hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardSystem.h +70 -0
  687. hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardTradeManager.h +465 -0
  688. hikyuu/include/hikyuu/trade_sys/system/imp/__init__.py +1 -0
  689. hikyuu/include/hikyuu/utilities/ConnectPool.h +163 -0
  690. hikyuu/include/hikyuu/utilities/FilterNode.h +267 -0
  691. hikyuu/include/hikyuu/utilities/LRUCache11.h +230 -0
  692. hikyuu/include/hikyuu/utilities/Log.h +411 -0
  693. hikyuu/include/hikyuu/utilities/Null.h +143 -0
  694. hikyuu/include/hikyuu/utilities/Parameter.h +511 -0
  695. hikyuu/include/hikyuu/utilities/ResourcePool.h +636 -0
  696. hikyuu/include/hikyuu/utilities/SpendTimer.h +305 -0
  697. hikyuu/include/hikyuu/utilities/TimerManager.h +552 -0
  698. hikyuu/include/hikyuu/utilities/__init__.py +1 -0
  699. hikyuu/include/hikyuu/utilities/any_to_string.h +142 -0
  700. hikyuu/include/hikyuu/utilities/arithmetic.h +401 -0
  701. hikyuu/include/hikyuu/utilities/base64.h +52 -0
  702. hikyuu/include/hikyuu/utilities/config.h +41 -0
  703. hikyuu/include/hikyuu/utilities/cppdef.h +25 -0
  704. hikyuu/include/hikyuu/utilities/datetime/Datetime.h +438 -0
  705. hikyuu/include/hikyuu/utilities/datetime/TimeDelta.h +343 -0
  706. hikyuu/include/hikyuu/utilities/datetime/__init__.py +1 -0
  707. hikyuu/include/hikyuu/utilities/db_connect/AutoTransAction.h +124 -0
  708. hikyuu/include/hikyuu/utilities/db_connect/DBCondition.h +248 -0
  709. hikyuu/include/hikyuu/utilities/db_connect/DBConnect.h +30 -0
  710. hikyuu/include/hikyuu/utilities/db_connect/DBConnectBase.h +658 -0
  711. hikyuu/include/hikyuu/utilities/db_connect/DBUpgrade.h +28 -0
  712. hikyuu/include/hikyuu/utilities/db_connect/SQLException.h +62 -0
  713. hikyuu/include/hikyuu/utilities/db_connect/SQLResultSet.h +248 -0
  714. hikyuu/include/hikyuu/utilities/db_connect/SQLStatementBase.h +305 -0
  715. hikyuu/include/hikyuu/utilities/db_connect/TableMacro.h +2579 -0
  716. hikyuu/include/hikyuu/utilities/db_connect/__init__.py +1 -0
  717. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +56 -0
  718. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +87 -0
  719. hikyuu/include/hikyuu/utilities/db_connect/mysql/__init__.py +1 -0
  720. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +89 -0
  721. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +71 -0
  722. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteUtil.h +80 -0
  723. hikyuu/include/hikyuu/utilities/db_connect/sqlite/__init__.py +1 -0
  724. hikyuu/include/hikyuu/utilities/exception.h +52 -0
  725. hikyuu/include/hikyuu/utilities/http_client/HttpClient.h +229 -0
  726. hikyuu/include/hikyuu/utilities/http_client/__init__.py +1 -0
  727. hikyuu/include/hikyuu/utilities/http_client/nng_wrap.h +517 -0
  728. hikyuu/include/hikyuu/utilities/http_client/url.h +25 -0
  729. hikyuu/include/hikyuu/utilities/ini_parser/IniParser.h +104 -0
  730. hikyuu/include/hikyuu/utilities/ini_parser/__init__.py +1 -0
  731. hikyuu/include/hikyuu/utilities/md5.h +41 -0
  732. hikyuu/include/hikyuu/utilities/mo/__init__.py +1 -0
  733. hikyuu/include/hikyuu/utilities/mo/mo.h +48 -0
  734. hikyuu/include/hikyuu/utilities/mo/moFileReader.h +836 -0
  735. hikyuu/include/hikyuu/utilities/node/NodeClient.h +175 -0
  736. hikyuu/include/hikyuu/utilities/node/NodeError.h +66 -0
  737. hikyuu/include/hikyuu/utilities/node/NodeMessage.h +80 -0
  738. hikyuu/include/hikyuu/utilities/node/NodeServer.h +246 -0
  739. hikyuu/include/hikyuu/utilities/node/__init__.py +1 -0
  740. hikyuu/include/hikyuu/utilities/os.h +102 -0
  741. hikyuu/include/hikyuu/utilities/osdef.h +159 -0
  742. hikyuu/include/hikyuu/utilities/runtimeinfo.h +35 -0
  743. hikyuu/include/hikyuu/utilities/snowflake.h +110 -0
  744. hikyuu/include/hikyuu/utilities/string_view.h +70 -0
  745. hikyuu/include/hikyuu/utilities/thread/FuncWrapper.h +85 -0
  746. hikyuu/include/hikyuu/utilities/thread/InterruptFlag.h +30 -0
  747. hikyuu/include/hikyuu/utilities/thread/MQStealQueue.h +112 -0
  748. hikyuu/include/hikyuu/utilities/thread/MQStealThreadPool.h +315 -0
  749. hikyuu/include/hikyuu/utilities/thread/MQThreadPool.h +275 -0
  750. hikyuu/include/hikyuu/utilities/thread/StealThreadPool.h +309 -0
  751. hikyuu/include/hikyuu/utilities/thread/ThreadPool.h +231 -0
  752. hikyuu/include/hikyuu/utilities/thread/ThreadSafeQueue.h +101 -0
  753. hikyuu/include/hikyuu/utilities/thread/WorkStealQueue.h +105 -0
  754. hikyuu/include/hikyuu/utilities/thread/__init__.py +1 -0
  755. hikyuu/include/hikyuu/utilities/thread/algorithm.h +110 -0
  756. hikyuu/include/hikyuu/utilities/thread/thread.h +10 -0
  757. hikyuu/include/hikyuu/version.h +24 -0
  758. hikyuu/indicator/__init__.py +29 -0
  759. hikyuu/indicator/indicator.py +157 -0
  760. hikyuu/indicator/pyind.py +47 -0
  761. hikyuu/indicator/talib_wrap.py +1264 -0
  762. hikyuu/interactive.py +331 -0
  763. hikyuu/setup.py +104 -0
  764. hikyuu/shell/__init__.py +0 -0
  765. hikyuu/shell/cmdserver.py +126 -0
  766. hikyuu/shell/hkucmd.py +110 -0
  767. hikyuu/shell/hkushell.py +20 -0
  768. hikyuu/sqlite3.dll +0 -0
  769. hikyuu/strategy/__init__.py +2 -0
  770. hikyuu/strategy/strategy_demo1.py +54 -0
  771. hikyuu/strategy/strategy_demo2.py +47 -0
  772. hikyuu/strategy/strategy_demo3.py +24 -0
  773. hikyuu/test/AllocateFunds.py +25 -0
  774. hikyuu/test/Condition.py +95 -0
  775. hikyuu/test/Datetime.py +61 -0
  776. hikyuu/test/Environment.py +88 -0
  777. hikyuu/test/Indicator.py +233 -0
  778. hikyuu/test/KData.py +64 -0
  779. hikyuu/test/MarketInfo.py +26 -0
  780. hikyuu/test/MoneyManager.py +88 -0
  781. hikyuu/test/Parameter.py +62 -0
  782. hikyuu/test/ProfitGoal.py +83 -0
  783. hikyuu/test/Signal.py +160 -0
  784. hikyuu/test/Slippage.py +88 -0
  785. hikyuu/test/Stock.py +127 -0
  786. hikyuu/test/StockTypeInfo.py +47 -0
  787. hikyuu/test/Stoploss.py +86 -0
  788. hikyuu/test/TradeCost.py +71 -0
  789. hikyuu/test/__init__.py +0 -0
  790. hikyuu/test/test.py +63 -0
  791. hikyuu/test/test_init.py +36 -0
  792. hikyuu/tools/__init__.py +1 -0
  793. hikyuu/tools/copy_file.py +16 -0
  794. hikyuu/tools/delete_index.py +50 -0
  795. hikyuu/tools/fenge.py +139 -0
  796. hikyuu/tools/h5_data_clear.py +163 -0
  797. hikyuu/tools/mysql_clear_last_day_data.py +61 -0
  798. hikyuu/tools/update_block_info.py +168 -0
  799. hikyuu/trade_manage/__init__.py +30 -0
  800. hikyuu/trade_manage/broker.py +95 -0
  801. hikyuu/trade_manage/broker_easytrader.py +63 -0
  802. hikyuu/trade_manage/broker_mail.py +101 -0
  803. hikyuu/trade_manage/trade.py +111 -0
  804. hikyuu/trade_sys/__init__.py +27 -0
  805. hikyuu/trade_sys/trade_sys.py +251 -0
  806. hikyuu/util/__init__.py +49 -0
  807. hikyuu/util/check.py +153 -0
  808. hikyuu/util/mylog.py +264 -0
  809. hikyuu/util/notebook.py +47 -0
  810. hikyuu/util/singleton.py +29 -0
  811. hikyuu/util/slice.py +43 -0
  812. hikyuu/util/timeout.py +83 -0
  813. hikyuu/vcruntime140.dll +0 -0
  814. hikyuu/vcruntime140_1.dll +0 -0
  815. hikyuu-2.2.2.dist-info/LICENSE +201 -0
  816. hikyuu-2.2.2.dist-info/METADATA +127 -0
  817. hikyuu-2.2.2.dist-info/RECORD +820 -0
  818. hikyuu-2.2.2.dist-info/WHEEL +5 -0
  819. hikyuu-2.2.2.dist-info/entry_points.txt +3 -0
  820. hikyuu-2.2.2.dist-info/top_level.txt +112 -0
@@ -0,0 +1,24 @@
1
+ /*
2
+ * all.h
3
+ *
4
+ * Created on: 2013-5-5
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #ifndef ALL_TRADE_SYS_H_
10
+ #define ALL_TRADE_SYS_H_
11
+
12
+ #include "signal/build_in.h"
13
+ #include "condition/build_in.h"
14
+ #include "environment/build_in.h"
15
+ #include "moneymanager/build_in.h"
16
+ #include "profitgoal/build_in.h"
17
+ #include "slippage/build_in.h"
18
+ #include "stoploss/build_in.h"
19
+ #include "system/build_in.h"
20
+ #include "allocatefunds/build_in.h"
21
+ #include "selector/build_in.h"
22
+ #include "multifactor/build_in.h"
23
+
24
+ #endif /* ALL_TRADE_SYS_H_ */
@@ -0,0 +1,229 @@
1
+ /*
2
+ * AllocateMoney.h
3
+ *
4
+ * Created on: 2018年1月30日
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #ifndef TRADE_SYS_ALLOCATEFUNDS_ALLOCATEFUNDSBASE_H_
10
+ #define TRADE_SYS_ALLOCATEFUNDS_ALLOCATEFUNDSBASE_H_
11
+
12
+ #include "../../utilities/Parameter.h"
13
+ #include "../selector/SystemWeight.h"
14
+
15
+ namespace hku {
16
+
17
+ /**
18
+ * 资产分配调整算法
19
+ * @details 根据资产市值对资产比例进行分配调整。单纯的资金调整,请使用资金管理算法。
20
+ * @ingroup AllocateFunds
21
+ */
22
+ class HKU_API AllocateFundsBase : public enable_shared_from_this<AllocateFundsBase> {
23
+ PARAMETER_SUPPORT_WITH_CHECK
24
+
25
+ public:
26
+ /** 默认构造函数 */
27
+ AllocateFundsBase();
28
+ AllocateFundsBase(const AllocateFundsBase&) = default;
29
+
30
+ /**
31
+ * 构造函数
32
+ * @param name 算法名称
33
+ */
34
+ explicit AllocateFundsBase(const string& name);
35
+
36
+ /** 析构函数 */
37
+ virtual ~AllocateFundsBase();
38
+
39
+ /** 获取算法名称 */
40
+ const string& name() const;
41
+
42
+ /** 修改算法名称 */
43
+ void name(const string& name);
44
+
45
+ /**
46
+ * 执行资产分配调整,仅供 PF 调用
47
+ * @param date 指定日期
48
+ * @param se_list 系统实例选择器选出的系统实例
49
+ * @param running_list 当前运行中的系统实例
50
+ * @return 需延迟执行卖出操作的系统列表,其中权重为相应需卖出的数量
51
+ */
52
+ SystemWeightList adjustFunds(const Datetime& date, const SystemWeightList& se_list,
53
+ const std::unordered_set<SYSPtr>& running_list);
54
+
55
+ /** 获取交易账户 */
56
+ const TMPtr& getTM() const;
57
+
58
+ /** 设定交易账户,由 PF 设定 */
59
+ void setTM(const TMPtr&);
60
+
61
+ /** 设置 Portfolio 的影子账户, 仅由 Portfolio 调用 */
62
+ void setCashTM(const TMPtr&);
63
+
64
+ const TMPtr& getCashTM(const TMPtr&) const;
65
+
66
+ /** 获取关联查询条件 */
67
+ const KQuery& getQuery() const;
68
+
69
+ /** 设置查询条件, 由 PF 设定 */
70
+ void setQuery(const KQuery& query);
71
+
72
+ /** 复位 */
73
+ void reset();
74
+
75
+ typedef shared_ptr<AllocateFundsBase> AFPtr;
76
+
77
+ /** 克隆操作 */
78
+ AFPtr clone();
79
+
80
+ /** 子类复位接口 */
81
+ virtual void _reset() {}
82
+
83
+ /** 子类克隆私有变量接口 */
84
+ virtual AFPtr _clone() = 0;
85
+
86
+ /**
87
+ * 子类分配权重接口,获取实际分配资产的系统实例及其权重
88
+ * @details 实际调用子类接口 _allocateWeight
89
+ * @param date 指定日期
90
+ * @param se_list 系统实例选择器选出的系统实例
91
+ * @return 子类只需要返回每个系统的相对比例即可
92
+ */
93
+ virtual SystemWeightList _allocateWeight(const Datetime& date,
94
+ const SystemWeightList& se_list) = 0;
95
+
96
+ public:
97
+ /*
98
+ * 内部函数,仅为测试需要设置为 public。
99
+ * 对由子类分配的计划权重根据内部参数设置进行调整
100
+ */
101
+ static void adjustWeight(SystemWeightList& sw_list, double can_allocate_weight,
102
+ bool auto_adjust, bool ignore_zero);
103
+
104
+ private:
105
+ void initParam();
106
+
107
+ /* 同时调整已运行中的子系统(已分配资金或已持仓) */
108
+ SystemWeightList _adjust_with_running(const Datetime& date, const SystemWeightList& se_list,
109
+ const std::unordered_set<SYSPtr>& running_list);
110
+
111
+ /* 不调整已在运行中的子系统 */
112
+ void _adjust_without_running(const Datetime& date, const SystemWeightList& se_list,
113
+ const std::unordered_set<SYSPtr>& running_list);
114
+
115
+ private:
116
+ string m_name; // 组件名称
117
+ KQuery m_query; // 查询条件
118
+ TMPtr m_tm; // 运行期由PF设定,PF的实际账户
119
+ TMPtr m_cash_tm; // 运行期由PF设定,tm 的影子账户,由于协调分配资金
120
+
121
+ //============================================
122
+ // 序列化支持
123
+ //============================================
124
+ #if HKU_SUPPORT_SERIALIZATION
125
+ private:
126
+ friend class boost::serialization::access;
127
+ template <class Archive>
128
+ void save(Archive& ar, const unsigned int version) const {
129
+ ar& BOOST_SERIALIZATION_NVP(m_name);
130
+ ar& BOOST_SERIALIZATION_NVP(m_params);
131
+ ar& BOOST_SERIALIZATION_NVP(m_query);
132
+ }
133
+
134
+ template <class Archive>
135
+ void load(Archive& ar, const unsigned int version) {
136
+ ar& BOOST_SERIALIZATION_NVP(m_name);
137
+ ar& BOOST_SERIALIZATION_NVP(m_params);
138
+ ar& BOOST_SERIALIZATION_NVP(m_query);
139
+ }
140
+
141
+ BOOST_SERIALIZATION_SPLIT_MEMBER()
142
+ #endif /* HKU_SUPPORT_SERIALIZATION */
143
+ };
144
+
145
+ #if HKU_SUPPORT_SERIALIZATION
146
+ BOOST_SERIALIZATION_ASSUME_ABSTRACT(SelectorBase)
147
+ #endif
148
+
149
+ #if HKU_SUPPORT_SERIALIZATION
150
+ /**
151
+ * 对于没有私有变量的继承子类,可直接使用该宏定义序列化
152
+ * @code
153
+ * class Drived: public AllocateFundsBase {
154
+ * ALLOCATEFUNDS_NO_PRIVATE_MEMBER_SERIALIZATION
155
+ *
156
+ * public:
157
+ * Drived();
158
+ * ...
159
+ * };
160
+ * @endcode
161
+ * @ingroup Selector
162
+ */
163
+ #define ALLOCATEFUNDS_NO_PRIVATE_MEMBER_SERIALIZATION \
164
+ private: \
165
+ friend class boost::serialization::access; \
166
+ template <class Archive> \
167
+ void serialize(Archive& ar, const unsigned int version) { \
168
+ ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(AllocateFundsBase); \
169
+ }
170
+ #else
171
+ #define ALLOCATEFUNDS_NO_PRIVATE_MEMBER_SERIALIZATION
172
+ #endif
173
+
174
+ #define ALLOCATEFUNDS_IMP(classname) \
175
+ public: \
176
+ virtual AFPtr _clone() override { \
177
+ return std::make_shared<classname>(); \
178
+ } \
179
+ virtual SystemWeightList _allocateWeight(const Datetime&, const SystemWeightList&) override;
180
+
181
+ typedef shared_ptr<AllocateFundsBase> AllocateFundsPtr;
182
+ typedef shared_ptr<AllocateFundsBase> AFPtr;
183
+
184
+ HKU_API std::ostream& operator<<(std::ostream&, const AllocateFundsBase&);
185
+ HKU_API std::ostream& operator<<(std::ostream&, const AFPtr&);
186
+
187
+ inline const string& AllocateFundsBase::name() const {
188
+ return m_name;
189
+ }
190
+
191
+ inline void AllocateFundsBase::name(const string& name) {
192
+ m_name = name;
193
+ }
194
+
195
+ inline const TMPtr& AllocateFundsBase::getTM() const {
196
+ return m_tm;
197
+ }
198
+
199
+ inline void AllocateFundsBase::setTM(const TMPtr& tm) {
200
+ m_tm = tm;
201
+ }
202
+
203
+ inline void AllocateFundsBase::setCashTM(const TMPtr& tm) {
204
+ m_cash_tm = tm;
205
+ }
206
+
207
+ inline const TMPtr& AllocateFundsBase::getCashTM(const TMPtr&) const {
208
+ return m_cash_tm;
209
+ }
210
+
211
+ inline const KQuery& AllocateFundsBase::getQuery() const {
212
+ return m_query;
213
+ }
214
+
215
+ inline void AllocateFundsBase::setQuery(const KQuery& query) {
216
+ m_query = query;
217
+ }
218
+
219
+ } /* namespace hku */
220
+
221
+ #if FMT_VERSION >= 90000
222
+ template <>
223
+ struct fmt::formatter<hku::AllocateFundsBase> : ostream_formatter {};
224
+
225
+ template <>
226
+ struct fmt::formatter<hku::AFPtr> : ostream_formatter {};
227
+ #endif
228
+
229
+ #endif /* TRADE_SYS_ALLOCATEFUNDS_ALLOCATEFUNDSBASE_H_ */
@@ -0,0 +1,16 @@
1
+ /*
2
+ * build_in.h
3
+ *
4
+ * Created on: 2018年2月1日
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #ifndef TRADE_SYS_ALLOCATEFUNDS_BUILD_IN_H_
10
+ #define TRADE_SYS_ALLOCATEFUNDS_BUILD_IN_H_
11
+
12
+ #include "crt/AF_EqualWeight.h"
13
+ #include "crt/AF_FixedWeight.h"
14
+ #include "crt/AF_MultiFactor.h"
15
+
16
+ #endif /* TRADE_SYS_ALLOCATEFUNDS_BUILD_IN_H_ */
@@ -0,0 +1,25 @@
1
+ /*
2
+ * AF_EqualWeight.h
3
+ *
4
+ * Created on: 2018年2月8日
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #ifndef TRADE_SYS_ALLOCATEFUNDS_CRT_AF_EQUALWEIGHT_H_
10
+ #define TRADE_SYS_ALLOCATEFUNDS_CRT_AF_EQUALWEIGHT_H_
11
+
12
+ #include "../AllocateFundsBase.h"
13
+
14
+ namespace hku {
15
+
16
+ /**
17
+ * @brief 等权重资产分配,对选中的资产进行等比例分配
18
+ * @return AFPtr
19
+ * @ingroup AllocateFunds
20
+ */
21
+ AFPtr HKU_API AF_EqualWeight();
22
+
23
+ } /* namespace hku */
24
+
25
+ #endif /* TRADE_SYS_ALLOCATEFUNDS_CRT_AF_EQUALWEIGHT_H_ */
@@ -0,0 +1,26 @@
1
+ /*
2
+ * Copyright (c) 2019 hikyuu.org
3
+ *
4
+ * Created on: 2018年2月8日
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #ifndef TRADE_SYS_ALLOCATEFUNDS_CRT_AF_FIXEDWEIGHT_H_
10
+ #define TRADE_SYS_ALLOCATEFUNDS_CRT_AF_FIXEDWEIGHT_H_
11
+
12
+ #include "../AllocateFundsBase.h"
13
+
14
+ namespace hku {
15
+
16
+ /**
17
+ * @brief 固定比例资产分配,每个选中的资产都只占总资产固定的比例
18
+ * @param weight 指定的资产比例 (0, 1]
19
+ * @return AFPtr
20
+ * @ingroup AllocateFunds
21
+ */
22
+ AFPtr HKU_API AF_FixedWeight(double weight = 0.1);
23
+
24
+ } /* namespace hku */
25
+
26
+ #endif /* TRADE_SYS_ALLOCATEFUNDS_CRT_AF_FIXEDWEIGHT_H_ */
@@ -0,0 +1,21 @@
1
+ /*
2
+ * Copyright (c) 2024 hikyuu.org
3
+ *
4
+ * Created on: 2024-03-30
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include "../AllocateFundsBase.h"
11
+
12
+ namespace hku {
13
+
14
+ /**
15
+ * 创建 MultiFactor 评分权重的资产分配算法实例
16
+ * @return AFPtr
17
+ * @ingroup AllocateFunds
18
+ */
19
+ AFPtr HKU_API AF_MultiFactor();
20
+
21
+ } // namespace hku
@@ -0,0 +1,27 @@
1
+ /*
2
+ * EqualWeightAllocateFunds.h
3
+ *
4
+ * Created on: 2018年2月8日
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #ifndef TRADE_SYS_ALLOCATEFUNDS_IMP_EQUALWEIGHTALLOCATEFUNDS_H_
10
+ #define TRADE_SYS_ALLOCATEFUNDS_IMP_EQUALWEIGHTALLOCATEFUNDS_H_
11
+
12
+ #include "../AllocateFundsBase.h"
13
+
14
+ namespace hku {
15
+
16
+ class EqualWeightAllocateFunds : public AllocateFundsBase {
17
+ ALLOCATEFUNDS_IMP(EqualWeightAllocateFunds)
18
+ ALLOCATEFUNDS_NO_PRIVATE_MEMBER_SERIALIZATION
19
+
20
+ public:
21
+ EqualWeightAllocateFunds();
22
+ virtual ~EqualWeightAllocateFunds();
23
+ };
24
+
25
+ } /* namespace hku */
26
+
27
+ #endif /* TRADE_SYS_ALLOCATEFUNDS_IMP_EQUALWEIGHTALLOCATEFUNDS_H_ */
@@ -0,0 +1,28 @@
1
+ /*
2
+ * Copyright (c) 2019 hikyuu.org
3
+ *
4
+ * Created on: 2018年2月8日
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #ifndef TRADE_SYS_ALLOCATEFUNDS_IMP_FIXEDWEIGHTALLOCATEFUNDS_H_
10
+ #define TRADE_SYS_ALLOCATEFUNDS_IMP_FIXEDWEIGHTALLOCATEFUNDS_H_
11
+
12
+ #include "../AllocateFundsBase.h"
13
+
14
+ namespace hku {
15
+
16
+ class FixedWeightAllocateFunds : public AllocateFundsBase {
17
+ ALLOCATEFUNDS_IMP(FixedWeightAllocateFunds)
18
+ ALLOCATEFUNDS_NO_PRIVATE_MEMBER_SERIALIZATION
19
+
20
+ public:
21
+ FixedWeightAllocateFunds();
22
+ virtual ~FixedWeightAllocateFunds();
23
+ virtual void _checkParam(const string& name) const override;
24
+ };
25
+
26
+ } /* namespace hku */
27
+
28
+ #endif /* TRADE_SYS_ALLOCATEFUNDS_IMP_FIXEDWEIGHTALLOCATEFUNDS_H_ */
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) 2024 hikyuu.org
3
+ *
4
+ * Created on: 2024-03-30
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include "../AllocateFundsBase.h"
11
+
12
+ namespace hku {
13
+
14
+ class MultiFactorAllocaterFunds : public AllocateFundsBase {
15
+ ALLOCATEFUNDS_IMP(MultiFactorAllocaterFunds)
16
+ ALLOCATEFUNDS_NO_PRIVATE_MEMBER_SERIALIZATION
17
+
18
+ public:
19
+ MultiFactorAllocaterFunds();
20
+ virtual ~MultiFactorAllocaterFunds();
21
+ };
22
+
23
+ } // namespace hku
@@ -0,0 +1,241 @@
1
+ /*
2
+ * ConditionBase.h
3
+ *
4
+ * Created on: 2013-3-3
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #ifndef CONDITIONBASE_H_
10
+ #define CONDITIONBASE_H_
11
+
12
+ #include "../../utilities/Parameter.h"
13
+ #include "../../KData.h"
14
+ #include "../../trade_manage/TradeManager.h"
15
+ #include "../signal/SignalBase.h"
16
+
17
+ namespace hku {
18
+
19
+ /**
20
+ * 系统有效条件基类
21
+ * @note 系统有效性和待交易的对象有关也可能没关,所以保留setTradeObj接口
22
+ * @ingroup Condition
23
+ */
24
+ class HKU_API ConditionBase : public enable_shared_from_this<ConditionBase> {
25
+ PARAMETER_SUPPORT_WITH_CHECK
26
+
27
+ public:
28
+ ConditionBase();
29
+ ConditionBase(const ConditionBase&) = default;
30
+ explicit ConditionBase(const string& name);
31
+ virtual ~ConditionBase();
32
+
33
+ /** 获取名称 */
34
+ const string& name() const;
35
+
36
+ /** 设置名称 */
37
+ void name(const string& name);
38
+
39
+ size_t size() const;
40
+
41
+ price_t at(size_t pos) const;
42
+
43
+ price_t const* data() const;
44
+
45
+ /** 复位操作 */
46
+ void reset();
47
+
48
+ /** 设置交易对象 */
49
+ void setTO(const KData& kdata);
50
+
51
+ /** 获取交易对象 */
52
+ KData getTO() const;
53
+
54
+ /** 设置交易管理实例 */
55
+ void setTM(const TradeManagerPtr& tm);
56
+
57
+ /** 获取交易管理实例 */
58
+ TradeManagerPtr getTM() const;
59
+
60
+ /** 设置系统信号指示器 */
61
+ void setSG(const SGPtr& sg);
62
+
63
+ /** 获取系统信号指示器 */
64
+ SGPtr getSG() const;
65
+
66
+ /** 获取系统有效的日期列表,注意:和交易对象不等长 */
67
+ DatetimeList getDatetimeList() const;
68
+
69
+ /** 以指标的形式获取实际值,与交易对象等长,0表示无效,1表示系统有效 */
70
+ Indicator getValues() const;
71
+
72
+ /**
73
+ * 加入有效时间,在_calculate中调用
74
+ * @param datetime 系统有效日期
75
+ * @param value 值
76
+ */
77
+ void _addValid(const Datetime& datetime, price_t value = 1.0);
78
+
79
+ typedef shared_ptr<ConditionBase> ConditionPtr;
80
+ /** 克隆操作 */
81
+ ConditionPtr clone();
82
+
83
+ /**
84
+ * 指定时间系统是否有效
85
+ * @param datetime 指定时间
86
+ * @return true 有效 | false 失效
87
+ */
88
+ bool isValid(const Datetime& datetime);
89
+
90
+ /** 子类计算接口 */
91
+ virtual void _calculate() = 0;
92
+
93
+ /** 子类reset接口 */
94
+ virtual void _reset() {}
95
+
96
+ /** 子类克隆接口 */
97
+ virtual ConditionPtr _clone() = 0;
98
+
99
+ public:
100
+ typedef vector<price_t>::const_iterator const_iterator;
101
+ const_iterator cbegin() const {
102
+ return m_values.cbegin();
103
+ }
104
+
105
+ const_iterator cend() const {
106
+ return m_values.cend();
107
+ }
108
+
109
+ protected:
110
+ string m_name;
111
+ KData m_kdata;
112
+ TMPtr m_tm;
113
+ SGPtr m_sg;
114
+ map<Datetime, size_t> m_date_index;
115
+ vector<price_t> m_values;
116
+
117
+ //============================================
118
+ // 序列化支持
119
+ //============================================
120
+ #if HKU_SUPPORT_SERIALIZATION
121
+ private:
122
+ friend class boost::serialization::access;
123
+ template <class Archive>
124
+ void save(Archive& ar, const unsigned int version) const {
125
+ ar& BOOST_SERIALIZATION_NVP(m_name);
126
+ ar& BOOST_SERIALIZATION_NVP(m_params);
127
+ ar& BOOST_SERIALIZATION_NVP(m_date_index);
128
+ ar& BOOST_SERIALIZATION_NVP(m_values);
129
+ // m_kdata/m_tm/m_sg是系统运行时临时设置,不需要序列化
130
+ }
131
+
132
+ template <class Archive>
133
+ void load(Archive& ar, const unsigned int version) {
134
+ ar& BOOST_SERIALIZATION_NVP(m_name);
135
+ ar& BOOST_SERIALIZATION_NVP(m_params);
136
+ ar& BOOST_SERIALIZATION_NVP(m_date_index);
137
+ ar& BOOST_SERIALIZATION_NVP(m_values);
138
+ // m_kdata/m_tm/m_sg是系统运行时临时设置,不需要序列化
139
+ }
140
+
141
+ BOOST_SERIALIZATION_SPLIT_MEMBER()
142
+ #endif /* HKU_SUPPORT_SERIALIZATION */
143
+ };
144
+
145
+ #if HKU_SUPPORT_SERIALIZATION
146
+ BOOST_SERIALIZATION_ASSUME_ABSTRACT(ConditionBase)
147
+ #endif
148
+
149
+ #if HKU_SUPPORT_SERIALIZATION
150
+ /**
151
+ * 对于没有私有变量的继承子类,可直接使用该宏定义序列化
152
+ * @code
153
+ * class Drived: public ConditionBase {
154
+ * CONDITION_NO_PRIVATE_MEMBER_SERIALIZATION
155
+ *
156
+ * public:
157
+ * Drived();
158
+ * ...
159
+ * };
160
+ * @endcode
161
+ * @ingroup Condition
162
+ */
163
+ #define CONDITION_NO_PRIVATE_MEMBER_SERIALIZATION \
164
+ private: \
165
+ friend class boost::serialization::access; \
166
+ template <class Archive> \
167
+ void serialize(Archive& ar, const unsigned int version) { \
168
+ ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(ConditionBase); \
169
+ }
170
+ #else
171
+ #define CONDITION_NO_PRIVATE_MEMBER_SERIALIZATION
172
+ #endif
173
+
174
+ /**
175
+ * 客户程序都应使用该指针类型
176
+ * @ingroup Condition
177
+ */
178
+ typedef shared_ptr<ConditionBase> ConditionPtr;
179
+ typedef shared_ptr<ConditionBase> CNPtr;
180
+
181
+ #define CONDITION_IMP(classname) \
182
+ public: \
183
+ virtual ConditionPtr _clone() override { \
184
+ return std::make_shared<classname>(); \
185
+ } \
186
+ virtual void _calculate() override;
187
+
188
+ HKU_API std::ostream& operator<<(std::ostream&, const ConditionPtr&);
189
+ HKU_API std::ostream& operator<<(std::ostream&, const ConditionBase&);
190
+
191
+ inline const string& ConditionBase::name() const {
192
+ return m_name;
193
+ }
194
+
195
+ inline void ConditionBase::name(const string& name) {
196
+ m_name = name;
197
+ }
198
+
199
+ inline size_t ConditionBase::size() const {
200
+ return m_values.size();
201
+ }
202
+
203
+ inline price_t const* ConditionBase::data() const {
204
+ return m_values.data();
205
+ }
206
+
207
+ inline price_t ConditionBase::at(size_t pos) const {
208
+ return m_values.at(pos);
209
+ }
210
+
211
+ inline KData ConditionBase::getTO() const {
212
+ return m_kdata;
213
+ }
214
+
215
+ inline void ConditionBase::setTM(const TradeManagerPtr& tm) {
216
+ m_tm = tm;
217
+ }
218
+
219
+ inline SGPtr ConditionBase::getSG() const {
220
+ return m_sg;
221
+ }
222
+
223
+ inline void ConditionBase::setSG(const SGPtr& sg) {
224
+ m_sg = sg;
225
+ }
226
+
227
+ inline TradeManagerPtr ConditionBase::getTM() const {
228
+ return m_tm;
229
+ }
230
+
231
+ } /* namespace hku */
232
+
233
+ #if FMT_VERSION >= 90000
234
+ template <>
235
+ struct fmt::formatter<hku::ConditionBase> : ostream_formatter {};
236
+
237
+ template <>
238
+ struct fmt::formatter<hku::ConditionPtr> : ostream_formatter {};
239
+ #endif
240
+
241
+ #endif /* CONDITIONBASE_H_ */
@@ -0,0 +1,17 @@
1
+ /*
2
+ * build_in.h
3
+ *
4
+ * Created on: 2013-5-5
5
+ * Author: fasiondog
6
+ */
7
+
8
+ #pragma once
9
+ #ifndef CONDITION_BUILD_IN_H_
10
+ #define CONDITION_BUILD_IN_H_
11
+
12
+ #include "crt/CN_Bool.h"
13
+ #include "crt/CN_OPLine.h"
14
+ #include "crt/CN_Logic.h"
15
+ #include "crt/CN_Manual.h"
16
+
17
+ #endif /* CONDITION_BUILD_IN_H */