rqalpha 5.4.3__tar.gz → 5.5.0__tar.gz

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 (206) hide show
  1. {rqalpha-5.4.3/rqalpha.egg-info → rqalpha-5.5.0}/PKG-INFO +1 -1
  2. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/_version.py +3 -3
  3. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/const.py +1 -0
  4. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/data/base_data_source/data_source.py +0 -2
  5. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/data/bundle.py +8 -8
  6. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/mod.py +38 -45
  7. {rqalpha-5.4.3 → rqalpha-5.5.0/rqalpha.egg-info}/PKG-INFO +1 -1
  8. {rqalpha-5.4.3 → rqalpha-5.5.0}/setup.cfg +1 -1
  9. {rqalpha-5.4.3 → rqalpha-5.5.0}/versioneer.py +0 -4
  10. {rqalpha-5.4.3 → rqalpha-5.5.0}/CHANGELOG.rst +0 -0
  11. {rqalpha-5.4.3 → rqalpha-5.5.0}/LICENSE +0 -0
  12. {rqalpha-5.4.3 → rqalpha-5.5.0}/MANIFEST.in +0 -0
  13. {rqalpha-5.4.3 → rqalpha-5.5.0}/README.rst +0 -0
  14. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/__init__.py +0 -0
  15. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/__main__.py +0 -0
  16. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/api.py +0 -0
  17. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/apis/__init__.py +0 -0
  18. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/apis/api_abstract.py +0 -0
  19. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/apis/api_base.py +0 -0
  20. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/apis/api_rqdatac.py +0 -0
  21. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/apis/names.py +0 -0
  22. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/cmds/__init__.py +0 -0
  23. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/cmds/bundle.py +0 -0
  24. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/cmds/entry.py +0 -0
  25. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/cmds/misc.py +0 -0
  26. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/cmds/mod.py +0 -0
  27. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/cmds/run.py +0 -0
  28. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/config.yml +0 -0
  29. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/core/__init__.py +0 -0
  30. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/core/events.py +0 -0
  31. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/core/execution_context.py +0 -0
  32. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/core/executor.py +0 -0
  33. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/core/global_var.py +0 -0
  34. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/core/strategy.py +0 -0
  35. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/core/strategy_context.py +0 -0
  36. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/core/strategy_loader.py +0 -0
  37. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/core/strategy_universe.py +0 -0
  38. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/data/__init__.py +0 -0
  39. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/data/bar_dict_price_board.py +0 -0
  40. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/data/base_data_source/__init__.py +0 -0
  41. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/data/base_data_source/adjust.py +0 -0
  42. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/data/base_data_source/storage_interface.py +0 -0
  43. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/data/base_data_source/storages.py +0 -0
  44. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/data/data_proxy.py +0 -0
  45. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/data/trading_dates_mixin.py +0 -0
  46. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/environment.py +0 -0
  47. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/IF1706_20161108.csv +0 -0
  48. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/IF_macd.py +0 -0
  49. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/buy_and_hold.py +0 -0
  50. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/data_source/get_csv_module.py +0 -0
  51. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/data_source/import_get_csv_module.py +0 -0
  52. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/data_source/read_csv_as_df.py +0 -0
  53. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/extend_api/rqalpha_mod_extend_api_demo.py +0 -0
  54. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/extend_api/test_extend_api.py +0 -0
  55. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/golden_cross.py +0 -0
  56. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/macd.py +0 -0
  57. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/pair_trading.py +0 -0
  58. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/rsi.py +0 -0
  59. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/run_code_demo.py +0 -0
  60. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/run_file_demo.py +0 -0
  61. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/run_func_demo.py +0 -0
  62. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/subscribe_event.py +0 -0
  63. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/test_pt.py +0 -0
  64. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/examples/turtle.py +0 -0
  65. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/interface.py +0 -0
  66. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/main.py +0 -0
  67. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/__init__.py +0 -0
  68. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/__init__.py +0 -0
  69. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/api/__init__.py +0 -0
  70. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/api/api_future.py +0 -0
  71. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py +0 -0
  72. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/component_validator.py +0 -0
  73. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/mod.py +0 -0
  74. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/position_model.py +0 -0
  75. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/position_validator.py +0 -0
  76. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/validator.py +0 -0
  77. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/__init__.py +0 -0
  78. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/plot/__init__.py +0 -0
  79. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/plot/consts.py +0 -0
  80. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/plot/plot.py +0 -0
  81. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/plot/utils.py +0 -0
  82. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/plot_store.py +0 -0
  83. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/report/__init__.py +0 -0
  84. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/report/excel_template.py +0 -0
  85. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/report/report.py +0 -0
  86. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/report/templates/summary.xlsx +0 -0
  87. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_progress/__init__.py +0 -0
  88. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_progress/mod.py +0 -0
  89. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/__init__.py +0 -0
  90. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/mod.py +0 -0
  91. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/validators/__init__.py +0 -0
  92. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/validators/cash_validator.py +0 -0
  93. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/validators/is_trading_validator.py +0 -0
  94. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/validators/price_validator.py +0 -0
  95. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/validators/self_trade_validator.py +0 -0
  96. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_scheduler/__init__.py +0 -0
  97. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_scheduler/mod.py +0 -0
  98. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_scheduler/scheduler.py +0 -0
  99. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/__init__.py +0 -0
  100. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/matcher.py +0 -0
  101. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/mod.py +0 -0
  102. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/signal_broker.py +0 -0
  103. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/simulation_broker.py +0 -0
  104. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/simulation_event_source.py +0 -0
  105. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/slippage.py +0 -0
  106. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/testing.py +0 -0
  107. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/validator.py +0 -0
  108. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_transaction_cost/__init__.py +0 -0
  109. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_transaction_cost/deciders.py +0 -0
  110. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_transaction_cost/mod.py +0 -0
  111. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod/utils.py +0 -0
  112. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/mod_config.yml +0 -0
  113. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/model/__init__.py +0 -0
  114. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/model/bar.py +0 -0
  115. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/model/instrument.py +0 -0
  116. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/model/order.py +0 -0
  117. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/model/tick.py +0 -0
  118. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/model/trade.py +0 -0
  119. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/portfolio/__init__.py +0 -0
  120. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/portfolio/account.py +0 -0
  121. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/portfolio/position.py +0 -0
  122. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/resource/ricequant-logo.png +0 -0
  123. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/user_module.py +0 -0
  124. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/__init__.py +0 -0
  125. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/arg_checker.py +0 -0
  126. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/class_helper.py +0 -0
  127. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/click_helper.py +0 -0
  128. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/concurrent.py +0 -0
  129. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/config.py +0 -0
  130. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/datetime_func.py +0 -0
  131. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/dict_func.py +0 -0
  132. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/exception.py +0 -0
  133. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/functools.py +0 -0
  134. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/i18n.py +0 -0
  135. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/log_capture.py +0 -0
  136. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/logger.py +0 -0
  137. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/package_helper.py +0 -0
  138. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/persisit_helper.py +0 -0
  139. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/repr.py +0 -0
  140. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/risk_free_helper.py +0 -0
  141. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/rq_json.py +0 -0
  142. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/strategy_loader_help.py +0 -0
  143. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/testing/__init__.py +0 -0
  144. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/testing/fixtures.py +0 -0
  145. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/testing/mocking.py +0 -0
  146. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/translations/__init__.py +0 -0
  147. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/translations/zh_Hans_CN/LC_MESSAGES/__init__.py +0 -0
  148. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/translations/zh_Hans_CN/LC_MESSAGES/messages.mo +0 -0
  149. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/translations/zh_Hans_CN/LC_MESSAGES/messages.po +0 -0
  150. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/translations/zh_Hans_CN/__init__.py +0 -0
  151. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha/utils/typing.py +0 -0
  152. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha.egg-info/SOURCES.txt +0 -0
  153. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha.egg-info/dependency_links.txt +0 -0
  154. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha.egg-info/entry_points.txt +0 -0
  155. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha.egg-info/not-zip-safe +0 -0
  156. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha.egg-info/requires.txt +0 -0
  157. {rqalpha-5.4.3 → rqalpha-5.5.0}/rqalpha.egg-info/top_level.txt +0 -0
  158. {rqalpha-5.4.3 → rqalpha-5.5.0}/setup.py +0 -0
  159. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/__init__.py +0 -0
  160. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/__init__.py +0 -0
  161. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/__init__.py +0 -0
  162. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_accounts/__init__.py +0 -0
  163. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_accounts/test_account_model.py +0 -0
  164. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_accounts/test_futures_settlement_price_type.py +0 -0
  165. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_accounts/test_margin_stocks.py +0 -0
  166. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_accounts/test_position_models.py +0 -0
  167. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_scheduler/__init__.py +0 -0
  168. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_scheduler/test_physical_time.py +0 -0
  169. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_scheduler/test_scheduler.py +0 -0
  170. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/__init__.py +0 -0
  171. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/test_management_fee.py +0 -0
  172. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/test_match.py +0 -0
  173. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/test_signal_broker.py +0 -0
  174. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/test_simulation_broker.py +0 -0
  175. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/test_simulation_event_source.py +0 -0
  176. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_transaction_cost/__init__.py +0 -0
  177. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/mod/sys_transaction_cost/test_commission_multiplier.py +0 -0
  178. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/test_api_base.py +0 -0
  179. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/test_api_future.py +0 -0
  180. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/test_api_stock.py +0 -0
  181. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/test_config.py +0 -0
  182. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/api_tests/utils.py +0 -0
  183. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_f_buy_and_hold.py +0 -0
  184. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_f_delivery.py +0 -0
  185. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_f_macd.py +0 -0
  186. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_f_macd_signal.py +0 -0
  187. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_f_mean_reverting.py +0 -0
  188. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_f_tick_size.py +0 -0
  189. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_s_buy_and_hold.py +0 -0
  190. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_s_dual_thrust.py +0 -0
  191. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_s_pit_tax.py +0 -0
  192. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_s_scheduler.py +0 -0
  193. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_s_tick_size.py +0 -0
  194. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_s_turtle.py +0 -0
  195. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_s_turtle_signal.py +0 -0
  196. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/test_sf_buy_and_hold.py +0 -0
  197. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/unittest/__init__.py +0 -0
  198. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/unittest/test_data/__init__.py +0 -0
  199. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/unittest/test_data/test_auto_update_bundle/__init__.py +0 -0
  200. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/unittest/test_data/test_auto_update_bundle/test_auto_update_bundle_mixin.py +0 -0
  201. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/unittest/test_data/test_instrument_mixin.py +0 -0
  202. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/unittest/test_data/test_trading_dates_mixin.py +0 -0
  203. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/unittest/test_mod/__init__.py +0 -0
  204. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/unittest/test_mod/test_sys_simulation/__init__.py +0 -0
  205. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/unittest/test_mod/test_sys_simulation/test_simulation_event_source.py +0 -0
  206. {rqalpha-5.4.3 → rqalpha-5.5.0}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rqalpha
