Я хочу рассчитать прибыль/просадку каждого столбца A:C в кадре данных ниже. Заголовок от A до C можно рассматривать как символ биржевого тикера. Каждую строку можно считать почасовой ценой закрытия. Цена, дата и час могут быть объединены, чтобы сформировать временную метку для этого временного ряда данных.
Я пытался использовать пакеты fTrading
и PerformanceAnalytics
для расчета максимальной просадки, но продолжал получать ошибки. Меня не волнует, когда происходит максимальная просадка. Мне просто нужна сумма максимальной просадки, чтобы я мог использовать ее для расчета соотношения прибыль/просадка (прибыль, деленная на максимальную просадку).
Данные:
hourlyclose <- data.frame(pricedate = as.Date('2019-12-18'), hour = c(1,2,3,4,5), A = c(3,5,6,2,4), B = c(1,9,7,11,4), C = c(0,2,5,4,9))
Мне нужен вывод второго data.frame со столбцом для каждого символа акции, коэффициента просадки прибыли и просто прибыли (которая является последней строкой минус первая строка в моем примере, почасовом закрытии data.frame).
Результирующий data.frame должен выглядеть так:
Stock pdd profit
A 0.25 1
B 0.43 3
C 9.0 9
Я бы предпочел использовать tidyverse и любой из этих финансовых пакетов для операций как можно чаще.
Определение просадки: Просадка — это мера того, насколько цена падает, прежде чем достигнет или превысит ранее высокую цену.
Максимальные просадки для каждого столбца:
Для «А» максимальная просадка равна 4, потому что А был на максимуме 6, а затем упал до 2.
Для "B" есть две просадки, но только одна максимальная просадка. Цена акции снижается с 9 до 7, что соответствует просадке 2. Но акция достигает нового максимума в следующем ряду до 11, но затем снижается до 4, что соответствует просадке 7. Таким образом, максимальная просадка равна 7. для "Б".
Для «C» цена акции уменьшилась с 5 до 4 при максимальной просадке в 1.