jofaichow commited on
Commit
c4de53c
1 Parent(s): 9a42d26

added more stuff for MMC

Browse files
Files changed (1) hide show
  1. app/app.R +136 -19
app/app.R CHANGED
@@ -355,8 +355,7 @@ ui <- shinydashboardPlus::dashboardPage(
355
  "MCWNM: Maximum Correlation With Numerai Models staked at least 10 NMR",
356
  "APCWNM: Average Pairwise Correlation With Numerai Models staked at least 10 NMR",
357
 
358
-
359
- "Score Multipliers: 2.0 x MMCv2",
360
  "Score Multipliers: 0.5 x CORRv2",
361
  "Score Multipliers: 1.5 x CORRv2",
362
  "Score Multipliers: 2.0 x CORRv2",
@@ -418,7 +417,7 @@ ui <- shinydashboardPlus::dashboardPage(
418
  br()
419
 
420
  ),
421
-
422
 
423
  tabPanel("KPI (C&T)",
424
 
@@ -553,7 +552,7 @@ ui <- shinydashboardPlus::dashboardPage(
553
  - **1C0T**: 1xCORRv2 + 0xTC (Until the End of 2023)
554
  - **2C0T**: 2xCORRv2 + 0xTC (Until the End of 2023)
555
  - **2C1T**: 2xCORRv2 + 1xTC (Until the End of 2023)
556
- - **2MMC**: 2xMMCv2 (**New Payout Mode**) - See https://forum.numer.ai/t/changing-scoring-payouts-again-to-mmc-only/6794
557
 
558
 
559
  "),
@@ -603,6 +602,124 @@ ui <- shinydashboardPlus::dashboardPage(
603
  shinycssloaders::withSpinner(plotlyOutput("plot_payout_individual")),
604
 
605
  br()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
606
  )
607
 
608
  ) # end of tabsetPanel
@@ -686,7 +803,7 @@ ui <- shinydashboardPlus::dashboardPage(
686
  - #### **0.2.2** — Sped up chart rendering with `toWebGL()`
687
  - #### **0.2.3** — Added new `MMC` - Ref: https://forum.numer.ai/t/changing-scoring-payouts-again-to-mmc-only/6794/27
688
  - #### **0.2.4** — Added `MMC` to `Payout Sim`
689
- - #### **0.2.5** — Added more KPI charts and tables
690
  "),
691
 
692
  br(),
@@ -938,7 +1055,7 @@ server <- function(input, output) {
938
  d_payout[, payout_2C0T := (2*corrV2_final) * stake * pay_ftr]
939
  d_payout[, payout_2C1T := (2*corrV2_final + tc_final) * stake * pay_ftr]
940
  d_payout[, payout_1C3T := (corrV2_final + 3*tc_final) * stake * pay_ftr]
941
- d_payout[, payout_2MMC := (2*mmc) * stake * pay_ftr]
942
 
943
  # Summarise
944
  d_payout_smry <-
@@ -952,13 +1069,13 @@ server <- function(input, output) {
952
  sum_pay_2C0T = sum(payout_2C0T, na.rm = T),
953
  sum_pay_2C1T = sum(payout_2C1T, na.rm = T),
954
  sum_pay_1C3T = sum(payout_1C3T, na.rm = T),
955
- sum_pay_2MMC = sum(payout_2MMC, na.rm = T),
956
 
957
  shp_pay_1C0T = mean(payout_1C0T, na.rm = T) / sd(payout_1C0T, na.rm = T),
958
  shp_pay_2C0T = mean(payout_2C0T, na.rm = T) / sd(payout_2C0T, na.rm = T),
959
  shp_pay_2C1T = mean(payout_2C1T, na.rm = T) / sd(payout_2C1T, na.rm = T),
960
  shp_pay_1C3T = mean(payout_1C3T, na.rm = T) / sd(payout_1C3T, na.rm = T),
961
- shp_pay_2MMC = mean(payout_2MMC, na.rm = T) / sd(payout_2MMC, na.rm = T)
962
 
963
  ) |>
964
  as.data.table()
@@ -997,7 +1114,7 @@ server <- function(input, output) {
997
  d_payout[, payout_2C0T := (2*corrV2_final) * stake * pay_ftr]
998
  d_payout[, payout_2C1T := (2*corrV2_final + tc_final) * stake * pay_ftr]
999
  d_payout[, payout_1C3T := (corrV2_final + 3*tc_final) * stake * pay_ftr]
1000
- d_payout[, payout_2MMC := (2*mmc) * stake * pay_ftr]
1001
 
1002
  # Summarise
1003
  d_payout_smry <-
@@ -1009,13 +1126,13 @@ server <- function(input, output) {
1009
  sum_pay_2C0T = sum(payout_2C0T, na.rm = T),
1010
  sum_pay_2C1T = sum(payout_2C1T, na.rm = T),
1011
  sum_pay_1C3T = sum(payout_1C3T, na.rm = T),
1012
- sum_pay_2MMC = sum(payout_2MMC, na.rm = T),
1013
 
1014
  shp_pay_1C0T = mean(payout_1C0T, na.rm = T) / sd(payout_1C0T, na.rm = T),
1015
  shp_pay_2C0T = mean(payout_2C0T, na.rm = T) / sd(payout_2C0T, na.rm = T),
1016
  shp_pay_2C1T = mean(payout_2C1T, na.rm = T) / sd(payout_2C1T, na.rm = T),
1017
  shp_pay_1C3T = mean(payout_1C3T, na.rm = T) / sd(payout_1C3T, na.rm = T),
1018
- shp_pay_2MMC = mean(payout_2MMC, na.rm = T) / sd(payout_2MMC, na.rm = T)
1019
 
1020
  ) |>
1021
  as.data.table()
@@ -1086,7 +1203,7 @@ server <- function(input, output) {
1086
  if (input$kpi_choice == "APCWNM: Average Pairwise Correlation With Numerai Models staked at least 10 NMR") d_pref[, KPI := apcwnm]
1087
 
1088
  # Calculate Score Multiplies
1089
- if (input$kpi_choice == "Score Multipliers: 2.0 x MMCv2") d_pref[, KPI := 2.0 * mmc]
1090
  if (input$kpi_choice == "Score Multipliers: 0.5 x CORRv2") d_pref[, KPI := 0.5 * corrV2]
1091
  if (input$kpi_choice == "Score Multipliers: 1.5 x CORRv2") d_pref[, KPI := 1.5 * corrV2]
1092
  if (input$kpi_choice == "Score Multipliers: 2.0 x CORRv2") d_pref[, KPI := 2.0 * corrV2]
@@ -1576,7 +1693,7 @@ server <- function(input, output) {
1576
  if (input$kpi_choice == "MCWNM: Maximum Correlation With Numerai Models staked at least 10 NMR") y_label <- "MCWNM"
1577
  if (input$kpi_choice == "APCWNM: Average Pairwise Correlation With Numerai Models staked at least 10 NMR") y_label <- "APCWNM"
1578
 
1579
- if (input$kpi_choice == "Score Multipliers: 2.0 x MMCv2") y_label <- "2.0 x MMCv2"
1580
  if (input$kpi_choice == "Score Multipliers: 0.5 x CORRv2") y_label <- "0.5 x CORRv2"
1581
  if (input$kpi_choice == "Score Multipliers: 1.5 x CORRv2") y_label <- "1.5 x CORRv2"
1582
  if (input$kpi_choice == "Score Multipliers: 2.0 x CORRv2") y_label <- "2.0 x CORRv2"
@@ -1773,18 +1890,18 @@ server <- function(input, output) {
1773
 
1774
  # Reformat individual columns
1775
  formatRound(columns = c("sum_pay_1C0T", "sum_pay_2C0T", "sum_pay_2C1T", "sum_pay_1C3T",
1776
- "sum_pay_2MMC", "shp_pay_2MMC",
1777
  "shp_pay_1C0T", "shp_pay_2C0T", "shp_pay_2C1T", "shp_pay_1C3T"),
1778
  digits = 2) |>
1779
 
1780
  formatStyle(columns = c("sum_pay_1C0T", "sum_pay_2C0T", "sum_pay_2C1T", "sum_pay_1C3T",
1781
- "sum_pay_2MMC", "shp_pay_2MMC",
1782
  "shp_pay_1C0T", "shp_pay_2C0T", "shp_pay_2C1T", "shp_pay_1C3T"),
1783
  color = styleInterval(cuts = c(-1e-15, 1e-15),
1784
  values = c("#D24141", "#D1D1D1", "#00A800"))) |>
1785
 
1786
  formatStyle(columns = c("model",
1787
- "sum_pay_2MMC", "shp_pay_2MMC"
1788
  # "sum_pay_2C1T", "sum_pay_1C3T",
1789
  # "shp_pay_2C1T", "shp_pay_1C3T"
1790
  ), fontWeight = "bold")
@@ -1816,17 +1933,17 @@ server <- function(input, output) {
1816
 
1817
  # Reformat individual columns
1818
  formatRound(columns = c("sum_pay_1C0T", "sum_pay_2C0T", "sum_pay_2C1T", "sum_pay_1C3T",
1819
- "sum_pay_2MMC", "shp_pay_2MMC",
1820
  "shp_pay_1C0T", "shp_pay_2C0T", "shp_pay_2C1T", "shp_pay_1C3T"),
1821
  digits = 2) |>
1822
 
1823
  formatStyle(columns = c("sum_pay_1C0T", "sum_pay_2C0T", "sum_pay_2C1T", "sum_pay_1C3T",
1824
- "sum_pay_2MMC", "shp_pay_2MMC",
1825
  "shp_pay_1C0T", "shp_pay_2C0T", "shp_pay_2C1T", "shp_pay_1C3T"),
1826
  color = styleInterval(cuts = c(-1e-15, 1e-15),
1827
  values = c("#D24141", "#D1D1D1", "#00A800"))) |>
1828
 
1829
- formatStyle(columns = c("sum_pay_2MMC", "shp_pay_2MMC"),
1830
  fontWeight = "bold")
1831
 
1832
  })
 
355
  "MCWNM: Maximum Correlation With Numerai Models staked at least 10 NMR",
356
  "APCWNM: Average Pairwise Correlation With Numerai Models staked at least 10 NMR",
357
 
358
+ "Score Multipliers: 0.5 x CORRv2 + 2.0 x MMCv2",
 
359
  "Score Multipliers: 0.5 x CORRv2",
360
  "Score Multipliers: 1.5 x CORRv2",
361
  "Score Multipliers: 2.0 x CORRv2",
 
417
  br()
418
 
419
  ),
420
+
421
 
422
  tabPanel("KPI (C&T)",
423
 
 
552
  - **1C0T**: 1xCORRv2 + 0xTC (Until the End of 2023)
553
  - **2C0T**: 2xCORRv2 + 0xTC (Until the End of 2023)
554
  - **2C1T**: 2xCORRv2 + 1xTC (Until the End of 2023)
555
+ - **05C2M**: 0.5xCORRv2 + 2xMMCv2 (**New Payout Mode**)
556
 
557
 
558
  "),
 
602
  shinycssloaders::withSpinner(plotlyOutput("plot_payout_individual")),
603
 
604
  br()
605
+ ),
606
+
607
+
608
+ tabPanel("KPI (x~y)",
609
+
610
+ br(),
611
+
612
+ h3("**Coming Soon!**"),
613
+
614
+ # h3(strong(textOutput(outputId = "text_performance_models"))),
615
+
616
+ # h4(textOutput(outputId = "text_performance_models_note")),
617
+
618
+ br(),
619
+
620
+ # Controls ============================================================================
621
+
622
+ fluidRow(
623
+
624
+ column(6,
625
+ markdown("#### **X-Axis:**"),
626
+ pickerInput(
627
+ inputId = "kpi_xy_x",
628
+ choices = c("CORRv2: CORRelation with target cyrus_v4_20",
629
+ "MMCv2: The Latest and the Greatest MMC",
630
+ "TC: True Contribtuion to the hedge fund's returns",
631
+ "FNCv3: Feature Neutral Correlation with respect to the FNCv3 features",
632
+ "Percentile: MMCv2",
633
+ "Percentile: CORRv2",
634
+ "Percentile: TC",
635
+ "Percentile: FNCv3",
636
+ "CWMM: Correlation With the Meta Model",
637
+ "MCWNM: Maximum Correlation With Numerai Models staked at least 10 NMR",
638
+ "APCWNM: Average Pairwise Correlation With Numerai Models staked at least 10 NMR"),
639
+
640
+ multiple = FALSE,
641
+ width = "95%")
642
+ ),
643
+
644
+ column(6,
645
+ markdown("#### **Y-Axis:**"),
646
+ pickerInput(
647
+ inputId = "kpi_xy_y",
648
+ choices = c("MMCv2: The Latest and the Greatest MMC",
649
+ "CORRv2: CORRelation with target cyrus_v4_20",
650
+ "TC: True Contribtuion to the hedge fund's returns",
651
+ "FNCv3: Feature Neutral Correlation with respect to the FNCv3 features",
652
+ "Percentile: MMCv2",
653
+ "Percentile: CORRv2",
654
+ "Percentile: TC",
655
+ "Percentile: FNCv3",
656
+ "CWMM: Correlation With the Meta Model",
657
+ "MCWNM: Maximum Correlation With Numerai Models staked at least 10 NMR",
658
+ "APCWNM: Average Pairwise Correlation With Numerai Models staked at least 10 NMR"),
659
+
660
+ multiple = FALSE,
661
+ width = "95%")
662
+ ),
663
+
664
+ column(2,
665
+ markdown("#### **Control 1**"),
666
+ switchInput(
667
+ inputId = "kpi_xy_ctrl_1",
668
+ onLabel = "Yes",
669
+ offLabel = "No",
670
+ value = TRUE)
671
+ ),
672
+
673
+ column(2,
674
+ markdown("#### **Control 2**"),
675
+ switchInput(
676
+ inputId = "kpi_xy_ctrl_2",
677
+ onLabel = "Yes",
678
+ offLabel = "No",
679
+ value = FALSE)
680
+ ),
681
+
682
+ column(2,
683
+ markdown("#### **Control 3**"),
684
+ switchInput(
685
+ inputId = "kpi_xy_ctrl_3",
686
+ onLabel = "Yes",
687
+ offLabel = "No",
688
+ value = FALSE)
689
+ ),
690
+
691
+ column(2,
692
+ markdown("#### **Control 4**"),
693
+ switchInput(
694
+ inputId = "kpi_xy_ctrl_4",
695
+ onLabel = "Yes",
696
+ offLabel = "No",
697
+ value = FALSE)
698
+ ),
699
+
700
+ column(2,
701
+ markdown("#### **Control 5**"),
702
+ switchInput(
703
+ inputId = "kpi_xy_ctrl_5",
704
+ onLabel = "Yes",
705
+ offLabel = "No",
706
+ value = FALSE)
707
+ ),
708
+
709
+ column(2,
710
+ markdown("#### **Control 6**"),
711
+ switchInput(
712
+ inputId = "kpi_xy_ctrl_6",
713
+ onLabel = "Yes",
714
+ offLabel = "No",
715
+ value = FALSE)
716
+ )
717
+
718
+
719
+ ),
720
+
721
+ br()
722
+
723
  )
724
 
725
  ) # end of tabsetPanel
 
803
  - #### **0.2.2** — Sped up chart rendering with `toWebGL()`
804
  - #### **0.2.3** — Added new `MMC` - Ref: https://forum.numer.ai/t/changing-scoring-payouts-again-to-mmc-only/6794/27
805
  - #### **0.2.4** — Added `MMC` to `Payout Sim`
806
+ - #### **0.2.5** — Added more features related to MMC
807
  "),
808
 
809
  br(),
 
1055
  d_payout[, payout_2C0T := (2*corrV2_final) * stake * pay_ftr]
1056
  d_payout[, payout_2C1T := (2*corrV2_final + tc_final) * stake * pay_ftr]
1057
  d_payout[, payout_1C3T := (corrV2_final + 3*tc_final) * stake * pay_ftr]
1058
+ d_payout[, payout_05C2M := (0.5*corrV2_final + 2*mmc) * stake * pay_ftr]
1059
 
1060
  # Summarise
1061
  d_payout_smry <-
 
1069
  sum_pay_2C0T = sum(payout_2C0T, na.rm = T),
1070
  sum_pay_2C1T = sum(payout_2C1T, na.rm = T),
1071
  sum_pay_1C3T = sum(payout_1C3T, na.rm = T),
1072
+ sum_pay_05C2M = sum(payout_05C2M, na.rm = T),
1073
 
1074
  shp_pay_1C0T = mean(payout_1C0T, na.rm = T) / sd(payout_1C0T, na.rm = T),
1075
  shp_pay_2C0T = mean(payout_2C0T, na.rm = T) / sd(payout_2C0T, na.rm = T),
1076
  shp_pay_2C1T = mean(payout_2C1T, na.rm = T) / sd(payout_2C1T, na.rm = T),
1077
  shp_pay_1C3T = mean(payout_1C3T, na.rm = T) / sd(payout_1C3T, na.rm = T),
1078
+ shp_pay_05C2M = mean(payout_05C2M, na.rm = T) / sd(payout_05C2M, na.rm = T)
1079
 
1080
  ) |>
1081
  as.data.table()
 
1114
  d_payout[, payout_2C0T := (2*corrV2_final) * stake * pay_ftr]
1115
  d_payout[, payout_2C1T := (2*corrV2_final + tc_final) * stake * pay_ftr]
1116
  d_payout[, payout_1C3T := (corrV2_final + 3*tc_final) * stake * pay_ftr]
1117
+ d_payout[, payout_05C2M := (0.5*corrV2 + 2*mmc) * stake * pay_ftr]
1118
 
1119
  # Summarise
1120
  d_payout_smry <-
 
1126
  sum_pay_2C0T = sum(payout_2C0T, na.rm = T),
1127
  sum_pay_2C1T = sum(payout_2C1T, na.rm = T),
1128
  sum_pay_1C3T = sum(payout_1C3T, na.rm = T),
1129
+ sum_pay_05C2M = sum(payout_05C2M, na.rm = T),
1130
 
1131
  shp_pay_1C0T = mean(payout_1C0T, na.rm = T) / sd(payout_1C0T, na.rm = T),
1132
  shp_pay_2C0T = mean(payout_2C0T, na.rm = T) / sd(payout_2C0T, na.rm = T),
1133
  shp_pay_2C1T = mean(payout_2C1T, na.rm = T) / sd(payout_2C1T, na.rm = T),
1134
  shp_pay_1C3T = mean(payout_1C3T, na.rm = T) / sd(payout_1C3T, na.rm = T),
1135
+ shp_pay_05C2M = mean(payout_05C2M, na.rm = T) / sd(payout_05C2M, na.rm = T)
1136
 
1137
  ) |>
1138
  as.data.table()
 
1203
  if (input$kpi_choice == "APCWNM: Average Pairwise Correlation With Numerai Models staked at least 10 NMR") d_pref[, KPI := apcwnm]
1204
 
1205
  # Calculate Score Multiplies
1206
+ if (input$kpi_choice == "Score Multipliers: 0.5 x CORRv2 + 2.0 x MMCv2") d_pref[, KPI := 0.5 * corrV2 + 2.0 * mmc]
1207
  if (input$kpi_choice == "Score Multipliers: 0.5 x CORRv2") d_pref[, KPI := 0.5 * corrV2]
1208
  if (input$kpi_choice == "Score Multipliers: 1.5 x CORRv2") d_pref[, KPI := 1.5 * corrV2]
1209
  if (input$kpi_choice == "Score Multipliers: 2.0 x CORRv2") d_pref[, KPI := 2.0 * corrV2]
 
1693
  if (input$kpi_choice == "MCWNM: Maximum Correlation With Numerai Models staked at least 10 NMR") y_label <- "MCWNM"
1694
  if (input$kpi_choice == "APCWNM: Average Pairwise Correlation With Numerai Models staked at least 10 NMR") y_label <- "APCWNM"
1695
 
1696
+ if (input$kpi_choice == "Score Multipliers: 0.5 x CORRv2 + 2.0 x MMCv2") y_label <- "0.5 x CORRv2 + 2.0 x MMCv2"
1697
  if (input$kpi_choice == "Score Multipliers: 0.5 x CORRv2") y_label <- "0.5 x CORRv2"
1698
  if (input$kpi_choice == "Score Multipliers: 1.5 x CORRv2") y_label <- "1.5 x CORRv2"
1699
  if (input$kpi_choice == "Score Multipliers: 2.0 x CORRv2") y_label <- "2.0 x CORRv2"
 
1890
 
1891
  # Reformat individual columns
1892
  formatRound(columns = c("sum_pay_1C0T", "sum_pay_2C0T", "sum_pay_2C1T", "sum_pay_1C3T",
1893
+ "sum_pay_05C2M", "shp_pay_05C2M",
1894
  "shp_pay_1C0T", "shp_pay_2C0T", "shp_pay_2C1T", "shp_pay_1C3T"),
1895
  digits = 2) |>
1896
 
1897
  formatStyle(columns = c("sum_pay_1C0T", "sum_pay_2C0T", "sum_pay_2C1T", "sum_pay_1C3T",
1898
+ "sum_pay_05C2M", "shp_pay_05C2M",
1899
  "shp_pay_1C0T", "shp_pay_2C0T", "shp_pay_2C1T", "shp_pay_1C3T"),
1900
  color = styleInterval(cuts = c(-1e-15, 1e-15),
1901
  values = c("#D24141", "#D1D1D1", "#00A800"))) |>
1902
 
1903
  formatStyle(columns = c("model",
1904
+ "sum_pay_05C2M", "shp_pay_05C2M"
1905
  # "sum_pay_2C1T", "sum_pay_1C3T",
1906
  # "shp_pay_2C1T", "shp_pay_1C3T"
1907
  ), fontWeight = "bold")
 
1933
 
1934
  # Reformat individual columns
1935
  formatRound(columns = c("sum_pay_1C0T", "sum_pay_2C0T", "sum_pay_2C1T", "sum_pay_1C3T",
1936
+ "sum_pay_05C2M", "shp_pay_05C2M",
1937
  "shp_pay_1C0T", "shp_pay_2C0T", "shp_pay_2C1T", "shp_pay_1C3T"),
1938
  digits = 2) |>
1939
 
1940
  formatStyle(columns = c("sum_pay_1C0T", "sum_pay_2C0T", "sum_pay_2C1T", "sum_pay_1C3T",
1941
+ "sum_pay_05C2M", "shp_pay_05C2M",
1942
  "shp_pay_1C0T", "shp_pay_2C0T", "shp_pay_2C1T", "shp_pay_1C3T"),
1943
  color = styleInterval(cuts = c(-1e-15, 1e-15),
1944
  values = c("#D24141", "#D1D1D1", "#00A800"))) |>
1945
 
1946
+ formatStyle(columns = c("sum_pay_05C2M", "shp_pay_05C2M"),
1947
  fontWeight = "bold")
1948
 
1949
  })