3
- Version: 5.4.3
3
+ Version: 5.5.0
4
4
  Summary: Ricequant Algorithm Trading System
5
5
  Home-page: https://github.com/ricequant/rqalpha
6
6
  Author: ricequant
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2024-11-29T17:58:29+0800",
11
+ "date": "2025-01-08T15:55:09+0800",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "29a200367f13ec777ae5f96bafcd6da3add9007d",
15
- "version": "5.4.3"
14
+ "full-revisionid": "ebf151930b3fa3d09f3733f706d8e44f2e169bcd",
15
+ "version": "5.5.0"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -201,6 +201,7 @@ class EXCHANGE(CustomEnum):
201
201
  CZCE = "CZCE"
202
202
  CFFEX = "CFFEX"
203
203
  SGEX = "SGEX"
204
+ BJSE = "BJSE"
204
205
 
205
206
 
206
207
  # noinspection PyPep8Naming
@@ -100,8 +100,6 @@ class BaseDataSource(AbstractDataSource):
100
100
  instruments.append(Instrument(
101
101
  i,
102
102
  lambda i: self._future_info_store.get_tick_size(i),
103
- # lambda i, dt: env.data_proxy.get_futures_trading_parameters(i, dt).long_margin_ratio,
104
- # lambda i, dt: env.data_proxy.get_futures_trading_parameters(i, dt).short_margin_ratio
105
103
  ))
