gitextract_pjklxszz/ ├── .coveragerc ├── .github/ │ └── workflows/ │ ├── build.yaml │ └── package.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── .readthedocs.yaml ├── LICENSE ├── MANIFEST.in ├── README-cn.md ├── README.md ├── api-tests/ │ ├── create_stock_pool_info.http │ ├── create_stock_pools.http │ ├── del_stock_pool.http │ ├── event/ │ │ ├── create_stock_topic.http │ │ ├── get_stock_event.http │ │ ├── get_stock_news_analysis.http │ │ ├── get_tag_suggestions_stats.http │ │ ├── ignore_stock_news.http │ │ ├── query_stock_topic.http │ │ └── update_stock_topic.http │ ├── factor/ │ │ ├── get_factors.http │ │ └── query_factor_result.http │ ├── get_main_tags_in_stock_pool.http │ ├── get_stock_pool_info.http │ ├── get_stock_pools.http │ ├── tag/ │ │ ├── batch_set_stock_tags.http │ │ ├── build_main_tag_industry_relation.http │ │ ├── build_main_tag_sub_tag_relation.http │ │ ├── build_stock_tags.http │ │ ├── change_main_tag.http │ │ ├── create_hidden_tag_info.http │ │ ├── create_main_tag_info.http │ │ ├── create_sub_tag_info.http │ │ ├── del_hidden_tag.http │ │ ├── del_main_tag.http │ │ ├── del_sub_tag.http │ │ ├── get_hidden_tag_info.http │ │ ├── get_industry_info.http │ │ ├── get_main_tag_industry_relation.http │ │ ├── get_main_tag_info.http │ │ ├── get_main_tag_sub_tag_relation.http │ │ ├── get_stock_tag_options.http │ │ ├── get_sub_tag_info.http │ │ ├── query_simple_stock_tags.http │ │ ├── query_stock_tag_stats.http │ │ ├── query_stock_tags.http │ │ └── set_stock_tags.http │ ├── test.http │ └── trading/ │ ├── build_query_stock_quote_setting.http │ ├── build_trading_plan.http │ ├── get_current_trading_plan.http │ ├── get_future_trading_plan.http │ ├── get_query_stock_quote_setting.http │ ├── get_quote_stats.http │ ├── query_kdata.http │ ├── query_stock_quotes.http │ ├── query_tag_quotes.http │ ├── query_trading_plan.http │ └── query_ts.http ├── build.sh ├── code_of_conduct.md ├── docs/ │ ├── Makefile │ ├── make.bat │ ├── source/ │ │ ├── _templates/ │ │ │ ├── custom-class-template.rst │ │ │ ├── custom-module-template.rst │ │ │ └── sidebarlogo.html │ │ ├── api/ │ │ │ └── index.rst │ │ ├── conf.py │ │ ├── contributor.rst │ │ ├── core_concepts.rst │ │ ├── data/ │ │ │ ├── adding_new_entity.rst │ │ │ ├── data_concepts.rst │ │ │ ├── extending_data.rst │ │ │ ├── index.rst │ │ │ ├── record_and_query.rst │ │ │ └── trading_anything.rst │ │ ├── drawer/ │ │ │ ├── drawer_concepts.rst │ │ │ └── index.rst │ │ ├── factor/ │ │ │ ├── extending_factor.rst │ │ │ ├── factor_concepts.rst │ │ │ └── index.rst │ │ ├── index.rst │ │ ├── install.rst │ │ ├── intro.rst │ │ ├── ml/ │ │ │ └── index.rst │ │ ├── trader/ │ │ │ ├── index.rst │ │ │ └── trader_concepts.rst │ │ └── usage.rst │ └── storage_config.md ├── examples/ │ ├── README.MD │ ├── __init__.py │ ├── data_runner/ │ │ ├── __init__.py │ │ ├── actor_runner.py │ │ ├── finance_runner.py │ │ ├── index_runner.py │ │ ├── joinquant_fund_runner.py │ │ ├── joinquant_kdata_runner.py │ │ ├── kdata_runner.py │ │ ├── sina_data_runner.py │ │ └── trading_runner.py │ ├── factors/ │ │ ├── __init__.py │ │ ├── boll_factor.py │ │ ├── fundamental_selector.py │ │ └── tech_factor.py │ ├── hot.json │ ├── intent/ │ │ ├── __init__.py │ │ └── intent.py │ ├── main_line_hidden_tags.json │ ├── main_line_tags.json │ ├── migration.py │ ├── ml/ │ │ ├── __init__.py │ │ └── sgd.py │ ├── query_snippet.py │ ├── report_utils.py │ ├── reports/ │ │ ├── __init__.py │ │ ├── report_bull.py │ │ ├── report_core_compay.py │ │ ├── report_tops.py │ │ ├── report_vol_up.py │ │ └── subscriber_emails.json │ ├── requirements.txt │ ├── research/ │ │ ├── __init__.py │ │ ├── dragon_and_tiger.py │ │ ├── top_dragon_tiger.py │ │ └── top_tags.py │ ├── result.json │ ├── stock_tags.json │ ├── tag_utils.py │ ├── trader/ │ │ ├── __init__.py │ │ ├── dragon_and_tiger_trader.py │ │ ├── follow_ii_trader.py │ │ ├── keep_run_trader.py │ │ ├── ma_trader.py │ │ ├── macd_day_trader.py │ │ └── macd_week_and_day_trader.py │ ├── utils.py │ └── z.sh ├── init_env.sh ├── pyproject.toml ├── requirements/ │ ├── dev.txt │ └── docs.txt ├── requirements.txt ├── setup.py ├── sql/ │ ├── change_indices.sql │ ├── change_stock_index.sql │ ├── reduce_size.sql │ └── samples.sql ├── src/ │ └── zvt/ │ ├── __init__.py │ ├── api/ │ │ ├── __init__.py │ │ ├── intent.py │ │ ├── kdata.py │ │ ├── portfolio.py │ │ ├── selector.py │ │ ├── stats.py │ │ └── utils.py │ ├── autocode/ │ │ ├── __init__.py │ │ ├── generator.py │ │ └── templates/ │ │ ├── .coveragerc.template │ │ ├── .gitignore.template │ │ ├── .travis.yml.template │ │ ├── LICENSE.template │ │ ├── MANIFEST.in.template │ │ ├── README-en.md.template │ │ ├── README.md.template │ │ ├── __init__.py │ │ ├── fill_project.py.template │ │ ├── kdata_common.py.template │ │ ├── kdata_recorder.py.template │ │ ├── meta.py.template │ │ ├── meta_recorder.py.template │ │ ├── pkg_init.py.template │ │ ├── requirements.txt.template │ │ ├── setup.py.template │ │ └── test_pass.py.template │ ├── broker/ │ │ ├── __init__.py │ │ └── qmt/ │ │ ├── __init__.py │ │ ├── context.py │ │ ├── errors.py │ │ ├── qmt_account.py │ │ └── qmt_quote.py │ ├── common/ │ │ ├── __init__.py │ │ ├── query_models.py │ │ └── trading_models.py │ ├── config.json │ ├── consts.py │ ├── contract/ │ │ ├── __init__.py │ │ ├── api.py │ │ ├── base_service.py │ │ ├── context.py │ │ ├── data_type.py │ │ ├── drawer.py │ │ ├── factor.py │ │ ├── model.py │ │ ├── normal_data.py │ │ ├── reader.py │ │ ├── recorder.py │ │ ├── register.py │ │ ├── route_registry.py │ │ ├── schema.py │ │ ├── storage.py │ │ ├── utils.py │ │ └── zvt_info.py │ ├── domain/ │ │ ├── __init__.py │ │ ├── actor/ │ │ │ ├── __init__.py │ │ │ ├── actor_meta.py │ │ │ └── stock_actor.py │ │ ├── emotion/ │ │ │ ├── __init__.py │ │ │ └── emotion.py │ │ ├── fundamental/ │ │ │ ├── __init__.py │ │ │ ├── dividend_financing.py │ │ │ ├── finance.py │ │ │ ├── trading.py │ │ │ └── valuation.py │ │ ├── macro/ │ │ │ ├── __init__.py │ │ │ ├── macro.py │ │ │ └── monetary.py │ │ ├── meta/ │ │ │ ├── __init__.py │ │ │ ├── block_meta.py │ │ │ ├── blockus_meta.py │ │ │ ├── cbond_meta.py │ │ │ ├── country_meta.py │ │ │ ├── currency_meta.py │ │ │ ├── etf_meta.py │ │ │ ├── fund_meta.py │ │ │ ├── future_meta.py │ │ │ ├── index_meta.py │ │ │ ├── indexhk_meta.py │ │ │ ├── indexus_meta.py │ │ │ ├── stock_meta.py │ │ │ ├── stockhk_meta.py │ │ │ └── stockus_meta.py │ │ ├── misc/ │ │ │ ├── __init__.py │ │ │ ├── holder.py │ │ │ ├── money_flow.py │ │ │ ├── overall.py │ │ │ └── stock_news.py │ │ └── quotes/ │ │ ├── __init__.py │ │ ├── block/ │ │ │ ├── __init__.py │ │ │ ├── block_1d_kdata.py │ │ │ ├── block_1mon_kdata.py │ │ │ └── block_1wk_kdata.py │ │ ├── currency/ │ │ │ ├── __init__.py │ │ │ └── currency_1d_kdata.py │ │ ├── etf/ │ │ │ ├── __init__.py │ │ │ └── etf_1d_kdata.py │ │ ├── future/ │ │ │ ├── __init__.py │ │ │ └── future_1d_kdata.py │ │ ├── index/ │ │ │ ├── __init__.py │ │ │ ├── index_1d_kdata.py │ │ │ ├── index_1m_kdata.py │ │ │ └── index_1wk_kdata.py │ │ ├── indexhk/ │ │ │ ├── __init__.py │ │ │ └── indexhk_1d_kdata.py │ │ ├── indexus/ │ │ │ ├── __init__.py │ │ │ └── indexus_1d_kdata.py │ │ ├── stock/ │ │ │ ├── __init__.py │ │ │ ├── stock_15m_hfq_kdata.py │ │ │ ├── stock_15m_kdata.py │ │ │ ├── stock_1d_hfq_kdata.py │ │ │ ├── stock_1d_kdata.py │ │ │ ├── stock_1h_hfq_kdata.py │ │ │ ├── stock_1h_kdata.py │ │ │ ├── stock_1m_hfq_kdata.py │ │ │ ├── stock_1m_kdata.py │ │ │ ├── stock_1mon_hfq_kdata.py │ │ │ ├── stock_1mon_kdata.py │ │ │ ├── stock_1wk_hfq_kdata.py │ │ │ ├── stock_1wk_kdata.py │ │ │ ├── stock_30m_hfq_kdata.py │ │ │ ├── stock_30m_kdata.py │ │ │ ├── stock_4h_hfq_kdata.py │ │ │ ├── stock_4h_kdata.py │ │ │ ├── stock_5m_hfq_kdata.py │ │ │ ├── stock_5m_kdata.py │ │ │ ├── stock_quote.py │ │ │ └── stock_quote_log.py │ │ ├── stockhk/ │ │ │ ├── __init__.py │ │ │ ├── stockhk_1d_hfq_kdata.py │ │ │ ├── stockhk_1d_kdata.py │ │ │ └── stockhk_quote.py │ │ ├── stockus/ │ │ │ ├── __init__.py │ │ │ ├── stockus_1d_hfq_kdata.py │ │ │ ├── stockus_1d_kdata.py │ │ │ └── stockus_quote.py │ │ └── trade_day.py │ ├── factors/ │ │ ├── __init__.py │ │ ├── algorithm.py │ │ ├── factor_models.py │ │ ├── factor_service.py │ │ ├── fundamental/ │ │ │ ├── __init__.py │ │ │ └── finance_factor.py │ │ ├── ma/ │ │ │ ├── __init__.py │ │ │ ├── domain/ │ │ │ │ ├── __init__.py │ │ │ │ ├── common.py │ │ │ │ ├── stock_1d_ma_factor.py │ │ │ │ └── stock_1d_ma_stats_factor.py │ │ │ ├── ma_factor.py │ │ │ ├── ma_stats_factor.py │ │ │ └── top_bottom_factor.py │ │ ├── macd/ │ │ │ ├── __init__.py │ │ │ └── macd_factor.py │ │ ├── shape.py │ │ ├── target_selector.py │ │ ├── technical_factor.py │ │ ├── top_stocks.py │ │ ├── transformers.py │ │ └── zen/ │ │ ├── __init__.py │ │ ├── base_factor.py │ │ ├── domain/ │ │ │ ├── __init__.py │ │ │ ├── common.py │ │ │ ├── index_1d_zen_factor.py │ │ │ ├── stock_1d_zen_factor.py │ │ │ └── stock_1wk_zen_factor.py │ │ └── zen_factor.py │ ├── fill_project.py │ ├── informer/ │ │ ├── __init__.py │ │ ├── inform_utils.py │ │ └── informer.py │ ├── main.py │ ├── misc/ │ │ ├── __init__.py │ │ ├── constants.py │ │ ├── misc_models.py │ │ ├── misc_service.py │ │ └── zhdate.py │ ├── ml/ │ │ ├── __init__.py │ │ ├── lables.py │ │ └── ml.py │ ├── plugin.py │ ├── recorders/ │ │ ├── __init__.py │ │ ├── consts.py │ │ ├── eastmoney/ │ │ │ ├── __init__.py │ │ │ ├── common.py │ │ │ ├── dividend_financing/ │ │ │ │ ├── __init__.py │ │ │ │ ├── eastmoney_dividend_detail_recorder.py │ │ │ │ ├── eastmoney_dividend_financing_recorder.py │ │ │ │ ├── eastmoney_rights_issue_detail_recorder.py │ │ │ │ └── eastmoney_spo_detail_recorder.py │ │ │ ├── finance/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_china_stock_finance_recorder.py │ │ │ │ ├── eastmoney_balance_sheet_recorder.py │ │ │ │ ├── eastmoney_cash_flow_recorder.py │ │ │ │ ├── eastmoney_finance_factor_recorder.py │ │ │ │ └── eastmoney_income_statement_recorder.py │ │ │ ├── holder/ │ │ │ │ ├── __init__.py │ │ │ │ ├── eastmoney_stock_actor_recorder.py │ │ │ │ ├── eastmoney_top_ten_holder_recorder.py │ │ │ │ └── eastmoney_top_ten_tradable_holder_recorder.py │ │ │ ├── meta/ │ │ │ │ ├── __init__.py │ │ │ │ ├── eastmoney_block_meta_recorder.py │ │ │ │ └── eastmoney_stock_meta_recorder.py │ │ │ └── trading/ │ │ │ ├── __init__.py │ │ │ ├── eastmoney_holder_trading_recorder.py │ │ │ └── eastmoney_manager_trading_recorder.py │ │ ├── em/ │ │ │ ├── __init__.py │ │ │ ├── actor/ │ │ │ │ ├── __init__.py │ │ │ │ ├── em_stock_actor_summary_recorder.py │ │ │ │ ├── em_stock_ii_recorder.py │ │ │ │ ├── em_stock_top_ten_free_recorder.py │ │ │ │ └── em_stock_top_ten_recorder.py │ │ │ ├── em_api.py │ │ │ ├── macro/ │ │ │ │ ├── __init__.py │ │ │ │ └── em_treasury_yield_recorder.py │ │ │ ├── meta/ │ │ │ │ ├── __init__.py │ │ │ │ ├── em_block_meta_recorder.py │ │ │ │ ├── em_cbond_meta_recorder.py │ │ │ │ ├── em_currency_meta_recorder.py │ │ │ │ ├── em_future_meta_recorder.py │ │ │ │ ├── em_index_meta_recorder.py │ │ │ │ ├── em_indexhk_meta_recorder.py │ │ │ │ ├── em_indexus_meta_recorder.py │ │ │ │ ├── em_stock_meta_recorder.py │ │ │ │ ├── em_stockhk_meta_recorder.py │ │ │ │ └── em_stockus_meta_recorder.py │ │ │ ├── misc/ │ │ │ │ ├── __init__.py │ │ │ │ └── em_stock_news_recorder.py │ │ │ ├── quotes/ │ │ │ │ ├── __init__.py │ │ │ │ └── em_kdata_recorder.py │ │ │ └── trading/ │ │ │ ├── __init__.py │ │ │ └── em_dragon_and_tiger_recorder.py │ │ ├── exchange/ │ │ │ ├── __init__.py │ │ │ ├── api/ │ │ │ │ ├── __init__.py │ │ │ │ ├── cn_index_api.py │ │ │ │ ├── cn_index_stock_api.py │ │ │ │ ├── cs_index_api.py │ │ │ │ └── cs_index_stock_api.py │ │ │ ├── exchange_etf_meta_recorder.py │ │ │ ├── exchange_index_recorder.py │ │ │ ├── exchange_index_stock_recorder.py │ │ │ ├── exchange_stock_meta_recorder.py │ │ │ └── exchange_stock_summary_recorder.py │ │ ├── joinquant/ │ │ │ ├── __init__.py │ │ │ ├── common.py │ │ │ ├── fundamental/ │ │ │ │ ├── __init__.py │ │ │ │ ├── jq_etf_valuation_recorder.py │ │ │ │ ├── jq_margin_trading_recorder.py │ │ │ │ └── jq_stock_valuation_recorder.py │ │ │ ├── meta/ │ │ │ │ ├── __init__.py │ │ │ │ ├── jq_fund_meta_recorder.py │ │ │ │ ├── jq_stock_meta_recorder.py │ │ │ │ └── jq_trade_day_recorder.py │ │ │ ├── misc/ │ │ │ │ ├── __init__.py │ │ │ │ ├── jq_hk_holder_recorder.py │ │ │ │ ├── jq_index_money_flow_recorder.py │ │ │ │ └── jq_stock_money_flow_recorder.py │ │ │ ├── overall/ │ │ │ │ ├── __init__.py │ │ │ │ ├── jq_cross_market_recorder.py │ │ │ │ ├── jq_margin_trading_recorder.py │ │ │ │ └── jq_stock_summary_recorder.py │ │ │ └── quotes/ │ │ │ ├── __init__.py │ │ │ ├── jq_index_kdata_recorder.py │ │ │ └── jq_stock_kdata_recorder.py │ │ ├── jqka/ │ │ │ ├── __init__.py │ │ │ ├── emotion/ │ │ │ │ ├── JqkaEmotionRecorder.py │ │ │ │ └── __init__.py │ │ │ └── jqka_api.py │ │ ├── qmt/ │ │ │ ├── __init__.py │ │ │ ├── index/ │ │ │ │ ├── __init__.py │ │ │ │ └── qmt_index_recorder.py │ │ │ ├── meta/ │ │ │ │ ├── __init__.py │ │ │ │ └── qmt_stock_meta_recorder.py │ │ │ └── quotes/ │ │ │ ├── __init__.py │ │ │ └── qmt_kdata_recorder.py │ │ ├── sina/ │ │ │ ├── __init__.py │ │ │ ├── meta/ │ │ │ │ ├── __init__.py │ │ │ │ └── sina_block_recorder.py │ │ │ ├── money_flow/ │ │ │ │ ├── __init__.py │ │ │ │ ├── sina_block_money_flow_recorder.py │ │ │ │ └── sina_stock_money_flow_recorder.py │ │ │ └── quotes/ │ │ │ ├── __init__.py │ │ │ ├── sina_etf_kdata_recorder.py │ │ │ └── sina_index_kdata_recorder.py │ │ └── wb/ │ │ ├── __init__.py │ │ ├── wb_api.py │ │ ├── wb_country_recorder.py │ │ └── wb_economy_recorder.py │ ├── resources/ │ │ ├── concept_main_tag_mapping.json │ │ ├── hk_industry_main_tag_mapping.json │ │ ├── industry_main_tag_mapping.json │ │ ├── log_conf.yaml │ │ ├── missed_concept.json │ │ ├── missed_industry.json │ │ └── us_industry_main_tag_mapping.json │ ├── rest/ │ │ ├── __init__.py │ │ ├── data.py │ │ ├── factor.py │ │ ├── misc.py │ │ ├── trading.py │ │ └── work.py │ ├── samples/ │ │ ├── __init__.py │ │ └── stock_traders.py │ ├── sched/ │ │ ├── __init__.py │ │ └── sched.py │ ├── tag/ │ │ ├── __init__.py │ │ ├── ai_suggestion.py │ │ ├── common.py │ │ ├── tag_models.py │ │ ├── tag_schemas.py │ │ ├── tag_service.py │ │ ├── tag_stats.py │ │ ├── tag_utils.py │ │ └── tagger.py │ ├── tasks/ │ │ ├── init_tag_system.py │ │ ├── qmt_data_runner.py │ │ ├── qmt_tick_runner.py │ │ ├── stock_pool_runner.py │ │ ├── today_shoot_runner.py │ │ └── today_top_runner.py │ ├── trader/ │ │ ├── __init__.py │ │ ├── errors.py │ │ ├── sim_account.py │ │ ├── trader.py │ │ ├── trader_info_api.py │ │ ├── trader_models.py │ │ └── trader_schemas.py │ ├── trading/ │ │ ├── __init__.py │ │ ├── common.py │ │ ├── trading_models.py │ │ ├── trading_schemas.py │ │ └── trading_service.py │ ├── ui/ │ │ ├── __init__.py │ │ ├── apps/ │ │ │ └── factor_app.py │ │ ├── assets/ │ │ │ ├── __init__.py │ │ │ ├── base.css │ │ │ └── custom.css │ │ └── components/ │ │ ├── __init__.py │ │ └── dcc_components.py │ ├── utils/ │ │ ├── __init__.py │ │ ├── decorator.py │ │ ├── file_utils.py │ │ ├── git_utils.py │ │ ├── model_utils.py │ │ ├── pd_utils.py │ │ ├── recorder_utils.py │ │ ├── str_utils.py │ │ ├── time_utils.py │ │ ├── utils.py │ │ └── zip_utils.py │ └── zvt_server.py └── tests/ ├── __init__.py ├── api/ │ ├── __init__.py │ ├── test_common.py │ ├── test_dividend_financing.py │ ├── test_finance.py │ ├── test_holder.py │ ├── test_intent.py │ ├── test_joinquant_quotes.py │ ├── test_kdata.py │ ├── test_technical.py │ └── test_trading.py ├── context.py ├── contract/ │ ├── __init__.py │ ├── test_add_provider_plugin.py │ ├── test_entity.py │ ├── test_reader.py │ └── test_schema.py ├── factors/ │ ├── __init__.py │ ├── test_algorithm.py │ ├── test_factor_select_targets.py │ ├── test_factors.py │ ├── test_technical_factor.py │ └── test_transformers.py ├── ml/ │ ├── __init__.py │ └── test_sgd.py ├── recorders/ │ ├── __init__.py │ ├── common/ │ │ ├── __init__.py │ │ └── test_china_stock_list_recorder.py │ ├── eastmoney/ │ │ ├── __init__.py │ │ ├── test_dividend_financing_recorder.py │ │ ├── test_finance.py │ │ ├── test_holder_recorder.py │ │ ├── test_meta_recorder.py │ │ └── test_trading_recorder.py │ ├── em/ │ │ ├── __init__.py │ │ ├── test_em_api.py │ │ └── test_kdata_recorder.py │ ├── joinquant/ │ │ ├── __init__.py │ │ ├── test_quote_recorder.py │ │ └── test_stock_money_flow.py │ └── sina/ │ ├── __init__.py │ └── test_money_flow_recorder.py ├── test_generator.py ├── trader/ │ ├── __init__.py │ └── test_trader.py └── utils/ ├── __init__.py ├── test_pd_utils.py ├── test_time_utils.py └── test_utils.py