hikyuu 2.2.4__py3-none-macosx_11_1_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (818) hide show
  1. hikyuu/LICENSE.txt +21 -0
  2. hikyuu/__init__.py +137 -0
  3. hikyuu/analysis/__init__.py +14 -0
  4. hikyuu/analysis/analysis.py +151 -0
  5. hikyuu/config/__init__.py +1 -0
  6. hikyuu/config/block/__init__.py +0 -0
  7. hikyuu/config/block/dybk.ini +5357 -0
  8. hikyuu/config/block/gnbk.ini +50024 -0
  9. hikyuu/config/block/hybk.ini +5464 -0
  10. hikyuu/config/block/self.ini +10 -0
  11. hikyuu/config/block/zsbk.ini +65543 -0
  12. hikyuu/core.py +27 -0
  13. hikyuu/cpp/__init__.py +1 -0
  14. hikyuu/cpp/core310.so +0 -0
  15. hikyuu/cpp/core311.so +0 -0
  16. hikyuu/cpp/core312.so +0 -0
  17. hikyuu/cpp/core313.so +0 -0
  18. hikyuu/cpp/libcrypto.3.dylib +0 -0
  19. hikyuu/cpp/libcrypto.dylib +0 -0
  20. hikyuu/cpp/libhku_hdf5.200.2.0.dylib +0 -0
  21. hikyuu/cpp/libhku_hdf5.200.dylib +0 -0
  22. hikyuu/cpp/libhku_hdf5.dylib +0 -0
  23. hikyuu/cpp/libhku_hdf5_cpp.200.2.0.dylib +0 -0
  24. hikyuu/cpp/libhku_hdf5_cpp.200.dylib +0 -0
  25. hikyuu/cpp/libhku_hdf5_cpp.dylib +0 -0
  26. hikyuu/cpp/libhku_hdf5_hl.200.1.0.dylib +0 -0
  27. hikyuu/cpp/libhku_hdf5_hl.200.dylib +0 -0
  28. hikyuu/cpp/libhku_hdf5_hl.dylib +0 -0
  29. hikyuu/cpp/libhku_hdf5_hl_cpp.200.1.0.dylib +0 -0
  30. hikyuu/cpp/libhku_hdf5_hl_cpp.200.dylib +0 -0
  31. hikyuu/cpp/libhku_hdf5_hl_cpp.dylib +0 -0
  32. hikyuu/cpp/libhku_hdf5_tools.200.1.1.dylib +0 -0
  33. hikyuu/cpp/libhku_hdf5_tools.200.dylib +0 -0
  34. hikyuu/cpp/libhku_hdf5_tools.dylib +0 -0
  35. hikyuu/cpp/libmysqlclient.21.dylib +0 -0
  36. hikyuu/cpp/libmysqlclient.dylib +0 -0
  37. hikyuu/cpp/libsqlite3.dylib +0 -0
  38. hikyuu/cpp/libssl.3.dylib +0 -0
  39. hikyuu/cpp/libssl.dylib +0 -0
  40. hikyuu/data/__init__.py +1 -0
  41. hikyuu/data/common.py +248 -0
  42. hikyuu/data/common_h5.py +398 -0
  43. hikyuu/data/common_mysql.py +485 -0
  44. hikyuu/data/common_pytdx.py +108 -0
  45. hikyuu/data/common_sqlite3.py +140 -0
  46. hikyuu/data/em_block_to_mysql.py +120 -0
  47. hikyuu/data/em_block_to_sqlite.py +117 -0
  48. hikyuu/data/hku_config_template.py +266 -0
  49. hikyuu/data/mysql_upgrade/0001.sql +5 -0
  50. hikyuu/data/mysql_upgrade/0002.sql +3 -0
  51. hikyuu/data/mysql_upgrade/0003.sql +9 -0
  52. hikyuu/data/mysql_upgrade/0004.sql +26 -0
  53. hikyuu/data/mysql_upgrade/0005.sql +3 -0
  54. hikyuu/data/mysql_upgrade/0006.sql +2 -0
  55. hikyuu/data/mysql_upgrade/0007.sql +20 -0
  56. hikyuu/data/mysql_upgrade/0008.sql +6 -0
  57. hikyuu/data/mysql_upgrade/0009.sql +36 -0
  58. hikyuu/data/mysql_upgrade/0010.sql +5 -0
  59. hikyuu/data/mysql_upgrade/0011.sql +5 -0
  60. hikyuu/data/mysql_upgrade/0012.sql +5 -0
  61. hikyuu/data/mysql_upgrade/0013.sql +2389 -0
  62. hikyuu/data/mysql_upgrade/0014.sql +3 -0
  63. hikyuu/data/mysql_upgrade/0015.sql +4 -0
  64. hikyuu/data/mysql_upgrade/0016.sql +4 -0
  65. hikyuu/data/mysql_upgrade/0017.sql +5 -0
  66. hikyuu/data/mysql_upgrade/0018.sql +2 -0
  67. hikyuu/data/mysql_upgrade/0019.sql +6 -0
  68. hikyuu/data/mysql_upgrade/0020.sql +4 -0
  69. hikyuu/data/mysql_upgrade/0021.sql +4 -0
  70. hikyuu/data/mysql_upgrade/0022.sql +5 -0
  71. hikyuu/data/mysql_upgrade/0023.sql +4 -0
  72. hikyuu/data/mysql_upgrade/0024.sql +2 -0
  73. hikyuu/data/mysql_upgrade/__init__.py +1 -0
  74. hikyuu/data/mysql_upgrade/createdb.sql +265 -0
  75. hikyuu/data/pytdx_finance_to_mysql.py +129 -0
  76. hikyuu/data/pytdx_finance_to_sqlite.py +162 -0
  77. hikyuu/data/pytdx_to_h5.py +662 -0
  78. hikyuu/data/pytdx_to_mysql.py +803 -0
  79. hikyuu/data/pytdx_weight_to_mysql.py +196 -0
  80. hikyuu/data/pytdx_weight_to_sqlite.py +192 -0
  81. hikyuu/data/sqlite_mem.py +84 -0
  82. hikyuu/data/sqlite_mem_sql/__init__.py +1 -0
  83. hikyuu/data/sqlite_mem_sql/createdb.sql +126 -0
  84. hikyuu/data/sqlite_upgrade/0001.sql +4 -0
  85. hikyuu/data/sqlite_upgrade/0002.sql +48 -0
  86. hikyuu/data/sqlite_upgrade/0003.sql +18 -0
  87. hikyuu/data/sqlite_upgrade/0004.sql +11 -0
  88. hikyuu/data/sqlite_upgrade/0005.sql +28 -0
  89. hikyuu/data/sqlite_upgrade/0006.sql +5 -0
  90. hikyuu/data/sqlite_upgrade/0007.sql +4 -0
  91. hikyuu/data/sqlite_upgrade/0008.sql +22 -0
  92. hikyuu/data/sqlite_upgrade/0009.sql +8 -0
  93. hikyuu/data/sqlite_upgrade/0010.sql +5 -0
  94. hikyuu/data/sqlite_upgrade/0011.sql +16 -0
  95. hikyuu/data/sqlite_upgrade/0012.sql +15 -0
  96. hikyuu/data/sqlite_upgrade/0013.sql +9 -0
  97. hikyuu/data/sqlite_upgrade/0014.sql +607 -0
  98. hikyuu/data/sqlite_upgrade/0015.sql +7 -0
  99. hikyuu/data/sqlite_upgrade/0016.sql +8 -0
  100. hikyuu/data/sqlite_upgrade/0017.sql +16 -0
  101. hikyuu/data/sqlite_upgrade/0018.sql +5 -0
  102. hikyuu/data/sqlite_upgrade/0019.sql +4 -0
  103. hikyuu/data/sqlite_upgrade/0020.sql +4 -0
  104. hikyuu/data/sqlite_upgrade/0021.sql +6 -0
  105. hikyuu/data/sqlite_upgrade/0022.sql +6 -0
  106. hikyuu/data/sqlite_upgrade/0023.sql +7 -0
  107. hikyuu/data/sqlite_upgrade/0024.sql +22 -0
  108. hikyuu/data/sqlite_upgrade/__init__.py +1 -0
  109. hikyuu/data/sqlite_upgrade/createdb.sql +61 -0
  110. hikyuu/data/tdx_to_h5.py +464 -0
  111. hikyuu/data/tdx_to_mysql.py +464 -0
  112. hikyuu/data/weight_to_mysql.py +72 -0
  113. hikyuu/data/weight_to_sqlite.py +70 -0
  114. hikyuu/data/zh_bond10_to_mysql.py +30 -0
  115. hikyuu/data/zh_bond10_to_sqlite.py +42 -0
  116. hikyuu/data_driver/__init__.py +49 -0
  117. hikyuu/data_driver/jqdata_data_driver.py +277 -0
  118. hikyuu/data_driver/pytdx_data_driver.py +292 -0
  119. hikyuu/deprecated.py +651 -0
  120. hikyuu/draw/__init__.py +59 -0
  121. hikyuu/draw/drawplot/__init__.py +291 -0
  122. hikyuu/draw/drawplot/bokeh_draw.py +583 -0
  123. hikyuu/draw/drawplot/common.py +89 -0
  124. hikyuu/draw/drawplot/echarts_draw.py +402 -0
  125. hikyuu/draw/drawplot/matplotlib_draw.py +837 -0
  126. hikyuu/draw/elder.py +135 -0
  127. hikyuu/draw/kaufman.py +192 -0
  128. hikyuu/draw/volume.py +122 -0
  129. hikyuu/examples/Turtle_SG.py +47 -0
  130. hikyuu/examples/__init__.py +1 -0
  131. hikyuu/examples/examples_init.py +33 -0
  132. hikyuu/examples/notebook/000-Index.ipynb +76 -0
  133. hikyuu/examples/notebook/001-overview.ipynb +345 -0
  134. hikyuu/examples/notebook/002-HowToGetStock.ipynb +265 -0
  135. hikyuu/examples/notebook/003-HowToGetKDataAndDraw.ipynb +375 -0
  136. hikyuu/examples/notebook/004-IndicatorOverview.ipynb +501 -0
  137. hikyuu/examples/notebook/005-Drawplot.ipynb +321 -0
  138. hikyuu/examples/notebook/006-TradeManager.ipynb +381 -0
  139. hikyuu/examples/notebook/007-SystemDetails.ipynb +380 -0
  140. hikyuu/examples/notebook/008-Pickle.ipynb +127 -0
  141. hikyuu/examples/notebook/009-RealData.ipynb +110 -0
  142. hikyuu/examples/notebook/010-Portfolio.ipynb +333 -0
  143. hikyuu/examples/notebook/011-PyechartsDrawplot.ipynb +21821 -0
  144. hikyuu/examples/notebook/Demo/Demo1.ipynb +623 -0
  145. hikyuu/examples/notebook/Demo/Demo2.ipynb +665 -0
  146. hikyuu/examples/notebook/Demo/__init__.py +1 -0
  147. hikyuu/examples/notebook/README.md +1 -0
  148. hikyuu/examples/notebook/__init__.py +1 -0
  149. hikyuu/examples/notebook/images/002_01_block_config.png +0 -0
  150. hikyuu/examples/notebook/images/008_01_tocsv.png +0 -0
  151. hikyuu/examples/notebook/images/008_02_tocsv_look.png +0 -0
  152. hikyuu/examples/notebook/images/008_03_pickle.png +0 -0
  153. hikyuu/examples/notebook/images/__init__.py +1 -0
  154. hikyuu/examples/quick_crtsg.py +40 -0
  155. hikyuu/extend.py +387 -0
  156. hikyuu/fetcher/__init__.py +8 -0
  157. hikyuu/fetcher/proxy/__init__.py +12 -0
  158. hikyuu/fetcher/proxy/proxy.py +39 -0
  159. hikyuu/fetcher/proxy/zhima.py +63 -0
  160. hikyuu/fetcher/stock/__init__.py +8 -0
  161. hikyuu/fetcher/stock/zh_block_em.py +140 -0
  162. hikyuu/fetcher/stock/zh_stock_a_huatai.py +51 -0
  163. hikyuu/fetcher/stock/zh_stock_a_pytdx.py +139 -0
  164. hikyuu/fetcher/stock/zh_stock_a_qmt.py +58 -0
  165. hikyuu/fetcher/stock/zh_stock_a_sina_qq.py +229 -0
  166. hikyuu/flat/Spot.py +440 -0
  167. hikyuu/flat/SpotList.py +74 -0
  168. hikyuu/flat/__init__.py +4 -0
  169. hikyuu/gui/HikyuuTDX.py +840 -0
  170. hikyuu/gui/__init__.py +1 -0
  171. hikyuu/gui/data/CollectSpotThread.py +43 -0
  172. hikyuu/gui/data/CollectToMemThread.py +123 -0
  173. hikyuu/gui/data/CollectToMySQLThread.py +178 -0
  174. hikyuu/gui/data/EscapetimeThread.py +32 -0
  175. hikyuu/gui/data/ImportBlockInfoTask.py +55 -0
  176. hikyuu/gui/data/ImportHistoryFinanceTask.py +141 -0
  177. hikyuu/gui/data/ImportPytdxTimeToH5Task.py +94 -0
  178. hikyuu/gui/data/ImportPytdxToH5Task.py +98 -0
  179. hikyuu/gui/data/ImportPytdxTransToH5Task.py +94 -0
  180. hikyuu/gui/data/ImportTdxToH5Task.py +111 -0
  181. hikyuu/gui/data/ImportWeightToSqliteTask.py +114 -0
  182. hikyuu/gui/data/ImportZhBond10Task.py +48 -0
  183. hikyuu/gui/data/MainWindow.py +824 -0
  184. hikyuu/gui/data/SchedImportThread.py +62 -0
  185. hikyuu/gui/data/UsePytdxImportToH5Thread.py +371 -0
  186. hikyuu/gui/data/UseTdxImportToH5Thread.py +182 -0
  187. hikyuu/gui/data/__init__.py +1 -0
  188. hikyuu/gui/data/tool.py +43 -0
  189. hikyuu/gui/hikyuu.ico +0 -0
  190. hikyuu/gui/importdata.py +166 -0
  191. hikyuu/gui/spot_server.py +336 -0
  192. hikyuu/gui/start_huatai_insight.py +510 -0
  193. hikyuu/gui/start_qmt.py +122 -0
  194. hikyuu/hub.py +634 -0
  195. hikyuu/include/__init__.py +1 -0
  196. hikyuu/include/hikyuu/Block.h +173 -0
  197. hikyuu/include/hikyuu/DataType.h +173 -0
  198. hikyuu/include/hikyuu/GlobalInitializer.h +46 -0
  199. hikyuu/include/hikyuu/HistoryFinanceInfo.h +35 -0
  200. hikyuu/include/hikyuu/KData.h +271 -0
  201. hikyuu/include/hikyuu/KDataImp.h +94 -0
  202. hikyuu/include/hikyuu/KQuery.h +275 -0
  203. hikyuu/include/hikyuu/KRecord.h +94 -0
  204. hikyuu/include/hikyuu/MarketInfo.h +132 -0
  205. hikyuu/include/hikyuu/Stock.h +351 -0
  206. hikyuu/include/hikyuu/StockManager.h +371 -0
  207. hikyuu/include/hikyuu/StockMapIterator.h +72 -0
  208. hikyuu/include/hikyuu/StockTypeInfo.h +127 -0
  209. hikyuu/include/hikyuu/StockWeight.h +148 -0
  210. hikyuu/include/hikyuu/StrategyContext.h +107 -0
  211. hikyuu/include/hikyuu/TimeLineRecord.h +71 -0
  212. hikyuu/include/hikyuu/TransRecord.h +79 -0
  213. hikyuu/include/hikyuu/ZhBond10.h +36 -0
  214. hikyuu/include/hikyuu/__init__.py +1 -0
  215. hikyuu/include/hikyuu/analysis/__init__.py +1 -0
  216. hikyuu/include/hikyuu/analysis/analysis_sys.h +76 -0
  217. hikyuu/include/hikyuu/analysis/combinate.h +115 -0
  218. hikyuu/include/hikyuu/config.h +48 -0
  219. hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +201 -0
  220. hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +108 -0
  221. hikyuu/include/hikyuu/data_driver/DataDriverFactory.h +58 -0
  222. hikyuu/include/hikyuu/data_driver/DriverConnectPool.h +146 -0
  223. hikyuu/include/hikyuu/data_driver/HistoryFinanceReader.h +36 -0
  224. hikyuu/include/hikyuu/data_driver/KDataDriver.h +194 -0
  225. hikyuu/include/hikyuu/data_driver/__init__.py +1 -0
  226. hikyuu/include/hikyuu/data_driver/base_info/__init__.py +1 -0
  227. hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +54 -0
  228. hikyuu/include/hikyuu/data_driver/base_info/mysql/__init__.py +1 -0
  229. hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +50 -0
  230. hikyuu/include/hikyuu/data_driver/base_info/sqlite/__init__.py +1 -0
  231. hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceFieldTable.h +19 -0
  232. hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceTable.h +23 -0
  233. hikyuu/include/hikyuu/data_driver/base_info/table/HolidayTable.h +29 -0
  234. hikyuu/include/hikyuu/data_driver/base_info/table/MarketInfoTable.h +127 -0
  235. hikyuu/include/hikyuu/data_driver/base_info/table/StockTable.h +64 -0
  236. hikyuu/include/hikyuu/data_driver/base_info/table/StockTypeInfoTable.h +108 -0
  237. hikyuu/include/hikyuu/data_driver/base_info/table/StockWeightTable.h +52 -0
  238. hikyuu/include/hikyuu/data_driver/base_info/table/ZhBond10Table.h +20 -0
  239. hikyuu/include/hikyuu/data_driver/base_info/table/__init__.py +1 -0
  240. hikyuu/include/hikyuu/data_driver/block_info/__init__.py +1 -0
  241. hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +36 -0
  242. hikyuu/include/hikyuu/data_driver/block_info/mysql/__init__.py +1 -0
  243. hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +31 -0
  244. hikyuu/include/hikyuu/data_driver/block_info/qianlong/__init__.py +1 -0
  245. hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +36 -0
  246. hikyuu/include/hikyuu/data_driver/block_info/sqlite/__init__.py +1 -0
  247. hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +33 -0
  248. hikyuu/include/hikyuu/data_driver/kdata/__init__.py +1 -0
  249. hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +106 -0
  250. hikyuu/include/hikyuu/data_driver/kdata/cvs/__init__.py +1 -0
  251. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +89 -0
  252. hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5Record.h +50 -0
  253. hikyuu/include/hikyuu/data_driver/kdata/hdf5/__init__.py +1 -0
  254. hikyuu/include/hikyuu/data_driver/kdata/mysql/KRecordTable.h +124 -0
  255. hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +78 -0
  256. hikyuu/include/hikyuu/data_driver/kdata/mysql/__init__.py +1 -0
  257. hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +62 -0
  258. hikyuu/include/hikyuu/data_driver/kdata/sqlite/__init__.py +1 -0
  259. hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +63 -0
  260. hikyuu/include/hikyuu/data_driver/kdata/tdx/__init__.py +1 -0
  261. hikyuu/include/hikyuu/debug.h +32 -0
  262. hikyuu/include/hikyuu/doc.h +166 -0
  263. hikyuu/include/hikyuu/global/GlobalSpotAgent.h +33 -0
  264. hikyuu/include/hikyuu/global/SpotRecord.h +52 -0
  265. hikyuu/include/hikyuu/global/__init__.py +1 -0
  266. hikyuu/include/hikyuu/global/agent/SpotAgent.h +143 -0
  267. hikyuu/include/hikyuu/global/agent/__init__.py +1 -0
  268. hikyuu/include/hikyuu/global/agent/hikyuu/__init__.py +1 -0
  269. hikyuu/include/hikyuu/global/agent/hikyuu/flat/__init__.py +1 -0
  270. hikyuu/include/hikyuu/global/agent/spot_generated.h +527 -0
  271. hikyuu/include/hikyuu/global/schedule/__init__.py +1 -0
  272. hikyuu/include/hikyuu/global/schedule/inner_tasks.h +16 -0
  273. hikyuu/include/hikyuu/global/schedule/scheduler.h +24 -0
  274. hikyuu/include/hikyuu/global/sysinfo.h +67 -0
  275. hikyuu/include/hikyuu/hikyuu.h +55 -0
  276. hikyuu/include/hikyuu/indicator/IndParam.h +39 -0
  277. hikyuu/include/hikyuu/indicator/Indicator.h +403 -0
  278. hikyuu/include/hikyuu/indicator/IndicatorImp.h +413 -0
  279. hikyuu/include/hikyuu/indicator/__init__.py +1 -0
  280. hikyuu/include/hikyuu/indicator/build_in.h +114 -0
  281. hikyuu/include/hikyuu/indicator/crt/ABS.h +34 -0
  282. hikyuu/include/hikyuu/indicator/crt/ACOS.h +36 -0
  283. hikyuu/include/hikyuu/indicator/crt/AD.h +28 -0
  284. hikyuu/include/hikyuu/indicator/crt/ADVANCE.h +32 -0
  285. hikyuu/include/hikyuu/indicator/crt/ALIGN.h +42 -0
  286. hikyuu/include/hikyuu/indicator/crt/AMA.h +113 -0
  287. hikyuu/include/hikyuu/indicator/crt/ASIN.h +36 -0
  288. hikyuu/include/hikyuu/indicator/crt/ATAN.h +36 -0
  289. hikyuu/include/hikyuu/indicator/crt/ATR.h +44 -0
  290. hikyuu/include/hikyuu/indicator/crt/AVEDEV.h +45 -0
  291. hikyuu/include/hikyuu/indicator/crt/BACKSET.h +44 -0
  292. hikyuu/include/hikyuu/indicator/crt/BARSCOUNT.h +37 -0
  293. hikyuu/include/hikyuu/indicator/crt/BARSLAST.h +41 -0
  294. hikyuu/include/hikyuu/indicator/crt/BARSSINCE.h +41 -0
  295. hikyuu/include/hikyuu/indicator/crt/BETWEEN.h +85 -0
  296. hikyuu/include/hikyuu/indicator/crt/BLOCKSETNUM.h +23 -0
  297. hikyuu/include/hikyuu/indicator/crt/CEILING.h +38 -0
  298. hikyuu/include/hikyuu/indicator/crt/CORR.h +24 -0
  299. hikyuu/include/hikyuu/indicator/crt/COS.h +36 -0
  300. hikyuu/include/hikyuu/indicator/crt/COST.h +34 -0
  301. hikyuu/include/hikyuu/indicator/crt/COUNT.h +54 -0
  302. hikyuu/include/hikyuu/indicator/crt/CROSS.h +48 -0
  303. hikyuu/include/hikyuu/indicator/crt/CVAL.h +35 -0
  304. hikyuu/include/hikyuu/indicator/crt/DECLINE.h +32 -0
  305. hikyuu/include/hikyuu/indicator/crt/DEVSQ.h +40 -0
  306. hikyuu/include/hikyuu/indicator/crt/DIFF.h +31 -0
  307. hikyuu/include/hikyuu/indicator/crt/DMA.h +34 -0
  308. hikyuu/include/hikyuu/indicator/crt/DOWNNDAY.h +43 -0
  309. hikyuu/include/hikyuu/indicator/crt/DROPNA.h +31 -0
  310. hikyuu/include/hikyuu/indicator/crt/EMA.h +44 -0
  311. hikyuu/include/hikyuu/indicator/crt/EVERY.h +44 -0
  312. hikyuu/include/hikyuu/indicator/crt/EXIST.h +44 -0
  313. hikyuu/include/hikyuu/indicator/crt/EXP.h +34 -0
  314. hikyuu/include/hikyuu/indicator/crt/FILTER.h +44 -0
  315. hikyuu/include/hikyuu/indicator/crt/FINANCE.h +20 -0
  316. hikyuu/include/hikyuu/indicator/crt/FLOOR.h +38 -0
  317. hikyuu/include/hikyuu/indicator/crt/HHV.h +44 -0
  318. hikyuu/include/hikyuu/indicator/crt/HHVBARS.h +44 -0
  319. hikyuu/include/hikyuu/indicator/crt/HSL.h +39 -0
  320. hikyuu/include/hikyuu/indicator/crt/IC.h +41 -0
  321. hikyuu/include/hikyuu/indicator/crt/ICIR.h +51 -0
  322. hikyuu/include/hikyuu/indicator/crt/INSUM.h +33 -0
  323. hikyuu/include/hikyuu/indicator/crt/INTPART.h +38 -0
  324. hikyuu/include/hikyuu/indicator/crt/IR.h +44 -0
  325. hikyuu/include/hikyuu/indicator/crt/KDATA.h +72 -0
  326. hikyuu/include/hikyuu/indicator/crt/LAST.h +100 -0
  327. hikyuu/include/hikyuu/indicator/crt/LIUTONGPAN.h +23 -0
  328. hikyuu/include/hikyuu/indicator/crt/LLV.h +46 -0
  329. hikyuu/include/hikyuu/indicator/crt/LLVBARS.h +44 -0
  330. hikyuu/include/hikyuu/indicator/crt/LN.h +36 -0
  331. hikyuu/include/hikyuu/indicator/crt/LOG.h +35 -0
  332. hikyuu/include/hikyuu/indicator/crt/LONGCROSS.h +68 -0
  333. hikyuu/include/hikyuu/indicator/crt/MA.h +44 -0
  334. hikyuu/include/hikyuu/indicator/crt/MACD.h +62 -0
  335. hikyuu/include/hikyuu/indicator/crt/MAX.h +45 -0
  336. hikyuu/include/hikyuu/indicator/crt/MDD.h +29 -0
  337. hikyuu/include/hikyuu/indicator/crt/MIN.h +45 -0
  338. hikyuu/include/hikyuu/indicator/crt/MOD.h +49 -0
  339. hikyuu/include/hikyuu/indicator/crt/MRR.h +29 -0
  340. hikyuu/include/hikyuu/indicator/crt/NDAY.h +43 -0
  341. hikyuu/include/hikyuu/indicator/crt/NOT.h +35 -0
  342. hikyuu/include/hikyuu/indicator/crt/POS.h +21 -0
  343. hikyuu/include/hikyuu/indicator/crt/POW.h +48 -0
  344. hikyuu/include/hikyuu/indicator/crt/PRICELIST.h +59 -0
  345. hikyuu/include/hikyuu/indicator/crt/RECOVER.h +45 -0
  346. hikyuu/include/hikyuu/indicator/crt/REF.h +48 -0
  347. hikyuu/include/hikyuu/indicator/crt/RESULT.h +20 -0
  348. hikyuu/include/hikyuu/indicator/crt/REVERSE.h +36 -0
  349. hikyuu/include/hikyuu/indicator/crt/ROC.h +39 -0
  350. hikyuu/include/hikyuu/indicator/crt/ROCP.h +39 -0
  351. hikyuu/include/hikyuu/indicator/crt/ROCR.h +39 -0
  352. hikyuu/include/hikyuu/indicator/crt/ROCR100.h +39 -0
  353. hikyuu/include/hikyuu/indicator/crt/ROUND.h +36 -0
  354. hikyuu/include/hikyuu/indicator/crt/ROUNDDOWN.h +36 -0
  355. hikyuu/include/hikyuu/indicator/crt/ROUNDUP.h +36 -0
  356. hikyuu/include/hikyuu/indicator/crt/RSI.h +43 -0
  357. hikyuu/include/hikyuu/indicator/crt/SAFTYLOSS.h +79 -0
  358. hikyuu/include/hikyuu/indicator/crt/SGN.h +34 -0
  359. hikyuu/include/hikyuu/indicator/crt/SIN.h +36 -0
  360. hikyuu/include/hikyuu/indicator/crt/SLICE.h +44 -0
  361. hikyuu/include/hikyuu/indicator/crt/SLOPE.h +44 -0
  362. hikyuu/include/hikyuu/indicator/crt/SMA.h +72 -0
  363. hikyuu/include/hikyuu/indicator/crt/SPEARMAN.h +23 -0
  364. hikyuu/include/hikyuu/indicator/crt/SQRT.h +41 -0
  365. hikyuu/include/hikyuu/indicator/crt/STDEV.h +44 -0
  366. hikyuu/include/hikyuu/indicator/crt/STDP.h +38 -0
  367. hikyuu/include/hikyuu/indicator/crt/SUM.h +44 -0
  368. hikyuu/include/hikyuu/indicator/crt/SUMBARS.h +44 -0
  369. hikyuu/include/hikyuu/indicator/crt/TAN.h +36 -0
  370. hikyuu/include/hikyuu/indicator/crt/TIME.h +69 -0
  371. hikyuu/include/hikyuu/indicator/crt/TIMELINE.h +23 -0
  372. hikyuu/include/hikyuu/indicator/crt/TIMELINEVOL.h +21 -0
  373. hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +21 -0
  374. hikyuu/include/hikyuu/indicator/crt/UPNDAY.h +43 -0
  375. hikyuu/include/hikyuu/indicator/crt/VAR.h +40 -0
  376. hikyuu/include/hikyuu/indicator/crt/VARP.h +40 -0
  377. hikyuu/include/hikyuu/indicator/crt/VIGOR.h +34 -0
  378. hikyuu/include/hikyuu/indicator/crt/ZHBOND10.h +27 -0
  379. hikyuu/include/hikyuu/indicator/crt/ZONGGUBEN.h +17 -0
  380. hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +30 -0
  381. hikyuu/include/hikyuu/indicator/crt/__init__.py +1 -0
  382. hikyuu/include/hikyuu/indicator/imp/IAbs.h +26 -0
  383. hikyuu/include/hikyuu/indicator/imp/IAcos.h +28 -0
  384. hikyuu/include/hikyuu/indicator/imp/IAd.h +30 -0
  385. hikyuu/include/hikyuu/indicator/imp/IAdvance.h +29 -0
  386. hikyuu/include/hikyuu/indicator/imp/IAlign.h +28 -0
  387. hikyuu/include/hikyuu/indicator/imp/IAma.h +38 -0
  388. hikyuu/include/hikyuu/indicator/imp/IAsin.h +28 -0
  389. hikyuu/include/hikyuu/indicator/imp/IAtan.h +28 -0
  390. hikyuu/include/hikyuu/indicator/imp/IAtr.h +28 -0
  391. hikyuu/include/hikyuu/indicator/imp/IBackset.h +33 -0
  392. hikyuu/include/hikyuu/indicator/imp/IBarsCount.h +28 -0
  393. hikyuu/include/hikyuu/indicator/imp/IBarsLast.h +28 -0
  394. hikyuu/include/hikyuu/indicator/imp/IBarsSince.h +28 -0
  395. hikyuu/include/hikyuu/indicator/imp/IBlockSetNum.h +28 -0
  396. hikyuu/include/hikyuu/indicator/imp/ICeil.h +31 -0
  397. hikyuu/include/hikyuu/indicator/imp/ICorr.h +42 -0
  398. hikyuu/include/hikyuu/indicator/imp/ICos.h +28 -0
  399. hikyuu/include/hikyuu/indicator/imp/ICount.h +32 -0
  400. hikyuu/include/hikyuu/indicator/imp/ICval.h +29 -0
  401. hikyuu/include/hikyuu/indicator/imp/IDecline.h +29 -0
  402. hikyuu/include/hikyuu/indicator/imp/IDevsq.h +29 -0
  403. hikyuu/include/hikyuu/indicator/imp/IDiff.h +29 -0
  404. hikyuu/include/hikyuu/indicator/imp/IDma.h +47 -0
  405. hikyuu/include/hikyuu/indicator/imp/IDropna.h +28 -0
  406. hikyuu/include/hikyuu/indicator/imp/IEma.h +29 -0
  407. hikyuu/include/hikyuu/indicator/imp/IEvery.h +32 -0
  408. hikyuu/include/hikyuu/indicator/imp/IExist.h +32 -0
  409. hikyuu/include/hikyuu/indicator/imp/IExp.h +28 -0
  410. hikyuu/include/hikyuu/indicator/imp/IFilter.h +34 -0
  411. hikyuu/include/hikyuu/indicator/imp/IFinance.h +25 -0
  412. hikyuu/include/hikyuu/indicator/imp/IFloor.h +31 -0
  413. hikyuu/include/hikyuu/indicator/imp/IHhvbars.h +29 -0
  414. hikyuu/include/hikyuu/indicator/imp/IHighLine.h +34 -0
  415. hikyuu/include/hikyuu/indicator/imp/IIc.h +45 -0
  416. hikyuu/include/hikyuu/indicator/imp/IInSum.h +28 -0
  417. hikyuu/include/hikyuu/indicator/imp/IIntpart.h +31 -0
  418. hikyuu/include/hikyuu/indicator/imp/IKData.h +29 -0
  419. hikyuu/include/hikyuu/indicator/imp/ILiuTongPan.h +29 -0
  420. hikyuu/include/hikyuu/indicator/imp/ILn.h +28 -0
  421. hikyuu/include/hikyuu/indicator/imp/ILog.h +28 -0
  422. hikyuu/include/hikyuu/indicator/imp/ILowLine.h +30 -0
  423. hikyuu/include/hikyuu/indicator/imp/ILowLineBars.h +29 -0
  424. hikyuu/include/hikyuu/indicator/imp/IMa.h +27 -0
  425. hikyuu/include/hikyuu/indicator/imp/IMacd.h +41 -0
  426. hikyuu/include/hikyuu/indicator/imp/IMdd.h +23 -0
  427. hikyuu/include/hikyuu/indicator/imp/IMrr.h +23 -0
  428. hikyuu/include/hikyuu/indicator/imp/INot.h +26 -0
  429. hikyuu/include/hikyuu/indicator/imp/IPow.h +32 -0
  430. hikyuu/include/hikyuu/indicator/imp/IPriceList.h +29 -0
  431. hikyuu/include/hikyuu/indicator/imp/IRecover.h +29 -0
  432. hikyuu/include/hikyuu/indicator/imp/IRef.h +34 -0
  433. hikyuu/include/hikyuu/indicator/imp/IResult.h +26 -0
  434. hikyuu/include/hikyuu/indicator/imp/IReverse.h +28 -0
  435. hikyuu/include/hikyuu/indicator/imp/IRoc.h +29 -0
  436. hikyuu/include/hikyuu/indicator/imp/IRocp.h +29 -0
  437. hikyuu/include/hikyuu/indicator/imp/IRocr.h +29 -0
  438. hikyuu/include/hikyuu/indicator/imp/IRocr100.h +29 -0
  439. hikyuu/include/hikyuu/indicator/imp/IRound.h +32 -0
  440. hikyuu/include/hikyuu/indicator/imp/IRoundDown.h +32 -0
  441. hikyuu/include/hikyuu/indicator/imp/IRoundUp.h +32 -0
  442. hikyuu/include/hikyuu/indicator/imp/ISaftyLoss.h +44 -0
  443. hikyuu/include/hikyuu/indicator/imp/ISign.h +28 -0
  444. hikyuu/include/hikyuu/indicator/imp/ISin.h +28 -0
  445. hikyuu/include/hikyuu/indicator/imp/ISlice.h +25 -0
  446. hikyuu/include/hikyuu/indicator/imp/ISlope.h +25 -0
  447. hikyuu/include/hikyuu/indicator/imp/ISma.h +34 -0
  448. hikyuu/include/hikyuu/indicator/imp/ISpearman.h +42 -0
  449. hikyuu/include/hikyuu/indicator/imp/ISqrt.h +31 -0
  450. hikyuu/include/hikyuu/indicator/imp/IStdev.h +31 -0
  451. hikyuu/include/hikyuu/indicator/imp/IStdp.h +33 -0
  452. hikyuu/include/hikyuu/indicator/imp/ISum.h +27 -0
  453. hikyuu/include/hikyuu/indicator/imp/ISumBars.h +30 -0
  454. hikyuu/include/hikyuu/indicator/imp/ITan.h +28 -0
  455. hikyuu/include/hikyuu/indicator/imp/ITime.h +33 -0
  456. hikyuu/include/hikyuu/indicator/imp/ITimeLine.h +32 -0
  457. hikyuu/include/hikyuu/indicator/imp/IVar.h +32 -0
  458. hikyuu/include/hikyuu/indicator/imp/IVarp.h +32 -0
  459. hikyuu/include/hikyuu/indicator/imp/IVigor.h +35 -0
  460. hikyuu/include/hikyuu/indicator/imp/IZScore.h +25 -0
  461. hikyuu/include/hikyuu/indicator/imp/IZhBond10.h +30 -0
  462. hikyuu/include/hikyuu/indicator/imp/IZongGuBen.h +25 -0
  463. hikyuu/include/hikyuu/indicator/imp/__init__.py +1 -0
  464. hikyuu/include/hikyuu/python/__init__.py +1 -0
  465. hikyuu/include/hikyuu/python/pickle_support.h +90 -0
  466. hikyuu/include/hikyuu/python/pybind_utils.h +103 -0
  467. hikyuu/include/hikyuu/serialization/Block_serialization.h +55 -0
  468. hikyuu/include/hikyuu/serialization/Datetime_serialization.h +40 -0
  469. hikyuu/include/hikyuu/serialization/KData_serialization.h +45 -0
  470. hikyuu/include/hikyuu/serialization/KQuery_serialization.h +79 -0
  471. hikyuu/include/hikyuu/serialization/KRecord_serialization.h +50 -0
  472. hikyuu/include/hikyuu/serialization/MarketInfo_serialization.h +68 -0
  473. hikyuu/include/hikyuu/serialization/PriceList_serialization.h +66 -0
  474. hikyuu/include/hikyuu/serialization/StockTypeInfo_serialization.h +62 -0
  475. hikyuu/include/hikyuu/serialization/StockWeight_serialization.h +65 -0
  476. hikyuu/include/hikyuu/serialization/Stock_serialization.h +47 -0
  477. hikyuu/include/hikyuu/serialization/TimeDelta_serialization.h +44 -0
  478. hikyuu/include/hikyuu/serialization/TimeLineRecord_serialization.h +42 -0
  479. hikyuu/include/hikyuu/serialization/TransRecord_serialization.h +44 -0
  480. hikyuu/include/hikyuu/serialization/__init__.py +1 -0
  481. hikyuu/include/hikyuu/serialization/all.h +26 -0
  482. hikyuu/include/hikyuu/strategy/BrokerTradeManager.h +433 -0
  483. hikyuu/include/hikyuu/strategy/RunPortfolioInStrategy.h +37 -0
  484. hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +38 -0
  485. hikyuu/include/hikyuu/strategy/Strategy.h +191 -0
  486. hikyuu/include/hikyuu/strategy/__init__.py +1 -0
  487. hikyuu/include/hikyuu/trade_manage/BorrowRecord.h +91 -0
  488. hikyuu/include/hikyuu/trade_manage/CostRecord.h +67 -0
  489. hikyuu/include/hikyuu/trade_manage/FundsRecord.h +110 -0
  490. hikyuu/include/hikyuu/trade_manage/LoanRecord.h +64 -0
  491. hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h +207 -0
  492. hikyuu/include/hikyuu/trade_manage/Performance.h +80 -0
  493. hikyuu/include/hikyuu/trade_manage/PositionRecord.h +108 -0
  494. hikyuu/include/hikyuu/trade_manage/TradeCostBase.h +174 -0
  495. hikyuu/include/hikyuu/trade_manage/TradeManager.h +487 -0
  496. hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +778 -0
  497. hikyuu/include/hikyuu/trade_manage/TradeRecord.h +151 -0
  498. hikyuu/include/hikyuu/trade_manage/__init__.py +1 -0
  499. hikyuu/include/hikyuu/trade_manage/build_in.h +19 -0
  500. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA.h +45 -0
  501. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2015.h +43 -0
  502. hikyuu/include/hikyuu/trade_manage/crt/TC_FixedA2017.h +44 -0
  503. hikyuu/include/hikyuu/trade_manage/crt/TC_TestStub.h +21 -0
  504. hikyuu/include/hikyuu/trade_manage/crt/TC_Zero.h +25 -0
  505. hikyuu/include/hikyuu/trade_manage/crt/__init__.py +1 -0
  506. hikyuu/include/hikyuu/trade_manage/crt/crtTM.h +33 -0
  507. hikyuu/include/hikyuu/trade_manage/imp/FixedA2015TradeCost.h +53 -0
  508. hikyuu/include/hikyuu/trade_manage/imp/FixedA2017TradeCost.h +56 -0
  509. hikyuu/include/hikyuu/trade_manage/imp/FixedATradeCost.h +88 -0
  510. hikyuu/include/hikyuu/trade_manage/imp/TradeCostStub.h +48 -0
  511. hikyuu/include/hikyuu/trade_manage/imp/ZeroTradeCost.h +50 -0
  512. hikyuu/include/hikyuu/trade_manage/imp/__init__.py +1 -0
  513. hikyuu/include/hikyuu/trade_sys/__init__.py +1 -0
  514. hikyuu/include/hikyuu/trade_sys/all.h +24 -0
  515. hikyuu/include/hikyuu/trade_sys/allocatefunds/AllocateFundsBase.h +229 -0
  516. hikyuu/include/hikyuu/trade_sys/allocatefunds/__init__.py +1 -0
  517. hikyuu/include/hikyuu/trade_sys/allocatefunds/build_in.h +16 -0
  518. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_EqualWeight.h +25 -0
  519. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_FixedWeight.h +26 -0
  520. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/AF_MultiFactor.h +21 -0
  521. hikyuu/include/hikyuu/trade_sys/allocatefunds/crt/__init__.py +1 -0
  522. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/EqualWeightAllocateFunds.h +27 -0
  523. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/FixedWeightAllocateFunds.h +28 -0
  524. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/MultiFactorAllocaterFunds.h +23 -0
  525. hikyuu/include/hikyuu/trade_sys/allocatefunds/imp/__init__.py +1 -0
  526. hikyuu/include/hikyuu/trade_sys/condition/ConditionBase.h +241 -0
  527. hikyuu/include/hikyuu/trade_sys/condition/__init__.py +1 -0
  528. hikyuu/include/hikyuu/trade_sys/condition/build_in.h +17 -0
  529. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Bool.h +22 -0
  530. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Logic.h +35 -0
  531. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_Manual.h +20 -0
  532. hikyuu/include/hikyuu/trade_sys/condition/crt/CN_OPLine.h +26 -0
  533. hikyuu/include/hikyuu/trade_sys/condition/crt/__init__.py +1 -0
  534. hikyuu/include/hikyuu/trade_sys/condition/imp/BoolCondition.h +40 -0
  535. hikyuu/include/hikyuu/trade_sys/condition/imp/ManualCondition.h +23 -0
  536. hikyuu/include/hikyuu/trade_sys/condition/imp/OPLineCondition.h +44 -0
  537. hikyuu/include/hikyuu/trade_sys/condition/imp/SubCondition.h +42 -0
  538. hikyuu/include/hikyuu/trade_sys/condition/imp/__init__.py +1 -0
  539. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AddCondition.h +42 -0
  540. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/AndCondition.h +42 -0
  541. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/DivCondition.h +42 -0
  542. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/MultiCondition.h +42 -0
  543. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/OrCondition.h +42 -0
  544. hikyuu/include/hikyuu/trade_sys/condition/imp/logic/__init__.py +1 -0
  545. hikyuu/include/hikyuu/trade_sys/environment/EnvironmentBase.h +178 -0
  546. hikyuu/include/hikyuu/trade_sys/environment/__init__.py +1 -0
  547. hikyuu/include/hikyuu/trade_sys/environment/build_in.h +16 -0
  548. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Bool.h +23 -0
  549. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_Manual.h +20 -0
  550. hikyuu/include/hikyuu/trade_sys/environment/crt/EV_TwoLine.h +28 -0
  551. hikyuu/include/hikyuu/trade_sys/environment/crt/__init__.py +1 -0
  552. hikyuu/include/hikyuu/trade_sys/environment/imp/BoolEnvironment.h +41 -0
  553. hikyuu/include/hikyuu/trade_sys/environment/imp/ManualEnvironment.h +23 -0
  554. hikyuu/include/hikyuu/trade_sys/environment/imp/TwoLineEnvironment.h +47 -0
  555. hikyuu/include/hikyuu/trade_sys/environment/imp/__init__.py +1 -0
  556. hikyuu/include/hikyuu/trade_sys/moneymanager/MoneyManagerBase.h +230 -0
  557. hikyuu/include/hikyuu/trade_sys/moneymanager/__init__.py +1 -0
  558. hikyuu/include/hikyuu/trade_sys/moneymanager/build_in.h +20 -0
  559. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCapital.h +20 -0
  560. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedCount.h +28 -0
  561. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedPercent.h +27 -0
  562. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedRisk.h +20 -0
  563. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_FixedUnits.h +20 -0
  564. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_Nothing.h +24 -0
  565. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/MM_WilliamsFixedRisk.h +20 -0
  566. hikyuu/include/hikyuu/trade_sys/moneymanager/crt/__init__.py +1 -0
  567. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalMoneyManager.h +28 -0
  568. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCountMoneyManager.h +38 -0
  569. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedPercentMoneyManager.h +34 -0
  570. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedRiskMoneyManager.h +28 -0
  571. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedUnitsMoneyManager.h +28 -0
  572. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/NotMoneyManager.h +30 -0
  573. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/WilliamsFixedRiskMoneyManager.h +28 -0
  574. hikyuu/include/hikyuu/trade_sys/moneymanager/imp/__init__.py +1 -0
  575. hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +275 -0
  576. hikyuu/include/hikyuu/trade_sys/multifactor/ScoreRecord.h +51 -0
  577. hikyuu/include/hikyuu/trade_sys/multifactor/__init__.py +1 -0
  578. hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +12 -0
  579. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_EqualWeight.h +29 -0
  580. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICIRWeight.h +30 -0
  581. hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICWeight.h +30 -0
  582. hikyuu/include/hikyuu/trade_sys/multifactor/crt/__init__.py +1 -0
  583. hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +25 -0
  584. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +27 -0
  585. hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +27 -0
  586. hikyuu/include/hikyuu/trade_sys/multifactor/imp/__init__.py +1 -0
  587. hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +256 -0
  588. hikyuu/include/hikyuu/trade_sys/portfolio/__init__.py +1 -0
  589. hikyuu/include/hikyuu/trade_sys/portfolio/build_in.h +14 -0
  590. hikyuu/include/hikyuu/trade_sys/portfolio/crt/PF_Simple.h +23 -0
  591. hikyuu/include/hikyuu/trade_sys/portfolio/crt/__init__.py +1 -0
  592. hikyuu/include/hikyuu/trade_sys/portfolio/imp/__init__.py +1 -0
  593. hikyuu/include/hikyuu/trade_sys/profitgoal/ProfitGoalBase.h +189 -0
  594. hikyuu/include/hikyuu/trade_sys/profitgoal/__init__.py +1 -0
  595. hikyuu/include/hikyuu/trade_sys/profitgoal/build_in.h +16 -0
  596. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedHoldDays.h +26 -0
  597. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_FixedPercent.h +25 -0
  598. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/PG_NoGoal.h +24 -0
  599. hikyuu/include/hikyuu/trade_sys/profitgoal/crt/__init__.py +1 -0
  600. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedHoldDays.h +29 -0
  601. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/FixedPercentProfitGoal.h +28 -0
  602. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/NoGoalProfitGoal.h +27 -0
  603. hikyuu/include/hikyuu/trade_sys/profitgoal/imp/__init__.py +1 -0
  604. hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +245 -0
  605. hikyuu/include/hikyuu/trade_sys/selector/SystemWeight.h +70 -0
  606. hikyuu/include/hikyuu/trade_sys/selector/__init__.py +1 -0
  607. hikyuu/include/hikyuu/trade_sys/selector/build_in.h +18 -0
  608. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Fixed.h +38 -0
  609. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Logic.h +43 -0
  610. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor.h +40 -0
  611. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Optimal.h +26 -0
  612. hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Signal.h +30 -0
  613. hikyuu/include/hikyuu/trade_sys/selector/crt/__init__.py +1 -0
  614. hikyuu/include/hikyuu/trade_sys/selector/imp/FixedSelector.h +28 -0
  615. hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +52 -0
  616. hikyuu/include/hikyuu/trade_sys/selector/imp/SignalSelector.h +30 -0
  617. hikyuu/include/hikyuu/trade_sys/selector/imp/__init__.py +1 -0
  618. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddSelector.h +19 -0
  619. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorAddValueSelector.h +19 -0
  620. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivSelector.h +19 -0
  621. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorDivValueSelector.h +19 -0
  622. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertDivValueSelector.h +19 -0
  623. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorInvertSubValueSelector.h +19 -0
  624. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulSelector.h +19 -0
  625. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorMulValueSelector.h +19 -0
  626. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +108 -0
  627. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubSelector.h +19 -0
  628. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSubValueSelector.h +19 -0
  629. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +94 -0
  630. hikyuu/include/hikyuu/trade_sys/selector/imp/logic/__init__.py +1 -0
  631. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/MaxFundsOptimalSelector.h +27 -0
  632. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/OptimalSelectorBase.h +86 -0
  633. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/PerformanceOptimalSelector.h +42 -0
  634. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/__init__.py +1 -0
  635. hikyuu/include/hikyuu/trade_sys/signal/SignalBase.h +249 -0
  636. hikyuu/include/hikyuu/trade_sys/signal/__init__.py +1 -0
  637. hikyuu/include/hikyuu/trade_sys/signal/build_in.h +22 -0
  638. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_AllwaysBuy.h +20 -0
  639. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Band.h +37 -0
  640. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Bool.h +28 -0
  641. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cross.h +28 -0
  642. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_CrossGold.h +29 -0
  643. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Cycle.h +20 -0
  644. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Flex.h +29 -0
  645. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Manual.h +20 -0
  646. hikyuu/include/hikyuu/trade_sys/signal/crt/SG_Single.h +56 -0
  647. hikyuu/include/hikyuu/trade_sys/signal/crt/__init__.py +1 -0
  648. hikyuu/include/hikyuu/trade_sys/signal/imp/AllwaysBuySignal.h +25 -0
  649. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal.h +46 -0
  650. hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +47 -0
  651. hikyuu/include/hikyuu/trade_sys/signal/imp/BoolSignal.h +46 -0
  652. hikyuu/include/hikyuu/trade_sys/signal/imp/CrossGoldSignal.h +46 -0
  653. hikyuu/include/hikyuu/trade_sys/signal/imp/CrossSignal.h +46 -0
  654. hikyuu/include/hikyuu/trade_sys/signal/imp/CycleSignal.h +25 -0
  655. hikyuu/include/hikyuu/trade_sys/signal/imp/ManualSignal.h +23 -0
  656. hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal.h +45 -0
  657. hikyuu/include/hikyuu/trade_sys/signal/imp/SingleSignal2.h +45 -0
  658. hikyuu/include/hikyuu/trade_sys/signal/imp/__init__.py +1 -0
  659. hikyuu/include/hikyuu/trade_sys/slippage/SlippageBase.h +170 -0
  660. hikyuu/include/hikyuu/trade_sys/slippage/__init__.py +1 -0
  661. hikyuu/include/hikyuu/trade_sys/slippage/build_in.h +15 -0
  662. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedPercent.h +26 -0
  663. hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_FixedValue.h +26 -0
  664. hikyuu/include/hikyuu/trade_sys/slippage/crt/__init__.py +1 -0
  665. hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedPercentSlippage.h +28 -0
  666. hikyuu/include/hikyuu/trade_sys/slippage/imp/FixedValueSlippage.h +28 -0
  667. hikyuu/include/hikyuu/trade_sys/slippage/imp/__init__.py +1 -0
  668. hikyuu/include/hikyuu/trade_sys/stoploss/StoplossBase.h +199 -0
  669. hikyuu/include/hikyuu/trade_sys/stoploss/__init__.py +1 -0
  670. hikyuu/include/hikyuu/trade_sys/stoploss/build_in.h +16 -0
  671. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_FixedPercent.h +25 -0
  672. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Indicator.h +21 -0
  673. hikyuu/include/hikyuu/trade_sys/stoploss/crt/ST_Saftyloss.h +37 -0
  674. hikyuu/include/hikyuu/trade_sys/stoploss/crt/__init__.py +1 -0
  675. hikyuu/include/hikyuu/trade_sys/stoploss/imp/FixedPercentStoploss.h +30 -0
  676. hikyuu/include/hikyuu/trade_sys/stoploss/imp/IndicatorStoploss.h +50 -0
  677. hikyuu/include/hikyuu/trade_sys/stoploss/imp/__init__.py +1 -0
  678. hikyuu/include/hikyuu/trade_sys/system/System.h +639 -0
  679. hikyuu/include/hikyuu/trade_sys/system/SystemPart.h +54 -0
  680. hikyuu/include/hikyuu/trade_sys/system/TradeRequest.h +94 -0
  681. hikyuu/include/hikyuu/trade_sys/system/__init__.py +1 -0
  682. hikyuu/include/hikyuu/trade_sys/system/build_in.h +15 -0
  683. hikyuu/include/hikyuu/trade_sys/system/crt/SYS_Simple.h +50 -0
  684. hikyuu/include/hikyuu/trade_sys/system/crt/SYS_WalkForward.h +21 -0
  685. hikyuu/include/hikyuu/trade_sys/system/crt/__init__.py +1 -0
  686. hikyuu/include/hikyuu/trade_sys/system/imp/DelegateSystem.h +51 -0
  687. hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardSystem.h +70 -0
  688. hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardTradeManager.h +465 -0
  689. hikyuu/include/hikyuu/trade_sys/system/imp/__init__.py +1 -0
  690. hikyuu/include/hikyuu/utilities/ConnectPool.h +163 -0
  691. hikyuu/include/hikyuu/utilities/FilterNode.h +267 -0
  692. hikyuu/include/hikyuu/utilities/LRUCache11.h +230 -0
  693. hikyuu/include/hikyuu/utilities/Log.h +411 -0
  694. hikyuu/include/hikyuu/utilities/Null.h +143 -0
  695. hikyuu/include/hikyuu/utilities/Parameter.h +511 -0
  696. hikyuu/include/hikyuu/utilities/ResourcePool.h +636 -0
  697. hikyuu/include/hikyuu/utilities/SpendTimer.h +305 -0
  698. hikyuu/include/hikyuu/utilities/TimerManager.h +552 -0
  699. hikyuu/include/hikyuu/utilities/__init__.py +1 -0
  700. hikyuu/include/hikyuu/utilities/any_to_string.h +142 -0
  701. hikyuu/include/hikyuu/utilities/arithmetic.h +401 -0
  702. hikyuu/include/hikyuu/utilities/base64.h +52 -0
  703. hikyuu/include/hikyuu/utilities/config.h +41 -0
  704. hikyuu/include/hikyuu/utilities/cppdef.h +25 -0
  705. hikyuu/include/hikyuu/utilities/datetime/Datetime.h +438 -0
  706. hikyuu/include/hikyuu/utilities/datetime/TimeDelta.h +343 -0
  707. hikyuu/include/hikyuu/utilities/datetime/__init__.py +1 -0
  708. hikyuu/include/hikyuu/utilities/db_connect/AutoTransAction.h +124 -0
  709. hikyuu/include/hikyuu/utilities/db_connect/DBCondition.h +248 -0
  710. hikyuu/include/hikyuu/utilities/db_connect/DBConnect.h +30 -0
  711. hikyuu/include/hikyuu/utilities/db_connect/DBConnectBase.h +658 -0
  712. hikyuu/include/hikyuu/utilities/db_connect/DBUpgrade.h +28 -0
  713. hikyuu/include/hikyuu/utilities/db_connect/SQLException.h +62 -0
  714. hikyuu/include/hikyuu/utilities/db_connect/SQLResultSet.h +248 -0
  715. hikyuu/include/hikyuu/utilities/db_connect/SQLStatementBase.h +305 -0
  716. hikyuu/include/hikyuu/utilities/db_connect/TableMacro.h +2579 -0
  717. hikyuu/include/hikyuu/utilities/db_connect/__init__.py +1 -0
  718. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +56 -0
  719. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +88 -0
  720. hikyuu/include/hikyuu/utilities/db_connect/mysql/__init__.py +1 -0
  721. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +89 -0
  722. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +71 -0
  723. hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteUtil.h +80 -0
  724. hikyuu/include/hikyuu/utilities/db_connect/sqlite/__init__.py +1 -0
  725. hikyuu/include/hikyuu/utilities/exception.h +52 -0
  726. hikyuu/include/hikyuu/utilities/http_client/HttpClient.h +229 -0
  727. hikyuu/include/hikyuu/utilities/http_client/__init__.py +1 -0
  728. hikyuu/include/hikyuu/utilities/http_client/nng_wrap.h +517 -0
  729. hikyuu/include/hikyuu/utilities/http_client/url.h +25 -0
  730. hikyuu/include/hikyuu/utilities/ini_parser/IniParser.h +104 -0
  731. hikyuu/include/hikyuu/utilities/ini_parser/__init__.py +1 -0
  732. hikyuu/include/hikyuu/utilities/md5.h +41 -0
  733. hikyuu/include/hikyuu/utilities/mo/__init__.py +1 -0
  734. hikyuu/include/hikyuu/utilities/mo/mo.h +48 -0
  735. hikyuu/include/hikyuu/utilities/mo/moFileReader.h +836 -0
  736. hikyuu/include/hikyuu/utilities/node/NodeClient.h +175 -0
  737. hikyuu/include/hikyuu/utilities/node/NodeError.h +66 -0
  738. hikyuu/include/hikyuu/utilities/node/NodeMessage.h +80 -0
  739. hikyuu/include/hikyuu/utilities/node/NodeServer.h +246 -0
  740. hikyuu/include/hikyuu/utilities/node/__init__.py +1 -0
  741. hikyuu/include/hikyuu/utilities/os.h +102 -0
  742. hikyuu/include/hikyuu/utilities/osdef.h +159 -0
  743. hikyuu/include/hikyuu/utilities/runtimeinfo.h +35 -0
  744. hikyuu/include/hikyuu/utilities/snowflake.h +110 -0
  745. hikyuu/include/hikyuu/utilities/string_view.h +70 -0
  746. hikyuu/include/hikyuu/utilities/thread/FuncWrapper.h +85 -0
  747. hikyuu/include/hikyuu/utilities/thread/InterruptFlag.h +30 -0
  748. hikyuu/include/hikyuu/utilities/thread/MQStealQueue.h +112 -0
  749. hikyuu/include/hikyuu/utilities/thread/MQStealThreadPool.h +315 -0
  750. hikyuu/include/hikyuu/utilities/thread/MQThreadPool.h +275 -0
  751. hikyuu/include/hikyuu/utilities/thread/StealThreadPool.h +309 -0
  752. hikyuu/include/hikyuu/utilities/thread/ThreadPool.h +231 -0
  753. hikyuu/include/hikyuu/utilities/thread/ThreadSafeQueue.h +101 -0
  754. hikyuu/include/hikyuu/utilities/thread/WorkStealQueue.h +105 -0
  755. hikyuu/include/hikyuu/utilities/thread/__init__.py +1 -0
  756. hikyuu/include/hikyuu/utilities/thread/algorithm.h +110 -0
  757. hikyuu/include/hikyuu/utilities/thread/thread.h +10 -0
  758. hikyuu/include/hikyuu/version.h +24 -0
  759. hikyuu/indicator/__init__.py +29 -0
  760. hikyuu/indicator/indicator.py +157 -0
  761. hikyuu/indicator/pyind.py +47 -0
  762. hikyuu/indicator/talib_wrap.py +1264 -0
  763. hikyuu/interactive.py +331 -0
  764. hikyuu/setup.py +104 -0
  765. hikyuu/shell/__init__.py +0 -0
  766. hikyuu/shell/cmdserver.py +126 -0
  767. hikyuu/shell/hkucmd.py +110 -0
  768. hikyuu/shell/hkushell.py +20 -0
  769. hikyuu/strategy/__init__.py +2 -0
  770. hikyuu/strategy/strategy_demo1.py +54 -0
  771. hikyuu/strategy/strategy_demo2.py +47 -0
  772. hikyuu/strategy/strategy_demo3.py +24 -0
  773. hikyuu/test/AllocateFunds.py +25 -0
  774. hikyuu/test/Condition.py +95 -0
  775. hikyuu/test/Datetime.py +61 -0
  776. hikyuu/test/Environment.py +88 -0
  777. hikyuu/test/Indicator.py +233 -0
  778. hikyuu/test/KData.py +64 -0
  779. hikyuu/test/MarketInfo.py +26 -0
  780. hikyuu/test/MoneyManager.py +88 -0
  781. hikyuu/test/Parameter.py +62 -0
  782. hikyuu/test/ProfitGoal.py +83 -0
  783. hikyuu/test/Signal.py +160 -0
  784. hikyuu/test/Slippage.py +88 -0
  785. hikyuu/test/Stock.py +127 -0
  786. hikyuu/test/StockTypeInfo.py +47 -0
  787. hikyuu/test/Stoploss.py +86 -0
  788. hikyuu/test/TradeCost.py +71 -0
  789. hikyuu/test/__init__.py +0 -0
  790. hikyuu/test/test.py +63 -0
  791. hikyuu/test/test_init.py +36 -0
  792. hikyuu/tools/__init__.py +1 -0
  793. hikyuu/tools/copy_file.py +16 -0
  794. hikyuu/tools/delete_index.py +50 -0
  795. hikyuu/tools/fenge.py +139 -0
  796. hikyuu/tools/h5_data_clear.py +163 -0
  797. hikyuu/tools/mysql_clear_last_day_data.py +61 -0
  798. hikyuu/tools/update_block_info.py +168 -0
  799. hikyuu/trade_manage/__init__.py +30 -0
  800. hikyuu/trade_manage/broker.py +95 -0
  801. hikyuu/trade_manage/broker_easytrader.py +63 -0
  802. hikyuu/trade_manage/broker_mail.py +101 -0
  803. hikyuu/trade_manage/trade.py +111 -0
  804. hikyuu/trade_sys/__init__.py +27 -0
  805. hikyuu/trade_sys/trade_sys.py +251 -0
  806. hikyuu/util/__init__.py +49 -0
  807. hikyuu/util/check.py +153 -0
  808. hikyuu/util/mylog.py +264 -0
  809. hikyuu/util/notebook.py +47 -0
  810. hikyuu/util/singleton.py +29 -0
  811. hikyuu/util/slice.py +43 -0
  812. hikyuu/util/timeout.py +83 -0
  813. hikyuu-2.2.4.dist-info/LICENSE +201 -0
  814. hikyuu-2.2.4.dist-info/METADATA +150 -0
  815. hikyuu-2.2.4.dist-info/RECORD +818 -0
  816. hikyuu-2.2.4.dist-info/WHEEL +5 -0
  817. hikyuu-2.2.4.dist-info/entry_points.txt +3 -0
  818. hikyuu-2.2.4.dist-info/top_level.txt +112 -0