106
104
  for ins_type in self.DEFAULT_INS_TYPES:
107
105
  self.register_instruments_store(InstrumentStore(instruments, ins_type))
@@ -419,11 +419,12 @@ class UpdateDayBarTask(DayBarTask):
419
419
  h5.close()
420
420
 
421
421
 
422
- def process_init(args: Optional[Synchronized] = None):
422
+ def process_init(args: Optional[Synchronized] = None, kwargs = None):
423
+ kwargs = kwargs or {}
423
424
  import warnings
424
425
  with warnings.catch_warnings(record=True):
425
426
  # catch warning: rqdatac is already inited. Settings will be changed
426
- rqdatac.init()
427
+ rqdatac.init(**kwargs)
427
428
  init_logger()
428
429
  # Initialize process shared variables
429
430
  if args:
@@ -431,17 +432,13 @@ def process_init(args: Optional[Synchronized] = None):
431
432
  sval = args
432
433
 
433
434
 
434
- def update_bundle(path, create, enable_compression=False, concurrency=1):
435
+ def update_bundle(path, create, enable_compression=False, concurrency=1, **kwargs):
435
436
  if create:
436
437
  _DayBarTask = GenerateDayBarTask
437
438
  else:
438
439
  _DayBarTask = UpdateDayBarTask
