cnhkmcp 2.1.2__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 -125
- 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 +1 -1
- 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 +4 -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/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/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/APP/Tranformer/Transformer.py +5 -1
- cnhkmcp/untracked/APP/Tranformer/ace_lib.py +4 -0
- cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +6008 -1242
- cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +1 -1034
- cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +47310 -442
- cnhkmcp/untracked/APP/ace_lib.py +4 -0
- cnhkmcp/untracked/APP/give_me_idea/ace_lib.py +4 -0
- cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +4 -0
- cnhkmcp/untracked/APP/simulator/wqb20260107015647.log +57 -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 +4 -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 +2 -2
- 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 +4 -0
- cnhkmcp/untracked/__init__.py +0 -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 +352 -166
- {cnhkmcp-2.1.2.dist-info → cnhkmcp-2.1.4.dist-info}/METADATA +1 -1
- cnhkmcp-2.1.4.dist-info/RECORD +190 -0
- cnhkmcp-2.1.2.dist-info/RECORD +0 -111
- {cnhkmcp-2.1.2.dist-info → cnhkmcp-2.1.4.dist-info}/WHEEL +0 -0
- {cnhkmcp-2.1.2.dist-info → cnhkmcp-2.1.4.dist-info}/entry_points.txt +0 -0
- {cnhkmcp-2.1.2.dist-info → cnhkmcp-2.1.4.dist-info}/licenses/LICENSE +0 -0
- {cnhkmcp-2.1.2.dist-info → cnhkmcp-2.1.4.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "group-data-fields",
|
|
3
|
+
"title": "Group Data Fields 🥈",
|
|
4
|
+
"lastModified": "2025-01-08T05:33:05.322350-05:00",
|
|
5
|
+
"content": [
|
|
6
|
+
{
|
|
7
|
+
"type": "HEADING",
|
|
8
|
+
"value": {
|
|
9
|
+
"level": "1",
|
|
10
|
+
"content": "Group Data Fields"
|
|
11
|
+
},
|
|
12
|
+
"id": "27ee8644-dbbd-4758-950d-a4af2af6ca0c"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "TEXT",
|
|
16
|
+
"value": "<p>Group Data Fields are fields which have information about instrument segregation into various groups. They are supposed to be used as an input to the group operator. Some grouping type fields are industry, subindustry and sector.</p><p>Group Data Fields are available across various datasets. For instance, commonly used groups such as sector, industry, subindustry, and exchange can be located in the <a href=\"https://platform.worldquantbrain.com/data/data-sets/pv1\">pv1</a> dataset by applying a type == 'group' filter within Data Explorer. In addition, other group data fields can be discovered by browsing all fields and utilizing the same 'group' filter in <a href=\"https://platform.worldquantbrain.com/data/data-fields?delay=1&instrumentType=EQUITY&limit=20&offset=0&region=GLB&type=GROUP&universe=TOP3000\">Data Explorer</a>.</p>",
|
|
17
|
+
"id": "758987c5-c504-4deb-8468-f65b0c77cb4e"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "HEADING",
|
|
21
|
+
"value": {
|
|
22
|
+
"level": "1",
|
|
23
|
+
"content": "How to utilize Group Data Fields"
|
|
24
|
+
},
|
|
25
|
+
"id": "08963f90-612b-4484-826e-57560b58ff72"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "HEADING",
|
|
29
|
+
"value": {
|
|
30
|
+
"level": "2",
|
|
31
|
+
"content": "Using group data fields"
|
|
32
|
+
},
|
|
33
|
+
"id": "5f448352-ff56-442f-b33b-28b1f87143f7"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"type": "TEXT",
|
|
37
|
+
"value": "<p>Type of field which has more than one value for every date and instrument. Vector data fields have to be converted into matrix data fields using <a href=\"https://platform.worldquantbrain.com/learn/operators/operators#vector-operators\">vector operators</a> before using with other operators and matrix data fields. Otherwise, an error message will be returned. Some examples include <a href=\"https://platform.worldquantbrain.com/data/data-sets/pv13\">pv13</a> and <a href=\"https://platform.worldquantbrain.com/data/data-sets/pv17\">pv17</a> dataset for USA and ASI.</p>",
|
|
38
|
+
"id": "bad7dcf4-8602-4271-9044-877d622e6891"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"type": "HEADING",
|
|
42
|
+
"value": {
|
|
43
|
+
"level": "2",
|
|
44
|
+
"content": "Creating new groups"
|
|
45
|
+
},
|
|
46
|
+
"id": "c97eab68-7d49-4368-9cb2-0bdc5b40fc12"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"type": "TEXT",
|
|
50
|
+
"value": "<p>Apart from using group data, you can also create new group using bucket() operator. This operator creates new groups based on value of any data field.</p><p>For example:</p><p>asset_group = bucket(rank(assets), range=\"0.1, 1, 0.1\")</p><p>This will create a new group consisting of 10 buckets based on rank of assets. Stocks with highest assets will be in top bucket and stocks with lowest assets will be in bottom bucket. You can find the full syntax <a href=\"https://platform.worldquantbrain.com/learn/data-and-operators/detailed-operator-descriptions#bucket\">here</a></p><p>Finally, you can use group data directly in grouping operator:</p><p>group_zscore(<alpha>, <group>)</p><p>Do note, it is a good practice to apply densify() operator to groups before using them. Densify operator removes empty groups and improves Alpha performance. You can read more about it <a href=\"https://platform.worldquantbrain.com/learn/data-and-operators/detailed-operator-descriptions#densifyx\">here</a></p><p>The group operator will hence be written as:</p><p>asset_group = bucket(rank(assets), range=\"0.1, 1, 0.1\");<br/> group_zscore(<alpha>, densify(asset_group))</p>",
|
|
51
|
+
"id": "2c3fdc81-47aa-47e0-9c1e-7c7be6b0aca6"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"type": "HEADING",
|
|
55
|
+
"value": {
|
|
56
|
+
"level": "1",
|
|
57
|
+
"content": "Group Operators"
|
|
58
|
+
},
|
|
59
|
+
"id": "e7d98fe1-f548-44af-befd-3e342776e2c0"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"type": "TEXT",
|
|
63
|
+
"value": "<p>Group operators are a type of cross-sectional operator that compares stocks at a finer level, where the cross-sectional operation is applied within each group, rather than across the entire market. One such example is group_rank vs rank, where in group_rank, the instruments are allocated to their specified group, then within each group, it ranks the instruments based on their input value, as compared to rank, where the ranking is done across all instruments.</p>",
|
|
64
|
+
"id": "03384141-7cbd-4e36-9d78-6f3715eae50d"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"sequence": 40,
|
|
68
|
+
"category": "Data"
|
|
69
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "how-use-data-explorer",
|
|
3
|
+
"title": "How to use the Data Explorer",
|
|
4
|
+
"lastModified": "2025-03-12T05:53:18.035922-04:00",
|
|
5
|
+
"content": [
|
|
6
|
+
{
|
|
7
|
+
"type": "HEADING",
|
|
8
|
+
"value": {
|
|
9
|
+
"level": "1",
|
|
10
|
+
"content": "Data Explorer"
|
|
11
|
+
},
|
|
12
|
+
"id": "b829fabe-2a29-4a64-9231-fbcefe4dda17"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "TEXT",
|
|
16
|
+
"value": "<p>Powered by advanced AI technologies, such as NLP, the <a href=\"https://platform.worldquantbrain.com/data\"><b>Data Explorer</b></a> helps you quickly and accurately identify the data fields to implement your idea.</p>",
|
|
17
|
+
"id": "b432785b-6cb0-4565-85d3-1734e28aa3ed"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "IMAGE",
|
|
21
|
+
"value": {
|
|
22
|
+
"title": "DE1.png",
|
|
23
|
+
"width": 1188,
|
|
24
|
+
"height": 992,
|
|
25
|
+
"fileSize": 144161,
|
|
26
|
+
"url": "https://api.worldquantbrain.com/content/images/uX3FNijw_zpBHgbRrsqABsebM48=/360/original/DE1.png"
|
|
27
|
+
},
|
|
28
|
+
"id": "3bb65edd-1a76-41b3-8a3b-58c55ce20c88"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"type": "HEADING",
|
|
32
|
+
"value": {
|
|
33
|
+
"level": "2",
|
|
34
|
+
"content": "Searching for fields based on an idea"
|
|
35
|
+
},
|
|
36
|
+
"id": "cc5a5a4c-48b4-4124-ad60-a6cb93f71a6e"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "TEXT",
|
|
40
|
+
"value": "<p>Let’s say you have an Alpha idea using market sentiment. You can easily search for related datasets and data fields in the Data Explorer. Notice that you will have to pre-define region, delay and universe prior to your search. Some data fields are present only in certain regions and delays.</p>",
|
|
41
|
+
"id": "4483839d-01be-4c07-9caf-704c6348c252"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"type": "IMAGE",
|
|
45
|
+
"value": {
|
|
46
|
+
"title": "DE2.png",
|
|
47
|
+
"width": 1194,
|
|
48
|
+
"height": 984,
|
|
49
|
+
"fileSize": 146003,
|
|
50
|
+
"url": "https://api.worldquantbrain.com/content/images/6MUJQIldo-YDtcPzfaaU8bt7-I8=/361/original/DE2.png"
|
|
51
|
+
},
|
|
52
|
+
"id": "43ca04bf-d97d-4f8b-8cc7-4a4d3ef492a4"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"type": "HEADING",
|
|
56
|
+
"value": {
|
|
57
|
+
"level": "2",
|
|
58
|
+
"content": "Searching for fields based on specific criteria"
|
|
59
|
+
},
|
|
60
|
+
"id": "d725ebbd-b83f-47bf-8669-42d97abb93ed"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"type": "TEXT",
|
|
64
|
+
"value": "<p>You can filter data fields based on criteria such as coverage, type, count of Alphas and users. For example, you can search for high coverage data fields from <b>Company Fundamental Data for Equity</b> dataset in CHN region and were used in at least 5 submitted Alphas. You can later sort these data fields by Alpha count to see which fields are used less, i.e., less crowded.</p>",
|
|
65
|
+
"id": "cdab5f0d-1ce0-4162-9c64-497e40dcbbfe"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"type": "IMAGE",
|
|
69
|
+
"value": {
|
|
70
|
+
"title": "DE3.png",
|
|
71
|
+
"width": 1188,
|
|
72
|
+
"height": 1178,
|
|
73
|
+
"fileSize": 125549,
|
|
74
|
+
"url": "https://api.worldquantbrain.com/content/images/hjZPx_ax-2exAd5yDSSUrnY2qlA=/362/original/DE3.png"
|
|
75
|
+
},
|
|
76
|
+
"id": "5e7e81d6-2121-409c-b912-91e0f36a384c"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"type": "HEADING",
|
|
80
|
+
"value": {
|
|
81
|
+
"level": "2",
|
|
82
|
+
"content": "Searching and filtering datasets"
|
|
83
|
+
},
|
|
84
|
+
"id": "7e1f416c-8383-4803-826f-171b5133a433"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"type": "TEXT",
|
|
88
|
+
"value": "<p>While you can click on the “browse by category” button, you can also search for datasets using “dataset category” or “dataset name”. This is helpful because it also allows you to filter these datasets by coverage, value score and crowdedness (measured by Alpha and user count). For example, you can search for datasets related to “fundamental” that have more than 100 active users. Note that you have to go to the “Datasets” tab to see the results.</p>",
|
|
89
|
+
"id": "0930f8b4-69cc-4f38-bcdd-ca886809a7c6"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"type": "IMAGE",
|
|
93
|
+
"value": {
|
|
94
|
+
"title": "DE4.png",
|
|
95
|
+
"width": 1178,
|
|
96
|
+
"height": 415,
|
|
97
|
+
"fileSize": 48189,
|
|
98
|
+
"url": "https://api.worldquantbrain.com/content/images/o-uf3XHqNl96HWC0wmmOlkJ-KCw=/363/original/DE4.png"
|
|
99
|
+
},
|
|
100
|
+
"id": "4a3a6ec2-495f-43b5-ab4a-2e92c7e05cf3"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"type": "HEADING",
|
|
104
|
+
"value": {
|
|
105
|
+
"level": "1",
|
|
106
|
+
"content": "Rule of thumb when searching for data fields"
|
|
107
|
+
},
|
|
108
|
+
"id": "58269e2f-d341-4b28-92ee-5aaa87d0902a"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"type": "TEXT",
|
|
112
|
+
"value": "<p>Try to follow the 3Ss rule: keep your searches short, simple and straightforward. Try to use terminologies within your searches to increase the chance of finding the data fields you are looking for. In case you aren’t sure of the correct terminology, first try explaining it using your own words. For example, if you are looking for “insider trading” data but haven’t quite found the phrase, try, “trade by people inside company” and you can achieve the results.</p>",
|
|
113
|
+
"id": "4dbada9e-57f6-4cde-93b8-fc2a2178cbb7"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"type": "HEADING",
|
|
117
|
+
"value": {
|
|
118
|
+
"level": "1",
|
|
119
|
+
"content": "Maximize your results!"
|
|
120
|
+
},
|
|
121
|
+
"id": "fd5e30d9-8bf6-4e87-8f15-10e70d1057a1"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"type": "TEXT",
|
|
125
|
+
"value": "<p>For some well-known concepts, try searching for the abbreviations along with the full name. This simple practice will not only increase your chances of finding the data fields that you are looking for but you can also obtain additional options to choose from. For example, try searching for both “earnings per share” and “eps,” both “implied volatility” and “IV”, etc.</p><p>The flowchart below is a suggested research framework with the inclusion of Data Explorer. You can use it as a reference for creating one for yourself.</p>",
|
|
126
|
+
"id": "70f80dee-8d07-4aed-9c07-8ea8f932eea9"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"type": "IMAGE",
|
|
130
|
+
"value": {
|
|
131
|
+
"title": "data_explorer_flow.png",
|
|
132
|
+
"width": 1111,
|
|
133
|
+
"height": 1402,
|
|
134
|
+
"fileSize": 274079,
|
|
135
|
+
"url": "https://api.worldquantbrain.com/content/images/tUd2maOr6EUN-o_eFmQkLMxBUZ4=/313/original/data_explorer_flow.png"
|
|
136
|
+
},
|
|
137
|
+
"id": "0bafc355-5889-4b7a-af9e-6abed8ebac12"
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
"sequence": 20,
|
|
141
|
+
"category": "Data"
|
|
142
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "getting-started-model77",
|
|
3
|
+
"title": "Model77 dataset",
|
|
4
|
+
"lastModified": "2025-11-04T02:29:13.503955-05:00",
|
|
5
|
+
"content": [
|
|
6
|
+
{
|
|
7
|
+
"type": "TEXT",
|
|
8
|
+
"value": "<p></p><p><b>Getting Started with Model77 Dataset (Analysts' Factor Model)</b></p><ul><li>The model77 dataset provides a rich collection of metrics spanning valuation ratios, earnings quality, financial health, momentum indicators, and risk measures.<ul><li><b>Valuation Metrics:</b> Book-to-Market, Cash-to-Price, Free Cash Flow-to-Price, EBITDA-to-Enterprise Value, etc.</li><li><b>Earnings Indicators:</b> Earnings surprises, analyst revisions, earnings growth projections</li><li><b>Quality Measures:</b> Return on Equity, Asset Turnover, Cash Flow metrics, Altman Z-Score</li><li><b>Momentum Signals:</b> Price performance over various timeframes, relative strength measures</li><li><b>Risk Metrics:</b> Volatility measures, beta, implied volatility, bankruptcy scores</li></ul></li><li>When working with fields that have limited coverage (below 70%), focus your testing on highly liquid subsets like TOP1000 or TOPSP500 where data availability is typically better. Alternatively, you may backfill missing values over reasonable lookback periods (e.g., 252 days), but be cautious as excessive backfilling of high-frequency metrics can introduce noise and diminish signal validity.</li></ul><p><b>Example Alpha Ideas</b></p><ul><li><b>mdl77_fa_ebitdaev (TTM EBITDA-to-Enterprise Value):</b> This metric identifies companies with strong operational earnings relative to their total capital structure, highlighting potential undervaluation. Go long on stocks with comparatively high EBITDA yields and short those with extremely low or negative values that indicate operational struggles.</li><li><b>mdl77_400_sue (Standardized Unexpected Earnings):</b> Positive earnings surprises create information shocks that frequently lead to persistent post-announcement price drifts. Go long on companies with significant positive earnings surprises while avoiding those with extreme positive surprises that may be prone to reversal.</li><li><b>mdl77_ocfast (Operating Cash Flow to Assets):</b> Superior cash generation relative to asset base indicates efficient operations and high-quality earnings. Go long on companies with strong and improving cash flow generation while avoiding those showing significant deterioration in this metric.</li><li><b>mdl77_opricemomentumfactor_actrtn6m (6-Month Active Return with 1-Month Lag)</b>: Medium-term price momentum with a one-month lag captures persistent price trends while avoiding short-term reversals. Go long on stocks with strong lagged six-month returns and short stocks with significant negative returns while filtering out recent earnings announcement with <b>days_from_last_change()</b> operator.</li><li><b>mdl77_altmanz (Altman Z Score)</b>: This comprehensive bankruptcy risk indicator identifies companies with solid financial foundations and are less vulnerable to economic downturns. Go long on stocks with high financial stability during periods of market uncertainty and short companies with distress signals.</li></ul>",
|
|
9
|
+
"id": "2a09d337-e93e-4729-a7da-ac6a320cb017"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"sequence": 1036,
|
|
13
|
+
"category": "Data"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "getting-started-sentiment1-dataset",
|
|
3
|
+
"title": "Sentiment1 dataset",
|
|
4
|
+
"lastModified": "2025-11-04T02:27:28.213820-05:00",
|
|
5
|
+
"content": [
|
|
6
|
+
{
|
|
7
|
+
"type": "TEXT",
|
|
8
|
+
"value": "<p></p><p><b>Getting Started with sentiment1 dataset (Research Sentiment Data)</b></p><ul><li>The sentiment1 dataset combines sentiment metrics with earnings estimations and surprises for U.S.-listed companies.</li><li>It provides insights into market mood, analyst consensus, and earnings-based signals.</li><li>Key fields include sentiment scores, ratios of analyst buy/sell recommendations, earnings surprises, and dispersion among analyst estimates.</li><li>Sentiment scores are dynamic with higher turnover in nature, while analyst and earnings metrics are slower-moving signals.</li><li>Use smoothing <b>decay</b> operations to manage high-frequency sentiment data and be considerate when using long lookback periods (>63 days) as older events may lose relevance.</li><li>The dataset has coverage of approximately 2000 on TOP3000. Do try your ideas on more liquid universes such as TOP1000 and TOPSP500 but ensure sufficient long & short count to avoid overfitting.</li></ul><p><b>Example Alpha Ideas</b></p><ul><li>Positive sentiment indicates market confidence, while negative sentiment signals potential downside. Go long on stocks with bullish sentiment (<b>snt1_cored1_score</b> > 5) and short on stocks with bearish sentiment (<b>snt1_cored1_score</b> < -5).</li><li>Positive earnings surprises often lead to upward price movements. Go long on stocks with positive earnings surprises using <b>snt1_d1_earningssurprise</b>.</li><li>A strong analyst consensus combined with sufficient analyst coverage reflects market confidence. Go long on stocks with a high ratio of analyst buys over sells using <b>snt1_d1_buyrecpercent</b>, filtering out stocks with low analyst coverage with <b>snt1_d1_analystcoverage</b></li></ul>",
|
|
9
|
+
"id": "9632018b-1cea-4724-9ba1-4cea1d37f17d"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"sequence": 1303,
|
|
13
|
+
"category": "Data"
|
|
14
|
+
}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "data",
|
|
3
|
+
"title": "Understanding Data in BRAIN: Key Concepts and Tips",
|
|
4
|
+
"lastModified": "2025-03-12T05:55:58.677840-04:00",
|
|
5
|
+
"content": [
|
|
6
|
+
{
|
|
7
|
+
"type": "HEADING",
|
|
8
|
+
"value": {
|
|
9
|
+
"level": "1",
|
|
10
|
+
"content": "Data Fundamentals"
|
|
11
|
+
},
|
|
12
|
+
"id": "a0641c87-78c3-4446-81f6-96e3de545903"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "HEADING",
|
|
16
|
+
"value": {
|
|
17
|
+
"level": "2",
|
|
18
|
+
"content": "Data Field"
|
|
19
|
+
},
|
|
20
|
+
"id": "c91042ee-d699-4d6a-940e-de8a96493610"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"type": "TEXT",
|
|
24
|
+
"value": "<p>A named collection of data, which has constant type and business meaning. For example, 'open price' is of constant type (numeric), and it consistently means the price of a security at the starting time of the trading period. 'Close price' has the same type as 'open price', but it’s a different field as it differs in business meaning.</p><p>A Dataset is a collection of Data Fields. Dataset can be identified by its name (text format, longer and explanatory) or its dataset ID (short alphanumeric format, only relevant for advanced scripting).</p>",
|
|
25
|
+
"id": "313cba86-4e05-4d67-877b-c2bea4db75b8"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "HEADING",
|
|
29
|
+
"value": {
|
|
30
|
+
"level": "3",
|
|
31
|
+
"content": "Matrix"
|
|
32
|
+
},
|
|
33
|
+
"id": "fed9cbd9-0244-48c2-b8f3-a855e886e049"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"type": "TEXT",
|
|
37
|
+
"value": "<p>Basic type of field which has just one value of every date and instrument. There is no special syntax for using this in simulation. Some examples of matrix fields are close, returns, cap.</p>",
|
|
38
|
+
"id": "e6242c6b-8cd1-450c-ae24-6ee9ff52b1bc"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"type": "HEADING",
|
|
42
|
+
"value": {
|
|
43
|
+
"level": "3",
|
|
44
|
+
"content": "Vector"
|
|
45
|
+
},
|
|
46
|
+
"id": "9be4aebf-a3e5-4505-8028-ba0671a2175a"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"type": "TEXT",
|
|
50
|
+
"value": "<p>Type of field which has more than one value for every date and instrument. Vector data fields have to be converted into matrix data fields using <a href=\"https://platform.worldquantbrain.com/learn/operators/operators#vector-operators\">vector operators</a> before using with other operators and matrix data fields. Otherwise, an error message will be returned.</p><p>You can learn more about it here: <a href=\"$tutorialpage/understanding-data/vector-datafields\">Vector data fields</a></p>",
|
|
51
|
+
"id": "f55ae313-e3ac-4ffd-9686-1fc4f63279d3"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"type": "IMAGE",
|
|
55
|
+
"value": {
|
|
56
|
+
"title": "vector desc.png",
|
|
57
|
+
"width": 1181,
|
|
58
|
+
"height": 480,
|
|
59
|
+
"fileSize": 66541,
|
|
60
|
+
"url": "https://api.worldquantbrain.com/content/images/9Sm7kRCELQv-CNQI9qqQd8Fb3G8=/160/original/vector_desc.png"
|
|
61
|
+
},
|
|
62
|
+
"id": "6f397600-a0df-4794-b512-e68bc4581aa5"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"type": "HEADING",
|
|
66
|
+
"value": {
|
|
67
|
+
"level": "2",
|
|
68
|
+
"content": "Dataset"
|
|
69
|
+
},
|
|
70
|
+
"id": "3a2791fd-5664-4bd8-ae93-6b374492555e"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"type": "TEXT",
|
|
74
|
+
"value": "<p>A source of information on one or more variables of interest for the WorldQuant investment process. A collection of data fields. For example: “price volume data for US equities” or “analyst target price predictions for US equities\". See <a href=\"https://platform.worldquantbrain.com/data/data-sets\">Datasets</a>.</p>",
|
|
75
|
+
"id": "b01ecedb-5293-4eb9-a188-d2383d3ddc28"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"type": "HEADING",
|
|
79
|
+
"value": {
|
|
80
|
+
"level": "1",
|
|
81
|
+
"content": "Tips on working with new data"
|
|
82
|
+
},
|
|
83
|
+
"id": "55bf350f-ebea-4f09-8a45-f6aa5ebb4dae"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"type": "TEXT",
|
|
87
|
+
"value": "<p>WorldQuant BRAIN has thousands of data fields for you to create Alphas. But how do you quickly understand a new data field? Here are 6 ways. Simulate the below expressions in “None” neutralization and decay 0 setting. And obtains insights of specific parameters using the Long Count and Short Count in the IS Summary section of the results.</p>",
|
|
88
|
+
"id": "fe76b36b-6513-401b-a3e5-ed3dbee00c2d"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"type": "TABLE",
|
|
92
|
+
"value": {
|
|
93
|
+
"data": [
|
|
94
|
+
[
|
|
95
|
+
"Sr. No",
|
|
96
|
+
"Expression",
|
|
97
|
+
"Insight"
|
|
98
|
+
],
|
|
99
|
+
[
|
|
100
|
+
"1",
|
|
101
|
+
"datafield",
|
|
102
|
+
"% coverage, would approximately be ratio of (Long Count + Short Count in the IS Summary )/ (Universe Size in the settings)"
|
|
103
|
+
],
|
|
104
|
+
[
|
|
105
|
+
"2",
|
|
106
|
+
"datafield != 0 ? 1 : 0",
|
|
107
|
+
"Coverage. Long Count indicates average non-zero values on a daily basis"
|
|
108
|
+
],
|
|
109
|
+
[
|
|
110
|
+
"3",
|
|
111
|
+
"ts_std_dev(datafield,N) != 0 ? 1 : 0",
|
|
112
|
+
"Frequency of unique data (daily, weekly, monthly etc.).\n\nSome datasets have data backfilled for missing values, while some do not. The given expression can be used to find the frequency of unique data field updates by varying N (no. of days).\n\nData fields with a quarterly unique data frequency tend to see a Long Count + Short Count value close to its actual coverage when N = 66 (quarter). When N = 22 (month) Long Count + Short Count tend to be lower (approx. 1/3rd of coverage) and when N = 5 (week), Long Count + Short Count tend to be even lower."
|
|
113
|
+
],
|
|
114
|
+
[
|
|
115
|
+
"4",
|
|
116
|
+
"abs(datafield) > X",
|
|
117
|
+
"Bounds of the data field. Vary the values of X and see the Long Count. For example, X=1 will indicate if the field is normalized to values between -1 and +1?"
|
|
118
|
+
],
|
|
119
|
+
[
|
|
120
|
+
"5",
|
|
121
|
+
"ts_median(datafield, 1000) > X",
|
|
122
|
+
"Median of the data field over 5 years. Vary the values of X and see the Long Count. Similar process can be applied to check the mean of the data field."
|
|
123
|
+
],
|
|
124
|
+
[
|
|
125
|
+
"6",
|
|
126
|
+
"X < scale_down(datafield) && scale_down(datafield) < Y",
|
|
127
|
+
"Distribution of the data field. scale_down acts as a MinMaxScaler that can preserve the original distribution of the data. X and Y are values that vary between 0 and 1 that allow us to check how the data field distribute across its range."
|
|
128
|
+
]
|
|
129
|
+
],
|
|
130
|
+
"firstRowIsTableHeader": true,
|
|
131
|
+
"firstColIsHeader": false
|
|
132
|
+
},
|
|
133
|
+
"id": "55aa8f96-f4d3-40a3-899b-505c7bab04bc"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"type": "TEXT",
|
|
137
|
+
"value": "<p>For example, if you simulate [close <= 0], You will see Long and Short Counts as 0. This implies that closing price always has a positive value (as expected!)</p>",
|
|
138
|
+
"id": "5bafa75a-cf0c-47f0-8772-398adc20ac0e"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"type": "HEADING",
|
|
142
|
+
"value": {
|
|
143
|
+
"level": "1",
|
|
144
|
+
"content": "Dataset Value Score (available for Consultants only)"
|
|
145
|
+
},
|
|
146
|
+
"id": "be0dec9a-579e-46ad-b0bc-f186fe0b9dd7"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"type": "TEXT",
|
|
150
|
+
"value": "<p>Dataset Value Score is a measure which signifies underutilization of a dataset. Consultants are advised to research and make Alphas using datasets with a higher value score. Don't confuse this with <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/4902349883927-Click-here-for-a-list-of-terms-and-their-definitions?_gl=1%2A18ow0md%2A_gcl_au%2AMTg3NTMyMTEyMC4xNzIyODU1OTA1%2A_ga%2AMTY3NjM1NjEwMDQ4MzljNjRiMjkyN2E4YWQ.%2A_ga_9RN6WVT1K1%2AMTcyNDY1Mjk5OC43MTAuMS4xNzI0NjU1MjI4LjUxLjAuMA..#h_01FYP31C0XCT74KTDQWH5VN0YD\">Value Factor</a>.</p>",
|
|
151
|
+
"id": "1fcfce73-342a-4564-8dd3-576e3a55a258"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"type": "HEADING",
|
|
155
|
+
"value": {
|
|
156
|
+
"level": "1",
|
|
157
|
+
"content": "Data Coverage"
|
|
158
|
+
},
|
|
159
|
+
"id": "b00760d7-6562-4820-9c20-1e7e21f8be58"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"type": "TEXT",
|
|
163
|
+
"value": "<p>Coverage refers to the fraction of the total instruments present in the universe for which the given data field has a defined value. Low coverage fields can be handled by making use of backfill operators like ts_backfill, kth element, group_backfill, etc. Make use of the visualization feature to analyze the coverage of the data fields. Read this <a href=\"https://support.worldquantbrain.com/hc/en-us/articles/19248385997719-Weight-Coverage-common-issues-and-advice\">BRAIN Forum Post</a> to know more about coverage handling.</p>",
|
|
164
|
+
"id": "b2dc1323-e6c2-4f9f-aa17-f740e38afe27"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"type": "HEADING",
|
|
168
|
+
"value": {
|
|
169
|
+
"level": "1",
|
|
170
|
+
"content": "Further Resources"
|
|
171
|
+
},
|
|
172
|
+
"id": "9ce6348a-21da-44ce-8146-63686e211ec1"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"type": "TEXT",
|
|
176
|
+
"value": "<ul><li><a href=\"https://support.worldquantbrain.com/hc/en-us/community/posts/14431641039383--BRAIN-TIPS-Getting-Started-with-Technical-Indicators\">Building Technical Indicators with Data Fields</a></li><li><a href=\"https://support.worldquantbrain.com/hc/en-us/community/posts/15053280147223--BRAIN-TIPS-Finite-differences\">Finite Differences</a></li><li><a href=\"https://support.worldquantbrain.com/hc/en-us/community/posts/15233993197079--BRAIN-TIPS-Statistics-in-alphas-research\">Statistics in Alpha Research</a></li></ul>",
|
|
177
|
+
"id": "06b86c13-2766-4d8a-910e-97736619bd9c"
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
"sequence": 10,
|
|
181
|
+
"category": "Data"
|
|
182
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "vector-datafields",
|
|
3
|
+
"title": "Vector Data Fields 🥉",
|
|
4
|
+
"lastModified": "2025-03-12T05:57:46.498103-04:00",
|
|
5
|
+
"content": [
|
|
6
|
+
{
|
|
7
|
+
"type": "TEXT",
|
|
8
|
+
"value": "<p>Vector Data are a distinct type of data fields that do not have a fixed size. In such type of data fields, the number of events recorded per day per instrument varies, so they are typically stored in a vector. This is unlike regular matrix data that you work with, which has one value per day per instrument. For example: If a dataset covers news data, it could be a vector because for each instrument there can be different number of news/events happening hence, covering such information in a matrix data tends to result in missing useful information. For example, a vector field reporting multiple news events for a single instrument in a day.</p>\r\n<p>Now, whenever you write an Alpha expression, the end result is a matrix of Alpha values which is the position that is taken in the market. And all the operators on platform are made for matrix input, hence use the matrix operator only after using the vec_ operators to convert the vector data field to matrix field. This is done by aggregating vector for each day and instrument into a single value like a matrix has. The same is depicted in figure below:</p>",
|
|
9
|
+
"id": "bfce417c-3e46-4773-9685-601e523406fe"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"type": "IMAGE",
|
|
13
|
+
"value": {
|
|
14
|
+
"title": "vector desc.png",
|
|
15
|
+
"width": 1181,
|
|
16
|
+
"height": 480,
|
|
17
|
+
"fileSize": 66541,
|
|
18
|
+
"url": "https://api.worldquantbrain.com/content/images/9Sm7kRCELQv-CNQI9qqQd8Fb3G8=/160/original/vector_desc.png"
|
|
19
|
+
},
|
|
20
|
+
"id": "7264f897-8880-4897-9284-0d5b03d3db07"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"type": "TEXT",
|
|
24
|
+
"value": "<p>Following are the different operators to convert vector data field into a matrix each differing in the way vector for a particular date and instrument is aggregated to a single value:</p>\r\n<table>\r\n<thead>\r\n<tr>\r\n<th>Operator</th>\r\n<th>Description</th>\r\n</tr>\r\n</thead>\r\n<tr>\r\n<td>vec_avg(x)</td>\r\n<td>Taking mean of the vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_choose(x,nth=k)</td>\r\n<td>Choosing k<sup>th</sup> item(indexed at 0) from each vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_count(x)</td>\r\n<td>Number of elements in vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_ir(x)</td>\r\n<td>Information Ratio (Mean / Standard Deviation) of vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_kurtosis(x)</td>\r\n<td>Kurtosis of vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_max(x)</td>\r\n<td>Maximum value form vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_min(x)</td>\r\n<td>Minimum value form vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_norm(x)</td>\r\n<td>Sum of all absolute values of vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_percentage(x,percentage=0.5)</td>\r\n<td>Percentile of vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_powersum(x,constant=2)</td>\r\n<td>Sum of power of vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_range(x)</td>\r\n<td>Difference between maximum and minimum element in vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_skewness(x)</td>\r\n<td>Skewness of vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_stddev(x)</td>\r\n<td>Standard Deviation of vector field x</td>\r\n</tr>\r\n<tr>\r\n<td>vec_sum(x)</td>\r\n<td>Sum of vector field x</td>\r\n</tr>\r\n</table>\r\n\r\n<p> </p>\r\n<p><strong>Some examples:</strong></p>\r\n<ol>\r\n<li>nws12_afterhsz_1_minute is a field which gives the percentage change in price within first minute of news release. There can be many news items per day for different instruments. Hence, the count of news can be different for different instruments. Suppose we want to apply a reversion/momentum predictor idea i.e. a general observation that when a stock has high intensity, it follows momentum and when a stock has low news intensity, it follows reversion, we require news count data. For this, we need to use vec_count functions on nws12_afterhsz_1_minute (or rather any similar field like nws12_afterhsz_10_min or nws12_afterhsz_120_min) field. This will convert vector of percentage changes to count of such occurrences. You can use vec_count(nws12_afterhsz_120_min) for getting news count. Below are the plots for average value and turnover of vec_count. You can see the raw turnover is very high and sometimes touching 200%. It tends to be necessary to reduce its turnover using decay operators before combining it with base data or other fields to make Alphas.<br><img src='https://api.worldquantbrain.com/content/images/37-sNsjiCRroNrh9Xy2EHPmuldM=/129/original/' width='450'/><img src='https://api.worldquantbrain.com/content/images/5oS5iPJ5jOq_aBvjWOI3mremiZg=/130/original/' width='450'/></li>\r\n<li>ONLY FOR CONSULTANTS WITH ACCESS TO CONSULTANT DATASETS: scl15_d1_sentiment is a field which gives sentiment score of various events in a day. Since we can take only one position for each instrument, as an input as well, we just need one value of sentiment. For AAPL for certain date, if there are 5 sentiment scores and we have to use just one, generally mean of all those scores can be reasonable representative of sentiment in that entire day. So, to convert this sentiment vector to a matrix field, we will use vec_avg(scl15_d1_sentiment). If you think a median could be a better representative, you can use vec_median(scl15_d1_sentiment) instead. Below are again the average value and turnover plots for the vec_avg field. Average value hovers densely around 15,000 and turnover around 130%. Here as well, you need to reduce turnover by using ts_rank or ts_decay in your Alpha expression.<br><img src='https://api.worldquantbrain.com/content/images/sQZTAVq8yVU8HXHe4xxImveJy4w=/131/original/' width='450'/><img src='https://api.worldquantbrain.com/content/images/jpmzVfQF2D4YH_jAxa6kIdyTZLE=/132/original/' width='450'/></li>\r\n</ol>",
|
|
25
|
+
"id": "3340a65d-ca2a-4696-a9f5-5cabb06c5abc"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"sequence": 30,
|
|
29
|
+
"category": "Data"
|
|
30
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "getting-started-crowding-risk-neutralized-alphas",
|
|
3
|
+
"title": "Crowding Risk-Neutralized Alphas",
|
|
4
|
+
"lastModified": "2025-11-04T02:32:58.440036-05:00",
|
|
5
|
+
"content": [
|
|
6
|
+
{
|
|
7
|
+
"type": "HEADING",
|
|
8
|
+
"value": {
|
|
9
|
+
"level": "2",
|
|
10
|
+
"content": "What is Crowding Risk?"
|
|
11
|
+
},
|
|
12
|
+
"id": "d45b2fbd-e486-40d7-89fb-6dd59a2a8254"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "TEXT",
|
|
16
|
+
"value": "<p>Crowding risk occurs when many investors hold similar positions and trades. This similarity can create crowded positions and trades.</p><p>The main problems with crowded trades include:</p><ul><li>Unraveling of Crowded Positions: When too many investors try to sell the same positions simultaneously, prices can drop quickly, increasing losses.</li><li>Reduced Profitability: Crowded trades can become less profitable as more investors enter the same positions. Initially, prices may rise, but they may become vulnerable to steep declines.</li></ul>",
|
|
17
|
+
"id": "d7e4c895-a7b1-4e9f-848d-ef8d013e144d"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "HEADING",
|
|
21
|
+
"value": {
|
|
22
|
+
"level": "2",
|
|
23
|
+
"content": "Crowding Risk Factors"
|
|
24
|
+
},
|
|
25
|
+
"id": "080b00ba-7acf-4a3d-933f-580428718765"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "TEXT",
|
|
29
|
+
"value": "<p></p><p>For <a href=\"https://platform.worldquantbrain.com/learn/documentation/advanced-topics/getting-started-risk-neutralized-alphas\">long-short neutralized Alphas</a>, several style risk factors can indicate crowding risk. For example, the momentum factor identifies high exposure to instruments with favorable medium-term price movements. Instruments with strong momentum can attract many investors, potentially leading to crowded trades.</p>",
|
|
30
|
+
"id": "45b5918b-10eb-4af6-9589-e6a222fd5a30"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "HEADING",
|
|
34
|
+
"value": {
|
|
35
|
+
"level": "2",
|
|
36
|
+
"content": "How to Simulate Crowding Risk-Neutralized Alphas"
|
|
37
|
+
},
|
|
38
|
+
"id": "53e2638d-494a-4be2-9dcb-4af05e7ee825"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"type": "TEXT",
|
|
42
|
+
"value": "<p>To control for crowding risk in Alphas, BRAIN has developed a risk model with various risk factors. By monitoring and managing these factors, BRAIN consultants can potentially reduce the negative impacts of crowded trades and improve the robustness of Alphas. Consultants can neutralize Alphas using crowding risk factors by adjusting the settings to 'CROWDING':</p>",
|
|
43
|
+
"id": "ead888ba-4be8-4a28-a714-f3dfb3641ff1"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "IMAGE",
|
|
47
|
+
"value": {
|
|
48
|
+
"title": "crowding_risk_neu.png",
|
|
49
|
+
"width": 624,
|
|
50
|
+
"height": 362,
|
|
51
|
+
"fileSize": 50882,
|
|
52
|
+
"url": "https://api.worldquantbrain.com/content/images/cPHU6I2_nsgdPuZATjrV1FBSSmc=/318/original/crowding_risk_neu.png"
|
|
53
|
+
},
|
|
54
|
+
"id": "6697c8c1-8982-404d-88c5-218fb62907bc"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"type": "TEXT",
|
|
58
|
+
"value": "<p></p><p>settings_dict = {<br/> \"instrumentType\": \"EQUITY\",<br/> \"region\": \"USA\",<br/> \"universe\": \"TOP3000\",<br/> \"delay\": 1,<br/> \"decay\": 0,<br/> \"neutralization\": \"CROWDING\",<br/> \"truncation\": 0.1,<br/> \"pasteurization\": \"ON\",<br/> \"unitHandling\": \"VERIFY\",<br/> \"nanHandling\": \"ON\",<br/> \"language\": \"FASTEXPR\",<br/> \"visualization\": False<br/>}</p>",
|
|
59
|
+
"id": "df0eb9f8-bd35-450a-a265-d48916cc4bb0"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"sequence": 15,
|
|
63
|
+
"category": "Neutralization"
|
|
64
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "getting-started-d0",
|
|
3
|
+
"title": "D0",
|
|
4
|
+
"lastModified": "2025-11-04T02:30:06.401262-05:00",
|
|
5
|
+
"content": [
|
|
6
|
+
{
|
|
7
|
+
"type": "TEXT",
|
|
8
|
+
"value": "<p><b>Introduction to D0</b></p><p>Both Delay-0 and Delay-1 Alphas[1] (referred to as D0 and D1 Alphas respectively throughout) try to capitalize by rebalancing the Alpha positions daily. D0 Alphas are Alphas that also try to benefit from using the most recent information. These Alphas utilize the same available data during the day and usually simulate trades some period before the market close.</p>",
|
|
9
|
+
"id": "e906e4cb-6b44-42d2-9494-ba3d1ea29e01"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"type": "TEXT",
|
|
13
|
+
"value": "<iframe width=\"743\" height=\"333\" src=\"https://www.youtube.com/embed/XqdcIayjAug?start=65&end=124&feature=oembed&rel=0\" \" title=\"Long Short Neutrality\" frameborder=\"0\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>",
|
|
14
|
+
"id": "7f7f0600-c635-45db-9222-76622f51e9a7"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "TEXT",
|
|
18
|
+
"value": "<p>The below illustration gives you a glimpse of how D1 and D0 Alphas differ. The D1 Alpha's positions are determined by the prior day's data, while D0 Alpha's positions are calculated using the latest data on the same date</p>",
|
|
19
|
+
"id": "849b43dc-064a-473a-8324-48057deb4be8"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "IMAGE",
|
|
23
|
+
"value": {
|
|
24
|
+
"title": "alpha_d0_1.jpg",
|
|
25
|
+
"width": 1281,
|
|
26
|
+
"height": 271,
|
|
27
|
+
"fileSize": 35152,
|
|
28
|
+
"url": "https://api.worldquantbrain.com/content/images/t4XSQ9orx-KsSzSyUkay8lNqYB0=/276/original/alpha_d0_1.jpg"
|
|
29
|
+
},
|
|
30
|
+
"id": "49127bce-4d11-4704-921f-332f39ae09a1"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "TEXT",
|
|
34
|
+
"value": "<p>The D0 Alpha can typically react faster to spontaneous events in the market, so it can capture stock returns that realize faster in a shorter time horizon, such as earnings surprises, a company's new product announcement(s), or other macroeconomic news.</p><p>To go a bit more in-depth, an Alpha’s simulated PnL can decompose into two categories: the simulated trading PnL and the holding PnL. For a daily Alpha on BRAIN (the D1 and D0 Alpha), the PnL typically mainly comes from the holding PnL. The purpose of D0 Alphas is to try to capture more holding PnL with a longer holding period. Besides, there is a phenomenon in the financial market called \"Overnight Returns\" where the stock price changes in the after-hours session due to companies often releasing news/reports after market close, which is not captured by D1 Alphas.</p><p>Moreover, the D0 Alphas enter simulated trades before their D1 Alpha counterparts, so they're expected to have higher performance.</p>",
|
|
35
|
+
"id": "79577804-c4a3-4c28-ac86-554b4da48cfc"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "TEXT",
|
|
39
|
+
"value": "<br>",
|
|
40
|
+
"id": "f5927dcf-8102-46ab-92af-87f6aa698ec0"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "TEXT",
|
|
44
|
+
"value": "<p>[1] WorldQuant defines “Alphas” as mathematical models that seek to predict the future price movements of various financial instruments.</p>",
|
|
45
|
+
"id": "d9cbbd81-3a58-4a15-94d7-ceecbe9b8fe6"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"type": "IMAGE",
|
|
49
|
+
"value": {
|
|
50
|
+
"title": "alpha_d0_2.jpg",
|
|
51
|
+
"width": 958,
|
|
52
|
+
"height": 573,
|
|
53
|
+
"fileSize": 49809,
|
|
54
|
+
"url": "https://api.worldquantbrain.com/content/images/loqgEpdvVljRNNOUPLJbCSM3oSM=/277/original/alpha_d0_2.jpg"
|
|
55
|
+
},
|
|
56
|
+
"id": "c6bba523-450c-4922-9840-c71d05c984b7"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"type": "TEXT",
|
|
60
|
+
"value": "<p></p><p>Because of the nature of D0 Alphas, only a subset of the dataset has D0 data fields. Please check the <a href=\"https://platform.worldquantbrain.com/learn/data-and-operators/detailed-operator-descriptions\">dataset</a> page or <a href=\"https://platform.worldquantbrain.com/data?delay=0&instrumentType=EQUITY&region=USA&universe=TOP3000\">data explorer</a> to get such data. Currently, D0 Alphas are only available for the USA, EUR, and CHN regions.</p><p><b>Tips and Tricks for Researching D0 Alphas</b></p><p>Alphas that try to capture some financial event premium can work well in D0, like M&A events, earnings announcements, stock repurchases, etc. Try to utilize the trade_when operator to capture these Alphas.</p><p>For the regions with price limits like CHN, if a stock reaches the price limit, the Alpha shouldn't change the position for that particular stock.</p><p>Since the submission criteria for D0 Alphas are high, it's not easy to start researching D0 Alpha ideas at first. One way to approach this problem is to re-simulate all your D1 Alphas in D0 settings, try to reimplement the ideas in D0, or try to change the used data fields to equivalent data fields in D0.</p><p>Because the D0 Alphas enter trades near the end of the regular trading hours, to ensure that the Alphas' positions can be filled, you should build Alphas on stocks with a higher liquidity profile (i.e., using a liquid universe like TOP1000 or higher for the USA region).</p><p><b>Alpha Robustness</b></p><p>Due to D0 Alphas normally having higher turnover than D1 Alphas, to compensate for the increasing transaction costs, higher Sharpe and higher returns are required. But there are also other tests that you have to consider, such as the SubUniverse test and the RobustUniverse test for the CHN region. Good performance in the liquid universe means that the Alpha should have higher capacity.</p><p>Also, be sure to self-check your Alpha's performance on D1 (if the data field is also available in D1). A good D0 Alpha should also retain some performance in D1, but there may be a decrease in performance.</p>",
|
|
61
|
+
"id": "34691fe9-fbb2-49b3-85c8-470f5b347e5b"
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"sequence": 5,
|
|
65
|
+
"category": "Advanced Topics"
|
|
66
|
+
}
|