Расчет балансового объема акций (OBV) в питоне - PullRequest
0 голосов
/ 05 октября 2018

Я делаю свой первый проект на Python.У меня есть пандас dataframe под названием df с двумя столбцами «закрыть» и «объем».Я хочу рассчитать / получить столбец OBV на основе первых двух столбцов.Формула приведена ниже;

Если закрытие выше предыдущего закрытия, то: Текущий OBC = Предыдущий OBC + Текущий объем

Если цена закрытия ниже предыдущей цены закрытия, то: Текущий OBV= Предыдущий OBV - Текущий объем

Если цены закрытия равны предыдущей цене закрытия, то: Текущий OBV = Предыдущий OBV (без изменений)

Объем закрытия OBC 30 2500 nan 32 3000 5500 25 2700 280035 4000 6800 20 1000 5800

Я использую этот код:

for i in df.close[1:]:
    if i > df.close.shift(-1):
        df["OBC"] = df.volume + df.OBC.shift(-1) 
    elif i < df.close.shift(-1):
        df["OBC"] = df.OBC.shift(-1) - df.volume
    else:
        df["OBC"] = df.OBC

, и я получаю эту ошибку: ValueError: Истинное значение Series является неоднозначным.Используйте a.empty, a.bool (), a.item (), a.any () или a.all ().

Я смотрел на этот вопрос, но не получил никакой помощи. Значение Истины Серии неоднозначно.Используйте a.empty, a.bool (), a.item (), a.any () или a.all ()

Помимо этой ошибки, я чувствую, что код может столкнуться с проблемами вРасчет правильного OBV.Любая помощь будет иметь большое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...