Hot answers tagged

4

Surely, there is; search for aggregational gaussianity in Google Scholar or ScienceDirect. In fact, 5 minutes returns are leptokurtic and fat-tailed; then as you increase timeframe, returns become more and more normal. Yearly data is almost normal, if you have enough points.


4

No there is no way since the calculated internal rate of return $r$ is by definition defined as: $0 = \sum_{i=0}^{I} \frac{C_{i}}{(1+r)^{i}} $ You need to know the entire cash flow distribution and its timing if you want to compute the Pooled IRR. One advantage of IRR is that it takes the irregular timings of cash flows into account, logically its ...


4

Your second formula regarding the sum of day-to-day returns collapses as follows: $$ \begin{align} R_{weekly,2} &= \text{log}(Price_{Mon}) - \text{log}(Price_{Sun}) \\ &+ \text{log}(Price_{Tue}) - \text{log}(Price_{Mon}) \\ &+ \dotsc \\ &+ \text{log}(Price_{Fri}) - \text{log}(Price_{Thu}) \\ &= \text{log}(Price_{Fri}) - ...


3

My main reference will be "Dan Xu, Christian Beck - Transition from lognormal to chi-square superstatistics for financial time series" Non-equilibrium statistical mechanics (more specifically, superstatistics) gives some ideas of explaining the relation between time frame and its distribution: "...to regard the time series as a superposition of local ...


3

The dummy function is always used to construct non-linear models. In your model, it is interpreted that the announcements have an non-linear effect on the return. So it is incorrect to say it is a linear regression problem, it should be called as a non-linear regression problem. In total, it means the announcements have asymmetric effects in explaining the ...


3

SMB is controlling for small stocks. Small and thinly traded are not equivalent. For instance, for most of its history, Berkshire Hathaway was a large stock, but thinly traded (b/c of its high price). There are a number of ways to handle liquidity risk. If you're looking to supplement a Fama-French regression, Pastor and Stambaugh (2003) uses order flow ...


3

Exact solution: Assume we agree that for $y_1:=IRR(CF1)$, $y_2:=IRR(CF2)$, $y:=IRR(CF1+CF2)$, the following equations hold by definition: $$-1000+\frac{100}{1+y_1}+\frac{100}{(1+y_1)^2}+\frac{1100}{(1+y_1)^3}=0$$ $$-200+\frac{20}{1+y_2}+\frac{30}{(1+y_2)^2}+\frac{1}{(1+y_2)^3}=0$$ $$-1200+\frac{120}{1+y}+\frac{130}{(1+y)^2}+\frac{1001}{(1+y)^3}=0$$ These ...


3

Does this mean that correlation is 40%? No. Very simple example (in R). Let A and B be stocks with returns stockA and stockB. Consider following example: stockA = c(0.05, 0.04, 0.05, 0.06) stockB = c(0.01, 0.02, 0.03, 0.02) mean(stockA) mean(stockB) cor(stockA, stockB) stockA = c(0.04, 0.05, 0.05, 0.06) stockB = c(0.01, 0.02, 0.02, 0.03) mean(stockA) ...


2

You are doing it right. The differences are rounding issues and can be safely ignored for any practical purpose.


2

In practice, for heavily traded assets (above 60% quantile of average daily dollar volume), individual asset return is pretty scalable across different time frame by a factor of $\sqrt{T}$. However, for covariance among different assets, moving between different time frame is not linearly scalable (although it should be in math). This is known as "Epps ...


2

The best way to answer the question is to look at the data. For example, on H&M in April 2000: Close Price Div 31/03 240 13/04 236 14/04 225 1.35 28/04 238 ThomsonReuters, Bloomberg and Factset do the following calculation for the return (+/- rounding): r = 236/240 * (225 + 1.35)/236 * 238/225 - 1 = -0.24% ...


2

When position = 1, then you are long the S&P ETF. When position is -1, your portfolio consist of a short position of -1 S&P ETF. You will therefore have a vector like $Pos = (1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,-1, \ldots)$, that will give you the evolution of your portfolio. Your returns are then the daily returns on the S&P multiplied by your ...


2

Yes, that can be really sophisticated even using such nice tools as pandas. But the basic idea is to find position enters & exits to derive cashflow. Here is my code to derive all that stuff from generated signals (in my backtester signals are fractions of 2 stocks in portfolio for each moment). I hope I've found all bugs here, but no warranties. ...


2

The correct formula is to compute multi period gross returns as products of single period gross returns. Conceptually it is equivalent to calculating the return on a self-financing portfolio initially made of 1 unit of stock, with each cash dividend reinvested in more stocks at the ex-dividend price.


2

Apply your trading strategy to history. Convert account equity to USD by applying historical USD/JPY rates. Calculate VAR/returns as usual. Remember, VAR calculated in such a way will underestimate the impact of extreme events: i.e. 95% VAR will return you minimum of what you can lose on 5% trading days.


2

Is this for one firm only? Is there positive and negative announcements (ie do the abnormal returns differ in sign)? As per Binder (1998): $$R_{it}=\alpha _{i} + \beta _{i}R_{mt} + \gamma _{i}D_{i} + u_{it} $$ where the coefficient $\gamma _{i}$ is the abnormal return for security $i$ during period $t$. If the events tend to affect the security prices both ...