439
440
 
440
441
  init_logger()
441
- kwargs = {}
442
- if enable_compression:
443
- kwargs['compression'] = 9
444
-
445
442
  day_bar_args = (
446
443
  ("stocks.h5", rqdatac.all_instruments('CS').order_book_id.tolist(), STOCK_FIELDS),
447
444
  ("indexes.h5", rqdatac.all_instruments('INDX').order_book_id.tolist(), INDEX_FIELDS),
@@ -458,8 +455,11 @@ def update_bundle(path, create, enable_compression=False, concurrency=1):
458
455
 
459
456
  succeed = multiprocessing.Value(c_bool, True)
460
457
  with ProgressedProcessPoolExecutor(
461
- max_workers=concurrency, initializer=process_init, initargs=(succeed, )
458
+ max_workers=concurrency, initializer=process_init, initargs=(succeed, kwargs)
462
459
  ) as executor:
460
+ kwargs = {}
461
+ if enable_compression:
462
+ kwargs['compression'] = 9
463
463
  # windows上子进程需要执行rqdatac.init, 其他os则需要执行rqdatac.reset; rqdatac.init包含了rqdatac.reset的功能
464
464
  for func in gen_file_funcs:
465
465
  executor.submit(GenerateFileTask(func), path)
@@ -116,21 +116,9 @@ class AnalyserMod(AbstractMod):
116
116
 
117
117
  self._plot_store = PlotStore(env)
118
118
  export_as_api(self._plot_store.plot)
119
-
120
- def get_benchmark_daily_returns(self):
121
- if self._benchmark is None:
122
- return np.nan
123
- daily_return_list = []
124
- weights = 0
125
- for benchmark in self._benchmark:
126
- bar = self._env.data_proxy.get_bar(benchmark[0], self._env.calendar_dt, '1d')
127
- if bar.close != bar.close:
128
- daily_return_list.append((0.0, benchmark[1]))
129
- else:
130
- daily_return_list.append((bar.close / bar.prev_close - 1.0, benchmark[1]))
131
- weights += benchmark[1]
132
- return sum([daily[0] * daily[1] / weights for daily in daily_return_list])
133
119
 
120
+ NULL_OID = {"null", "NULL"}
121
+
134
122
  def generate_benchmark_daily_returns_and_portfolio(self, event):
135
123
  _s = self._env.config.base.start_date
136
124
  _e = self._env.config.base.end_date
@@ -143,37 +131,41 @@ class AnalyserMod(AbstractMod):
143
131
  self._benchmark_daily_returns = np.zeros(len(trading_dates))
144
132
  weights = 0
145
133
  for order_book_id, weight in self._benchmark:
146
- ins = self._env.data_proxy.instrument(order_book_id)
147
- if ins is None:
148
- raise RuntimeError(
149
- _("benchmark {} not exists, please entry correct order_book_id").format(order_book_id)
150
- )
151
- bars = self._env.data_proxy.history_bars(
152
- order_book_id = order_book_id,
153
- bar_count = len(trading_dates) + 1, # Get an extra day for calculation
154
- frequency = "1d",
155
- field = ["datetime", "close"],
156
- dt = _e,
157
- skip_suspended=False,
158
- )
159
- if len(bars) == len(trading_dates) + 1:
160
- if convert_int_to_date(bars[1]['datetime']).date() != _s:
161
- raise RuntimeError(_(
162
- "benchmark {} missing data between backtest start date {} and end date {}").format(order_book_id, _s, _e)
163
- )
164
- daily_returns = (bars['close'] / np.roll(bars['close'], 1) - 1.0)[1: ]
165
- self._benchmark_daily_returns = self._benchmark_daily_returns + daily_returns * weight
166
- weights += weight
134
+ if order_book_id in self.NULL_OID:
135
+ daily_returns = np.zeros(len(trading_dates))
167
136
  else:
168
- if len(bars) == 0:
169
- (available_s, available_e) = (ins.listed_date, ins.de_listed_date)
170
- else:
171
- (available_s, available_e) = (convert_int_to_date(bars[0]['datetime']).date(), convert_int_to_date(bars[-1]['datetime']).date())
172
- raise RuntimeError(
173
- _("benchmark {} available data start date {} >= backtest start date {} or end date {} <= backtest end "
174
- "date {}").format(order_book_id, available_s, _s, available_e, _e)
137
+ ins = self._env.data_proxy.instrument(order_book_id)
138
+ if ins is None:
139
+ raise RuntimeError(
140
+ _("benchmark {} not exists, please entry correct order_book_id").format(order_book_id)
141
+ )
142
+ bars = self._env.data_proxy.history_bars(
143
+ order_book_id = order_book_id,
144
+ bar_count = len(trading_dates) + 1, # Get an extra day for calculation
145
+ frequency = "1d",
146
+ field = ["datetime", "close"],
147
+ dt = _e,
148
+ skip_suspended=False,
175
149
  )
176
- self._benchmark_daily_returns = self._benchmark_daily_returns / weight
150
+ if len(bars) == len(trading_dates) + 1:
151
+ if convert_int_to_date(bars[1]['datetime']).date() != _s:
152
+ raise RuntimeError(_(
153
+ "benchmark {} missing data between backtest start date {} and end date {}").format(order_book_id, _s, _e)
154
+ )
155
+ daily_returns = (bars['close'] / np.roll(bars['close'], 1) - 1.0)[1: ]
156
+ else:
157
+ if len(bars) == 0:
158
+ (available_s, available_e) = (ins.listed_date, ins.de_listed_date)
159
+ else:
160
+ (available_s, available_e) = (convert_int_to_date(bars[0]['datetime']).date(), convert_int_to_date(bars[-1]['datetime']).date())
161
+ raise RuntimeError(
162
+ _("benchmark {} available data start date {} >= backtest start date {} or end date {} <= backtest end "
163
+ "date {}").format(order_book_id, available_s, _s, available_e, _e)
164
+ )
165
+ self._benchmark_daily_returns = self._benchmark_daily_returns + daily_returns * weight
166
+ weights += weight
167
+
168
+ self._benchmark_daily_returns = self._benchmark_daily_returns / weights
177
169
 
178
170
  # generate benchmark portfolio
179
171
  unit_net_value = (self._benchmark_daily_returns + 1).cumprod()
@@ -229,7 +221,8 @@ class AnalyserMod(AbstractMod):
229
221
  benchmark_list = benchmarks.split(',')
230
222
  if len(benchmark_list) == 1:
231
223
  if len(benchmark_list[0].split(':')) > 1:
232
- result.append((benchmark_list[0].split(':')[0], 1.0))
224
+ oid, weight = benchmark_list[0].split(':')
225
+ result.append((oid, float(weight)))
233
226
  return result
234
227
  result.append((benchmark_list[0], 1.0))
235
228
  return result
@@ -360,7 +353,7 @@ class AnalyserMod(AbstractMod):
360
353
  summary["benchmark_symbol"] = self._env.data_proxy.instrument(benchmark_obid).symbol
361
354
  else:
362
355
  summary["benchmark"] = ",".join(f"{o}:{w}" for o, w in self._benchmark)
363
- summary["benchmark_symbol"] = ",".join(f"{self._env.data_proxy.instrument(o).symbol}:{w}" for o, w in self._benchmark)
356
+ summary["benchmark_symbol"] = ",".join(f"{self._env.data_proxy.instrument(o).symbol if o not in self.NULL_OID else 'null'}:{w}" for o, w in self._benchmark)
364
357
 
365
358
  risk_free_rate = data_proxy.get_risk_free_rate(self._env.config.base.start_date, self._env.config.base.end_date)
366
359
  risk = Risk(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rqalpha
3
- Version: 5.4.3
3
+ Version: 5.5.0
4
4
  Summary: Ricequant Algorithm Trading System
5
5
  Home-page: https://github.com/ricequant/rqalpha
6
6
  Author: ricequant
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = rqalpha
3
- version = 5.4.3
3
+ version = 5.5.0
4
4
 
5
5
  [versioneer]
6
6
  VCS = git
@@ -1665,13 +1665,9 @@ def render_pep440_ricequant(pieces):
1665
1665
  # # 如果是dev和master分支或者hotfix分支来的,或者是一个tag,那就用pep440的版本号,否则带上git commit id
1666
1666
  if tracking_branch in ["origin/develop", "origin/master"] or tracking_branch.startswith("origin/hotfix/") or pieces[
1667
1667
  "distance"] == 0:
1668
- if pieces["dirty"]:
1669
- rendered += ".dirty"
1670
1668
  return rendered
1671
1669
 
1672
1670
  rendered += "+%s" % format(pieces["short"])
1673
- if pieces["dirty"]:
1674
- rendered += ".dirty"
1675
1671
  return rendered
1676
1672
 
1677
1673
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes