aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--R/curve_trades.R59
1 files changed, 59 insertions, 0 deletions
diff --git a/R/curve_trades.R b/R/curve_trades.R
new file mode 100644
index 00000000..179ad673
--- /dev/null
+++ b/R/curve_trades.R
@@ -0,0 +1,59 @@
+library(dplyr)
+library(tidyr)
+library(ggplot2)
+
+index.quotes <- tbl(src_postgres("serenitasdb", "debian", 5432, "serenitas_user"), "index_quotes")
+
+##ig26
+ig26 <- index.quotes %>%
+ filter(series == 26, index == 'IG') %>%
+ select(date, tenor, closeprice, modelprice, theta) %>%
+ arrange(desc(date))
+
+ig26.close <- ig26 %>%
+ select(date, tenor, closeprice) %>%
+ collect() %>%
+ spread(tenor, closeprice)
+
+ig26.close <- ig26.close %>%
+ mutate(package = 3*`5yr`-2*`3yr`-`10yr`,
+ pnl = c(0, diff(package)),
+ cumpnl = cumsum(pnl))
+
+ig26.close %>%
+ ggplot(aes(x=date)) + geom_line(aes(y=pnl))
+
+ig26.close %>%
+ ggplot(aes(x=date)) + geom_line(aes(y=cumpnl))
+
+##ig25
+ig25 <- index.quotes %>%
+ filter(series == 25, index == 'IG', tenor %in% c("3yr", "5yr", "10yr")) %>%
+ select(date, tenor, closeprice, modelprice, theta) %>%
+ arrange(desc(date))
+
+ig25.close <- ig25 %>%
+ select(date, tenor, closeprice) %>%
+ collect() %>%
+ spread(tenor, closeprice)
+
+ig25.theta <- ig25 %>%
+ select(date, tenor, theta) %>%
+ collect() %>%
+ spread(tenor, theta) %>%
+ mutate(theta = 3*`5yr`-2*`3yr`-`10yr`) %>%
+ select(date, theta)
+
+ig25.close <- ig25.close %>%
+ mutate(package = 3*`5yr`-2*`3yr`-`10yr`,
+ r = (package-lag(package))/lag(package)) %>%
+ select(date, r) %>% left_join(ig25.theta)
+
+ig25.theta <- ig25.theta %>%
+ mutate(package = 3*`5yr`-2*`3yr`-`10yr`)
+
+ig25.close %>%
+ ggplot(aes(x=date)) + geom_line(aes(y=package-first(package)))
+
+ig25.close %>%
+ ggplot(aes(x=date)) + geom_line(aes(y=cumpnl))