rqalpha 5.4.2__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.
- {rqalpha-5.4.2/rqalpha.egg-info → rqalpha-5.5.0}/PKG-INFO +1 -1
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/_version.py +3 -3
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/const.py +1 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/data/base_data_source/data_source.py +0 -2
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/data/bundle.py +8 -8
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/mod.py +38 -45
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/matcher.py +1 -1
- rqalpha-5.5.0/rqalpha/utils/translations/zh_Hans_CN/LC_MESSAGES/messages.mo +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/translations/zh_Hans_CN/LC_MESSAGES/messages.po +50 -48
- {rqalpha-5.4.2 → rqalpha-5.5.0/rqalpha.egg-info}/PKG-INFO +1 -1
- {rqalpha-5.4.2 → rqalpha-5.5.0}/setup.cfg +1 -1
- {rqalpha-5.4.2 → rqalpha-5.5.0}/versioneer.py +0 -4
- rqalpha-5.4.2/rqalpha/utils/translations/zh_Hans_CN/LC_MESSAGES/messages.mo +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/CHANGELOG.rst +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/LICENSE +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/MANIFEST.in +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/README.rst +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/__main__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/api.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/apis/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/apis/api_abstract.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/apis/api_base.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/apis/api_rqdatac.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/apis/names.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/cmds/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/cmds/bundle.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/cmds/entry.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/cmds/misc.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/cmds/mod.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/cmds/run.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/config.yml +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/core/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/core/events.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/core/execution_context.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/core/executor.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/core/global_var.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/core/strategy.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/core/strategy_context.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/core/strategy_loader.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/core/strategy_universe.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/data/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/data/bar_dict_price_board.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/data/base_data_source/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/data/base_data_source/adjust.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/data/base_data_source/storage_interface.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/data/base_data_source/storages.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/data/data_proxy.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/data/trading_dates_mixin.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/environment.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/IF1706_20161108.csv +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/IF_macd.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/buy_and_hold.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/data_source/get_csv_module.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/data_source/import_get_csv_module.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/data_source/read_csv_as_df.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/extend_api/rqalpha_mod_extend_api_demo.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/extend_api/test_extend_api.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/golden_cross.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/macd.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/pair_trading.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/rsi.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/run_code_demo.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/run_file_demo.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/run_func_demo.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/subscribe_event.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/test_pt.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/examples/turtle.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/interface.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/main.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/api/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/api/api_future.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/component_validator.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/mod.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/position_model.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/position_validator.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_accounts/validator.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/plot/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/plot/consts.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/plot/plot.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/plot/utils.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/plot_store.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/report/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/report/excel_template.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/report/report.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_analyser/report/templates/summary.xlsx +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_progress/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_progress/mod.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/mod.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/validators/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/validators/cash_validator.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/validators/is_trading_validator.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/validators/price_validator.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_risk/validators/self_trade_validator.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_scheduler/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_scheduler/mod.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_scheduler/scheduler.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/mod.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/signal_broker.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/simulation_broker.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/simulation_event_source.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/slippage.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/testing.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_simulation/validator.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_transaction_cost/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_transaction_cost/deciders.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/rqalpha_mod_sys_transaction_cost/mod.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod/utils.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/mod_config.yml +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/model/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/model/bar.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/model/instrument.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/model/order.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/model/tick.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/model/trade.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/portfolio/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/portfolio/account.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/portfolio/position.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/resource/ricequant-logo.png +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/user_module.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/arg_checker.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/class_helper.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/click_helper.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/concurrent.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/config.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/datetime_func.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/dict_func.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/exception.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/functools.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/i18n.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/log_capture.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/logger.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/package_helper.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/persisit_helper.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/repr.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/risk_free_helper.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/rq_json.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/strategy_loader_help.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/testing/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/testing/fixtures.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/testing/mocking.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/translations/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/translations/zh_Hans_CN/LC_MESSAGES/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/translations/zh_Hans_CN/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/typing.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha.egg-info/SOURCES.txt +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha.egg-info/dependency_links.txt +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha.egg-info/entry_points.txt +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha.egg-info/not-zip-safe +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha.egg-info/requires.txt +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha.egg-info/top_level.txt +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/setup.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_accounts/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_accounts/test_account_model.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_accounts/test_futures_settlement_price_type.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_accounts/test_margin_stocks.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_accounts/test_position_models.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_scheduler/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_scheduler/test_physical_time.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_scheduler/test_scheduler.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/test_management_fee.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/test_match.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/test_signal_broker.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/test_simulation_broker.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_simulation/test_simulation_event_source.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_transaction_cost/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/mod/sys_transaction_cost/test_commission_multiplier.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/test_api_base.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/test_api_future.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/test_api_stock.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/test_config.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/api_tests/utils.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_f_buy_and_hold.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_f_delivery.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_f_macd.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_f_macd_signal.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_f_mean_reverting.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_f_tick_size.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_s_buy_and_hold.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_s_dual_thrust.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_s_pit_tax.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_s_scheduler.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_s_tick_size.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_s_turtle.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_s_turtle_signal.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/test_sf_buy_and_hold.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/unittest/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/unittest/test_data/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/unittest/test_data/test_auto_update_bundle/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/unittest/test_data/test_auto_update_bundle/test_auto_update_bundle_mixin.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/unittest/test_data/test_instrument_mixin.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/unittest/test_data/test_trading_dates_mixin.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/unittest/test_mod/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/unittest/test_mod/test_sys_simulation/__init__.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/unittest/test_mod/test_sys_simulation/test_simulation_event_source.py +0 -0
- {rqalpha-5.4.2 → rqalpha-5.5.0}/tests/utils.py +0 -0
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "
|
|
11
|
+
"date": "2025-01-08T15:55:09+0800",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "5.
|
|
14
|
+
"full-revisionid": "ebf151930b3fa3d09f3733f706d8e44f2e169bcd",
|
|
15
|
+
"version": "5.5.0"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -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
|
-
|
|
147
|
-
|
|
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
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
@@ -123,7 +123,7 @@ class DefaultBarMatcher(AbstractMatcher):
|
|
|
123
123
|
listed_date=listed_date,
|
|
124
124
|
)
|
|
125
125
|
elif isinstance(order.style, ALGO_ORDER_STYLES):
|
|
126
|
-
reason = _(u"Order Cancelled: {order_book_id} bar no volume").format(order_book_id=order.order_book_id)
|
|
126
|
+
reason = _(u"Order Cancelled: {order_book_id} miss market data or bar no volume.").format(order_book_id=order.order_book_id)
|
|
127
127
|
else:
|
|
128
128
|
# 撮合的时候无行情数据也不需要撤单,等到有行情再撮合
|
|
129
129
|
reason = None
|
{rqalpha-5.4.2 → rqalpha-5.5.0}/rqalpha/utils/translations/zh_Hans_CN/LC_MESSAGES/messages.po
RENAMED
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: PROJECT VERSION\n"
|
|
9
9
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
|
10
|
-
"POT-Creation-Date: 2024-
|
|
10
|
+
"POT-Creation-Date: 2024-11-25 10:04+0800\n"
|
|
11
11
|
"PO-Revision-Date: 2016-10-24 21:20+0800\n"
|
|
12
12
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
13
13
|
"Language: zh_Hans_CN\n"
|
|
@@ -18,13 +18,13 @@ msgstr ""
|
|
|
18
18
|
"Content-Transfer-Encoding: 8bit\n"
|
|
19
19
|
"Generated-By: Babel 2.13.1\n"
|
|
20
20
|
|
|
21
|
-
#: rqalpha/environment.py:
|
|
21
|
+
#: rqalpha/environment.py:76
|
|
22
22
|
msgid ""
|
|
23
23
|
"Environment has not been created. Please Use `Environment.get_instance()`"
|
|
24
24
|
" after RQAlpha init"
|
|
25
25
|
msgstr "Environment 并没有被创建,请再 RQAlpha 初始化之后使用 `Environment.get_instance() 函数`"
|
|
26
26
|
|
|
27
|
-
#: rqalpha/environment.py:
|
|
27
|
+
#: rqalpha/environment.py:182
|
|
28
28
|
msgid "No such transaction cost decider, order_book_id = {}"
|
|
29
29
|
msgstr ""
|
|
30
30
|
|
|
@@ -40,21 +40,21 @@ msgid ""
|
|
|
40
40
|
"persist"
|
|
41
41
|
msgstr "Persist provider 未加载,加载 Persist provider 方可使用 persist 功能。"
|
|
42
42
|
|
|
43
|
-
#: rqalpha/main.py:
|
|
43
|
+
#: rqalpha/main.py:129
|
|
44
44
|
msgid "rqdatac init failed, some apis will not function properly: {}"
|
|
45
45
|
msgstr ""
|
|
46
46
|
"rqdatac 初始化失败,部分扩展 API 可能无法使用,错误信息:{}。您可以访问 "
|
|
47
47
|
"https://www.ricequant.com/welcome/rqdata 获取 rqdatac"
|
|
48
48
|
|
|
49
|
-
#: rqalpha/main.py:
|
|
49
|
+
#: rqalpha/main.py:222
|
|
50
50
|
msgid "system restored"
|
|
51
51
|
msgstr ""
|
|
52
52
|
|
|
53
|
-
#: rqalpha/main.py:
|
|
53
|
+
#: rqalpha/main.py:252
|
|
54
54
|
msgid "strategy run successfully, normal exit"
|
|
55
55
|
msgstr "策略运行成功,正常退出"
|
|
56
56
|
|
|
57
|
-
#: rqalpha/main.py:
|
|
57
|
+
#: rqalpha/main.py:257
|
|
58
58
|
msgid "strategy execute exception"
|
|
59
59
|
msgstr "策略运行产生异常"
|
|
60
60
|
|
|
@@ -75,9 +75,9 @@ msgstr "期货指数连续合约[99] 在实盘模拟中暂不支持。"
|
|
|
75
75
|
|
|
76
76
|
#: rqalpha/apis/api_base.py:173
|
|
77
77
|
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_future.py:66
|
|
78
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
79
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
80
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
78
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:105
|
|
79
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:143
|
|
80
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:346
|
|
81
81
|
msgid "Order Creation Failed: [{order_book_id}] No market data"
|
|
82
82
|
msgstr "订单创建失败: 当前合约[{order_book_id}]没有市场数据。"
|
|
83
83
|
|
|
@@ -126,11 +126,11 @@ msgid ""
|
|
|
126
126
|
"got {} (type: {})"
|
|
127
127
|
msgstr "函数 {}:参数 {} 不合法,季度应为形如 '2012q3' 的字符串,传入的是 {}(类型:{})"
|
|
128
128
|
|
|
129
|
-
#: rqalpha/cmds/bundle.py:
|
|
129
|
+
#: rqalpha/cmds/bundle.py:35
|
|
130
130
|
msgid "create bundle using RQDatac"
|
|
131
131
|
msgstr "使用 RQDatac 创建 Bundle"
|
|
132
132
|
|
|
133
|
-
#: rqalpha/cmds/bundle.py:
|
|
133
|
+
#: rqalpha/cmds/bundle.py:45
|
|
134
134
|
msgid ""
|
|
135
135
|
"rqdatac is required to create bundle. you can visit "
|
|
136
136
|
"https://www.ricequant.com/welcome/rqdata to get rqdatac, or use \"rqalpha"
|
|
@@ -139,15 +139,15 @@ msgstr ""
|
|
|
139
139
|
"创建 bundle 依赖 rqdatac。您可以访问 https://www.ricequant.com/welcome/rqdata 以获取 "
|
|
140
140
|
"rqdatac,或执行 \"rqalpha download-bundle\" 以下载月度更新的 bundle。"
|
|
141
141
|
|
|
142
|
-
#: rqalpha/cmds/bundle.py:
|
|
142
|
+
#: rqalpha/cmds/bundle.py:56 rqalpha/cmds/bundle.py:85
|
|
143
143
|
msgid "rqdatac init failed with error: {}"
|
|
144
144
|
msgstr "rqdatac 初始化失败:{}"
|
|
145
145
|
|
|
146
|
-
#: rqalpha/cmds/bundle.py:
|
|
146
|
+
#: rqalpha/cmds/bundle.py:64
|
|
147
147
|
msgid "Update bundle using RQDatac"
|
|
148
148
|
msgstr "使用 RQDatac 更新 Bundle"
|
|
149
149
|
|
|
150
|
-
#: rqalpha/cmds/bundle.py:
|
|
150
|
+
#: rqalpha/cmds/bundle.py:74
|
|
151
151
|
msgid ""
|
|
152
152
|
"rqdatac is required to update bundle. you can visit "
|
|
153
153
|
"https://www.ricequant.com/welcome/rqdata to get rqdatac, or use \"rqalpha"
|
|
@@ -156,15 +156,15 @@ msgstr ""
|
|
|
156
156
|
"更新 bundle 依赖 rqdatac。您可以访问 https://www.ricequant.com/welcome/rqdata 以获取 "
|
|
157
157
|
"rqdatac,或执行 \"rqalpha download-bundle\" 以下载月度更新的 bundle。"
|
|
158
158
|
|
|
159
|
-
#: rqalpha/cmds/bundle.py:
|
|
159
|
+
#: rqalpha/cmds/bundle.py:89
|
|
160
160
|
msgid "bundle not exist, use \"rqalpha create-bundle\" command instead"
|
|
161
161
|
msgstr "bundle 不存在,执行 \"rqalpha create-bundle\" 以创建 bundle"
|
|
162
162
|
|
|
163
|
-
#: rqalpha/cmds/bundle.py:
|
|
163
|
+
#: rqalpha/cmds/bundle.py:98
|
|
164
164
|
msgid "Download bundle (monthly updated)"
|
|
165
165
|
msgstr "下载(月度更新的)Bundle"
|
|
166
166
|
|
|
167
|
-
#: rqalpha/cmds/bundle.py:
|
|
167
|
+
#: rqalpha/cmds/bundle.py:109
|
|
168
168
|
msgid ""
|
|
169
169
|
"\n"
|
|
170
170
|
" [WARNING]\n"
|
|
@@ -178,23 +178,23 @@ msgstr ""
|
|
|
178
178
|
" 该路径下的内容将会被移除.\n"
|
|
179
179
|
" 确定继续吗?"
|
|
180
180
|
|
|
181
|
-
#: rqalpha/cmds/bundle.py:
|
|
181
|
+
#: rqalpha/cmds/bundle.py:127
|
|
182
182
|
msgid "Data bundle download successfully in {bundle_path}"
|
|
183
183
|
msgstr "数据下载成功: {bundle_path}"
|
|
184
184
|
|
|
185
|
-
#: rqalpha/cmds/bundle.py:
|
|
185
|
+
#: rqalpha/cmds/bundle.py:130
|
|
186
186
|
msgid "Check bundle"
|
|
187
187
|
msgstr "检测 Bundle 数据"
|
|
188
188
|
|
|
189
|
-
#: rqalpha/cmds/bundle.py:
|
|
189
|
+
#: rqalpha/cmds/bundle.py:144
|
|
190
190
|
msgid "try {} ..."
|
|
191
191
|
msgstr "尝试 {} ..."
|
|
192
192
|
|
|
193
|
-
#: rqalpha/cmds/bundle.py:
|
|
193
|
+
#: rqalpha/cmds/bundle.py:156
|
|
194
194
|
msgid "downloading ..."
|
|
195
195
|
msgstr "下载中 ..."
|
|
196
196
|
|
|
197
|
-
#: rqalpha/cmds/bundle.py:
|
|
197
|
+
#: rqalpha/cmds/bundle.py:170
|
|
198
198
|
msgid ""
|
|
199
199
|
"\n"
|
|
200
200
|
"Download failed, retry in {} seconds."
|
|
@@ -202,31 +202,31 @@ msgstr ""
|
|
|
202
202
|
"\n"
|
|
203
203
|
"下载失败,{} 秒后重试。"
|
|
204
204
|
|
|
205
|
-
#: rqalpha/cmds/bundle.py:
|
|
205
|
+
#: rqalpha/cmds/bundle.py:191
|
|
206
206
|
msgid "corrupted files"
|
|
207
207
|
msgstr "已损坏的文件"
|
|
208
208
|
|
|
209
|
-
#: rqalpha/cmds/bundle.py:
|
|
209
|
+
#: rqalpha/cmds/bundle.py:192
|
|
210
210
|
msgid "remove files"
|
|
211
211
|
msgstr "是否删除文件"
|
|
212
212
|
|
|
213
|
-
#: rqalpha/cmds/bundle.py:
|
|
213
|
+
#: rqalpha/cmds/bundle.py:195
|
|
214
214
|
msgid "remove success"
|
|
215
215
|
msgstr "文件删除完毕"
|
|
216
216
|
|
|
217
|
-
#: rqalpha/cmds/bundle.py:
|
|
217
|
+
#: rqalpha/cmds/bundle.py:197
|
|
218
218
|
msgid "corrupted files not remove"
|
|
219
219
|
msgstr "已损坏的文件尚未删除"
|
|
220
220
|
|
|
221
|
-
#: rqalpha/cmds/bundle.py:
|
|
221
|
+
#: rqalpha/cmds/bundle.py:199
|
|
222
222
|
msgid "input error"
|
|
223
223
|
msgstr "输入异常"
|
|
224
224
|
|
|
225
|
-
#: rqalpha/cmds/bundle.py:
|
|
225
|
+
#: rqalpha/cmds/bundle.py:201
|
|
226
226
|
msgid "bundle's day bar is incomplete, please update bundle"
|
|
227
227
|
msgstr "Bundle日线数据不完整,请及时更新bundle"
|
|
228
228
|
|
|
229
|
-
#: rqalpha/cmds/bundle.py:
|
|
229
|
+
#: rqalpha/cmds/bundle.py:203
|
|
230
230
|
msgid "good bundle's day bar"
|
|
231
231
|
msgstr "Bundle日线数据良好"
|
|
232
232
|
|
|
@@ -263,7 +263,7 @@ msgstr "策略暂停中,取消执行 {}({}, {})"
|
|
|
263
263
|
msgid "deprecated parameter[bar_dict] in before_trading function."
|
|
264
264
|
msgstr "[Deprecated]在before_trading函数中,第二个参数bar_dict已经不再使用了。"
|
|
265
265
|
|
|
266
|
-
#: rqalpha/data/bundle.py:
|
|
266
|
+
#: rqalpha/data/bundle.py:550
|
|
267
267
|
msgid ""
|
|
268
268
|
"File {} update failed, if it is using, please update later, or you can "
|
|
269
269
|
"delete then update again"
|
|
@@ -273,8 +273,7 @@ msgstr "{} 文件更新失败,如果其正在使用中,请稍后再进行更
|
|
|
273
273
|
msgid ""
|
|
274
274
|
"The bundle data you are using is too old, please update it to lastest "
|
|
275
275
|
"before using"
|
|
276
|
-
msgstr ""
|
|
277
|
-
"您所使用的 Bundle 数据过旧,请将其更新至最新后再进行使用"
|
|
276
|
+
msgstr "您所使用的 Bundle 数据过旧,请将其更新至最新后再进行使用"
|
|
278
277
|
|
|
279
278
|
#: rqalpha/data/base_data_source/storages.py:97
|
|
280
279
|
#: rqalpha/data/base_data_source/storages.py:124
|
|
@@ -329,13 +328,13 @@ msgid ""
|
|
|
329
328
|
msgstr "订单创建失败:{order_book_id} 的仓位不足,目标平仓/行权量为 {quantity},可平仓/行权量为 {closable}"
|
|
330
329
|
|
|
331
330
|
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_future.py:50
|
|
332
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
333
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
331
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:115
|
|
332
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:160
|
|
334
333
|
msgid "Order Creation Failed: 0 order quantity, order_book_id={order_book_id}"
|
|
335
334
|
msgstr "{order_book_id} 的订单创建失败:下单数量为 0"
|
|
336
335
|
|
|
337
336
|
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_future.py:56
|
|
338
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
337
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:102
|
|
339
338
|
msgid "Limit order price should not be nan."
|
|
340
339
|
msgstr "限价单价格不能为 nan。"
|
|
341
340
|
|
|
@@ -357,17 +356,17 @@ msgid ""
|
|
|
357
356
|
"[{new_orders_repr}]"
|
|
358
357
|
msgstr "订单被拆分,原订单:{original_order_repr},新订单:[{new_orders_repr}]"
|
|
359
358
|
|
|
360
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
359
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:68
|
|
361
360
|
msgid ""
|
|
362
361
|
"order_book_id: {order_book_id} needs stock account, please set and try "
|
|
363
362
|
"again!"
|
|
364
363
|
msgstr ""
|
|
365
364
|
|
|
366
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
365
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:122
|
|
367
366
|
msgid "insufficient cash, use all remaining cash({}) to create order"
|
|
368
367
|
msgstr "现金不足,使用当前剩余资金({})创建订单"
|
|
369
368
|
|
|
370
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
369
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:335
|
|
371
370
|
#, fuzzy
|
|
372
371
|
msgid ""
|
|
373
372
|
"function order_target_portfolio: invalid keys of target_portfolio, "
|
|
@@ -376,29 +375,29 @@ msgstr ""
|
|
|
376
375
|
"函数 order_target_portfolio:不合法的参数。target_portfolio 的键应为合约代码或 Instrument "
|
|
377
376
|
"对象,实际传入了 {}(类型:{})。"
|
|
378
377
|
|
|
379
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
378
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:340
|
|
380
379
|
msgid ""
|
|
381
380
|
"function order_target_portfolio: invalid instrument type, excepted "
|
|
382
381
|
"CS/ETF/LOF/INDX, got {}"
|
|
383
382
|
msgstr "函数 order_target_portfolio:不合法的资产类型。应传入股票、ETF、LOF 或指数,实际传入了 {}。"
|
|
384
383
|
|
|
385
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
384
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:354
|
|
386
385
|
msgid ""
|
|
387
386
|
"function order_target_portfolio: invalid values of target_portfolio, "
|
|
388
387
|
"excepted float between 0 and 1, got {} (key: {})"
|
|
389
388
|
msgstr "函数 order_target_portfolio:不合法的目标权重,应传入 0 和 1 之间的浮点数,实际传入了 {}(类型:{})。"
|
|
390
389
|
|
|
391
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
390
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:363
|
|
392
391
|
msgid "total percent should be lower than 1, current: {}"
|
|
393
392
|
msgstr "目标持仓占比总和应小于 1,当前值:{}。"
|
|
394
393
|
|
|
395
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
394
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:393
|
|
396
395
|
msgid ""
|
|
397
396
|
"Adjust position of {id_or_ins} Failed: Invalid close/open price "
|
|
398
397
|
"{close_price}/{open_price}"
|
|
399
398
|
msgstr ""
|
|
400
399
|
|
|
401
|
-
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:
|
|
400
|
+
#: rqalpha/mod/rqalpha_mod_sys_accounts/api/api_stock.py:719
|
|
402
401
|
msgid "in get_dividend, start_date {} is later than the previous test day {}"
|
|
403
402
|
msgstr "在 get_dividend 函数中,start_date {} 晚于当前回测时间的上一个交易日 {}。"
|
|
404
403
|
|
|
@@ -725,10 +724,8 @@ msgid ""
|
|
|
725
724
|
msgstr "订单被撤销: [{order_book_id}] 上市首日无法交易"
|
|
726
725
|
|
|
727
726
|
#: rqalpha/mod/rqalpha_mod_sys_simulation/matcher.py:126
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
msgid "Order Cancelled: {order_book_id} bar no volume"
|
|
731
|
-
msgstr "订单被撤销:{order_book_id} 当前无成交量"
|
|
727
|
+
msgid "Order Cancelled: {order_book_id} miss market data or bar no volume."
|
|
728
|
+
msgstr "订单被拒单: [{order_book_id}] 当前缺失市场数据或无成交量。"
|
|
732
729
|
|
|
733
730
|
#: rqalpha/mod/rqalpha_mod_sys_simulation/matcher.py:151
|
|
734
731
|
#: rqalpha/mod/rqalpha_mod_sys_simulation/signal_broker.py:95
|
|
@@ -740,6 +737,11 @@ msgstr "订单被拒单: [{order_book_id}] 已涨停。"
|
|
|
740
737
|
msgid "Order Cancelled: current bar [{order_book_id}] reach the limit_down price."
|
|
741
738
|
msgstr "订单被拒单: [{order_book_id}] 已跌停。"
|
|
742
739
|
|
|
740
|
+
#: rqalpha/mod/rqalpha_mod_sys_simulation/matcher.py:166
|
|
741
|
+
#: rqalpha/mod/rqalpha_mod_sys_simulation/signal_broker.py:86
|
|
742
|
+
msgid "Order Cancelled: {order_book_id} bar no volume"
|
|
743
|
+
msgstr "订单被撤销:{order_book_id} 当前无成交量"
|
|
744
|
+
|
|
743
745
|
#: rqalpha/mod/rqalpha_mod_sys_simulation/matcher.py:179
|
|
744
746
|
#: rqalpha/mod/rqalpha_mod_sys_simulation/matcher.py:436
|
|
745
747
|
#: rqalpha/mod/rqalpha_mod_sys_simulation/matcher.py:591
|
|
@@ -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
|
|
|
Binary file
|
|
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
|