\maketitle

This is an improvement to the pairs algorithm. Basically , it involves taking any 15 day time period and checking whether the spread sigma < 0.4

> x <- security.db1[, c("UNIONBANK", "PNB")]
> gamma <- 0.241924965
> intercept <- 52.555924557
> spread.mean <- -0.422750321
> spread.sigma <- 11.647152896
> spread.level <- (x[, 1] - gamma * x[, 2] - intercept - spread.mean)/spread.sigma
> N <- 1e+05
> indices <- round(runif(N, 1, 215), 0)
> reverted <- 0
> i <- 1
> for (i in 1:N) {
+     start <- indices[i]
+     end <- indices[i] + 15
+     if (length(which(abs(spread.level[start:end]) < 0.4)) > 1)
+         reverted <- reverted + 1
+ }
> reverted/N
[1] 0.75921

This shows that there is 75 percentage probability that the spread will revert Another related work that I want to do is to develop a probit model

> nifty <- read.csv("nifty.csv", header = T)
> par(mfrow = c(2, 1))
> plot(spread.level, type = "l", col = "blue")
> plot(nifty[, 1], type = "l", col = "blue")

AnotherPairsIndicator-002.jpg

Basic idea If we take the example of UNIONBANK-PNB, if you put on a position, the spread can converge in its lifetime else not. Historically the spread would have diverged in a specific time slot or converged in a time slot. It could have some relationship with NIFTY movement. So, the fact that spread converges in a specific # of days could be a dependent variable Yt . Yt takes the value of 1 if the spread converges. Else it takes the value of 0.

Thus the dependent variable is Yt (1/0). Independent variable could be NIFTY movement . Havent thought through this properly