2

To answer you correctly we'd need to see the exact inputs of your regression... and I doubt you can mix easily linear and binary variables like that. If the market return is 1% at time $t$ do you have $R_{m,t} = 0.01$ or $R_{m,t} = 1$. Same question for $R_t$ Assuming both are using the "0.01" convention, then a move of $1\% = 0.01$ results in a move of ...


2

This is how people usually approach calculating SR with logreturns: library(quantmod) getSymbols('DJIA', src='yahoo', from = '2009-01-01') price <- Cl(DJIA) log_ret <- log(price/lag(price,1)) mean_log_ret <- mean(log_ret, na.rm=T) sd_log_ret <- sd(log_ret, na.rm=T) rf <- 0.0025 # benchmark SR <- (252 * mean_log_ret - ...


2

Another way to skin cat: # risk-free = 0 require(quantmod) require( PerformanceAnalytics) getSymbols('DJIA', src='yahoo', from = '2009-01-01', to ='2014-12-31') price <- Cl(DJIA) simple.ret <- price/lag(price)-1 table.AnnualizedReturns(simple.ret,Rf=0)[3,] # [1] 0.7267 log.ret <- na.omit(ROC(price)) SD <- sd(log.ret)*sqrt(252) R ...


2

Your opinion is correct. There is simply more information about risk-reward encoded in the Sharpe ratio than cumulative returns. The other thing that's important to know is that whatever ratio you choose is simply a social construct or conventional benchmark that people use to compare between each other. The ratio is only useful insofar as other people are ...


2

As far as your second model concerned: Abnormal returns for good news is $\beta_4$ The t-value of 3 tells it is significantly different from 0 The model does not account for effect of bad news so the effect of bad news will mostly be found in spikes in residuals around time of bad news releases. $\beta_0$ is return when all other factors in the model ...


2

Computing returns is one of the first things you learn when you start studying finance but I believe it's one the trickiest one once you get to complicated cases. The source you mentioned seems actually very good to me and it already takes into account different approaches and different subtleties like dividend payment. But this is in fact only the top of ...


2

First I thought about voting to close this question as it deals with Matlab synthax a lot. I ignore the Matlab stuff. You have 5-minutes data. So an estmator of volatility over any sample of size $N$ (e.g. 100) will be an estimator of the vol of your 5-min returns. Usually volatility is quotes as "per annum" or "pa". This means that using the square root of ...


2

Each of these can be used, but each has serious drawbacks. No. 1 is inaccurate unless you use $N>>10$ years of data. But decades of data may not be available or may no longer be relevant to today's economy. No. 2 is good except that the CAPM has been rejected by empirical tests. More advanced models from Asset Pricing Theory may be helpful (FF3, FF5, ...


1

It is the same. With enough data, you could not reject the null γ1=β2. You could test that with simulation. See this with R: ## set.seed(12456) ns=500 t=1:ns D[]=0 D[t>.1*ns&t<.33*ns]=1 rm=rnorm(ns,.01,1.5) ri=0.01+1.2*rm+.15*D+rnorm(ns,0,.5) plot(ri~rm,col=D+2) #Model 1 summary(lm(ri~rm+D)) #Model 2 (m1=lm(ri~rm)) res=resid(m1) ...


1

In Python, simple geometric returns: import numpy as np import pandas as pd sp500 = pd.io.data.DataReader('^GSPC', 'yahoo')['Close'] simple_ret = sp500.pct_change() (1+simple_ret).cumprod()[-1] -1 0.74751768460019963 Log-returns: log_ret = np.log(1+simple_ret) np.exp(log_ret.cumsum()[-1]) -1 0.74751768460020074 In ...


1

When doing series like this in Python, I usually just add 1 to each return, then multiply across these sums for cumulative returns. Such as, if my returns over three days were -5.2%, 2.1% & 4.8%, then the values I would store would be: 1 + (-0.052) = 0.948 1 + (0.021) = 1.021 1 + (0.048) = 1.048 Then, to calculate my cumulative returns, I ...


1

1) I'm going from memory here so someone may want to confirm that I'm thinking about this correctly - but the two models will end up with the same results and significance levels - in the first model, the intercept acts as the reference day, such that the average effect of $D_d=\beta_0+\beta_d$. In the second model you should get the same effect, however, it ...


1

There's no industry standard for calculating returns on derivative contracts. The reason is that derivative contract assets are different from what I'll call real assets. Examples of real assets are an ounce of gold, or an equity. Derivatives require you to invest, or allocate some amount of cash (i.e. margin), to accommodate losses. But this allocation is ...


1

$\sqrt{12}$ annualizes monthly deviations. But I don't understand why you measure tracking error with stdev. It should be $$ ATE = \sqrt{\frac{12}{36}\sum_{i=1}^{36}(r_{b,i}-r_{t,i})^2}$$ where $r_{b,i}$ is benchmark return for month $i$ and $r_{t,i}$ is tracking portfolio return for same period. So you shouldn't substract average error inside square.



Only top voted, non community-wiki answers of a minimum length are eligible