@@ -0,0 +1,1264 @@
1
+ #!/usr/bin/python
2
+ # -*- coding: utf8 -*-
3
+ # cp936
4
+ #
5
+ # The MIT License (MIT)
6
+ #
7
+ # Copyright (c) 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
+ # ===============================================================================
28
+ # 作者:fasiondog
29
+ # 历史:1)20170923, Added by fasiondog
30
+ # ===============================================================================
31
+
32
+ from .indicator import Indicator, IndicatorImp
33
+
34
+ try:
35
+ import talib
36
+ import talib.abstract as ta
37
+ import numpy as np
38
+
39
+ def tawrap_init(self, tafunc, name, params, result_num=1, prices=None):
40
+ super(self.__class__, self).__init__(name, result_num)
41
+ for k, v in params.items():
42
+ self.set_param(k, v)
43
+ self._tafunc = tafunc
44
+ self._prices = prices
45
+ self._params = params
46
+ self._result_num = result_num
47
+
48
+ def tawrap_calculate(self, ind):
49
+ result_num = self.get_result_num()
50
+
51
+ if result_num < 1:
52
+ print("error: result_num must be >= 1!")
53
+ return
54
+
55
+ if not self._prices:
56
+ if self.name == "TA_OBV":
57
+ if ind.get_result_num() < 2:
58
+ print("error: result_num must be >= 2!")
59
+ return
60
+ inputs = {'close': ind.get_result(0).to_np(), 'volume': ind.get_result(1).to_np()}
61
+ elif self.name in ("TA_BETA", "TA_CORREL"):
62
+ if ind.get_result_num() < 2:
63
+ print("error: result_num must be >= 2!")
64
+ return
65
+ inputs = {'high': ind.get_result(0).to_np(), 'low': ind.get_result(1).to_np()}
66
+ else:
67
+ inputs = {'close': ind.to_np()}
68
+ else:
69
+ if ind.name != 'KDATA':
70
+ print("error: ind must KDATA")
71
+ return
72
+
73
+ inputs = {
74
+ 'open': ind.get_result(0).to_np(),
75
+ 'high': ind.get_result(1).to_np(),
76
+ 'low': ind.get_result(2).to_np(),
77
+ 'close': ind.get_result(3).to_np(),
78
+ 'volume': ind.get_result(5).to_np()
79
+ }
80
+
81
+ params = self.get_parameter()
82
+ param_names = params.get_name_list()
83
+ func_params = {}
84
+ for name in param_names:
85
+ if name != "kdata":
86
+ func_params[name] = self.get_param(name)
87
+
88
+ self._tafunc.set_parameters(func_params)
89
+
90
+ outputs = self._tafunc(inputs, prices=self._prices) if self._prices else self._tafunc(inputs)
91
+ if result_num == 1:
92
+ for i, val in enumerate(outputs):
93
+ if not np.isnan(val):
94
+ self._set(float(val), i)
95
+ self.set_discard(self._tafunc.lookback)
96
+
97
+ else:
98
+ for i, out in enumerate(outputs):
99
+ for j, val in enumerate(out):
100
+ if not np.isnan(val):
101
+ self._set(float(val), j, i)
102
+ self.set_discard(self._tafunc.lookback)
103
+
104
+ def check_all_true(self):
105
+ return True
106
+
107
+ def tawrap_support_ind_param(self):
108
+ return False
109
+
110
+ def tawrap_clone(self):
111
+ return crtTaIndicatorImp(
112
+ self._tafunc, self.name, self._params, self._result_num, self._prices, check=self.check
113
+ )
114
+
115
+ def crtTaIndicatorImp(tafunc, name, params={}, result_num=1, prices=None, check=check_all_true):
116
+ meta_x = type(
117
+ name, (IndicatorImp, ), {
118
+ '__init__': tawrap_init,
119
+ 'check': check,
120
+ '_clone': tawrap_clone,
121
+ '_calculate': tawrap_calculate,
122
+ 'support_ind_param': tawrap_support_ind_param,
123
+ }
124
+ )
125
+ return meta_x(tafunc, name, params, result_num, prices)
126
+
127
+ def TA_AD(ind=None):
128
+ imp = crtTaIndicatorImp(ta.AD, 'TA_AD', prices=['high', 'low', 'close', 'volume'])
129
+ return Indicator(imp)(ind) if ind else Indicator(imp)
130
+
131
+ TA_AD.__doc__ = talib.AD.__doc__
132
+
133
+ def TA_ADOSC(ind=None, fastperiod=3, slowperiod=10):
134
+ imp = crtTaIndicatorImp(
135
+ ta.ADOSC,
136
+ 'TA_ADOSC',
137
+ params={
138
+ 'fastperiod': fastperiod,
139
+ 'slowperiod': slowperiod
140
+ },
141
+ prices=['high', 'low', 'close', 'volume']
142
+ )
143
+ return Indicator(imp)(ind) if ind else Indicator(imp)
144
+
145
+ TA_ADOSC.__doc__ = talib.ADOSC.__doc__
146
+
147
+ def TA_ADX(ind=None, timeperiod=14):
148
+ imp = crtTaIndicatorImp(ta.ADX, 'TA_ADX', params={'timeperiod': timeperiod}, prices=['high', 'low', 'close'])
149
+ return Indicator(imp)(ind) if ind else Indicator(imp)
150
+
151
+ TA_ADX.__doc__ = talib.ADX.__doc__
152
+
153
+ def TA_ADXR(ind=None, timeperiod=14):
154
+ imp = crtTaIndicatorImp(ta.ADXR, 'TA_ADXR', params={'timeperiod': timeperiod}, prices=['high', 'low', 'close'])
155
+ return Indicator(imp)(ind) if ind else Indicator(imp)
156
+
157
+ TA_ADXR.__doc__ = talib.ADXR.__doc__
158
+
159
+ def TA_APO(ind=None, fastperiod=12, slowperiod=26, matype=talib.MA_Type.SMA):
160
+ imp = crtTaIndicatorImp(
161
+ ta.APO, 'TA_APO', params={
162
+ 'fastperiod': fastperiod,
163
+ 'slowperiod': slowperiod,
164
+ 'matype': matype
165
+ }
166
+ )
167
+ return Indicator(imp)(ind) if ind else Indicator(imp)
168
+
169
+ TA_APO.__doc__ = talib.APO.__doc__
170
+
171
+ def TA_AROON(ind=None, timeperiod=14):
172
+ imp = crtTaIndicatorImp(
173
+ ta.AROON, 'TA_AROON', result_num=2, params={'timeperiod': timeperiod}, prices=['high', 'low']
174
+ )
175
+ return Indicator(imp)(ind) if ind else Indicator(imp)
176
+
177
+ TA_AROON.__doc__ = talib.AROON.__doc__
178
+
179
+ def TA_AROONOSC(ind=None, timeperiod=14):
180
+ imp = crtTaIndicatorImp(
181
+ ta.AROONOSC, 'TA_AROONOSC', result_num=1, params={'timeperiod': timeperiod}, prices=['high', 'low']
182
+ )
183
+ return Indicator(imp)(ind) if ind else Indicator(imp)
184
+
185
+ TA_AROONOSC.__doc__ = talib.AROONOSC.__doc__
186
+
187
+ def TA_ATR(ind=None, timeperiod=14):
188
+ imp = crtTaIndicatorImp(
189
+ ta.ATR, 'TA_ATR', result_num=1, params={'timeperiod': timeperiod}, prices=['high', 'low', 'close']
190
+ )
191
+ return Indicator(imp)(ind) if ind else Indicator(imp)
192
+
193
+ TA_ATR.__doc__ = talib.ATR.__doc__
194
+
195
+ def TA_AVGPRICE(ind=None, timeperiod=14):
196
+ imp = crtTaIndicatorImp(
197
+ ta.AVGPRICE,
198
+ 'TA_AVGPRICE',
199
+ result_num=1,
200
+ # params={'timeperiod': timeperiod},
201
+ prices=['open', 'high', 'low', 'close']
202
+ )
203
+ return Indicator(imp)(ind) if ind else Indicator(imp)
204
+
205
+ TA_AVGPRICE.__doc__ = talib.AVGPRICE.__doc__
206
+
207
+ def TA_BBANDS(ind=None, timeperiod=14, nbdevup=2, nbdevdn=2, matype=talib.MA_Type.SMA):
208
+ imp = crtTaIndicatorImp(
209
+ ta.BBANDS,
210
+ 'TA_BBANDS',
211
+ result_num=3,
212
+ params={
213
+ 'timeperiod': timeperiod,
214
+ 'nbdevup': nbdevup,
215
+ 'nbdevdn': nbdevdn,
216
+ 'matype': matype
217
+ }
218
+ )
219
+ return Indicator(imp)(ind) if ind else Indicator(imp)
220
+
221
+ TA_BBANDS.__doc__ = talib.BBANDS.__doc__
222
+
223
+ def TA_BOP(ind=None):
224
+ imp = crtTaIndicatorImp(ta.BOP, 'TA_BOP', result_num=1, prices=['open', 'high', 'low', 'close'])
225
+ return Indicator(imp)(ind) if ind else Indicator(imp)
226
+
227
+ TA_BOP.__doc__ = talib.BOP.__doc__
228
+
229
+ def TA_CCI(ind=None, timeperiod=14):
230
+ imp = crtTaIndicatorImp(
231
+ ta.CCI, 'TA_CCI', result_num=1, params={'timeperiod': timeperiod}, prices=['high', 'low', 'close']
232
+ )
233
+ return Indicator(imp)(ind) if ind else Indicator(imp)
234
+
235
+ TA_CCI.__doc__ = talib.CCI.__doc__
236
+
237
+ def TA_CMO(ind=None, timeperiod=14):
238
+ imp = crtTaIndicatorImp(ta.CMO, 'TA_CMO', result_num=1, params={'timeperiod': timeperiod})
239
+ return Indicator(imp)(ind) if ind else Indicator(imp)
240
+
241
+ TA_CMO.__doc__ = talib.CMO.__doc__
242
+
243
+ def TA_DEMA(ind=None, timeperiod=30):
244
+ imp = crtTaIndicatorImp(ta.DEMA, 'TA_DEMA', result_num=1, params={'timeperiod': timeperiod})
245
+ return Indicator(imp)(ind) if ind else Indicator(imp)
246
+
247
+ TA_DEMA.__doc__ = talib.DEMA.__doc__
248
+
249
+ def TA_DX(ind=None, timeperiod=14):
250
+ imp = crtTaIndicatorImp(
251
+ ta.DX, 'TA_DX', result_num=1, params={'timeperiod': timeperiod}, prices=['high', 'low', 'close']
252
+ )
253
+ return Indicator(imp)(ind) if ind else Indicator(imp)
254
+
255
+ TA_DX.__doc__ = talib.DX.__doc__
256
+
257
+ def TA_EMA(ind=None, timeperiod=30):
258
+ imp = crtTaIndicatorImp(ta.EMA, 'TA_EMA', result_num=1, params={'timeperiod': timeperiod})
259
+ return Indicator(imp)(ind) if ind else Indicator(imp)
260
+
261
+ TA_EMA.__doc__ = talib.EMA.__doc__
262
+
263
+ def TA_HT_DCPERIOD(ind=None):
264
+ imp = crtTaIndicatorImp(ta.HT_DCPERIOD, 'TA_HT_DCPERIOD', result_num=1)
265
+ return Indicator(imp)(ind) if ind else Indicator(imp)
266
+
267
+ TA_HT_DCPERIOD.__doc__ = talib.HT_DCPERIOD.__doc__
268
+
269
+ def TA_HT_DCPHASE(ind=None):
270
+ imp = crtTaIndicatorImp(ta.HT_DCPHASE, 'TA_HT_DCPHASE', result_num=1)
271
+ return Indicator(imp)(ind) if ind else Indicator(imp)
272
+
273
+ TA_HT_DCPHASE.__doc__ = talib.HT_DCPHASE.__doc__
274
+
275
+ def TA_HT_PHASOR(ind=None):
276
+ imp = crtTaIndicatorImp(ta.HT_PHASOR, 'TA_HT_PHASOR', result_num=2)
277
+ return Indicator(imp)(ind) if ind else Indicator(imp)
278
+
279
+ TA_HT_PHASOR.__doc__ = talib.HT_PHASOR.__doc__
280
+
281
+ def TA_HT_SINE(ind=None):
282
+ imp = crtTaIndicatorImp(ta.HT_SINE, 'TA_HT_SINE', result_num=2)
283
+ return Indicator(imp)(ind) if ind else Indicator(imp)
284
+
285
+ TA_HT_SINE.__doc__ = talib.HT_SINE.__doc__
286
+
287
+ def TA_HT_TRENDLINE(ind=None):
288
+ imp = crtTaIndicatorImp(ta.HT_TRENDLINE, 'TA_HT_TRENDLINE', result_num=1)
289
+ return Indicator(imp)(ind) if ind else Indicator(imp)
290
+
291
+ TA_HT_TRENDLINE.__doc__ = talib.HT_TRENDLINE.__doc__
292
+
293
+ def TA_HT_TRENDMODE(ind=None):
294
+ imp = crtTaIndicatorImp(ta.HT_TRENDMODE, 'TA_HT_TRENDMODE', result_num=1)
295
+ return Indicator(imp)(ind) if ind else Indicator(imp)
296
+
297
+ TA_HT_TRENDMODE.__doc__ = talib.HT_TRENDMODE.__doc__
298
+
299
+ def TA_KAMA(ind=None, timeperiod=30):
300
+ imp = crtTaIndicatorImp(ta.KAMA, 'TA_KAMA', result_num=1, params={'timeperiod': timeperiod})
301
+ return Indicator(imp)(ind) if ind else Indicator(imp)
302
+
303
+ TA_KAMA.__doc__ = talib.KAMA.__doc__
304
+
305
+ def TA_LINEARREG(ind=None, timeperiod=14):
306
+ imp = crtTaIndicatorImp(ta.LINEARREG, 'TA_LINEARREG', result_num=1, params={'timeperiod': timeperiod})
307
+ return Indicator(imp)(ind) if ind else Indicator(imp)
308
+
309
+ TA_LINEARREG.__doc__ = talib.LINEARREG.__doc__
310
+
311
+ def TA_LINEARREG_ANGLE(ind=None, timeperiod=14):
312
+ imp = crtTaIndicatorImp(
313
+ ta.LINEARREG_ANGLE, 'TA_LINEARREG_ANGLE', result_num=1, params={'timeperiod': timeperiod}
314
+ )
315
+ return Indicator(imp)(ind) if ind else Indicator(imp)
316
+
317
+ TA_LINEARREG_ANGLE.__doc__ = talib.LINEARREG_ANGLE.__doc__
318
+
319
+ def TA_LINEARREG_INTERCEPT(ind=None, timeperiod=14):
320
+ imp = crtTaIndicatorImp(
321
+ ta.LINEARREG_INTERCEPT, 'TA_LINEARREG_INTERCEPT', result_num=1, params={'timeperiod': timeperiod}
322
+ )
323
+ return Indicator(imp)(ind) if ind else Indicator(imp)
324
+
325
+ TA_LINEARREG_INTERCEPT.__doc__ = talib.LINEARREG_INTERCEPT.__doc__
326
+
327
+ def TA_LINEARREG_SLOPE(ind=None, timeperiod=14):
328
+ imp = crtTaIndicatorImp(
329
+ ta.LINEARREG_SLOPE, 'TA_LINEARREG_SLOPE', result_num=1, params={'timeperiod': timeperiod}
330
+ )
331
+ return Indicator(imp)(ind) if ind else Indicator(imp)
332
+
333
+ TA_LINEARREG_SLOPE.__doc__ = talib.LINEARREG_SLOPE.__doc__
334
+
335
+ def TA_MA(ind=None, timeperiod=30, matype=talib.MA_Type.SMA):
336
+ imp = crtTaIndicatorImp(ta.MA, 'TA_MA', result_num=1, params={'timeperiod': timeperiod, 'matype': matype})
337
+ return Indicator(imp)(ind) if ind else Indicator(imp)
338
+
339
+ TA_MA.__doc__ = talib.MA.__doc__
340
+
341
+ def TA_MACD(ind=None, fastperiod=12, slowperiod=26, signalperiod=9):
342
+ imp = crtTaIndicatorImp(
343
+ ta.MACD,
344
+ 'TA_MACD',
345
+ result_num=3,
346
+ params={
347
+ 'fastperiod': fastperiod,
348
+ 'slowperiod': slowperiod,
349
+ 'signalperiod': signalperiod
350
+ }
351
+ )
352
+ return Indicator(imp)(ind) if ind else Indicator(imp)
353
+
354
+ TA_MACD.__doc__ = talib.MACD.__doc__
355
+
356
+ def TA_MACDEXT(
357
+ ind=None,
358
+ fastperiod=12,
359
+ fastmatype=talib.MA_Type.SMA,
360
+ slowperiod=26,
361
+ slowmatype=talib.MA_Type.SMA,
362
+ signalperiod=9,
363
+ signalmatype=talib.MA_Type.SMA
364
+ ):
365
+ imp = crtTaIndicatorImp(
366
+ ta.MACDEXT,
367
+ 'TA_MACDEXT',
368
+ result_num=3,
369
+ params={
370
+ 'fastperiod': fastperiod,
371
+ 'fastmatype': fastmatype,
372
+ 'slowperiod': slowperiod,
373
+ 'slowmatype': slowmatype,
374
+ 'signalperiod': signalperiod,
375
+ 'signalmatype': signalmatype
376
+ }
377
+ )
378
+ return Indicator(imp)(ind) if ind else Indicator(imp)
379
+
380
+ TA_MACDEXT.__doc__ = talib.MACDEXT.__doc__
381
+
382
+ def TA_MACDFIX(ind=None, signalperiod=9):
383
+ imp = crtTaIndicatorImp(ta.MACDFIX, 'TA_MACDFIX', result_num=3, params={'signalperiod': signalperiod})
384
+ return Indicator(imp)(ind) if ind else Indicator(imp)
385
+
386
+ TA_MACDFIX.__doc__ = talib.MACDFIX.__doc__
387
+
388
+ def TA_MAMA(ind=None, fastlimit=0.5, slowlimit=0.05):
389
+ imp = crtTaIndicatorImp(
390
+ ta.MAMA, 'TA_MAMA', result_num=2, params={
391
+ 'fastlimit': fastlimit,
392
+ 'slowlimit': slowlimit
393
+ }
394
+ )
395
+ return Indicator(imp)(ind) if ind else Indicator(imp)
396
+
397
+ TA_MAMA.__doc__ = talib.MAMA.__doc__
398
+
399
+ def TA_MAX(ind=None, timeperiod=30):
400
+ imp = crtTaIndicatorImp(ta.MAX, 'TA_MAX', result_num=1, params={'timeperiod': timeperiod})
401
+ return Indicator(imp)(ind) if ind else Indicator(imp)
402
+
403
+ TA_MAX.__doc__ = talib.MAX.__doc__
404
+
405
+ def TA_MAXINDEX(ind=None, timeperiod=30):
406
+ imp = crtTaIndicatorImp(ta.MAXINDEX, 'TA_MAXINDEX', result_num=1, params={'timeperiod': timeperiod})
407
+ return Indicator(imp)(ind) if ind else Indicator(imp)
408
+
409
+ TA_MAXINDEX.__doc__ = talib.MAXINDEX.__doc__
410
+
411
+ def TA_MEDPRICE(ind=None):
412
+ imp = crtTaIndicatorImp(ta.MEDPRICE, 'TA_MEDPRICE', result_num=1, prices=['high', 'low'])
413
+ return Indicator(imp)(ind) if ind else Indicator(imp)
414
+
415
+ TA_MEDPRICE.__doc__ = talib.MEDPRICE.__doc__
416
+
417
+ def TA_MIDPOINT(ind=None, timeperiod=14):
418
+ imp = crtTaIndicatorImp(ta.MIDPOINT, 'TA_MIDPOINT', result_num=1, params={'timeperiod': timeperiod})
419
+ return Indicator(imp)(ind) if ind else Indicator(imp)
420
+
421
+ TA_MIDPOINT.__doc__ = talib.MIDPRICE.__doc__
422
+
423
+ def TA_MIDPRICE(ind=None, timeperiod=14):
424
+ imp = crtTaIndicatorImp(
425
+ ta.MIDPRICE, 'TA_MIDPRICE', result_num=1, params={'timeperiod': timeperiod}, prices=['high', 'low']
426
+ )
427
+ return Indicator(imp)(ind) if ind else Indicator(imp)
428
+
429
+ TA_MIDPRICE.__doc__ = talib.MIDPRICE.__doc__
430
+
431
+ def TA_MIN(ind=None, timeperiod=30):
432
+ imp = crtTaIndicatorImp(ta.MIN, 'TA_MIN', result_num=1, params={'timeperiod': timeperiod})
433
+ return Indicator(imp)(ind) if ind else Indicator(imp)
434
+
435
+ TA_MIN.__doc__ = talib.MIN.__doc__
436
+
437
+ def TA_MININDEX(ind=None, timeperiod=30):
438
+ imp = crtTaIndicatorImp(ta.MININDEX, 'TA_MININDEX', result_num=1, params={'timeperiod': timeperiod})
439
+ return Indicator(imp)(ind) if ind else Indicator(imp)
440
+
441
+ TA_MININDEX.__doc__ = talib.MININDEX.__doc__
442
+
443
+ def TA_MINMAX(ind=None, timeperiod=30):
444
+ imp = crtTaIndicatorImp(ta.MINMAX, 'TA_MINMAX', result_num=2, params={'timeperiod': timeperiod})
445
+ return Indicator(imp)(ind) if ind else Indicator(imp)
446
+
447
+ TA_MINMAX.__doc__ = talib.MINMAX.__doc__
448
+
449
+ def TA_MINMAXINDEX(ind=None, timeperiod=30):
450
+ imp = crtTaIndicatorImp(ta.MINMAXINDEX, 'TA_MINMAXINDEX', result_num=2, params={'timeperiod': timeperiod})
451
+ return Indicator(imp)(ind) if ind else Indicator(imp)
452
+
453
+ TA_MINMAXINDEX.__doc__ = talib.MINMAXINDEX.__doc__
454
+
455
+ def TA_MINUS_DI(ind=None, timeperiod=14):
456
+ imp = crtTaIndicatorImp(
457
+ ta.MINUS_DI,
458
+ 'TA_MINUS_DI',
459
+ result_num=1,
460
+ params={'timeperiod': timeperiod},
461
+ prices=['high', 'low', 'close']
462
+ )
463
+ return Indicator(imp)(ind) if ind else Indicator(imp)
464
+
465
+ TA_MINUS_DI.__doc__ = talib.MINUS_DI.__doc__
466
+
467
+ def TA_MINUS_DM(ind=None, timeperiod=14):
468
+ imp = crtTaIndicatorImp(
469
+ ta.MINUS_DM, 'TA_MINUS_DM', result_num=1, params={'timeperiod': timeperiod}, prices=['high', 'low']
470
+ )
471
+ return Indicator(imp)(ind) if ind else Indicator(imp)
472
+
473
+ TA_MINUS_DM.__doc__ = talib.MINUS_DM.__doc__
474
+
475
+ def TA_MOM(ind=None, timeperiod=10):
476
+ imp = crtTaIndicatorImp(ta.MOM, 'TA_MOM', result_num=1, params={'timeperiod': timeperiod})
477
+ return Indicator(imp)(ind) if ind else Indicator(imp)
478
+
479
+ TA_MOM.__doc__ = talib.MOM.__doc__
480
+
481
+ def TA_NATR(ind=None, timeperiod=14):
482
+ imp = crtTaIndicatorImp(
483
+ ta.NATR, 'TA_NATR', result_num=1, params={'timeperiod': timeperiod}, prices=['high', 'low', 'close']
484
+ )
485
+ return Indicator(imp)(ind) if ind else Indicator(imp)
486
+
487
+ TA_NATR.__doc__ = talib.NATR.__doc__
488
+
489
+ def TA_PLUS_DI(ind=None, timeperiod=14):
490
+ imp = crtTaIndicatorImp(
491
+ ta.PLUS_DI, 'TA_PLUS_DI', result_num=1, params={'timeperiod': timeperiod}, prices=['high', 'low', 'close']
492
+ )
493
+ return Indicator(imp)(ind) if ind else Indicator(imp)
494
+
495
+ TA_PLUS_DI.__doc__ = talib.PLUS_DI.__doc__
496
+
497
+ def TA_PLUS_DM(ind=None, timeperiod=14):
498
+ imp = crtTaIndicatorImp(
499
+ ta.PLUS_DM, 'TA_PLUS_DM', result_num=1, params={'timeperiod': timeperiod}, prices=['high', 'low']
500
+ )
501
+ return Indicator(imp)(ind) if ind else Indicator(imp)
502
+
503
+ TA_PLUS_DM.__doc__ = talib.PLUS_DM.__doc__
504
+
505
+ def TA_PPO(ind=None, fastperiod=12, slowperiod=26, matype=talib.MA_Type.SMA):
506
+ imp = crtTaIndicatorImp(
507
+ ta.PPO,
508
+ 'TA_PPO',
509
+ result_num=1,
510
+ params={
511
+ 'fastperiod': fastperiod,
512
+ 'slowperiod': slowperiod,
513
+ 'matype': matype
514
+ }
515
+ )
516
+ return Indicator(imp)(ind) if ind else Indicator(imp)
517
+
518
+ TA_PPO.__doc__ = talib.PPO.__doc__
519
+
520
+ def TA_ROC(ind=None, timeperiod=10):
521
+ imp = crtTaIndicatorImp(ta.ROC, 'TA_ROC', result_num=1, params={'timeperiod': timeperiod})
522
+ return Indicator(imp)(ind) if ind else Indicator(imp)
523
+
524
+ TA_ROC.__doc__ = talib.ROC.__doc__
525
+
526
+ def TA_ROCP(ind=None, timeperiod=10):
527
+ imp = crtTaIndicatorImp(ta.ROCP, 'TA_ROCP', result_num=1, params={'timeperiod': timeperiod})
528
+ return Indicator(imp)(ind) if ind else Indicator(imp)
529
+
530
+ TA_ROCP.__doc__ = talib.ROCP.__doc__
531
+
532
+ def TA_ROCR(ind=None, timeperiod=10):
533
+ imp = crtTaIndicatorImp(ta.ROCR, 'TA_ROCR', result_num=1, params={'timeperiod': timeperiod})
534
+ return Indicator(imp)(ind) if ind else Indicator(imp)
535
+
536
+ TA_ROCR.__doc__ = talib.ROCR.__doc__
537
+
538
+ def TA_ROCR100(ind=None, timeperiod=10):
539
+ imp = crtTaIndicatorImp(ta.ROCR100, 'TA_ROCR100', result_num=1, params={'timeperiod': timeperiod})
540
+ return Indicator(imp)(ind) if ind else Indicator(imp)
541
+
542
+ TA_ROCR100.__doc__ = talib.ROCR100.__doc__
543
+
544
+ def TA_RSI(ind=None, timeperiod=14):
545
+ imp = crtTaIndicatorImp(ta.RSI, 'TA_RSI', result_num=1, params={'timeperiod': timeperiod})
546
+ return Indicator(imp)(ind) if ind else Indicator(imp)
547
+
548
+ TA_RSI.__doc__ = talib.RSI.__doc__
549
+
550
+ def TA_SAR(ind=None, acceleration=0.02, maximum=0.2):
551
+ imp = crtTaIndicatorImp(
552
+ ta.SAR,
553
+ 'TA_SAR',
554
+ result_num=1,
555
+ params={
556
+ 'acceleration': acceleration,
557
+ 'maximum': maximum
558
+ },
559
+ prices=['high', 'low']
560
+ )
561
+ return Indicator(imp)(ind) if ind else Indicator(imp)
562
+
563
+ TA_SAR.__doc__ = talib.SAR.__doc__
564
+
565
+ def TA_SAREXT(
566
+ ind=None,
567
+ startvalue=0,
568
+ offsetonreverse=0,
569
+ accelerationinitlong=0.02,
570
+ accelerationlong=0.02,
571
+ accelerationmaxlong=0.02,
572
+ accelerationinitshort=0.02,
573
+ accelerationshort=0.02,
574
+ accelerationmaxshort=0.02
575
+ ):
576
+ imp = crtTaIndicatorImp(
577
+ ta.SAREXT,
578
+ 'TA_SAREXT',
579
+ result_num=1,
580
+ params={
581
+ 'startvalue': startvalue,
582
+ 'offsetonreverse': offsetonreverse,
583
+ 'accelerationinitlong': accelerationinitlong,
584
+ 'accelerationlong': accelerationlong,
585
+ 'accelerationmaxlong': accelerationmaxlong,
586
+ 'accelerationinitshort': accelerationinitshort,
587
+ 'accelerationshort': accelerationshort,
588
+ 'accelerationmaxshort': accelerationmaxshort
589
+ },
590
+ prices=['high', 'low']
591
+ )
592
+ return Indicator(imp)(ind) if ind else Indicator(imp)
593
+
594
+ TA_SAREXT.__doc__ = talib.SAREXT.__doc__
595
+
596
+ def TA_SMA(ind=None, timeperiod=30):
597
+ imp = crtTaIndicatorImp(ta.SMA, 'TA_SMA', result_num=1, params={'timeperiod': timeperiod})
598
+ return Indicator(imp)(ind) if ind else Indicator(imp)
599
+
600
+ TA_SMA.__doc__ = talib.SMA.__doc__
601
+
602
+ def TA_STDDEV(ind=None, timeperiod=5, nbdev=1):
603
+ imp = crtTaIndicatorImp(ta.STDDEV, 'TA_STDDEV', result_num=1, params={'timeperiod': timeperiod, 'nbdev': nbdev})
604
+ return Indicator(imp)(ind) if ind else Indicator(imp)
605
+
606
+ TA_STDDEV.__doc__ = talib.STDDEV.__doc__
607
+
608
+ def TA_STOCH(
609
+ ind=None,
610
+ fastk_period=5,
611
+ slowk_period=3,
612
+ slowk_matype=talib.MA_Type.SMA,
613
+ slowd_period=3,
614
+ slowd_matype=talib.MA_Type.SMA
615
+ ):
616
+ imp = crtTaIndicatorImp(
617
+ ta.STOCH,
618
+ 'TA_STOCH',
619
+ result_num=2,
620
+ params={
621
+ 'fastk_period': fastk_period,
622
+ 'slowk_period': slowk_period,
623
+ 'slowk_matype': slowk_matype,
624
+ 'slowd_period': slowd_period,
625
+ 'slowd_matype': slowd_matype
626
+ },
627
+ prices=['high', 'low', 'close']
628
+ )
629
+ return Indicator(imp)(ind) if ind else Indicator(imp)
630
+
631
+ TA_STOCH.__doc__ = talib.STOCH.__doc__
632
+
633
+ def TA_STOCHF(ind=None, fastk_period=5, fastd_period=3, fastd_matype=talib.MA_Type.SMA):
634
+ imp = crtTaIndicatorImp(
635
+ ta.STOCHF,
636
+ 'TA_STOCHF',
637
+ result_num=2,
638
+ params={
639
+ 'fastk_period': fastk_period,
640
+ 'fastd_period': fastd_period,
641
+ 'fastd_matype': fastd_matype
642
+ },
643
+ prices=['high', 'low', 'close']
644
+ )
645
+ return Indicator(imp)(ind) if ind else Indicator(imp)
646
+
647
+ TA_STOCHF.__doc__ = talib.STOCHF.__doc__
648
+
649
+ def TA_STOCHRSI(ind=None, timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=talib.MA_Type.SMA):
650
+ imp = crtTaIndicatorImp(
651
+ ta.STOCHRSI,
652
+ 'TA_STOCHRSI',
653
+ result_num=2,
654
+ params={
655
+ 'timeperiod': timeperiod,
656
+ 'fastk_period': fastk_period,
657
+ 'fastd_period': fastd_period,
658
+ 'fastd_matype': fastd_matype
659
+ }
660
+ )
661
+ return Indicator(imp)(ind) if ind else Indicator(imp)
662
+
663
+ TA_STOCHRSI.__doc__ = talib.STOCHRSI.__doc__
664
+
665
+ def TA_SUM(ind=None, timeperiod=30):
666
+ imp = crtTaIndicatorImp(ta.SUM, 'TA_SUM', result_num=1, params={'timeperiod': timeperiod})
667
+ return Indicator(imp)(ind) if ind else Indicator(imp)
668
+
669
+ TA_SUM.__doc__ = talib.SUM.__doc__
670
+
671
+ def TA_T3(ind=None, timeperiod=5, vfactor=0.7):
672
+ imp = crtTaIndicatorImp(ta.T3, 'TA_T3', result_num=1, params={'timeperiod': timeperiod, 'vfactor': vfactor})
673
+ return Indicator(imp)(ind) if ind else Indicator(imp)
674
+
675
+ TA_T3.__doc__ = talib.T3.__doc__
676
+
677
+ def TA_TEMA(ind=None, timeperiod=30):
678
+ imp = crtTaIndicatorImp(ta.TEMA, 'TA_TEMA', result_num=1, params={'timeperiod': timeperiod})
679
+ return Indicator(imp)(ind) if ind else Indicator(imp)
680
+
681
+ TA_TEMA.__doc__ = talib.TEMA.__doc__
682
+
683
+ def TA_TRANGE(ind=None):
684
+ imp = crtTaIndicatorImp(ta.TRANGE, 'TA_TRANGE', result_num=1, prices=['high', 'low', 'close'])
685
+ return Indicator(imp)(ind) if ind else Indicator(imp)
686
+
687
+ TA_TRANGE.__doc__ = talib.TRANGE.__doc__
688
+
689
+ def TA_TRIMA(ind=None, timeperiod=30):
690
+ imp = crtTaIndicatorImp(ta.TRIMA, 'TA_TRIMA', result_num=1, params={'timeperiod': timeperiod})
691
+ return Indicator(imp)(ind) if ind else Indicator(imp)
692
+
693
+ TA_TRIMA.__doc__ = talib.TRIMA.__doc__
694
+
695
+ def TA_TRIX(ind=None, timeperiod=30):
696
+ imp = crtTaIndicatorImp(ta.TRIX, 'TA_TRIX', result_num=1, params={'timeperiod': timeperiod})
697
+ return Indicator(imp)(ind) if ind else Indicator(imp)
698
+
699
+ TA_TRIX.__doc__ = talib.TRIX.__doc__
700
+
701
+ def TA_TSF(ind=None, timeperiod=14):
702
+ imp = crtTaIndicatorImp(ta.TSF, 'TA_TSF', result_num=1, params={'timeperiod': timeperiod})
703
+ return Indicator(imp)(ind) if ind else Indicator(imp)
704
+
705
+ TA_TSF.__doc__ = talib.TSF.__doc__
706
+
707
+ def TA_TYPPRICE(ind=None, timeperiod=14):
708
+ imp = crtTaIndicatorImp(ta.TYPPRICE, 'TA_TYPPRICE', result_num=1, prices=['high', 'low', 'close'])
709
+ return Indicator(imp)(ind) if ind else Indicator(imp)
710
+
711
+ TA_TYPPRICE.__doc__ = talib.TYPPRICE.__doc__
712
+
713
+ def TA_ULTOSC(ind=None, timeperiod1=7, timeperiod2=14, timeperiod3=28):
714
+ imp = crtTaIndicatorImp(
715
+ ta.ULTOSC,
716
+ 'TA_ULTOSC',
717
+ result_num=1,
718
+ params={
719
+ 'timeperiod1': timeperiod1,
720
+ 'timeperiod2': timeperiod2,
721
+ 'timeperiod3': timeperiod3,
722
+ },
723
+ prices=['high', 'low', 'close']
724
+ )
725
+ return Indicator(imp)(ind) if ind else Indicator(imp)
726
+
727
+ TA_ULTOSC.__doc__ = talib.ULTOSC.__doc__
728
+
729
+ def TA_VAR(ind=None, timeperiod=5, nbdev=1):
730
+ imp = crtTaIndicatorImp(ta.VAR, 'TA_VAR', result_num=1, params={'timeperiod': timeperiod, 'nbdev': nbdev})
731
+ return Indicator(imp)(ind) if ind else Indicator(imp)
732
+
733
+ TA_VAR.__doc__ = talib.VAR.__doc__
734
+
735
+ def TA_WCLPRICE(ind=None):
736
+ imp = crtTaIndicatorImp(ta.WCLPRICE, 'TA_WCLPRICE', result_num=1, prices=['high', 'low', 'close'])
737
+ return Indicator(imp)(ind) if ind else Indicator(imp)
738
+
739
+ TA_WCLPRICE.__doc__ = talib.WCLPRICE.__doc__
740
+
741
+ def TA_WILLR(ind=None, timeperiod=14):
742
+ imp = crtTaIndicatorImp(
743
+ ta.WILLR, 'TA_WILLR', result_num=1, params={'timeperiod': timeperiod}, prices=['high', 'low', 'close']
744
+ )
745
+ return Indicator(imp)(ind) if ind else Indicator(imp)
746
+
747
+ TA_WILLR.__doc__ = talib.WILLR.__doc__
748
+
749
+ def TA_WMA(ind=None, timeperiod=30):
750
+ imp = crtTaIndicatorImp(ta.WMA, 'TA_WMA', result_num=1, params={'timeperiod': timeperiod})
751
+ return Indicator(imp)(ind) if ind else Indicator(imp)
752
+
753
+ TA_WMA.__doc__ = talib.WMA.__doc__
754
+
755
+ def TA_CDL2CROWS(ind=None):
756
+ imp = crtTaIndicatorImp(ta.CDL2CROWS, 'TA_CDL2CROWS', result_num=1, prices=['open', 'high', 'low', 'close'])
757
+ return Indicator(imp)(ind) if ind else Indicator(imp)
758
+
759
+ TA_CDL2CROWS.__doc__ = talib.CDL2CROWS.__doc__
760
+
761
+ def TA_CDL3BLACKCROWS(ind=None):
762
+ imp = crtTaIndicatorImp(
763
+ ta.CDL3BLACKCROWS, 'TA_CDL3BLACKCROWS', result_num=1, prices=['open', 'high', 'low', 'close']
764
+ )
765
+ return Indicator(imp)(ind) if ind else Indicator(imp)
766
+
767
+ TA_CDL3BLACKCROWS.__doc__ = talib.CDL3BLACKCROWS.__doc__
768
+
769
+ def TA_CDL3INSIDE(ind=None):
770
+ imp = crtTaIndicatorImp(ta.CDL3INSIDE, 'TA_CDL3INSIDE', result_num=1, prices=['open', 'high', 'low', 'close'])
771
+ return Indicator(imp)(ind) if ind else Indicator(imp)
772
+
773
+ TA_CDL3INSIDE.__doc__ = talib.CDL3INSIDE.__doc__
774
+
775
+ def TA_CDL3LINESTRIKE(ind=None):
776
+ imp = crtTaIndicatorImp(
777
+ ta.CDL3LINESTRIKE, 'TA_CDL3LINESTRIKE', result_num=1, prices=['open', 'high', 'low', 'close']
778
+ )
779
+ return Indicator(imp)(ind) if ind else Indicator(imp)
780
+
781
+ TA_CDL3LINESTRIKE.__doc__ = talib.CDL3LINESTRIKE.__doc__
782
+
783
+ def TA_CDL3OUTSIDE(ind=None):
784
+ imp = crtTaIndicatorImp(ta.CDL3OUTSIDE, 'TA_CDL3OUTSIDE', result_num=1, prices=['open', 'high', 'low', 'close'])
785
+ return Indicator(imp)(ind) if ind else Indicator(imp)
786
+
787
+ TA_CDL3OUTSIDE.__doc__ = talib.CDL3OUTSIDE.__doc__
788
+
789
+ def TA_CDL3STARSINSOUTH(ind=None):
790
+ imp = crtTaIndicatorImp(
791
+ ta.CDL3STARSINSOUTH, 'TA_CDL3STARSINSOUTH', result_num=1, prices=['open', 'high', 'low', 'close']
792
+ )
793
+ return Indicator(imp)(ind) if ind else Indicator(imp)
794
+
795
+ TA_CDL3STARSINSOUTH.__doc__ = talib.CDL3STARSINSOUTH.__doc__
796
+
797
+ def TA_CDL3WHITESOLDIERS(ind=None):
798
+ imp = crtTaIndicatorImp(
799
+ ta.CDL3WHITESOLDIERS, 'TA_CDL3WHITESOLDIERS', result_num=1, prices=['open', 'high', 'low', 'close']
800
+ )
801
+ return Indicator(imp)(ind) if ind else Indicator(imp)
802
+
803
+ TA_CDL3WHITESOLDIERS.__doc__ = talib.CDL3WHITESOLDIERS.__doc__
804
+
805
+ def TA_CDLABANDONEDBABY(ind=None, penetration=0.3):
806
+ imp = crtTaIndicatorImp(
807
+ ta.CDLABANDONEDBABY,
808
+ 'TA_CDLABANDONEDBABY',
809
+ result_num=1,
810
+ params={'penetration': penetration},
811
+ prices=['open', 'high', 'low', 'close']
812
+ )
813
+ return Indicator(imp)(ind) if ind else Indicator(imp)
814
+
815
+ TA_CDLABANDONEDBABY.__doc__ = talib.CDLABANDONEDBABY.__doc__
816
+
817
+ def TA_CDLADVANCEBLOCK(ind=None):
818
+ imp = crtTaIndicatorImp(
819
+ ta.CDLADVANCEBLOCK, 'TA_CDLADVANCEBLOCK', result_num=1, prices=['open', 'high', 'low', 'close']
820
+ )
821
+ return Indicator(imp)(ind) if ind else Indicator(imp)
822
+
823
+ TA_CDLADVANCEBLOCK = talib.CDLADVANCEBLOCK.__doc__
824
+
825
+ def TA_CDLBELTHOLD(ind=None):
826
+ imp = crtTaIndicatorImp(ta.CDLBELTHOLD, 'TA_CDLBELTHOLD', result_num=1, prices=['open', 'high', 'low', 'close'])
827
+ return Indicator(imp)(ind) if ind else Indicator(imp)
828
+
829
+ TA_CDLBELTHOLD.__doc__ = talib.CDLBELTHOLD.__doc__
830
+
831
+ def TA_CDLBREAKAWAY(ind=None):
832
+ imp = crtTaIndicatorImp(
833
+ ta.CDLBREAKAWAY, 'TA_CDLBREAKAWAY', result_num=1, prices=['open', 'high', 'low', 'close']
834
+ )
835
+ return Indicator(imp)(ind) if ind else Indicator(imp)
836
+
837
+ TA_CDLBREAKAWAY.__doc__ = talib.CDLBREAKAWAY.__doc__
838
+
839
+ def TA_CDLCLOSINGMARUBOZU(ind=None):
840
+ imp = crtTaIndicatorImp(
841
+ ta.CDLCLOSINGMARUBOZU, 'TA_CDLCLOSINGMARUBOZU', result_num=1, prices=['open', 'high', 'low', 'close']
842
+ )
843
+ return Indicator(imp)(ind) if ind else Indicator(imp)
844
+
845
+ TA_CDLCLOSINGMARUBOZU.__doc__ = talib.CDLCLOSINGMARUBOZU.__doc__
846
+
847
+ def TA_CDLCONCEALBABYSWALL(ind=None):
848
+ imp = crtTaIndicatorImp(
849
+ ta.CDLCONCEALBABYSWALL, 'TA_CDLCONCEALBABYSWALL', result_num=1, prices=['open', 'high', 'low', 'close']
850
+ )
851
+ return Indicator(imp)(ind) if ind else Indicator(imp)
852
+
853
+ TA_CDLCONCEALBABYSWALL.__doc__ = talib.CDLCONCEALBABYSWALL.__doc__
854
+
855
+ def TA_CDLCOUNTERATTACK(ind=None):
856
+ imp = crtTaIndicatorImp(
857
+ ta.CDLCOUNTERATTACK, 'TA_CDLCOUNTERATTACK', result_num=1, prices=['open', 'high', 'low', 'close']
858
+ )
859
+ return Indicator(imp)(ind) if ind else Indicator(imp)
860
+
861
+ TA_CDLCOUNTERATTACK.__doc__ = talib.CDLCOUNTERATTACK.__doc__
862
+
863
+ def TA_CDLDARKCLOUDCOVER(ind=None, penetration=0.5):
864
+ imp = crtTaIndicatorImp(
865
+ ta.CDLDARKCLOUDCOVER,
866
+ 'TA_CDLDARKCLOUDCOVER',
867
+ result_num=1,
868
+ params={'penetration': penetration},
869
+ prices=['open', 'high', 'low', 'close']
870
+ )
871
+ return Indicator(imp)(ind) if ind else Indicator(imp)
872
+
873
+ TA_CDLDARKCLOUDCOVER.__doc__ = talib.CDLDARKCLOUDCOVER.__doc__
874
+
875
+ def TA_CDLDOJI(ind=None):
876
+ imp = crtTaIndicatorImp(ta.CDLDOJI, 'TA_CDLDOJI', result_num=1, prices=['open', 'high', 'low', 'close'])
877
+ return Indicator(imp)(ind) if ind else Indicator(imp)
878
+
879
+ TA_CDLDOJI.__doc__ = talib.CDLDOJI.__doc__
880
+
881
+ def TA_CDLDOJISTAR(ind=None):
882
+ imp = crtTaIndicatorImp(ta.CDLDOJISTAR, 'TA_CDLDOJISTAR', result_num=1, prices=['open', 'high', 'low', 'close'])
883
+ return Indicator(imp)(ind) if ind else Indicator(imp)
884
+
885
+ TA_CDLDOJISTAR.__doc__ = talib.CDLDOJISTAR.__doc__
886
+
887
+ def TA_CDLDRAGONFLYDOJI(ind=None):
888
+ imp = crtTaIndicatorImp(
889
+ ta.CDLDRAGONFLYDOJI, 'TA_CDLDRAGONFLYDOJI', result_num=1, prices=['open', 'high', 'low', 'close']
890
+ )
891
+ return Indicator(imp)(ind) if ind else Indicator(imp)
892
+
893
+ TA_CDLDRAGONFLYDOJI.__doc__ = talib.CDLDRAGONFLYDOJI.__doc__
894
+
895
+ def TA_CDLENGULFING(ind=None):
896
+ imp = crtTaIndicatorImp(
897
+ ta.CDLENGULFING, 'TA_CDLENGULFING', result_num=1, prices=['open', 'high', 'low', 'close']
898
+ )
899
+ return Indicator(imp)(ind) if ind else Indicator(imp)
900
+
901
+ TA_CDLENGULFING.__doc__ = talib.CDLENGULFING.__doc__
902
+
903
+ def TA_CDLEVENINGDOJISTAR(ind=None, penetration=0.3):
904
+ imp = crtTaIndicatorImp(
905
+ ta.CDLEVENINGDOJISTAR,
906
+ 'TA_CDLEVENINGDOJISTAR',
907
+ result_num=1,
908
+ params={'penetration': penetration},
909
+ prices=['open', 'high', 'low', 'close']
910
+ )
911
+ return Indicator(imp)(ind) if ind else Indicator(imp)
912
+
913
+ TA_CDLEVENINGDOJISTAR.__doc__ = talib.CDLEVENINGDOJISTAR.__doc__
914
+
915
+ def TA_CDLEVENINGSTAR(ind=None, penetration=0.3):
916
+ imp = crtTaIndicatorImp(
917
+ ta.CDLEVENINGSTAR,
918
+ 'TA_CDLEVENINGSTAR',
919
+ result_num=1,
920
+ params={'penetration': penetration},
921
+ prices=['open', 'high', 'low', 'close']
922
+ )
923
+ return Indicator(imp)(ind) if ind else Indicator(imp)
924
+
925
+ TA_CDLEVENINGSTAR.__doc__ = talib.CDLEVENINGSTAR.__doc__
926
+
927
+ def TA_CDLGAPSIDESIDEWHITE(ind=None):
928
+ imp = crtTaIndicatorImp(
929
+ ta.CDLGAPSIDESIDEWHITE, 'TA_CDLGAPSIDESIDEWHITE', result_num=1, prices=['open', 'high', 'low', 'close']
930
+ )
931
+ return Indicator(imp)(ind) if ind else Indicator(imp)
932
+
933
+ TA_CDLGAPSIDESIDEWHITE.__doc__ = talib.CDLGAPSIDESIDEWHITE.__doc__
934
+
935
+ def TA_CDLGRAVESTONEDOJI(ind=None):
936
+ imp = crtTaIndicatorImp(
937
+ ta.CDLGRAVESTONEDOJI, 'TA_CDLGRAVESTONEDOJI', result_num=1, prices=['open', 'high', 'low', 'close']
938
+ )
939
+ return Indicator(imp)(ind) if ind else Indicator(imp)
940
+
941
+ TA_CDLGRAVESTONEDOJI.__doc__ = talib.CDLGRAVESTONEDOJI.__doc__
942
+
943
+ def TA_CDLHAMMER(ind=None):
944
+ imp = crtTaIndicatorImp(ta.CDLHAMMER, 'TA_CDLHAMMER', result_num=1, prices=['open', 'high', 'low', 'close'])
945
+ return Indicator(imp)(ind) if ind else Indicator(imp)
946
+
947
+ TA_CDLHAMMER.__doc__ = talib.CDLHAMMER.__doc__
948
+
949
+ def TA_CDLHANGINGMAN(ind=None):
950
+ imp = crtTaIndicatorImp(
951
+ ta.CDLHANGINGMAN, 'TA_CDLHANGINGMAN', result_num=1, prices=['open', 'high', 'low', 'close']
952
+ )
953
+ return Indicator(imp)(ind) if ind else Indicator(imp)
954
+
955
+ TA_CDLHANGINGMAN.__doc__ = talib.CDLHANGINGMAN.__doc__
956
+
957
+ def TA_CDLHARAMI(ind=None):
958
+ imp = crtTaIndicatorImp(
959
+ ta.CDLHARAMI,
960
+ 'TA_CDLHARAMI',
961
+ result_num=1,
962
+ # params={'penetration': penetration},
963
+ prices=['open', 'high', 'low', 'close']
964
+ )
965
+ return Indicator(imp)(ind) if ind else Indicator(imp)
966
+
967
+ TA_CDLHARAMI.__doc__ = talib.CDLHARAMI.__doc__
968
+
969
+ def TA_CDLHARAMICROSS(ind=None):
970
+ imp = crtTaIndicatorImp(
971
+ ta.CDLHARAMICROSS, 'TA_CDLHARAMICROSS', result_num=1, prices=['open', 'high', 'low', 'close']
972
+ )
973
+ return Indicator(imp)(ind) if ind else Indicator(imp)
974
+
975
+ TA_CDLHARAMICROSS.__doc__ = talib.CDLHARAMICROSS.__doc__
976
+
977
+ def TA_CDLHIGHWAVE(ind=None):
978
+ imp = crtTaIndicatorImp(ta.CDLHIGHWAVE, 'TA_CDLHIGHWAVE', result_num=1, prices=['open', 'high', 'low', 'close'])
979
+ return Indicator(imp)(ind) if ind else Indicator(imp)
980
+
981
+ TA_CDLHIGHWAVE.__doc__ = talib.CDLHIGHWAVE.__doc__
982
+
983
+ def TA_CDLHIKKAKE(ind=None):
984
+ imp = crtTaIndicatorImp(ta.CDLHIKKAKE, 'TA_CDLHIKKAKE', result_num=1, prices=['open', 'high', 'low', 'close'])
985
+ return Indicator(imp)(ind) if ind else Indicator(imp)
986
+
987
+ TA_CDLHIKKAKE.__doc__ = talib.CDLHIKKAKE.__doc__
988
+
989
+ def TA_CDLHIKKAKEMOD(ind=None):
990
+ imp = crtTaIndicatorImp(
991
+ ta.CDLHIKKAKEMOD, 'TA_CDLHIKKAKEMOD', result_num=1, prices=['open', 'high', 'low', 'close']
992
+ )
993
+ return Indicator(imp)(ind) if ind else Indicator(imp)
994
+
995
+ TA_CDLHIKKAKEMOD.__doc__ = talib.CDLHIKKAKEMOD.__doc__
996
+
997
+ def TA_CDLHOMINGPIGEON(ind=None):
998
+ imp = crtTaIndicatorImp(
999
+ ta.CDLHOMINGPIGEON, 'TA_CDLHOMINGPIGEON', result_num=1, prices=['open', 'high', 'low', 'close']
1000
+ )
1001
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1002
+
1003
+ TA_CDLHOMINGPIGEON.__doc__ = talib.CDLHOMINGPIGEON.__doc__
1004
+
1005
+ def TA_CDLIDENTICAL3CROWS(ind=None):
1006
+ imp = crtTaIndicatorImp(
1007
+ ta.CDLIDENTICAL3CROWS, 'TA_CDLIDENTICAL3CROWS', result_num=1, prices=['open', 'high', 'low', 'close']
1008
+ )
1009
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1010
+
1011
+ TA_CDLIDENTICAL3CROWS.__doc__ = talib.CDLIDENTICAL3CROWS.__doc__
1012
+
1013
+ def TA_CDLINNECK(ind=None):
1014
+ imp = crtTaIndicatorImp(ta.CDLINNECK, 'TA_CDLINNECK', result_num=1, prices=['open', 'high', 'low', 'close'])
1015
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1016
+
1017
+ TA_CDLINNECK.__doc__ = talib.CDLINNECK.__doc__
1018
+
1019
+ def TA_CDLINVERTEDHAMMER(ind=None):
1020
+ imp = crtTaIndicatorImp(
1021
+ ta.CDLINVERTEDHAMMER, 'TA_CDLINVERTEDHAMMER', result_num=1, prices=['open', 'high', 'low', 'close']
1022
+ )
1023
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1024
+
1025
+ TA_CDLINVERTEDHAMMER.__doc__ = talib.CDLINVERTEDHAMMER.__doc__
1026
+
1027
+ def TA_CDLKICKING(ind=None):
1028
+ imp = crtTaIndicatorImp(ta.CDLKICKING, 'TA_CDLKICKING', result_num=1, prices=['open', 'high', 'low', 'close'])
1029
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1030
+
1031
+ TA_CDLKICKING.__doc__ = talib.CDLKICKING.__doc__
1032
+
1033
+ def TA_CDLKICKINGBYLENGTH(ind=None):
1034
+ imp = crtTaIndicatorImp(
1035
+ ta.CDLKICKINGBYLENGTH, 'TA_CDLKICKINGBYLENGTH', result_num=1, prices=['open', 'high', 'low', 'close']
1036
+ )
1037
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1038
+
1039
+ TA_CDLKICKINGBYLENGTH.__doc__ = talib.CDLKICKINGBYLENGTH.__doc__
1040
+
1041
+ def TA_CDLLADDERBOTTOM(ind=None):
1042
+ imp = crtTaIndicatorImp(
1043
+ ta.CDLLADDERBOTTOM, 'TA_CDLLADDERBOTTOM', result_num=1, prices=['open', 'high', 'low', 'close']
1044
+ )
1045
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1046
+
1047
+ TA_CDLLADDERBOTTOM.__doc__ = talib.CDLLADDERBOTTOM.__doc__
1048
+
1049
+ def TA_CDLLONGLEGGEDDOJI(ind=None):
1050
+ imp = crtTaIndicatorImp(
1051
+ ta.CDLLONGLEGGEDDOJI, 'TA_CDLLONGLEGGEDDOJI', result_num=1, prices=['open', 'high', 'low', 'close']
1052
+ )
1053
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1054
+
1055
+ TA_CDLLONGLEGGEDDOJI.__doc__ = talib.CDLLONGLEGGEDDOJI.__doc__
1056
+
1057
+ def TA_CDLLONGLINE(ind=None):
1058
+ imp = crtTaIndicatorImp(ta.CDLLONGLINE, 'TA_CDLLONGLINE', result_num=1, prices=['open', 'high', 'low', 'close'])
1059
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1060
+
1061
+ TA_CDLLONGLINE.__doc__ = talib.CDLLONGLINE.__doc__
1062
+
1063
+ def TA_CDLMARUBOZU(ind=None):
1064
+ imp = crtTaIndicatorImp(ta.CDLMARUBOZU, 'TA_CDLMARUBOZU', result_num=1, prices=['open', 'high', 'low', 'close'])
1065
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1066
+
1067
+ TA_CDLMARUBOZU.__doc__ = talib.CDLMARUBOZU.__doc__
1068
+
1069
+ def TA_CDLMATCHINGLOW(ind=None):
1070
+ imp = crtTaIndicatorImp(
1071
+ ta.CDLMATCHINGLOW, 'TA_CDLMATCHINGLOW', result_num=1, prices=['open', 'high', 'low', 'close']
1072
+ )
1073
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1074
+
1075
+ TA_CDLMATCHINGLOW.__doc__ = talib.CDLMATCHINGLOW.__doc__
1076
+
1077
+ def TA_CDLMATHOLD(ind=None, penetration=0.5):
1078
+ imp = crtTaIndicatorImp(
1079
+ ta.CDLMATHOLD,
1080
+ 'TA_CDLMATHOLD',
1081
+ result_num=1,
1082
+ params={'penetration': penetration},
1083
+ prices=['open', 'high', 'low', 'close']
1084
+ )
1085
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1086
+
1087
+ TA_CDLMATHOLD.__doc__ = talib.CDLMATHOLD.__doc__
1088
+
1089
+ def TA_CDLMORNINGDOJISTAR(ind=None, penetration=0.3):
1090
+ imp = crtTaIndicatorImp(
1091
+ ta.CDLMORNINGDOJISTAR,
1092
+ 'TA_CDLMORNINGDOJISTAR',
1093
+ result_num=1,
1094
+ params={'penetration': penetration},
1095
+ prices=['open', 'high', 'low', 'close']
1096
+ )
1097
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1098
+
1099
+ TA_CDLMORNINGDOJISTAR.__doc__ = talib.CDLMORNINGDOJISTAR.__doc__
1100
+
1101
+ def TA_CDLMORNINGSTAR(ind=None, penetration=0.3):
1102
+ imp = crtTaIndicatorImp(
1103
+ ta.CDLMORNINGSTAR,
1104
+ 'TA_CDLMORNINGSTAR',
1105
+ result_num=1,
1106
+ params={'penetration': penetration},
1107
+ prices=['open', 'high', 'low', 'close']
1108
+ )
1109
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1110
+
1111
+ TA_CDLMORNINGSTAR.__doc__ = talib.CDLMORNINGSTAR.__doc__
1112
+
1113
+ def TA_CDLONNECK(ind=None):
1114
+ imp = crtTaIndicatorImp(ta.CDLONNECK, 'TA_CDLONNECK', result_num=1, prices=['open', 'high', 'low', 'close'])
1115
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1116
+
1117
+ TA_CDLONNECK.__doc__ = talib.CDLONNECK.__doc__
1118
+
1119
+ def TA_CDLPIERCING(ind=None):
1120
+ imp = crtTaIndicatorImp(ta.CDLPIERCING, 'TA_CDLPIERCING', result_num=1, prices=['open', 'high', 'low', 'close'])
1121
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1122
+
1123
+ TA_CDLPIERCING.__doc__ = talib.CDLPIERCING.__doc__
1124
+
1125
+ def TA_CDLRICKSHAWMAN(ind=None):
1126
+ imp = crtTaIndicatorImp(
1127
+ ta.CDLRICKSHAWMAN, 'TA_CDLRICKSHAWMAN', result_num=1, prices=['open', 'high', 'low', 'close']
1128
+ )
1129
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1130
+
1131
+ TA_CDLRICKSHAWMAN.__doc__ = talib.CDLRICKSHAWMAN.__doc__
1132
+
1133
+ def TA_CDLRISEFALL3METHODS(ind=None):
1134
+ imp = crtTaIndicatorImp(
1135
+ ta.CDLRISEFALL3METHODS, 'TA_CDLRISEFALL3METHODS', result_num=1, prices=['open', 'high', 'low', 'close']
1136
+ )
1137
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1138
+
1139
+ TA_CDLRISEFALL3METHODS.__doc__ = talib.CDLRISEFALL3METHODS.__doc__
1140
+
1141
+ def TA_CDLSEPARATINGLINES(ind=None):
1142
+ imp = crtTaIndicatorImp(
1143
+ ta.CDLSEPARATINGLINES, 'TA_CDLSEPARATINGLINES', result_num=1, prices=['open', 'high', 'low', 'close']
1144
+ )
1145
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1146
+
1147
+ TA_CDLSEPARATINGLINES.__doc__ = talib.CDLSEPARATINGLINES.__doc__
1148
+
1149
+ def TA_CDLSHOOTINGSTAR(ind=None):
1150
+ imp = crtTaIndicatorImp(
1151
+ ta.CDLSHOOTINGSTAR, 'TA_CDLSHOOTINGSTAR', result_num=1, prices=['open', 'high', 'low', 'close']
1152
+ )
1153
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1154
+
1155
+ TA_CDLSHOOTINGSTAR.__doc__ = talib.CDLSHOOTINGSTAR.__doc__
1156
+
1157
+ def TA_CDLSHORTLINE(ind=None):
1158
+ imp = crtTaIndicatorImp(
1159
+ ta.CDLSHORTLINE, 'TA_CDLSHORTLINE', result_num=1, prices=['open', 'high', 'low', 'close']
1160
+ )
1161
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1162
+
1163
+ TA_CDLSHORTLINE.__doc__ = talib.CDLSHORTLINE.__doc__
1164
+
1165
+ def TA_CDLSPINNINGTOP(ind=None):
1166
+ imp = crtTaIndicatorImp(
1167
+ ta.CDLSPINNINGTOP, 'TA_CDLSPINNINGTOP', result_num=1, prices=['open', 'high', 'low', 'close']
1168
+ )
1169
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1170
+
1171
+ TA_CDLSPINNINGTOP.__doc__ = talib.CDLSPINNINGTOP.__doc__
1172
+
1173
+ def TA_CDLSTALLEDPATTERN(ind=None):
1174
+ imp = crtTaIndicatorImp(
1175
+ ta.CDLSTALLEDPATTERN, 'TA_CDLSTALLEDPATTERN', result_num=1, prices=['open', 'high', 'low', 'close']
1176
+ )
1177
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1178
+
1179
+ TA_CDLSTALLEDPATTERN.__doc__ = talib.CDLSTALLEDPATTERN.__doc__
1180
+
1181
+ def TA_CDLSTICKSANDWICH(ind=None):
1182
+ imp = crtTaIndicatorImp(
1183
+ ta.CDLSTICKSANDWICH, 'TA_CDLSTICKSANDWICH', result_num=1, prices=['open', 'high', 'low', 'close']
1184
+ )
1185
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1186
+
1187
+ TA_CDLSTICKSANDWICH.__doc__ = talib.CDLSTICKSANDWICH.__doc__
1188
+
1189
+ def TA_CDLTAKURI(ind=None):
1190
+ imp = crtTaIndicatorImp(ta.CDLTAKURI, 'TA_CDLTAKURI', result_num=1, prices=['open', 'high', 'low', 'close'])
1191
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1192
+
1193
+ TA_CDLTAKURI.__doc__ = talib.CDLTAKURI.__doc__
1194
+
1195
+ def TA_CDLTASUKIGAP(ind=None):
1196
+ imp = crtTaIndicatorImp(
1197
+ ta.CDLTASUKIGAP, 'TA_CDLTASUKIGAP', result_num=1, prices=['open', 'high', 'low', 'close']
1198
+ )
1199
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1200
+
1201
+ TA_CDLTASUKIGAP.__doc__ = talib.CDLTASUKIGAP.__doc__
1202
+
1203
+ def TA_CDLTHRUSTING(ind=None):
1204
+ imp = crtTaIndicatorImp(
1205
+ ta.CDLTHRUSTING, 'TA_CDLTHRUSTING', result_num=1, prices=['open', 'high', 'low', 'close']
1206
+ )
1207
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1208
+
1209
+ TA_CDLTHRUSTING.__doc__ = talib.CDLTHRUSTING.__doc__
1210
+
1211
+ def TA_CDLTRISTAR(ind=None):
1212
+ imp = crtTaIndicatorImp(ta.CDLTRISTAR, 'TA_CDLTRISTAR', result_num=1, prices=['open', 'high', 'low', 'close'])
1213
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1214
+
1215
+ TA_CDLTRISTAR.__doc__ = talib.CDLTRISTAR.__doc__
1216
+
1217
+ def TA_CDLUNIQUE3RIVER(ind=None):
1218
+ imp = crtTaIndicatorImp(
1219
+ ta.CDLUNIQUE3RIVER, 'TA_CDLUNIQUE3RIVER', result_num=1, prices=['open', 'high', 'low', 'close']
1220
+ )
1221
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1222
+
1223
+ TA_CDLUNIQUE3RIVER.__doc__ = talib.CDLUNIQUE3RIVER.__doc__
1224
+
1225
+ def TA_CDLUPSIDEGAP2CROWS(ind=None):
1226
+ imp = crtTaIndicatorImp(
1227
+ ta.CDLUPSIDEGAP2CROWS, 'TA_CDLUPSIDEGAP2CROWS', result_num=1, prices=['open', 'high', 'low', 'close']
1228
+ )
1229
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1230
+
1231
+ TA_CDLUPSIDEGAP2CROWS.__doc__ = talib.CDLUPSIDEGAP2CROWS.__doc__
1232
+
1233
+ def TA_CDLXSIDEGAP3METHODS(ind=None):
1234
+ imp = crtTaIndicatorImp(
1235
+ ta.CDLXSIDEGAP3METHODS, 'TA_CDLXSIDEGAP3METHODS', result_num=1, prices=['open', 'high', 'low', 'close']
1236
+ )
1237
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1238
+
1239
+ TA_CDLXSIDEGAP3METHODS.__doc__ = talib.CDLXSIDEGAP3METHODS.__doc__
1240
+
1241
+ def TA_BETA(ind=None, timeperiod=5):
1242
+ imp = crtTaIndicatorImp(ta.BETA, 'TA_BETA', result_num=1, params={'timeperiod': timeperiod})
1243
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1244
+
1245
+ TA_BETA.__doc__ = talib.BETA.__doc__
1246
+
1247
+ def TA_CORREL(ind=None, timeperiod=30):
1248
+ imp = crtTaIndicatorImp(ta.CORREL, 'TA_CORREL', result_num=1, params={'timeperiod': timeperiod})
1249
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1250
+
1251
+ TA_CORREL.__doc__ = talib.CORREL.__doc__
1252
+
1253
+ def TA_OBV(ind=None):
1254
+ imp = crtTaIndicatorImp(ta.OBV, 'TA_OBV', result_num=1)
1255
+ return Indicator(imp)(ind) if ind else Indicator(imp)
1256
+
1257
+ TA_OBV.__doc__ = talib.OBV.__doc__
1258
+
1259
+ except:
1260
+ pass # 非必须的,talib,不再打印告警,以免误解提问
1261
+ # print(
1262
+ # "warning: can't import TA-Lib, will be ignored! You can fetch ta-lib "
1263
+ # "from https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib"
1264
+ # )