gs-quant icon indicating copy to clipboard operation
gs-quant copied to clipboard

Sharpe ratio and information ratio

Open andrewphillipsn opened this issue 6 years ago • 4 comments

Describe the problem. Provide an implementation for sharpe ratio and information ratio calculations in gs_quant.

Describe the solution you'd like Information ratio should calculate the rolling return per unit volatility of a series versus a benchmark series. Sharpe ratio calculation should compute rolling return per unit volatility of a series versus risk free rate for currency of the target series (i.e excess return). Both of these measures should calculate excess return daily with correct holiday / interpolation handling

Are you willing to contribute Yes

Additional context Needs full regtesting. Identify correct data sources for risk free rates

andrewphillipsn avatar May 10 '19 03:05 andrewphillipsn

Proposed signatures sharpe_ratio(prices: Series, rate: Union[Asset, Number], *, day_count_convention) -> Series information_ratio(prices: Series, benchmark[Index], *, day_count_convention) -> Series excess_return(prices: Series, benchmark_or_rate: Union[Asset, Number], *, day_count_convention) -> Series

stephen-183 avatar Jan 23 '20 20:01 stephen-183

@stephen-183 benchmark can be non-index, so I would use Asset

andrewphillipsn avatar Jan 23 '20 20:01 andrewphillipsn

@stephen-183 or a list of valid types (e.g. Index, Stock, etc)

andrewphillipsn avatar Jan 23 '20 20:01 andrewphillipsn

Makes sense; I'll use Asset to be concise. information_ratio(prices: Series, benchmark[Asset], *, day_count_convention) -> Series

stephen-183 avatar Jan 23 '20 20:01 stephen-183