Блог им. elogunov |Считаем PnL по разным типам доходностей

Навеяно постом Быстрый бектестинг стратегии на python с pandas (smart-lab.ru)

Для начала попробуем сосчитать PnL разными способами на синтетическом примере, а потом рассмотрим способы векторизации расчёта PnL.

Исходные данные для синтетического примера:
1. Начальный капитал — $1000 (обозначим c[0]);
2. Траектория цены — $100, $110, $105 (обозначим p[0], p[1], p[2], соответственно);
3. Последовательность трейдов, для которой будем считать PnL: покупаем на всё в первый момент времени, переворачиваемся в шорт на всё во второй момент времени.
4. Торговля без комиссий, любым (в том числе и дробным) кол-вом инструмента.

Пробуем считать PnL разными способами

а) Расчёт PnL по приращениям цены r[i] = p[i] — p[i-1] и позициям:

q[0] = +c[0] / p[0] # размер длинной позиции в первый момент времени (+10)
r[1] = p[1] — p[0] # изменение цены от первого до второго момента времени (+10)
c[1] = c[0] + r[1] * q[0] # капитал во второй момент времени (1100)

q[1] = -c[1] / p[1] # размер короткой позиции во второй момент времени (-10)

( Читать дальше )

....все тэги
UPDONW