1 line
59 KiB
JSON
1 line
59 KiB
JSON
{"repo": "argithun/alphaspire", "files": {"README.md": {"8d64ec4fed29efff369ca952088d36bd81a0ab96": {"t": 1785674033.2249103, "n": 5980, "h": "b7f8a3e7331682c7", "c": "# AlphaSpire\n\nAI agent-driven fully automated Alpha mining.\n\n-----\n\n## ⚠️ Attention\n\nPlease note that this tool only performs backtest simulations on the platform (Simulate) and does not execute any submission actions (Submit). **Excessive simulations without valid submissions may result in your account being locked.** Please make sure to limit the number of backtests when using this tool.\n\n## Work Pipeline\n\n```scss\n ┌────────────────────────────┐\n │ Data Acquisition Module │\n │ (Scraper & Local Storage) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Preprocessing & Parsing │\n │ (Text cleaning, Metadata) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Researcher (LLM) │\n │ (LangChain / Prompting) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Alpha Template Generating │\n │ (Factor/Signal Extraction) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Evaluator │\n │ (Submit to WQ or local sim)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Results Collecting │\n │ (Store Scores, Rank Alphas)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │Results analyzing &Iteration│\n │ │\n └────────────────────────────┘\n```\n\n## Architecture\n### data\nThe data folder stores posts, operators, fields, operator types, field types, generated alpha templates, generated alphas, and backtesting results information.\n\n### prompts\nStores prompt templates used in workflows.\n\n### utils\n1. Get the operator set of Fast Expression and save it to ./data/wq_operators\n2. Get the field collection of Fast Expression and save it to ./data/wq_fields\n3. Manual rules classify operators and generate operator types required by templates. (save to ./data/wq_template_operators)\n4. Clustering and large language models are used to assist in generating the field types used in templates. (save to ./data/wq_template_fields)\n5. Various text processing and other miscellaneous.\n\n### scraper\n1. Scrape posts from the WorldQuant forum and store them in ./data/wq_posts/raw_posts.\n2. Extract the main information from the original html text of the post into a json file and store it in ./data/wq_posts/processed_posts\n3. Use a large language model to determine whether the post has the potential to generate alpha, and if so, save it to ./data/wq_posts/helpful_posts\n\n### researcher\n1. Use LLM to summarize hypothesis from blog and save it to ./data/hypothesis_db_v2\n2. Use LLM to generate template from hypothesis and save it to ./data/template_db_v2\n3. Multiple loops generate alphas based on template, field type, and operator type and save them to ./data/alpha_db_v2/all_alphas\n\n### evaluator\nUse the WorldQuant backtesting API to evaluate alpha performance and save the results to data/alpha_db_v2/backtest_result\n\n\n## Deployment\n\n1. Create a conda environment\n ```bash\n conda env create -f environment.yml\n conda activate alphaspire\n ```\n2. Fill in the configuration file (config.yaml)\n ```yaml\n # ===============================\n # Global Configuration File\n # ===============================\n \n # --- OpenAI API Settings ---\n openai_base_url: \"todo\" # e.g. https://api.deepseek.com\n openai_api_key: \"todo\" # e.g. sk-...\n openai_model_name: \"todo\" # e.g. deepseek-chat\n reasoner_model_name: \"todo\" # e.g. deepseek-reasoner\n \n # --- WorldQuant Platform Credentials ---\n worldquant_account: \"todo\"\n worldquant_password: \"todo\"\n \n worldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\n worldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\n worldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n # You can also choose any other WorldQuant Forum URL you have access to.\n \n # --- Dataset from WorldQuant Brain\n enabled_field_datasets: # Select the field database you want to use to build alphas.\n - pv1 # Database name reference ./data/wq_fields\n - fundamental6\n - analyst4\n - model16\n - news12 \n ```\n\n3. One-click operation\n * Full process operation\n ```bash\n python3 main.py\n ```\n * Only run post crawl\n ```bash\n python3 main_scraper.py\n ```\n * Only run Alpha generation\n ```bash\n python3 main_researcher.py\n ```\n * Only run Alpha backtests\n ```bash\n ./test_script.sh\n ```\n OR\n ```bash\n python3 main_evaluator.py\n ```\n\n## Notice\n\nRegarding WorldQuant backtest parameter settings, currently only manual modification of the parameters in the following code section in evaluator/backtest_with_wq_mul.py is supported. \nThese will be moved to a separate config file in future versions.\n\n```\npayload = {\n \"type\": \"REGULAR\",\n \"settings\": {\n \"instrumentType\": \"EQUITY\",\n \"region\": \"ASI\",\n \"universe\": \"MINVOL1M\",\n \"delay\": 1,\n \"decay\": 6,\n \"neutralization\": \"SUBINDUSTRY\",\n \"truncation\": 0.01,\n \"pasteurization\": \"ON\",\n \"unitHandling\": \"VERIFY\",\n \"nanHandling\": \"ON\",\n \"maxTrade\": \"ON\",\n \"language\": \"FASTEXPR\",\n \"visualization\": False,\n },\n \"regular\": fixed_expr\n}\n```\n"}, "3fcc8e13ff35ff86a46928f9acd49051519523ee": {"t": 1785761521.3353975, "n": 5980, "h": "b7f8a3e7331682c7", "c": "# AlphaSpire\n\nAI agent-driven fully automated Alpha mining.\n\n-----\n\n## ⚠️ Attention\n\nPlease note that this tool only performs backtest simulations on the platform (Simulate) and does not execute any submission actions (Submit). **Excessive simulations without valid submissions may result in your account being locked.** Please make sure to limit the number of backtests when using this tool.\n\n## Work Pipeline\n\n```scss\n ┌────────────────────────────┐\n │ Data Acquisition Module │\n │ (Scraper & Local Storage) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Preprocessing & Parsing │\n │ (Text cleaning, Metadata) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Researcher (LLM) │\n │ (LangChain / Prompting) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Alpha Template Generating │\n │ (Factor/Signal Extraction) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Evaluator │\n │ (Submit to WQ or local sim)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Results Collecting │\n │ (Store Scores, Rank Alphas)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │Results analyzing &Iteration│\n │ │\n └────────────────────────────┘\n```\n\n## Architecture\n### data\nThe data folder stores posts, operators, fields, operator types, field types, generated alpha templates, generated alphas, and backtesting results information.\n\n### prompts\nStores prompt templates used in workflows.\n\n### utils\n1. Get the operator set of Fast Expression and save it to ./data/wq_operators\n2. Get the field collection of Fast Expression and save it to ./data/wq_fields\n3. Manual rules classify operators and generate operator types required by templates. (save to ./data/wq_template_operators)\n4. Clustering and large language models are used to assist in generating the field types used in templates. (save to ./data/wq_template_fields)\n5. Various text processing and other miscellaneous.\n\n### scraper\n1. Scrape posts from the WorldQuant forum and store them in ./data/wq_posts/raw_posts.\n2. Extract the main information from the original html text of the post into a json file and store it in ./data/wq_posts/processed_posts\n3. Use a large language model to determine whether the post has the potential to generate alpha, and if so, save it to ./data/wq_posts/helpful_posts\n\n### researcher\n1. Use LLM to summarize hypothesis from blog and save it to ./data/hypothesis_db_v2\n2. Use LLM to generate template from hypothesis and save it to ./data/template_db_v2\n3. Multiple loops generate alphas based on template, field type, and operator type and save them to ./data/alpha_db_v2/all_alphas\n\n### evaluator\nUse the WorldQuant backtesting API to evaluate alpha performance and save the results to data/alpha_db_v2/backtest_result\n\n\n## Deployment\n\n1. Create a conda environment\n ```bash\n conda env create -f environment.yml\n conda activate alphaspire\n ```\n2. Fill in the configuration file (config.yaml)\n ```yaml\n # ===============================\n # Global Configuration File\n # ===============================\n \n # --- OpenAI API Settings ---\n openai_base_url: \"todo\" # e.g. https://api.deepseek.com\n openai_api_key: \"todo\" # e.g. sk-...\n openai_model_name: \"todo\" # e.g. deepseek-chat\n reasoner_model_name: \"todo\" # e.g. deepseek-reasoner\n \n # --- WorldQuant Platform Credentials ---\n worldquant_account: \"todo\"\n worldquant_password: \"todo\"\n \n worldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\n worldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\n worldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n # You can also choose any other WorldQuant Forum URL you have access to.\n \n # --- Dataset from WorldQuant Brain\n enabled_field_datasets: # Select the field database you want to use to build alphas.\n - pv1 # Database name reference ./data/wq_fields\n - fundamental6\n - analyst4\n - model16\n - news12 \n ```\n\n3. One-click operation\n * Full process operation\n ```bash\n python3 main.py\n ```\n * Only run post crawl\n ```bash\n python3 main_scraper.py\n ```\n * Only run Alpha generation\n ```bash\n python3 main_researcher.py\n ```\n * Only run Alpha backtests\n ```bash\n ./test_script.sh\n ```\n OR\n ```bash\n python3 main_evaluator.py\n ```\n\n## Notice\n\nRegarding WorldQuant backtest parameter settings, currently only manual modification of the parameters in the following code section in evaluator/backtest_with_wq_mul.py is supported. \nThese will be moved to a separate config file in future versions.\n\n```\npayload = {\n \"type\": \"REGULAR\",\n \"settings\": {\n \"instrumentType\": \"EQUITY\",\n \"region\": \"ASI\",\n \"universe\": \"MINVOL1M\",\n \"delay\": 1,\n \"decay\": 6,\n \"neutralization\": \"SUBINDUSTRY\",\n \"truncation\": 0.01,\n \"pasteurization\": \"ON\",\n \"unitHandling\": \"VERIFY\",\n \"nanHandling\": \"ON\",\n \"maxTrade\": \"ON\",\n \"language\": \"FASTEXPR\",\n \"visualization\": False,\n },\n \"regular\": fixed_expr\n}\n```\n"}, "5dbcf820cc510f250db6ebeecc6beee56fc86ef3": {"t": 1785761522.6808074, "n": 5982, "h": "325f49a222e291a0", "c": "# AlphaSpire\n\nAI agent-driven fully automated Alpha mining.\n\n-----\n\n## ⚠️ Attention\n\nPlease note that this tool only performs backtest simulations on the platform (Simulate) and does not execute any submission actions (Submit). ** Excessive simulations without valid submissions may result in your account being locked. ** Please make sure to limit the number of backtests when using this tool.\n\n## Work Pipeline\n\n```scss\n ┌────────────────────────────┐\n │ Data Acquisition Module │\n │ (Scraper & Local Storage) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Preprocessing & Parsing │\n │ (Text cleaning, Metadata) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Researcher (LLM) │\n │ (LangChain / Prompting) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Alpha Template Generating │\n │ (Factor/Signal Extraction) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Evaluator │\n │ (Submit to WQ or local sim)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Results Collecting │\n │ (Store Scores, Rank Alphas)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │Results analyzing &Iteration│\n │ │\n └────────────────────────────┘\n```\n\n## Architecture\n### data\nThe data folder stores posts, operators, fields, operator types, field types, generated alpha templates, generated alphas, and backtesting results information.\n\n### prompts\nStores prompt templates used in workflows.\n\n### utils\n1. Get the operator set of Fast Expression and save it to ./data/wq_operators\n2. Get the field collection of Fast Expression and save it to ./data/wq_fields\n3. Manual rules classify operators and generate operator types required by templates. (save to ./data/wq_template_operators)\n4. Clustering and large language models are used to assist in generating the field types used in templates. (save to ./data/wq_template_fields)\n5. Various text processing and other miscellaneous.\n\n### scraper\n1. Scrape posts from the WorldQuant forum and store them in ./data/wq_posts/raw_posts.\n2. Extract the main information from the original html text of the post into a json file and store it in ./data/wq_posts/processed_posts\n3. Use a large language model to determine whether the post has the potential to generate alpha, and if so, save it to ./data/wq_posts/helpful_posts\n\n### researcher\n1. Use LLM to summarize hypothesis from blog and save it to ./data/hypothesis_db_v2\n2. Use LLM to generate template from hypothesis and save it to ./data/template_db_v2\n3. Multiple loops generate alphas based on template, field type, and operator type and save them to ./data/alpha_db_v2/all_alphas\n\n### evaluator\nUse the WorldQuant backtesting API to evaluate alpha performance and save the results to data/alpha_db_v2/backtest_result\n\n\n## Deployment\n\n1. Create a conda environment\n ```bash\n conda env create -f environment.yml\n conda activate alphaspire\n ```\n2. Fill in the configuration file (config.yaml)\n ```yaml\n # ===============================\n # Global Configuration File\n # ===============================\n \n # --- OpenAI API Settings ---\n openai_base_url: \"todo\" # e.g. https://api.deepseek.com\n openai_api_key: \"todo\" # e.g. sk-...\n openai_model_name: \"todo\" # e.g. deepseek-chat\n reasoner_model_name: \"todo\" # e.g. deepseek-reasoner\n \n # --- WorldQuant Platform Credentials ---\n worldquant_account: \"todo\"\n worldquant_password: \"todo\"\n \n worldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\n worldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\n worldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n # You can also choose any other WorldQuant Forum URL you have access to.\n \n # --- Dataset from WorldQuant Brain\n enabled_field_datasets: # Select the field database you want to use to build alphas.\n - pv1 # Database name reference ./data/wq_fields\n - fundamental6\n - analyst4\n - model16\n - news12 \n ```\n\n3. One-click operation\n * Full process operation\n ```bash\n python3 main.py\n ```\n * Only run post crawl\n ```bash\n python3 main_scraper.py\n ```\n * Only run Alpha generation\n ```bash\n python3 main_researcher.py\n ```\n * Only run Alpha backtests\n ```bash\n ./test_script.sh\n ```\n OR\n ```bash\n python3 main_evaluator.py\n ```\n\n## Notice\n\nRegarding WorldQuant backtest parameter settings, currently only manual modification of the parameters in the following code section in evaluator/backtest_with_wq_mul.py is supported. \nThese will be moved to a separate config file in future versions.\n\n```\npayload = {\n \"type\": \"REGULAR\",\n \"settings\": {\n \"instrumentType\": \"EQUITY\",\n \"region\": \"ASI\",\n \"universe\": \"MINVOL1M\",\n \"delay\": 1,\n \"decay\": 6,\n \"neutralization\": \"SUBINDUSTRY\",\n \"truncation\": 0.01,\n \"pasteurization\": \"ON\",\n \"unitHandling\": \"VERIFY\",\n \"nanHandling\": \"ON\",\n \"maxTrade\": \"ON\",\n \"language\": \"FASTEXPR\",\n \"visualization\": False,\n },\n \"regular\": fixed_expr\n}\n```\n"}, "c42cfc2b59a5dff3c531816e353e2a994f66018b": {"t": 1785761524.4197013, "n": 5654, "h": "e6aea5a9676d8b94", "c": "# AlphaSpire\n\nAI agent-driven fully automated Alpha mining.\n\n-----\n\n## Work Pipeline\n\n```scss\n ┌────────────────────────────┐\n │ Data Acquisition Module │\n │ (Scraper & Local Storage) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Preprocessing & Parsing │\n │ (Text cleaning, Metadata) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Researcher (LLM) │\n │ (LangChain / Prompting) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Alpha Template Generating │\n │ (Factor/Signal Extraction) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Evaluator │\n │ (Submit to WQ or local sim)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Results Collecting │\n │ (Store Scores, Rank Alphas)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │Results analyzing &Iteration│\n │ │\n └────────────────────────────┘\n```\n\n## Architecture\n### data\nThe data folder stores posts, operators, fields, operator types, field types, generated alpha templates, generated alphas, and backtesting results information.\n\n### prompts\nStores prompt templates used in workflows.\n\n### utils\n1. Get the operator set of Fast Expression and save it to ./data/wq_operators\n2. Get the field collection of Fast Expression and save it to ./data/wq_fields\n3. Manual rules classify operators and generate operator types required by templates. (save to ./data/wq_template_operators)\n4. Clustering and large language models are used to assist in generating the field types used in templates. (save to ./data/wq_template_fields)\n5. Various text processing and other miscellaneous.\n\n### scraper\n1. Scrape posts from the WorldQuant forum and store them in ./data/wq_posts/raw_posts.\n2. Extract the main information from the original html text of the post into a json file and store it in ./data/wq_posts/processed_posts\n3. Use a large language model to determine whether the post has the potential to generate alpha, and if so, save it to ./data/wq_posts/helpful_posts\n\n### researcher\n1. Use LLM to summarize hypothesis from blog and save it to ./data/hypothesis_db_v2\n2. Use LLM to generate template from hypothesis and save it to ./data/template_db_v2\n3. Multiple loops generate alphas based on template, field type, and operator type and save them to ./data/alpha_db_v2/all_alphas\n\n### evaluator\nUse the WorldQuant backtesting API to evaluate alpha performance and save the results to data/alpha_db_v2/backtest_result\n\n\n## Deployment\n\n1. Create a conda environment\n ```bash\n conda env create -f environment.yml\n conda activate alphaspire\n ```\n2. Fill in the configuration file (config.yaml)\n ```yaml\n # ===============================\n # Global Configuration File\n # ===============================\n \n # --- OpenAI API Settings ---\n openai_base_url: \"todo\" # e.g. https://api.deepseek.com\n openai_api_key: \"todo\" # e.g. sk-...\n openai_model_name: \"todo\" # e.g. deepseek-chat\n reasoner_model_name: \"todo\" # e.g. deepseek-reasoner\n \n # --- WorldQuant Platform Credentials ---\n worldquant_account: \"todo\"\n worldquant_password: \"todo\"\n \n worldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\n worldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\n worldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n # You can also choose any other WorldQuant Forum URL you have access to.\n \n # --- Dataset from WorldQuant Brain\n enabled_field_datasets: # Select the field database you want to use to build alphas.\n - pv1 # Database name reference ./data/wq_fields\n - fundamental6\n - analyst4\n - model16\n - news12 \n ```\n\n3. One-click operation\n * Full process operation\n ```bash\n python3 main.py\n ```\n * Only run post crawl\n ```bash\n python3 main_scraper.py\n ```\n * Only run Alpha generation\n ```bash\n python3 main_researcher.py\n ```\n * Only run Alpha backtests\n ```bash\n ./test_script.sh\n ```\n OR\n ```bash\n python3 main_evaluator.py\n ```\n\n## Notice\n\nRegarding WorldQuant backtest parameter settings, currently only manual modification of the parameters in the following code section in evaluator/backtest_with_wq_mul.py is supported. \nThese will be moved to a separate config file in future versions.\n\n```\npayload = {\n \"type\": \"REGULAR\",\n \"settings\": {\n \"instrumentType\": \"EQUITY\",\n \"region\": \"ASI\",\n \"universe\": \"MINVOL1M\",\n \"delay\": 1,\n \"decay\": 6,\n \"neutralization\": \"SUBINDUSTRY\",\n \"truncation\": 0.01,\n \"pasteurization\": \"ON\",\n \"unitHandling\": \"VERIFY\",\n \"nanHandling\": \"ON\",\n \"maxTrade\": \"ON\",\n \"language\": \"FASTEXPR\",\n \"visualization\": False,\n },\n \"regular\": fixed_expr\n}\n```\n"}, "5100fab59ae9169ee6eb189353464729c25c42d0": {"t": 1785761526.6128674, "n": 5180, "h": "a400d68327818447", "c": "# AlphaSpire\n\nAI agent-driven fully automated Alpha mining.\n\n-----\n\n## Work Pipeline\n\n```scss\n ┌────────────────────────────┐\n │ Data Acquisition Module │\n │ (Scraper & Local Storage) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Preprocessing & Parsing │\n │ (Text cleaning, Metadata) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Researcher (LLM) │\n │ (LangChain / Prompting) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Alpha Template Generating │\n │ (Factor/Signal Extraction) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Evaluator │\n │ (Submit to WQ or local sim)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Results Collecting │\n │ (Store Scores, Rank Alphas)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │Results analyzing &Iteration│\n │ │\n └────────────────────────────┘\n```\n\n## Architecture\n### data\nThe data folder stores posts, operators, fields, operator types, field types, generated alpha templates, generated alphas, and backtesting results information.\n\n### prompts\nStores prompt templates used in workflows.\n\n### utils\n1. Get the operator set of Fast Expression and save it to ./data/wq_operators\n2. Get the field collection of Fast Expression and save it to ./data/wq_fields\n3. Manual rules classify operators and generate operator types required by templates. (save to ./data/wq_template_operators)\n4. Clustering and large language models are used to assist in generating the field types used in templates. (save to ./data/wq_template_fields)\n5. Various text processing and other miscellaneous.\n\n### scraper\n1. Scrape posts from the WorldQuant forum and store them in ./data/wq_posts/raw_posts.\n2. Extract the main information from the original html text of the post into a json file and store it in ./data/wq_posts/processed_posts\n3. Use a large language model to determine whether the post has the potential to generate alpha, and if so, save it to ./data/wq_posts/helpful_posts\n\n### researcher\n1. Use LLM to summarize hypothesis from blog and save it to ./data/hypothesis_db_v2\n2. Use LLM to generate template from hypothesis and save it to ./data/template_db_v2\n3. Multiple loops generate alphas based on template, field type, and operator type and save them to ./data/alpha_db_v2/all_alphas\n\n### evaluator\nUse the WorldQuant backtesting API to evaluate alpha performance and save the results to data/alpha_db_v2/backtest_result\n\n\n## Deployment\n\n1. Create a conda environment\n ```bash\n conda env create -f environment.yml\n conda activate alphaspire\n ```\n2. Fill in the configuration file (config.yaml)\n```yaml\n# ===============================\n# Global Configuration File\n# ===============================\n\n# --- OpenAI API Settings ---\nopenai_base_url: \"todo\" # e.g. https://api.deepseek.com\nopenai_api_key: \"todo\" # e.g. sk-...\nopenai_model_name: \"todo\" # e.g. deepseek-chat\nreasoner_model_name: \"todo\" # e.g. deepseek-reasoner\n\n# --- WorldQuant Platform Credentials ---\nworldquant_account: \"todo\"\nworldquant_password: \"todo\"\n\nworldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\nworldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\nworldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n# You can also choose any other WorldQuant Forum URL you have access to.\n\n# --- Dataset from WorldQuant Brain\nenabled_field_datasets: # Select the field database you want to use to build alphas.\n - pv1 # Database name reference ./data/wq_fields\n - fundamental6\n - analyst4\n - model16\n - news12 \n```\n\n3. One-click operation\n ```bash\n python3 main.py\n ```\n\n## Notice\n\nRegarding WorldQuant backtest parameter settings, currently only manual modification of the parameters in the following code section in evaluator/backtest_with_wq_mul.py is supported. \nThese will be moved to a separate config file in future versions.\n\n```\npayload = {\n \"type\": \"REGULAR\",\n \"settings\": {\n \"instrumentType\": \"EQUITY\",\n \"region\": \"ASI\",\n \"universe\": \"MINVOL1M\",\n \"delay\": 1,\n \"decay\": 6,\n \"neutralization\": \"SUBINDUSTRY\",\n \"truncation\": 0.01,\n \"pasteurization\": \"ON\",\n \"unitHandling\": \"VERIFY\",\n \"nanHandling\": \"ON\",\n \"maxTrade\": \"ON\",\n \"language\": \"FASTEXPR\",\n \"visualization\": False,\n },\n \"regular\": fixed_expr\n}\n```\n"}, "6b3546207758a5befe48d98ac8957ec7d83bbf3b": {"t": 1785761528.941007, "n": 5228, "h": "570cd484158a5fd7", "c": "# AlphaSpire\n\nAI agent-driven fully automated Alpha mining.\n\n-----\n\n## Work Pipeline\n\n```scss\n ┌────────────────────────────┐\n │ Data Acquisition Module │\n │ (Scraper & Local Storage) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Preprocessing & Parsing │\n │ (Text cleaning, Metadata) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Researcher (LLM) │\n │ (LangChain / Prompting) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Alpha Template Generating │\n │ (Factor/Signal Extraction) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Evaluator │\n │ (Submit to WQ or local sim)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Results Collecting │\n │ (Store Scores, Rank Alphas)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │Results analyzing &Iteration│\n │ │\n └────────────────────────────┘\n```\n\n## Architecture\n### data\nThe data folder stores posts, operators, fields, operator types, field types, generated alpha templates, generated alphas, and backtesting results information.\n\n### prompts\nStores prompt templates used in workflows.\n\n### utils\n1. Get the operator set of Fast Expression and save it to ./data/wq_operators\n2. Get the field collection of Fast Expression and save it to ./data/wq_fields\n3. Manual rules classify operators and generate operator types required by templates. (save to ./data/wq_template_operators)\n4. Clustering and large language models are used to assist in generating the field types used in templates. (save to ./data/wq_template_fields)\n5. Various text processing and other miscellaneous.\n\n### scraper\n1. Scrape posts from the WorldQuant forum and store them in ./data/wq_posts/raw_posts.\n2. Extract the main information from the original html text of the post into a json file and store it in ./data/wq_posts/processed_posts\n3. Use a large language model to determine whether the post has the potential to generate alpha, and if so, save it to ./data/wq_posts/helpful_posts\n\n### researcher\n1. Use LLM to summarize hypothesis from blog and save it to ./data/hypothesis_db_v2\n2. Use LLM to generate template from hypothesis and save it to ./data/template_db_v2\n3. Multiple loops generate alphas based on template, field type, and operator type and save them to ./data/alpha_db_v2/all_alphas\n\n### evaluator\nUse the WorldQuant backtesting API to evaluate alpha performance and save the results to data/alpha_db_v2/backtest_result\n\n\n## Deployment\n\n1. Create a conda environment\n ```bash\n conda env create -f environment.yml\n conda activate alphaspire\n ```\n2. Fill in the configuration file (config.yaml)\n```yaml\n# ===============================\n# Global Configuration File\n# ===============================\n\n# --- OpenAI API Settings ---\nopenai_base_url: \"todo\" # e.g. https://api.deepseek.com\nopenai_api_key: \"todo\" # e.g. sk-...\nopenai_model_name: \"todo\" # e.g. deepseek-chat\nreasoner_model_name: \"todo\" # e.g. deepseek-reasoner\n\n# --- WorldQuant Platform Credentials ---\nworldquant_account: \"todo\"\nworldquant_password: \"todo\"\n\nworldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\nworldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\nworldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n# You can also choose any other WorldQuant Forum URL you have access to.\n\n# --- Dataset from WorldQuant Brain\nenabled_field_datasets: # Select the field database you want to use to build alphas.\n - pv1 # Database name reference ./data/wq_fields\n - fundamental6\n - analyst4\n - model16\n - news12 \n```\n\n3. One-click operation\n ```bash\n ./test_script.sh\n ```\n OR\n ```bash\n python3 main.py\n ```\n\n## Notice\n\nRegarding WorldQuant backtest parameter settings, currently only manual modification of the parameters in the following code section in evaluator/backtest_with_wq_mul.py is supported. \nThese will be moved to a separate config file in future versions.\n\n```\npayload = {\n \"type\": \"REGULAR\",\n \"settings\": {\n \"instrumentType\": \"EQUITY\",\n \"region\": \"ASI\",\n \"universe\": \"MINVOL1M\",\n \"delay\": 1,\n \"decay\": 6,\n \"neutralization\": \"SUBINDUSTRY\",\n \"truncation\": 0.01,\n \"pasteurization\": \"ON\",\n \"unitHandling\": \"VERIFY\",\n \"nanHandling\": \"ON\",\n \"maxTrade\": \"ON\",\n \"language\": \"FASTEXPR\",\n \"visualization\": False,\n },\n \"regular\": fixed_expr\n}\n```\n"}, "d1868c2090db7bef1007a02aeb6d4aa857b05766": {"t": 1785761530.105719, "n": 4480, "h": "86e9963716bf0e5a", "c": "# AlphaSpire\n\nAI agent-driven fully automated Alpha mining.\n\n-----\n\n## Work Pipeline\n\n```scss\n ┌────────────────────────────┐\n │ Data Acquisition Module │\n │ (Scraper & Local Storage) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Preprocessing & Parsing │\n │ (Text cleaning, Metadata) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Researcher (LLM) │\n │ (LangChain / Prompting) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Alpha Template Generating │\n │ (Factor/Signal Extraction) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Evaluator │\n │ (Submit to WQ or local sim)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Results Collecting │\n │ (Store Scores, Rank Alphas)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │Results analyzing &Iteration│\n │ │\n └────────────────────────────┘\n```\n\n## Architecture\n### data\nThe data folder stores posts, operators, fields, operator types, field types, generated alpha templates, generated alphas, and backtesting results information.\n\n### prompts\nStores prompt templates used in workflows.\n\n### utils\n1. Get the operator set of Fast Expression and save it to ./data/wq_operators\n2. Get the field collection of Fast Expression and save it to ./data/wq_fields\n3. Manual rules classify operators and generate operator types required by templates. (save to ./data/wq_template_operators)\n4. Clustering and large language models are used to assist in generating the field types used in templates. (save to ./data/wq_template_fields)\n5. Various text processing and other miscellaneous.\n\n### scraper\n1. Scrape posts from the WorldQuant forum and store them in ./data/wq_posts/raw_posts.\n2. Extract the main information from the original html text of the post into a json file and store it in ./data/wq_posts/processed_posts\n3. Use a large language model to determine whether the post has the potential to generate alpha, and if so, save it to ./data/wq_posts/helpful_posts\n\n### researcher\n1. Use LLM to summarize hypothesis from blog and save it to ./data/hypothesis_db_v2\n2. Use LLM to generate template from hypothesis and save it to ./data/template_db_v2\n3. Multiple loops generate alphas based on template, field type, and operator type and save them to ./data/alpha_db_v2/all_alphas\n\n### evaluator\nUse the WorldQuant backtesting API to evaluate alpha performance and save the results to data/alpha_db_v2/backtest_result\n\n\n## Deployment\n\n1. Create a conda environment\n ```bash\n conda env create -f environment.yml\n conda activate alphaspire\n ```\n2. Fill in the configuration file (config.yaml)\n```yaml\n# ===============================\n# Global Configuration File\n# ===============================\n\n# --- OpenAI API Settings ---\nopenai_base_url: \"todo\" # e.g. https://api.deepseek.com\nopenai_api_key: \"todo\" # e.g. sk-...\nopenai_model_name: \"todo\" # e.g. deepseek-chat\nreasoner_model_name: \"todo\" # e.g. deepseek-reasoner\n\n# --- WorldQuant Platform Credentials ---\nworldquant_account: \"todo\"\nworldquant_password: \"todo\"\n\nworldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\nworldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\nworldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n# You can also choose any other WorldQuant Forum URL you have access to.\n\n# --- Dataset from WorldQuant Brain\nenabled_field_datasets: # Select the field database you want to use to build alphas.\n - pv1 # Database name reference ./data/wq_fields\n - fundamental6\n - analyst4\n - model16\n - news12 \n```\n\n3. One-click operation\n ```bash\n ./test_script.sh\n ```\n OR\n ```bash\n python3 main.py\n ```"}, "969a5333ba7d8ba949ef4a42146f0291b70c586b": {"t": 1785761531.7367182, "n": 1669, "h": "9f363fee2e8d10a0", "c": "# AlphaSpire\n\nAI agent-driven fully automated Alpha mining.\n\n-----\n\n## Work Pipeline\n\n```scss\n ┌────────────────────────────┐\n │ Data Acquisition Module │\n │ (Scraper & Local Storage) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Preprocessing & Parsing │\n │ (Text cleaning, Metadata) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Researcher (LLM) │\n │ (LangChain / Prompting) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Alpha Template Generating │\n │ (Factor/Signal Extraction) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Evaluator │\n │ (Submit to WQ or local sim)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Results Collecting │\n │ (Store Scores, Rank Alphas)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │Results analyzing &Iteration│\n │ │\n └────────────────────────────┘\n```\n\n## Deployment\n\n```bash\nconda env create -f environment.yml\n```"}, "800c6ecce359505c4f681a58646114fcf0d1e809": {"t": 1785761533.1572955, "n": 1605, "h": "94fcb341a0ad0e3f", "c": "# AlphaSpire\n\nAI agent-driven fully automated Alpha mining.\n\n-----\n\n## Work Pipeline\n\n```scss\n ┌────────────────────────────┐\n │ Data Acquisition Module │\n │ (Scraper & Local Storage) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Preprocessing & Parsing │\n │ (Text cleaning, Metadata) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Researcher (LLM) │\n │ (LangChain / Prompting) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Alpha Template Generating │\n │ (Factor/Signal Extraction) │\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Evaluator │\n │ (Submit to WQ or local sim)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │ Results Collecting │\n │ (Store Scores, Rank Alphas)│\n └─────────────┬──────────────┘\n │\n ┌─────────────▼──────────────┐\n │Results analyzing &Iteration│\n │ │\n └────────────────────────────┘\n```"}, "6543190a24468e7c918460fd87f4c7e834db740f": {"t": 1785761536.20401, "n": 68, "h": "b4b788d5558d1d3f", "c": "# AlphaSpire\n\nAI agent-driven fully automated Alpha mining.\n\n-----\n\n"}, "1c159e2c821a70fdfdf0facb1e4cb7f775918508": {"t": 1785761538.6116102, "n": 59, "h": "400acd9f064365c4", "c": "# AlphaSpire\nAI agent-driven fully automated Alpha mining.\n"}}, "config.yaml": {"8d64ec4fed29efff369ca952088d36bd81a0ab96": {"t": 1785674465.8366888, "n": 993, "h": "34daf64204241299", "c": "# ===============================\n# Global Configuration File\n# ===============================\n\n# --- OpenAI API Settings ---\nopenai_base_url: \"todo\" # e.g. https://api.deepseek.com\nopenai_api_key: \"todo\" # e.g. sk-...\nopenai_model_name: \"todo\" # e.g. deepseek-chat\nreasoner_model_name: \"todo\" # e.g. deepseek-reasoner\n\n# --- WorldQuant Platform Credentials ---\nworldquant_account: \"todo\"\nworldquant_password: \"todo\"\n\nworldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\nworldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\nworldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n# You can also choose any other WorldQuant Forum URL you have access to.\n\n# --- Dataset from WorldQuant Brain\nenabled_field_datasets: # Select the field database you want to use to build alphas.\n - pv1 # Database name reference ./data/wq_fields\n - fundamental6\n - analyst4\n - model16\n - news12"}, "d1868c2090db7bef1007a02aeb6d4aa857b05766": {"t": 1785761523.995812, "n": 993, "h": "34daf64204241299", "c": "# ===============================\n# Global Configuration File\n# ===============================\n\n# --- OpenAI API Settings ---\nopenai_base_url: \"todo\" # e.g. https://api.deepseek.com\nopenai_api_key: \"todo\" # e.g. sk-...\nopenai_model_name: \"todo\" # e.g. deepseek-chat\nreasoner_model_name: \"todo\" # e.g. deepseek-reasoner\n\n# --- WorldQuant Platform Credentials ---\nworldquant_account: \"todo\"\nworldquant_password: \"todo\"\n\nworldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\nworldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\nworldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n# You can also choose any other WorldQuant Forum URL you have access to.\n\n# --- Dataset from WorldQuant Brain\nenabled_field_datasets: # Select the field database you want to use to build alphas.\n - pv1 # Database name reference ./data/wq_fields\n - fundamental6\n - analyst4\n - model16\n - news12"}, "4d80e08291fdcdd04bd1481c0fa236f008751a9e": {"t": 1785761525.5998898, "n": 802, "h": "0f7e7784cdb219ed", "c": "# ===============================\n# Global Configuration File\n# ===============================\n\n# --- OpenAI API Settings ---\nopenai_base_url: \"https://api.deepseek.com\"\nopenai_api_key: \"sk-68e7d28e93644fc8974dd59a5d403666\"\nopenai_model_name: \"deepseek-chat\"\nreasoner_model_name: \"deepseek-reasoner\"\n\n# --- WorldQuant Platform Credentials ---\nworldquant_account: \"alan_younger@qq.com\"\nworldquant_password: \"alan888@WQ\"\n\nworldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\nworldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\nworldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n\n# --- Dataset from WorldQuant Brain\nenabled_field_datasets:\n - pv1\n - fundamental6\n - analyst4\n - model16\n - news12"}, "969a5333ba7d8ba949ef4a42146f0291b70c586b": {"t": 1785761528.3103445, "n": 761, "h": "8484ce4279bb2d26", "c": "# ===============================\n# Global Configuration File\n# ===============================\n\n# --- OpenAI API Settings ---\nopenai_base_url: \"https://api.deepseek.com\"\nopenai_api_key: \"sk-68e7d28e93644fc8974dd59a5d403666\"\nopenai_model_name: \"deepseek-chat\"\n\n# --- WorldQuant Platform Credentials ---\nworldquant_account: \"alan_younger@qq.com\"\nworldquant_password: \"alan888@WQ\"\n\nworldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\nworldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\nworldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n\n# --- Dataset from WorldQuant Brain\nenabled_field_datasets:\n - pv1\n - fundamental6\n - analyst4\n - model16\n - news12"}, "ab3e8f4ce02a1e087f7fabfdc3df6e793bcf02a7": {"t": 1785761529.5836859, "n": 751, "h": "28f878e49d430188", "c": "# ===============================\n# Global Configuration File\n# ===============================\n\n# --- OpenAI API Settings ---\nopenai_base_url: \"https://api.deepseek.com\"\nopenai_api_key: \"sk-68e7d28e93644fc8974dd59a5d403666\"\nopenai_model_name: \"deepseek-chat\"\n\n# --- WorldQuant Platform Credentials ---\nworldquant_account: \"alan_younger@qq.com\"\nworldquant_password: \"alan888@WQ\"\n\nworldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\nworldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\nworldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n\n# --- Dataset from WorldQuant Brain\nenabled_field_datasets:\n - pv1\n - fundamental6\n - analyst10\n - model26"}, "a5f80676ad40506cf51b4bfec818eac56fd5eabc": {"t": 1785761531.9912894, "n": 762, "h": "022f560a015f946c", "c": "# ===============================\n# Global Configuration File\n# ===============================\n\n# --- OpenAI API Settings ---\nopenai_base_url: \"https://api.deepseek.com\"\nopenai_api_key: \"sk-68e7d28e93644fc8974dd59a5d403666\"\nopenai_model_name: \"deepseek-chat\"\n\n# --- WorldQuant Platform Credentials ---\nworldquant_account: \"alan_younger@qq.com\"\nworldquant_password: \"alan888@WQ\"\n\nworldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\nworldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\nworldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n\n# --- Dataset from WorldQuant Brain\nenabled_field_datasets:\n - pv1\n - fundamental6\n - news20\n - analyst10\n - model26"}, "bc5a765727433dadf6f444c6f828b47d68d7a7db": {"t": 1785761535.4328609, "n": 640, "h": "10d5f46d492066f2", "c": "# ===============================\n# Global Configuration File\n# ===============================\n\n# --- OpenAI API Settings ---\nopenai_base_url: \"https://api.deepseek.com\"\nopenai_api_key: \"sk-68e7d28e93644fc8974dd59a5d403666\"\nopenai_model_name: \"deepseek-chat\"\n\n# --- WorldQuant Platform Credentials ---\nworldquant_account: \"alan_younger@qq.com\"\nworldquant_password: \"alan888@WQ\"\n\nworldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\nworldquant_api_auth: \"https://api.worldquantbrain.com/authentication\"\nworldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n"}, "800c6ecce359505c4f681a58646114fcf0d1e809": {"t": 1785761536.8401566, "n": 571, "h": "912db2f6b22e631f", "c": "# ===============================\n# Global Configuration File\n# ===============================\n\n# --- OpenAI API Settings ---\nopenai_base_url: \"https://api.deepseek.com\"\nopenai_api_key: \"sk-68e7d28e93644fc8974dd59a5d403666\"\nopenai_model_name: \"deepseek-chat\"\n\n# --- WorldQuant Platform Credentials ---\nworldquant_account: \"alan_younger@qq.com\"\nworldquant_password: \"alan888@WQ\"\n\nworldquant_login_url: \"https://platform.worldquantbrain.com/sign-in\"\nworldquant_consultant_posts_url: \"https://support.worldquantbrain.com/hc/en-us/community/topics/18910956638743-顾问专属中文论坛\"\n\n"}}}} |