aboutsummaryrefslogtreecommitdiffstats
path: root/R/curve_trades.R
blob: ceaa61b95d62ff45e842783ce051c74e8e96a804 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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) %>%
    mutate(package = 3*`5yr`-2*`3yr`-`10yr`,
           pnl = c(0, diff(package)),
           cumpnl = cumsum(pnl))

ig26.theta <- ig26 %>%
    select(date, tenor, theta) %>%
    collect() %>%
    spread(tenor, theta) %>%
    mutate(package = 3*`5yr`-2*`3yr`-`10yr`)

ig26.theta %>%
    ggplot(aes(date, package)) + geom_line()

ig26.close %>%
    ggplot(aes(date, pnl)) + geom_line()

ig26.close %>%
    ggplot(aes(date, cumpnl)) + geom_line()

##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(package = 3*`5yr`-2*`3yr`-`10yr`)

ig25.close <- ig25.close %>%
    mutate(package = 3*`5yr`-2*`3yr`-`10yr`,
           pnl = package-lag(package),
           cumpnl = package-package[1],
           r = pnl/lag(package))

ig25.theta %>% ggplot(aes(date, package)) + geom_line()

ig25.close %>%
    ggplot(aes(date, cumpnl)) + geom_line()