painratio(): number
Pain Ratio.
A risk-adjusted measure with free risk and Pain index. Pain Ratio = (Portfolio Return - RiskFree) / Pain Index
It measures how much return is earned for each unit of pain (drawdown) experienced.
Single array of returns
Single array of returns
import { assertEquals } from "jsr:@std/assert"; var x = [0.003,0.026,0.015,-0.009,0.014,0.024,0.015,0.066,-0.014,0.039]; assertEquals(painratio(x,0,12), 101.04495520047377);
Multiple arrays
Multiple arrays
import { assertEquals } from "jsr:@std/assert"; var x = [0.003,0.026,0.015,-0.009,0.014,0.024,0.015,0.066,-0.014,0.039]; var y = [-0.005,0.081,0.04,-0.037,-0.061,0.058,-0.049,-0.021,0.062,0.058]; assertEquals(painratio(x,0,12), 101.04495520047377); assertEquals(painratio(y,0,12), 3.235687223114222);
x: array
asset/portfolio returns
frequency of data. 1: yearly, 4: quarterly, 12: monthly, 52: weekly, 252: daily (def: 252)
painratio(): array | matrix
Pain Ratio.
A risk-adjusted measure with free risk and Pain index. Pain Ratio = (Portfolio Return - RiskFree) / Pain Index
It measures how much return is earned for each unit of pain (drawdown) experienced.
Single array of returns
Single array of returns
import { assertEquals } from "jsr:@std/assert"; var x = [0.003,0.026,0.015,-0.009,0.014,0.024,0.015,0.066,-0.014,0.039]; assertEquals(painratio(x,0,12), 101.04495520047377);
Multiple arrays
Multiple arrays
import { assertEquals } from "jsr:@std/assert"; var x = [0.003,0.026,0.015,-0.009,0.014,0.024,0.015,0.066,-0.014,0.039]; var y = [-0.005,0.081,0.04,-0.037,-0.061,0.058,-0.049,-0.021,0.062,0.058]; assertEquals(painratio(x,0,12), 101.04495520047377); assertEquals(painratio(y,0,12), 3.235687223114222);
x: matrix
asset/portfolio returns
frequency of data. 1: yearly, 4: quarterly, 12: monthly, 52: weekly, 252: daily (def: 252)