为了将其他数据帧与常量值相加/相减/比较,如何在 Pandas 中创建“常量数据帧”?

问题描述

我正在与 pybacktest 合作,尝试创建我自己的 BackTester,它不仅支持“买入”/“卖出”,还支持“保持”(中间立场 - 什么都不做)。

ohlc = pybacktest.load_from_yahoo('AAPL',start=2000)   # Load a pandas dataframe
ohlc.tail()

ms = ohlc.C.rolling(short_ma).mean()
ml = ohlc.C.rolling(long_ma).mean()

eps = 0.001

up = (ms > ml + eps) & (ms.shift() < ml.shift())      # ma cross up
stay = (ml - eps <= ms <= ml + eps)
down = (ms < ml - eps) & (ms.shift() > ml.shift())    # ma cross down

代码的最后一部分是我想要做的。 pybacktest 教程中存在的代码是:

buy = cover = (ms > ml) & (ms.shift() < ml.shift())  # ma cross up
sell = short = (ms < ml) & (ms.shift() > ml.shift())  # ma cross down

我正在将买入/卖出更改为向上/向下以更接近地模拟我正在交易的工具。并且此乐器没有封面/简称。所以我创建了自己的类并将 Backtest代码复制到其中,并开始编辑。但这与 Pandas 数据框有关。

我得到的错误与我刚刚使用 python 浮点并尝试从数据帧中添加/减去它的事实有关:

WingWare IDE screenshot

如果你能简单地做到这一点就好了(我会那样编码熊猫),但你不能。所以我的问题很简单,可能很容易回答。 Pandas 数据框通常包含看起来很复杂的数据。我想要的是相反的……我想要的只是 ohlc 中每个带时间戳的行的常量值!

谢谢。

解决方法

错误在于没有明确处理 a

只需将其转换为:

PNG.WriteAsync

使用和逻辑。所以pandas确实用常量和转换来处理+/-/*!太棒了!