cnhkmcp 2.1.3__py3-none-any.whl → 2.1.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cnhkmcp/__init__.py +126 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/README.md +38 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/ace.log +0 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/config.json +6 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/ace_lib.py +1514 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_datasets.py +157 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_documentation.py +132 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_operators.py +99 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/helpful_functions.py +180 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/icon.ico +0 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/icon.png +0 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_10_Steps_to_Start_on_BRAIN_documentation.json +14 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Intermediate_Pack_-_Improve_your_Alpha_2_2_documentation.json +174 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Intermediate_Pack_-_Understand_Results_1_2_documentation.json +167 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Introduction_to_Alphas_documentation.json +145 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Introduction_to_BRAIN_Expression_Language_documentation.json +107 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_WorldQuant_Challenge_documentation.json +56 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001__Read_this_First_-_Starter_Pack_documentation.json +404 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002_How_to_choose_the_Simulation_Settings_documentation.json +268 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002_Simulate_your_first_Alpha_documentation.json +88 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__Alpha_Examples_for_Beginners_documentation.json +254 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__Alpha_Examples_for_Bronze_Users_documentation.json +114 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__Alpha_Examples_for_Silver_Users_documentation.json +79 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__How_BRAIN_works_documentation.json +184 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/003_Clear_these_tests_before_submitting_an_Alpha_documentation.json +388 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/003_Parameters_in_the_Simulation_results_documentation.json +243 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Group_Data_Fields_documentation.json +69 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_How_to_use_the_Data_Explorer_documentation.json +142 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Model77_dataset_documentation.json +14 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Sentiment1_dataset_documentation.json +14 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Understanding_Data_in_BRAIN_Key_Concepts_and_Tips_documentation.json +182 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Vector_Data_Fields_documentation.json +30 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Crowding_Risk-Neutralized_Alphas_documentation.json +64 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_D0_documentation.json +66 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Double_Neutralization_documentation.json +53 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Fast_D1_Documentation_documentation.json +304 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Investability_Constrained_Metrics_documentation.json +129 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Must-read_posts_How_to_improve_your_Alphas_documentation.json +14 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Neutralization_documentation.json +29 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_RAM_Risk-Neutralized_Alphas_documentation.json +64 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Risk_Neutralization_Default_setting_documentation.json +75 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Risk_Neutralized_Alphas_documentation.json +171 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Statistical_Risk-Neutralized_Alphas_documentation.json +51 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_EUR_TOP2500_Universe_documentation.json +35 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_GLB_TOPDIV3000_Universe_documentation.json +48 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Getting_Started_China_Research_for_Consultants_Gold_documentation.json +142 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Getting_started_on_Illiquid_Universes_Gold_documentation.json +46 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Getting_started_with_USA_TOPSP500_universe_Gold_documentation.json +62 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Global_Alphas_Gold_documentation.json +66 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_India_Alphas_documentation.json +35 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Dos_and_Don_ts_documentation.json +35 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Features_documentation.json +239 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Simulation_Features_documentation.json +149 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Submission_Tests_documentation.json +363 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Finding_Consultant_Alphas_documentation.json +333 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Power_Pool_Alphas_documentation.json +14 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Research_Advisory_Program_documentation.json +35 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Starting_Guide_for_Research_Consultants_documentation.json +14 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Visualization_Tool_documentation.json +99 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Your_Advisor_-_Kunqi_Jiang_documentation.json +53 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007__Brain_Genius_documentation.json +288 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007__Single_Dataset_Alphas_documentation.json +41 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Advisory_Theme_Calendar_documentation.json +14 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Multiplier_Rules_documentation.json +14 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Overview_of_Themes_documentation.json +14 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Theme_Calendar_documentation.json +14 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Combo_Expression_documentation.json +272 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Global_SuperAlphas_documentation.json +14 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Helpful_Tips_documentation.json +58 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Selection_Expression_documentation.json +1546 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_SuperAlpha_Operators_documentation.json +890 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_SuperAlpha_Results_documentation.json +83 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_What_is_a_SuperAlpha_documentation.json +261 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/010_BRAIN_API_documentation.json +515 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/010_Documentation_for_ACE_API_Library_Gold_documentation.json +27 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/010__Understanding_simulation_limits_documentation.json +210 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/arithmetic_operators.json +209 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/cross_sectional_operators.json +98 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/group_operators.json +121 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/logical_operators.json +145 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/reduce_operators.json +156 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/special_operators.json +35 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/test.txt +1 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/time_series_operators.json +386 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/transformational_operators.json +61 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/vector_operators.json +38 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/main.py +576 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/process_knowledge_base.py +281 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/rag_engine.py +408 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/requirements.txt +7 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/run.bat +3 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/vector_db/_manifest.json +302 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/vector_db/_meta.json +1 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/vector_db/chroma.sqlite3 +0 -0
- cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242//321/211/320/266/320/246/321/206/320/274/320/261/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/231/320/243/321/205/342/225/235/320/220/321/206/320/230/320/241.py +265 -0
- cnhkmcp/untracked/APP/.gitignore +32 -0
- cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md +112 -0
- cnhkmcp/untracked/APP/README.md +309 -0
- cnhkmcp/untracked/APP/Tranformer/Transformer.py +4989 -0
- cnhkmcp/untracked/APP/Tranformer/ace.log +0 -0
- cnhkmcp/untracked/APP/Tranformer/ace_lib.py +1514 -0
- cnhkmcp/untracked/APP/Tranformer/helpful_functions.py +180 -0
- cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +7187 -0
- cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_/321/207/320/264/342/225/221/321/204/342/225/233/320/233.json +654 -0
- cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +1 -0
- cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +47312 -0
- cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_/321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/320/237/320/277/321/207/320/253/342/224/244/321/206/320/236/320/265/321/210/342/225/234/342/225/234/321/205/320/225/320/265Machine_lib.json +22 -0
- cnhkmcp/untracked/APP/Tranformer/parsetab.py +60 -0
- cnhkmcp/untracked/APP/Tranformer/template_summary.txt +3182 -0
- cnhkmcp/untracked/APP/Tranformer/transformer_config.json +7 -0
- cnhkmcp/untracked/APP/Tranformer/validator.py +889 -0
- cnhkmcp/untracked/APP/ace.log +69 -0
- cnhkmcp/untracked/APP/ace_lib.py +1514 -0
- cnhkmcp/untracked/APP/blueprints/__init__.py +6 -0
- cnhkmcp/untracked/APP/blueprints/feature_engineering.py +347 -0
- cnhkmcp/untracked/APP/blueprints/idea_house.py +221 -0
- cnhkmcp/untracked/APP/blueprints/inspiration_house.py +432 -0
- cnhkmcp/untracked/APP/blueprints/paper_analysis.py +570 -0
- cnhkmcp/untracked/APP/custom_templates/templates.json +1257 -0
- cnhkmcp/untracked/APP/give_me_idea/BRAIN_Alpha_Template_Expert_SystemPrompt.md +400 -0
- cnhkmcp/untracked/APP/give_me_idea/ace_lib.py +1514 -0
- cnhkmcp/untracked/APP/give_me_idea/alpha_data_specific_template_master.py +252 -0
- cnhkmcp/untracked/APP/give_me_idea/fetch_all_datasets.py +157 -0
- cnhkmcp/untracked/APP/give_me_idea/fetch_all_operators.py +99 -0
- cnhkmcp/untracked/APP/give_me_idea/helpful_functions.py +180 -0
- cnhkmcp/untracked/APP/give_me_idea/what_is_Alpha_template.md +11 -0
- cnhkmcp/untracked/APP/helpful_functions.py +180 -0
- cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +1501 -0
- cnhkmcp/untracked/APP/hkSimulator/autosimulator.py +447 -0
- cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py +180 -0
- cnhkmcp/untracked/APP/mirror_config.txt +20 -0
- cnhkmcp/untracked/APP/operaters.csv +129 -0
- cnhkmcp/untracked/APP/requirements.txt +53 -0
- cnhkmcp/untracked/APP/run_app.bat +28 -0
- cnhkmcp/untracked/APP/run_app.sh +34 -0
- cnhkmcp/untracked/APP/setup_tsinghua.bat +39 -0
- cnhkmcp/untracked/APP/setup_tsinghua.sh +43 -0
- cnhkmcp/untracked/APP/simulator/alpha_submitter.py +404 -0
- cnhkmcp/untracked/APP/simulator/simulator_wqb.py +618 -0
- cnhkmcp/untracked/APP/simulator/wqb20260107015647.log +57 -0
- cnhkmcp/untracked/APP/ssrn-3332513.pdf +109188 -19
- cnhkmcp/untracked/APP/static/brain.js +589 -0
- cnhkmcp/untracked/APP/static/decoder.js +1540 -0
- cnhkmcp/untracked/APP/static/feature_engineering.js +1729 -0
- cnhkmcp/untracked/APP/static/idea_house.js +937 -0
- cnhkmcp/untracked/APP/static/inspiration.js +465 -0
- cnhkmcp/untracked/APP/static/inspiration_house.js +868 -0
- cnhkmcp/untracked/APP/static/paper_analysis.js +390 -0
- cnhkmcp/untracked/APP/static/script.js +3082 -0
- cnhkmcp/untracked/APP/static/simulator.js +597 -0
- cnhkmcp/untracked/APP/static/styles.css +3127 -0
- cnhkmcp/untracked/APP/static/usage_widget.js +508 -0
- cnhkmcp/untracked/APP/templates/alpha_inspector.html +511 -0
- cnhkmcp/untracked/APP/templates/feature_engineering.html +960 -0
- cnhkmcp/untracked/APP/templates/idea_house.html +564 -0
- cnhkmcp/untracked/APP/templates/index.html +932 -0
- cnhkmcp/untracked/APP/templates/inspiration_house.html +861 -0
- cnhkmcp/untracked/APP/templates/paper_analysis.html +91 -0
- cnhkmcp/untracked/APP/templates/simulator.html +343 -0
- cnhkmcp/untracked/APP/templates/transformer_web.html +580 -0
- cnhkmcp/untracked/APP/usage.md +351 -0
- cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/ace_lib.py +1514 -0
- cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/brain_alpha_inspector.py +712 -0
- cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/helpful_functions.py +180 -0
- cnhkmcp/untracked/APP//321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/231/320/243/321/205/342/225/235/320/220/321/206/320/230/320/241.py +2460 -0
- cnhkmcp/untracked/__init__.py +0 -0
- cnhkmcp/untracked/arXiv_API_Tool_Manual.md +490 -0
- cnhkmcp/untracked/arxiv_api.py +229 -0
- cnhkmcp/untracked/forum_functions.py +998 -0
- cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/forum_functions.py +407 -0
- cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/platform_functions.py +2601 -0
- cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/user_config.json +31 -0
- cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272//321/210/320/276/320/271AI/321/210/320/277/342/225/227/321/210/342/224/220/320/251/321/204/342/225/225/320/272/321/206/320/246/320/227/321/206/320/261/320/263/321/206/320/255/320/265/321/205/320/275/320/266/321/204/342/225/235/320/252/321/204/342/225/225/320/233/321/210/342/225/234/342/225/234/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270.md +101 -0
- cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272//321/211/320/225/320/235/321/207/342/225/234/320/276/321/205/320/231/320/235/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/230/320/241_/321/205/320/276/320/231/321/210/320/263/320/225/321/205/342/224/220/320/225/321/210/320/266/320/221/321/204/342/225/233/320/255/321/210/342/225/241/320/246/321/205/320/234/320/225.py +190 -0
- cnhkmcp/untracked/platform_functions.py +2886 -0
- cnhkmcp/untracked/sample_mcp_config.json +11 -0
- cnhkmcp/untracked/user_config.json +31 -0
- cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/320/237/320/222/321/210/320/220/320/223/321/206/320/246/320/227/321/206/320/261/320/263_BRAIN_Alpha_Test_Requirements_and_Tips.md +202 -0
- cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_Alpha_explaination_workflow.md +56 -0
- cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_BRAIN_6_Tips_Datafield_Exploration_Guide.md +194 -0
- cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_BRAIN_Alpha_Improvement_Workflow.md +101 -0
- cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_Dataset_Exploration_Expert_Manual.md +436 -0
- cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_daily_report_workflow.md +128 -0
- cnhkmcp/untracked//321/211/320/225/320/235/321/207/342/225/234/320/276/321/205/320/231/320/235/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/230/320/241_/321/205/320/276/320/231/321/210/320/263/320/225/321/205/342/224/220/320/225/321/210/320/266/320/221/321/204/342/225/233/320/255/321/210/342/225/241/320/246/321/205/320/234/320/225.py +190 -0
- {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.4.dist-info}/METADATA +1 -1
- cnhkmcp-2.1.4.dist-info/RECORD +190 -0
- cnhkmcp-2.1.4.dist-info/top_level.txt +1 -0
- cnhkmcp-2.1.3.dist-info/RECORD +0 -6
- cnhkmcp-2.1.3.dist-info/top_level.txt +0 -1
- {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.4.dist-info}/WHEEL +0 -0
- {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.4.dist-info}/entry_points.txt +0 -0
- {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.4.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "simulation-settings",
|
|
3
|
+
"title": "How to choose the Simulation Settings",
|
|
4
|
+
"lastModified": "2025-11-05T03:49:33.672757-05:00",
|
|
5
|
+
"content": [
|
|
6
|
+
{
|
|
7
|
+
"type": "TEXT",
|
|
8
|
+
"value": "<p>The settings panel can be found by clicking the Settings button at the top right hand corner of the Simulate page. You can specify parameters like language, instrument type, universe, delay, neutralization, etc., which will be applied to your next simulation after clicking the \"Apply\" button.</p>",
|
|
9
|
+
"id": "7ecd13c6-4ec0-49fb-8c4b-3c3ba3c6210c"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"type": "HEADING",
|
|
13
|
+
"value": {
|
|
14
|
+
"level": "1",
|
|
15
|
+
"content": "Language"
|
|
16
|
+
},
|
|
17
|
+
"id": "58867acf-578f-4fc9-86c6-16125d497c90"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "TEXT",
|
|
21
|
+
"value": "<p>Fast Expression is available on BRAIN. To learn more, refer to <a href=\"$reference/operators\">Available Operators</a></p>",
|
|
22
|
+
"id": "8aa3df64-c800-4d61-8af2-dde8c8121a51"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "HEADING",
|
|
26
|
+
"value": {
|
|
27
|
+
"level": "1",
|
|
28
|
+
"content": "Instrument type"
|
|
29
|
+
},
|
|
30
|
+
"id": "e901215a-3f4a-4dd3-87c0-a41e9eabcaa4"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "TEXT",
|
|
34
|
+
"value": "<p>Only Equity instrument type can be used at the moment</p>",
|
|
35
|
+
"id": "3fffe201-f023-49b4-9e1f-8fb3195dd058"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "HEADING",
|
|
39
|
+
"value": {
|
|
40
|
+
"level": "1",
|
|
41
|
+
"content": "Region and Universe"
|
|
42
|
+
},
|
|
43
|
+
"id": "c09d88c7-4670-4089-a869-a1c473861c8a"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "TEXT",
|
|
47
|
+
"value": "<p>The only region currently available to all BRAIN users is the US market. The regions Europe and Asia are currently available only to our research consultants.</p><p>Universe is a set of trading instruments prepared by BRAIN. For example, \"US: TOP3000\" represents the top 3000 most liquid stocks in the US market (determined by highest average daily dollar volume traded).</p>",
|
|
48
|
+
"id": "688ca909-ad03-4990-a943-58c2d3a80877"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"type": "HEADING",
|
|
52
|
+
"value": {
|
|
53
|
+
"level": "1",
|
|
54
|
+
"content": "Delay"
|
|
55
|
+
},
|
|
56
|
+
"id": "97d18b09-b888-46b7-bedf-960654f2e43e"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"type": "TEXT",
|
|
60
|
+
"value": "<p>Delay refers to the availability of data, relative to decision time. In other words, delay is the assumption of when we can trade stock once we decide on a position.</p><p>Assume that you are looking at the data today before market close and you decide that you want to buy stock. We can choose an aggressive approach and trade stock in the time left till market close. In this case, the position is based on data available on the same day (today). This is called Delay 0 simulation.</p><p>Alternatively, we could choose a conservative trading strategy and trade stock the next day(tomorrow). Then the position is achieved tomorrow and it is based on today’s data. In this case, there is a lag of 1 day. This is called Delay 1 simulation. In expression language, delay is applied automatically and you do not have to bother about it.</p><p></p>",
|
|
61
|
+
"id": "79ea60ae-3871-41b6-871d-2c0f24f3310c"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"type": "HEADING",
|
|
65
|
+
"value": {
|
|
66
|
+
"level": "1",
|
|
67
|
+
"content": "Decay"
|
|
68
|
+
},
|
|
69
|
+
"id": "5eaeb8b0-c930-4dd3-96b9-a722afef1268"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"type": "TEXT",
|
|
73
|
+
"value": "<p>This performs a linear decay function over the past n days by combining today’s value with previous days’ decayed value. It performs the following function:</p>",
|
|
74
|
+
"id": "d5c3c2fa-f51d-4ee3-9f8e-4576b6bcf365"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"type": "EQUATION",
|
|
78
|
+
"value": "Decay\\_linear(x,n)=\\frac{x[date]*n +x[date-1]*(n-1)+...+x[date-n-1]}{n+(n-1)+...+1}",
|
|
79
|
+
"id": "2e8af62b-e7fd-413b-b540-4b513b6a4346"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"type": "TEXT",
|
|
83
|
+
"value": "<p></p><p>Legal values for Decay: Integer <i>'n'</i> where <i>n >= 0</i>. <i>NOTE: Using negative or non-integer values for Decay will break simulations.</i></p><p>Tip: Decay can be used to reduce turnover, but decay values that are too large will attenuate the signal.</p><p></p><p></p>",
|
|
84
|
+
"id": "e039f9d5-a935-4886-b6ad-a6191ffe2306"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"type": "HEADING",
|
|
88
|
+
"value": {
|
|
89
|
+
"level": "1",
|
|
90
|
+
"content": "Truncation"
|
|
91
|
+
},
|
|
92
|
+
"id": "d7082a34-e0c1-4974-9889-c2e60ce86df9"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"type": "TEXT",
|
|
96
|
+
"value": "<p>The maximum weight for each stock in the overall portfolio. When it is set to 0, there is no restriction.<br/></p><p>Legal values for Truncation: Float <i>'x'</i> where <i>0 <= x <= 1 (NOTE: Any values for Truncation outside this range can impact/break simulations.)</i></p><p>Tip: Truncation aims to guard from being too exposed to movements in individual stocks. The recommended setting is between 0.05 and 0.1 (entailing 5-10%).</p><p></p>",
|
|
97
|
+
"id": "e8383fad-e138-41de-a826-20f366a1c438"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"type": "HEADING",
|
|
101
|
+
"value": {
|
|
102
|
+
"level": "1",
|
|
103
|
+
"content": "Neutralization"
|
|
104
|
+
},
|
|
105
|
+
"id": "094c4567-1bd4-4bca-9149-0f281ee2748a"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"type": "TEXT",
|
|
109
|
+
"value": "<p>Neutralization is an operation used to make our strategy market/industry/sub-industry neutral. When Neutralization = “Market” it does the following operation:</p><p>Alpha = Alpha – mean(Alpha)</p><p>where Alpha is the vector of weights.</p><p>Basically, it makes the mean of the Alpha vector zero. Thus no net position is taken with respect to the market. In other words, the long exposure cancels out the short exposure completely, making our strategy market neutral.</p><p>When Neutralization = Industry or Subindustry, all the instruments in the Alpha vector are grouped into smaller buckets corresponding to industry or sub-industry and neutralization is applied separately to each of the buckets. For illustration of industry/subindustry classification, see <a href=\"https://en.wikipedia.org/wiki/Global_Industry_Classification_Standard\">GICS</a> (note: this is not necessarily the same classification standard used by BRAIN platform).</p><p>To learn more about Neutralization, refer the <a href=\"https://support.worldquantbrain.com/hc/en-us/sections/4418582007959-Neutralizing-Alphas\">Neutralization FAQ</a> section.</p>",
|
|
110
|
+
"id": "35ad9408-1727-409f-80d0-17cac6439d65"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"type": "IMAGE",
|
|
114
|
+
"value": {
|
|
115
|
+
"title": "settings_view",
|
|
116
|
+
"width": 632,
|
|
117
|
+
"height": 471,
|
|
118
|
+
"fileSize": 17439,
|
|
119
|
+
"url": "https://api.worldquantbrain.com/content/images/1C1nl6f3g3jFuu-vDUjkkVADAdA=/24/original/settings_merged.png"
|
|
120
|
+
},
|
|
121
|
+
"id": "b8a5aecd-54f6-4250-9245-51ff3d68d679"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"type": "HEADING",
|
|
125
|
+
"value": {
|
|
126
|
+
"level": "1",
|
|
127
|
+
"content": "Pasteurize"
|
|
128
|
+
},
|
|
129
|
+
"id": "705ca322-2c90-4262-814c-3122326db330"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"type": "IMAGE",
|
|
133
|
+
"value": {
|
|
134
|
+
"title": "simulation_settings_pasteurize.png",
|
|
135
|
+
"width": 852,
|
|
136
|
+
"height": 277,
|
|
137
|
+
"fileSize": 25761,
|
|
138
|
+
"url": "https://api.worldquantbrain.com/content/images/AU2Dt8D2W3HWchE9sAKAYJT4l1U=/444/original/simulation_settings_pasteurize.png"
|
|
139
|
+
},
|
|
140
|
+
"id": "92489717-7c68-4f32-8335-23b8768a9f35"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"type": "TEXT",
|
|
144
|
+
"value": "<p>Pasteurization replaces input values with NaN (pasteurizes) for instruments not in the Alpha universe. When Pasteurize = ‘On’, inputs to will be converted to NaN for instruments not in the universe selected in Simulation Settings. When Pasteurize = ‘Off’, this operation does not happen and all available inputs are used.<br/></p><p>Pasteurized data has non-NaN values only for instruments in the Alpha universe. While pasteurized data contains less information, it may be more appropriate when considering cross-sectional or group operations. The default Pasteurize setting is ‘On’. Researchers can switch it to ‘Off’ and use pasteurize(x) operator for manual pasteurization.<br/></p><p><i>Example</i></p><p>Assume the following settings are used: Universe TOP500, Pasteurize: ‘Off’. The following code calculates the difference between sector rank of sales_growth in Alpha universe and sector rank of sales_growth among all instruments:<br/></p><p></p><p></p>",
|
|
145
|
+
"id": "ad821aee-01b4-444a-841c-ba91faea16f2"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"type": "SIMULATION_EXAMPLE",
|
|
149
|
+
"value": {
|
|
150
|
+
"settings": {
|
|
151
|
+
"instrumentType": "EQUITY",
|
|
152
|
+
"region": "USA",
|
|
153
|
+
"universe": "TOP3000",
|
|
154
|
+
"delay": 1,
|
|
155
|
+
"decay": 4,
|
|
156
|
+
"neutralization": "MARKET",
|
|
157
|
+
"truncation": 0.01,
|
|
158
|
+
"pasteurization": "ON",
|
|
159
|
+
"unitHandling": "VERIFY",
|
|
160
|
+
"nanHandling": "OFF",
|
|
161
|
+
"language": "FASTEXPR",
|
|
162
|
+
"maxTrade": "OFF"
|
|
163
|
+
},
|
|
164
|
+
"type": "REGULAR",
|
|
165
|
+
"regular": "group_rank(pasteurize(sales_growth),sector) - group_rank(sales_growth,sector)"
|
|
166
|
+
},
|
|
167
|
+
"id": "0de30b04-4baa-476a-9ebf-17dd60768ab6"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"type": "TEXT",
|
|
171
|
+
"value": "<p>The pasteurize operator in the first group_rank pasteurizes input to the Alpha universe (TOP500), while the second group_rank ranks sales_growth among all instruments.</p>",
|
|
172
|
+
"id": "27a7c638-4730-4d79-8d9c-c6b2534a392d"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"type": "HEADING",
|
|
176
|
+
"value": {
|
|
177
|
+
"level": "1",
|
|
178
|
+
"content": "Nan Handling"
|
|
179
|
+
},
|
|
180
|
+
"id": "af3dacca-7783-4b6e-9563-9708e52fa076"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"type": "IMAGE",
|
|
184
|
+
"value": {
|
|
185
|
+
"title": "simulation_settings_nan_handling.png",
|
|
186
|
+
"width": 857,
|
|
187
|
+
"height": 362,
|
|
188
|
+
"fileSize": 26635,
|
|
189
|
+
"url": "https://api.worldquantbrain.com/content/images/tVRsAlPd040erK5r3XAiMgmJNQo=/443/original/simulation_settings_nan_handling.png"
|
|
190
|
+
},
|
|
191
|
+
"id": "f062274c-7bbc-411d-99d5-0ef911f67b1c"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"type": "TEXT",
|
|
195
|
+
"value": "<p>NaNHandling replaces NaN values with other values. If NaNHandling: ‘On’, NaN values are handled based on operator type. For time series operators, if all inputs are NaN, 0 is returned. For group operators returning one value per group (e.g. groupmedian, groupcount), if the input value for an instrument is NaN, the value for the group is returned.<br/></p><p>If NaNHandling : ‘Off’, NaNs are preserved. For time series operators, if all inputs are NaN, NaN is returned. For group operators, if the input value for an instrument is NaN, NaN is returned. Researchers should handle NaNs manually in this case. The default setting NaNHandling value is ‘Off’. Some ways to manually handle NaN values can replicate “On” behavior.<br/></p><p><i>Example</i></p><p></p>",
|
|
196
|
+
"id": "0a937e60-2ed8-43bd-b3e3-5c2e7e6ab638"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"type": "SIMULATION_EXAMPLE",
|
|
200
|
+
"value": {
|
|
201
|
+
"settings": {
|
|
202
|
+
"instrumentType": "EQUITY",
|
|
203
|
+
"region": "USA",
|
|
204
|
+
"universe": "TOP3000",
|
|
205
|
+
"delay": 1,
|
|
206
|
+
"decay": 4,
|
|
207
|
+
"neutralization": "MARKET",
|
|
208
|
+
"truncation": 0.01,
|
|
209
|
+
"pasteurization": "ON",
|
|
210
|
+
"unitHandling": "VERIFY",
|
|
211
|
+
"nanHandling": "OFF",
|
|
212
|
+
"language": "FASTEXPR",
|
|
213
|
+
"maxTrade": "OFF"
|
|
214
|
+
},
|
|
215
|
+
"type": "REGULAR",
|
|
216
|
+
"regular": "ts_zscore(etz_eps, 252)"
|
|
217
|
+
},
|
|
218
|
+
"id": "afa8ea64-b5cf-49dc-a76a-67ddf27c3da1"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"type": "TEXT",
|
|
222
|
+
"value": "<p>Assume NaNHandling = ‘On’. Then for a stock with etz_eps == NaN for all 252 days, 0 is returned. However, ts_zscore(x, d) also returns 0 when x == tsmean(x, d), which is different from x == NaN (“no data is available”). This means that NaNHandling = ‘On’ increases coverage, but may introduce ambiguous information into the Alpha.<br/></p><p>If NaNHandling = ‘Off’, NaNs can be handled other ways:<br/></p><p>is_nan(ts_zscore(etz_eps, 252)) ? ts_zscore(est_eps, 252) : ts_zscore(etz_eps, 252)<br/></p><p>Here, est_eps is used when etz_eps has NaN value for all 252 days.<br/></p><p><i>Example</i></p><p></p>",
|
|
223
|
+
"id": "4abc87dc-0cad-4fa7-999c-a7b79a6436b8"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"type": "SIMULATION_EXAMPLE",
|
|
227
|
+
"value": {
|
|
228
|
+
"settings": {
|
|
229
|
+
"instrumentType": "EQUITY",
|
|
230
|
+
"region": "USA",
|
|
231
|
+
"universe": "TOP3000",
|
|
232
|
+
"delay": 1,
|
|
233
|
+
"decay": 3,
|
|
234
|
+
"neutralization": "NONE",
|
|
235
|
+
"truncation": 0.01,
|
|
236
|
+
"pasteurization": "ON",
|
|
237
|
+
"unitHandling": "VERIFY",
|
|
238
|
+
"nanHandling": "OFF",
|
|
239
|
+
"language": "FASTEXPR",
|
|
240
|
+
"maxTrade": "OFF"
|
|
241
|
+
},
|
|
242
|
+
"type": "REGULAR",
|
|
243
|
+
"regular": "groupmax(sales, industry)"
|
|
244
|
+
},
|
|
245
|
+
"id": "d5c67e98-563f-4301-a6f6-3c85b69d8e3c"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"type": "TEXT",
|
|
249
|
+
"value": "<p></p><p>When NaNHandling = ‘Off’ and sales is NaN for a given instrument, the operator’s output is NaN. When NaNHandling = ‘On’ and sales is NaN for a given instrument, the operator’s output is the maximum value of sales in the instrument’s industry.</p>",
|
|
250
|
+
"id": "340965f5-c504-4cc1-ba48-59e727fcd808"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"type": "HEADING",
|
|
254
|
+
"value": {
|
|
255
|
+
"level": "1",
|
|
256
|
+
"content": "Unit Handling"
|
|
257
|
+
},
|
|
258
|
+
"id": "db02312f-91e3-4743-98d8-ffb4d1d7ee22"
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"type": "TEXT",
|
|
262
|
+
"value": "<p>Unit Handling option allows raising a warning when incompatible units are used in an operator. This warning appears if expression uses data fields that are incompatible, for example, a warning will be shown for an attempt to add price to volume.</p>",
|
|
263
|
+
"id": "a0e539b0-4608-48c2-af0b-e1df868deab4"
|
|
264
|
+
}
|
|
265
|
+
],
|
|
266
|
+
"sequence": 25,
|
|
267
|
+
"category": "Getting Started"
|
|
268
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "running-your-first-alpha",
|
|
3
|
+
"title": "Simulate your first Alpha",
|
|
4
|
+
"lastModified": "2025-03-12T04:51:56.647199-04:00",
|
|
5
|
+
"content": [
|
|
6
|
+
{
|
|
7
|
+
"type": "TEXT",
|
|
8
|
+
"value": "<p><a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=A-,Alpha,-An\">Alphas</a> are created and simulated on the Simulate page in the Alphas dropdown tab. To run your first <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=definition.-,Simulation,-Simulation\">simulation</a>, click on the gear icon at the top right-hand side corner. This will open the settings panel. Here, select “US: TOP3000” for <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=details.-,Region,-Set\">Region</a> and <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=U-,Universe,-Universe\">Universe</a>, “<a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=SuperAlphas.%C2%A0-,Subindustry,-Sub\">Subindustry</a>” for <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=strategy.-,Neutralization,-Neutralization\">Neutralization</a> and apply your settings. Make sure both Code and Result are ticked by clicking on them. In the Alpha expression text box, enter <b>-Delta(close, 5)</b> for now and click on \"Simulate\". The Simulation Result page will show a graph for Cumulative Profit. This graph can be zoomed in to plot area for shorter time periods (1 month or 1 year).</p>",
|
|
9
|
+
"id": "76ad7623-a849-4ae4-92b1-aea1bd9441cc"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"type": "TEXT",
|
|
13
|
+
"value": "<img src=\"https://api.worldquantbrain.com/content/images/dQF-lBEbGZjng1vcyEBgL50NOT8=/41/original/\" alt=\"first_alpha\" width=\"1000\">",
|
|
14
|
+
"id": "0b2f637a-5684-439a-9e1a-68daac915348"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "TEXT",
|
|
18
|
+
"value": "<p>The display consists of 2 graphs, one for <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=consultants-,Profit%20and%20Loss%20(PnL),-Profit\">PnL</a> vs. Time and the other for <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=details.-,Sharpe%20ratio,-Sharpe\">Sharpe Ratio</a> vs. Time.</p><p>In the Stats tab, a good Alpha tend to have consistently increasing PnL and high Annual Return, Sharpe Ratio, % Profitable Days and Profit per Dollar Traded. It should have low <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=today-,Drawdown,-Drawdown\">Drawdown</a> and <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=details.-,Turnover,-Average\">Turnover</a>. And more importantly, it shouldn’t have high fluctuations in the cumulative profit graph. If the standard deviation is low, there tends to be lesser fluctuations in the graph. If the graph shows high fluctuations/volatility, despite the <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=details.-,Returns,-Returns\">returns</a> being high, the Alpha will not be deemed good enough. An Alpha is considered to be “good” if:</p><ul><li>Its turnover is low, but not less than 1%</li><li>Its Percentage Drawdown is less than 10%</li><li>Its Sharpe is greater than 2.0 for <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=days-,Delay,-An\">delay</a> 0 Alphas and greater than 1.25 for <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=days-,Delay,-An\">delay</a> 1 Alphas</li></ul><p>The graph above for Alpha expression<b> -Delta(close, 5)</b> shows several significant drawdowns, as well as a flattening of returns in 2017. The table below marks this Alpha as Inferior (Needs Improvement). PnL and Sharpe for 2017 drop low, and drawdown is large in 2014 and 2015. This Alpha is Inferior (Needs Improvement) due to high volatility and low returns.</p>",
|
|
19
|
+
"id": "2aeacc38-6fe4-4aac-b87f-7f740f4287b2"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "SIMULATION_EXAMPLE",
|
|
23
|
+
"value": {
|
|
24
|
+
"settings": {
|
|
25
|
+
"instrumentType": "EQUITY",
|
|
26
|
+
"region": "USA",
|
|
27
|
+
"universe": "TOP3000",
|
|
28
|
+
"delay": 1,
|
|
29
|
+
"decay": 2,
|
|
30
|
+
"neutralization": "MARKET",
|
|
31
|
+
"truncation": 0.0,
|
|
32
|
+
"pasteurization": "ON",
|
|
33
|
+
"unitHandling": "VERIFY",
|
|
34
|
+
"nanHandling": "OFF",
|
|
35
|
+
"language": "FASTEXPR",
|
|
36
|
+
"maxTrade": "OFF"
|
|
37
|
+
},
|
|
38
|
+
"type": "REGULAR",
|
|
39
|
+
"regular": "-delta(close, 5)"
|
|
40
|
+
},
|
|
41
|
+
"id": "c2a1b813-75bf-44a2-8d32-fc1be8c179f6"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"type": "IMAGE",
|
|
45
|
+
"value": {
|
|
46
|
+
"title": "stats",
|
|
47
|
+
"width": 899,
|
|
48
|
+
"height": 562,
|
|
49
|
+
"fileSize": 27562,
|
|
50
|
+
"url": "https://api.worldquantbrain.com/content/images/lCamCGS0yYrQ-bUoy0tnOH1hRpA=/43/original/first_alpha_stats.PNG"
|
|
51
|
+
},
|
|
52
|
+
"id": "c42bfb87-f769-4a78-ad25-b3e03acda6d9"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"type": "TEXT",
|
|
56
|
+
"value": "<p>Use the green refreshing button in the Correlation block to get the information about the <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=locations.-,Correlation,-Correlation\">correlation</a> of the currently simulated Alpha with the Alphas in your own <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=details.-,Out-of-sample%20(OS),-Out\">OS (Out-of-Sample)</a> pool. This will be explained further in the <a href=\"$tutorialpage/interpret-results/simulation-results\">Simulation Results</a> <a href=\"$tutorialpage/interpret-results/simulation-results\">page</a>.</p><p>The image below shows the Properties of the Alpha. You can name your Alpha, assign a category and color code, and add user-defined tags to them. You can add a brief description about your Alpha for your reference. Suggestion - keep the number of user-defined tags low so that they don't proliferate and are easily searchable in the My Alphas page.</p>",
|
|
57
|
+
"id": "5ba26c7d-97db-4402-a826-6046612e3f04"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"type": "IMAGE",
|
|
61
|
+
"value": {
|
|
62
|
+
"title": "properties",
|
|
63
|
+
"width": 876,
|
|
64
|
+
"height": 391,
|
|
65
|
+
"fileSize": 13990,
|
|
66
|
+
"url": "https://api.worldquantbrain.com/content/images/jltN00KXkYt2eAJDpyVnypHn8d4=/44/original/first_alpha_properties.PNG"
|
|
67
|
+
},
|
|
68
|
+
"id": "b835d762-8ca8-499e-b141-400d7b975444"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"type": "TEXT",
|
|
72
|
+
"value": "<p>To Submit Alpha for OS Test, click the \"Submit Alpha\" button in the <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions#:~:text=details%C2%A0*).-,Submission,-The\">Submission</a> tab of the results panel. This will check if the Alpha meets the <a href=\"https://platform.worldquantbrain.com/learn/documentation/interpret-results/parameters-simulation-results\">Correlation</a> and <a href=\"https://platform.worldquantbrain.com/learn/documentation/interpret-results/parameters-simulation-results\">Sharpe</a> criteria before submitting it.</p>",
|
|
73
|
+
"id": "9286ede5-e77c-4184-8725-ac16075d39d3"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"type": "TEXT",
|
|
77
|
+
"value": "<p>Check out the below video for another example.</p>",
|
|
78
|
+
"id": "71d58838-d605-4c65-a3be-0d7e52d82888"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"type": "TEXT",
|
|
82
|
+
"value": "<iframe width=\"743\" height=\"333\" src=\"https://www.youtube.com/embed/A3RNoYAz_9U?start=263&end=340\" title=\"Implementing an Alpha\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>",
|
|
83
|
+
"id": "35468ec7-dc18-4a9d-89ef-cddddb3b128e"
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
"sequence": 1,
|
|
87
|
+
"category": "Getting Started"
|
|
88
|
+
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "19-alpha-examples",
|
|
3
|
+
"title": "⭐ Alpha Examples for Beginners",
|
|
4
|
+
"lastModified": "2025-03-31T23:12:17.353193-04:00",
|
|
5
|
+
"content": [
|
|
6
|
+
{
|
|
7
|
+
"type": "HEADING",
|
|
8
|
+
"value": {
|
|
9
|
+
"level": "1",
|
|
10
|
+
"content": "Momentum after news"
|
|
11
|
+
},
|
|
12
|
+
"id": "6e598096-f4b0-43ff-b37d-794c0b66eb7c"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "TEXT",
|
|
16
|
+
"value": "<p><b>Hypothesis</b></p><p>After news is released, if a stock takes a longer time to rise, it may show strong evidence of upward momentum, and it could be beneficial to take a long position in it.</p><p></p><p><b>Implementation</b></p><p>Use the fundamental data field 'nws12_prez_4l' to capture this hypothesis. Backfill it with two years of data to ensure there is no drop in coverage.</p><p></p><p><b>Hint to improve the Alpha</b></p><p>Can increasing weight on more liquid stocks (Stocks with high volume) help pass the sub-universe test?</p>",
|
|
17
|
+
"id": "dedc8af5-d435-4714-99f1-6b870810df01"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "SIMULATION_EXAMPLE",
|
|
21
|
+
"value": {
|
|
22
|
+
"settings": {
|
|
23
|
+
"instrumentType": "EQUITY",
|
|
24
|
+
"region": "USA",
|
|
25
|
+
"universe": "TOP500",
|
|
26
|
+
"delay": 1,
|
|
27
|
+
"decay": 0,
|
|
28
|
+
"neutralization": "INDUSTRY",
|
|
29
|
+
"truncation": 0.08,
|
|
30
|
+
"pasteurization": "ON",
|
|
31
|
+
"unitHandling": "VERIFY",
|
|
32
|
+
"nanHandling": "OFF",
|
|
33
|
+
"language": "FASTEXPR",
|
|
34
|
+
"maxTrade": "OFF"
|
|
35
|
+
},
|
|
36
|
+
"type": "REGULAR",
|
|
37
|
+
"regular": "ts_backfill(vec_avg(nws12_prez_4l),504)"
|
|
38
|
+
},
|
|
39
|
+
"id": "8124ebc9-bb1f-4cb5-b552-374eeb1a3ec5"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"type": "HEADING",
|
|
43
|
+
"value": {
|
|
44
|
+
"level": "1",
|
|
45
|
+
"content": "Pretax Income"
|
|
46
|
+
},
|
|
47
|
+
"id": "bbf56dfa-0cfd-4311-9a83-05896c92105c"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"type": "TEXT",
|
|
51
|
+
"value": "<p><b>Hypothesis</b></p><p>Pretax income is a good measure of a company's financial health and profitability. Companies with increasing pretax income may have good growth prospects and higher potential for increasing stock price. Thus, you tend to long stocks with increasing pretax income and short stocks with decreasing pretax income.</p><p></p><p><b>Implementation</b></p><p>Use the time-series rank operator to compare the trend of the fundamental data field pretax income over the past 2 years, and use the quantile operator to normalize the result.</p><p></p><p><b>Hints to Implement</b></p><p>Boost the signal with sales data. For example, if the company has higher sales, it is more likely to outperform.</p>",
|
|
52
|
+
"id": "824d416d-0822-4d3e-b2d9-d409e8eb7b62"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"type": "SIMULATION_EXAMPLE",
|
|
56
|
+
"value": {
|
|
57
|
+
"settings": {
|
|
58
|
+
"instrumentType": "EQUITY",
|
|
59
|
+
"region": "USA",
|
|
60
|
+
"universe": "TOP3000",
|
|
61
|
+
"delay": 1,
|
|
62
|
+
"decay": 4,
|
|
63
|
+
"neutralization": "MARKET",
|
|
64
|
+
"truncation": 0.01,
|
|
65
|
+
"pasteurization": "ON",
|
|
66
|
+
"unitHandling": "VERIFY",
|
|
67
|
+
"nanHandling": "OFF",
|
|
68
|
+
"language": "FASTEXPR",
|
|
69
|
+
"maxTrade": "OFF"
|
|
70
|
+
},
|
|
71
|
+
"type": "REGULAR",
|
|
72
|
+
"regular": "quantile(ts_rank(pretax_income,250))"
|
|
73
|
+
},
|
|
74
|
+
"id": "de6306b0-eec1-4b2a-9377-8f601b87913b"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"type": "HEADING",
|
|
78
|
+
"value": {
|
|
79
|
+
"level": "1",
|
|
80
|
+
"content": "Operating Earnings Yield"
|
|
81
|
+
},
|
|
82
|
+
"id": "2fabd9cb-e07a-44f8-9827-a2c73ecaf0ba"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"type": "TEXT",
|
|
86
|
+
"value": "<p><b>Hypothesis</b></p><p>If the operating income of a company is currently higher than its past 1 year history, buy the company’s stock and vice-versa.</p><p></p><p><b>Implementation</b></p><p>Using ts_rank to identify current performance of the company compared to its own history, using the fundamental data field \"operating_income\".</p><p></p><p><b>Hints to Implement</b></p><p>Rather than comparing the value directly, can calculating a ratio that includes stock market moves, improve the signal?</p>",
|
|
87
|
+
"id": "16c67205-f1a8-4d14-8128-69c67c8d7b88"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"type": "SIMULATION_EXAMPLE",
|
|
91
|
+
"value": {
|
|
92
|
+
"settings": {
|
|
93
|
+
"instrumentType": "EQUITY",
|
|
94
|
+
"region": "USA",
|
|
95
|
+
"universe": "TOP3000",
|
|
96
|
+
"delay": 1,
|
|
97
|
+
"decay": 0,
|
|
98
|
+
"neutralization": "SUBINDUSTRY",
|
|
99
|
+
"truncation": 0.08,
|
|
100
|
+
"pasteurization": "ON",
|
|
101
|
+
"unitHandling": "VERIFY",
|
|
102
|
+
"nanHandling": "OFF",
|
|
103
|
+
"language": "FASTEXPR",
|
|
104
|
+
"maxTrade": "OFF"
|
|
105
|
+
},
|
|
106
|
+
"type": "REGULAR",
|
|
107
|
+
"regular": "ts_rank(operating_income,252)"
|
|
108
|
+
},
|
|
109
|
+
"id": "c8147118-4226-4621-a768-3d523b8287db"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"type": "HEADING",
|
|
113
|
+
"value": {
|
|
114
|
+
"level": "1",
|
|
115
|
+
"content": "Appreciation of liabilities"
|
|
116
|
+
},
|
|
117
|
+
"id": "937878a5-f302-43a4-8cbc-b7ad1c6dbd20"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"type": "TEXT",
|
|
121
|
+
"value": "<p><b>Hypothesis</b></p><p>An increase in the fair value of liabilities could indicate a higher cost than expected. This may deteriorate the company's financial health, potentially leading to lower profitability or financial distress.</p><p></p><p><b>Implementation</b></p><p>Go short when there is an increase in the fair value of liabilities within a year and long when the opposite occurs using fundamental data.</p><p></p><p><b>Hints to Implement</b></p><p>Could observing the increase over a shorter period improve accuracy?</p>",
|
|
122
|
+
"id": "b9d5d4c7-8238-44dc-a32d-942191624b48"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"type": "SIMULATION_EXAMPLE",
|
|
126
|
+
"value": {
|
|
127
|
+
"settings": {
|
|
128
|
+
"instrumentType": "EQUITY",
|
|
129
|
+
"region": "USA",
|
|
130
|
+
"universe": "TOP3000",
|
|
131
|
+
"delay": 1,
|
|
132
|
+
"decay": 0,
|
|
133
|
+
"neutralization": "SUBINDUSTRY",
|
|
134
|
+
"truncation": 0.08,
|
|
135
|
+
"pasteurization": "ON",
|
|
136
|
+
"unitHandling": "VERIFY",
|
|
137
|
+
"nanHandling": "OFF",
|
|
138
|
+
"language": "FASTEXPR",
|
|
139
|
+
"maxTrade": "OFF"
|
|
140
|
+
},
|
|
141
|
+
"type": "REGULAR",
|
|
142
|
+
"regular": "-ts_rank(fn_liab_fair_val_l1_a,252)"
|
|
143
|
+
},
|
|
144
|
+
"id": "fa0865b4-3080-466a-b77d-25b90713df0b"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"type": "HEADING",
|
|
148
|
+
"value": {
|
|
149
|
+
"level": "1",
|
|
150
|
+
"content": "Deferred Revenue"
|
|
151
|
+
},
|
|
152
|
+
"id": "1b9f9ee5-60e9-41b6-845d-de391670e926"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"type": "TEXT",
|
|
156
|
+
"value": "<p><b>Hypothesis</b></p><p>Firms with high deferred revenue will surprise the market in the future when the deferred revenue is recognized.</p><p></p><p><b>Implementation</b></p><p>fnd6_drc field refers to deferred revenue. To improve the coverage of the datafield, ts_backfill operator is applied. Deferred revenue is divided by total assets to account for the size of a firm.</p><p></p><p><b>Hints to Implement</b></p><p>Instead of relying on the raw value of the ratio to decide weights of stocks, use cross-sectional operators. Utilize group based operators to compare across similar stocks.</p><p></p>",
|
|
157
|
+
"id": "4af4365c-9242-4d86-9463-bd30ea7a962b"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"type": "SIMULATION_EXAMPLE",
|
|
161
|
+
"value": {
|
|
162
|
+
"settings": {
|
|
163
|
+
"instrumentType": "EQUITY",
|
|
164
|
+
"region": "USA",
|
|
165
|
+
"universe": "TOP3000",
|
|
166
|
+
"delay": 1,
|
|
167
|
+
"decay": 0,
|
|
168
|
+
"neutralization": "SECTOR",
|
|
169
|
+
"truncation": 1.0,
|
|
170
|
+
"pasteurization": "ON",
|
|
171
|
+
"unitHandling": "VERIFY",
|
|
172
|
+
"nanHandling": "OFF",
|
|
173
|
+
"language": "FASTEXPR",
|
|
174
|
+
"maxTrade": "OFF"
|
|
175
|
+
},
|
|
176
|
+
"type": "REGULAR",
|
|
177
|
+
"regular": "ts_backfill(fnd6_drc, 252)/assets"
|
|
178
|
+
},
|
|
179
|
+
"id": "3cc4fca3-28a8-40b5-ac4a-f02c5136f119"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"type": "HEADING",
|
|
183
|
+
"value": {
|
|
184
|
+
"level": "1",
|
|
185
|
+
"content": "Reducing debt"
|
|
186
|
+
},
|
|
187
|
+
"id": "1b6fdb14-9b4c-4468-8adc-34ade3e5b32a"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"type": "TEXT",
|
|
191
|
+
"value": "<p><b>Hypothesis</b>: Take a long position in companies whose debt has decreased compared to the past, and conversely, take a short position in companies whose debt has increased.</p><p><br/><b>Implementation</b>: Use the fundamental data ‘debt’ to capture this hypothesis. Use the time-series quantile operator to compare the trend of the fundamental data field over the past six months.</p><p><br/><b>Hint to improve the Alpha</b>: Utilize the operator’s driver parameter to transform it into a different distribution.</p>",
|
|
192
|
+
"id": "385a50b9-8081-4b26-9d8b-12f4fe5cb8b7"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"type": "SIMULATION_EXAMPLE",
|
|
196
|
+
"value": {
|
|
197
|
+
"settings": {
|
|
198
|
+
"instrumentType": "EQUITY",
|
|
199
|
+
"region": "USA",
|
|
200
|
+
"universe": "TOP3000",
|
|
201
|
+
"delay": 1,
|
|
202
|
+
"decay": 0,
|
|
203
|
+
"neutralization": "MARKET",
|
|
204
|
+
"truncation": 0.01,
|
|
205
|
+
"pasteurization": "ON",
|
|
206
|
+
"unitHandling": "VERIFY",
|
|
207
|
+
"nanHandling": "OFF",
|
|
208
|
+
"language": "FASTEXPR",
|
|
209
|
+
"maxTrade": "OFF"
|
|
210
|
+
},
|
|
211
|
+
"type": "REGULAR",
|
|
212
|
+
"regular": "-ts_quantile(debt, 126)"
|
|
213
|
+
},
|
|
214
|
+
"id": "319096ed-02f2-4a1c-8295-a6e756c6be70"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"type": "HEADING",
|
|
218
|
+
"value": {
|
|
219
|
+
"level": "1",
|
|
220
|
+
"content": "Power of leverage"
|
|
221
|
+
},
|
|
222
|
+
"id": "c4c57a62-fa49-4c75-bff0-87222f4bb794"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"type": "TEXT",
|
|
226
|
+
"value": "<p><b>Hypothesis</b>: Companies with high liability-to-asset ratios – excluding those with poor financial health or weak cashflows – often leverage debt as a strategic tool to pursue aggressive growth initiatives. By effectively utilizing financial leverage, these firms are more likely to deliver outsized returns, as they reinvest borrowed capital into high-potential opportunities.</p><p><br/><b>Implementation</b>: Use the ‘liabilities’ and ‘assets’ to design the ratio.</p><p><br/><b>Hint to improve the Alpha</b>: This ratio can vary significantly across industries. Would it be worth considering alternative neutralization settings?</p>",
|
|
227
|
+
"id": "fe2b8127-17e6-4b86-bce6-185c95d6c1ef"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"type": "SIMULATION_EXAMPLE",
|
|
231
|
+
"value": {
|
|
232
|
+
"settings": {
|
|
233
|
+
"instrumentType": "EQUITY",
|
|
234
|
+
"region": "USA",
|
|
235
|
+
"universe": "TOP3000",
|
|
236
|
+
"delay": 1,
|
|
237
|
+
"decay": 0,
|
|
238
|
+
"neutralization": "MARKET",
|
|
239
|
+
"truncation": 0.01,
|
|
240
|
+
"pasteurization": "ON",
|
|
241
|
+
"unitHandling": "VERIFY",
|
|
242
|
+
"nanHandling": "OFF",
|
|
243
|
+
"language": "FASTEXPR",
|
|
244
|
+
"maxTrade": "OFF"
|
|
245
|
+
},
|
|
246
|
+
"type": "REGULAR",
|
|
247
|
+
"regular": "liabilities/assets"
|
|
248
|
+
},
|
|
249
|
+
"id": "bb4244b9-bdd2-40ef-bb86-284acf6cc8e1"
|
|
250
|
+
}
|
|
251
|
+
],
|
|
252
|
+
"sequence": 28,
|
|
253
|
+
"category": "Creating Alphas"
|
|
254
|
+
}
|