熊猫大熊猫的替代品吗?

时间:2020-08-06 22:09:02

标签: python pandas

我正在构建一个交易机器人,该机器人查看价格的df并根据相对于边界的价格进行买卖,通过或传递。每笔交易都会使用所有可用的资金,因此另一个限制是您必须拥有银行中的股票才能执行销售,反之亦然。最后,我想在发生交易时将相关的交易详细信息添加到日志中。这很直观,但是有没有更有效的方法呢?特别是我要努力跟踪两家银行并在交易后更新它们,因此以后的交易仅在我们使用正确的面额时才发生(假设df按日期升序排序)。这是正常但缓慢的迭代版本的代码段。

stock_bank = 1000
usd_bank = 0
trade_log = pd.DataFrame()
prices = pd.DataFrame({'buy_price': [9, 11, 12, 13, 12],
                       'sell_price': [10, 10, 11, 12, 12],
                       'lower_bound': [10, 11, 11, 10, 9],
                       'upper_bound': [12, 13, 13, 12, 11]})

for (i, row) in prices.iterrows():
    # Sell stock if own stock and sell price above upper bound
    if row['sell_price'] > row['upper_bound'] and stock_bank != 0:
        usd_bank = stock_bank * (row['sell_price'])
        stock_bank = 0
        # trade_entry = (relevant trade details)
        # trade_log = trades.append(trade_entry)

    # Repeat for Buys
    # Buy stock if have USD and buy price below lower bound
    # etc

1 个答案:

答案 0 :(得分:0)

我建议使用$data = array_merge( $request->except(['_token','files','outcomes','requirements']), $images ); $id = auth()->user()->course()->create($data)->id; 函数,该函数通常非常快,尤其是在条件和操作不是很复杂的情况下。对于您的示例,它看起来像这样:

[numpy.where()][1]

在那之后,很容易直接将列的总和求和,然后检查是否有任何值大于0来将stock_bank设置为0。