【问题标题】:ValueError: Length of passed values is 7, index implies 0ValueError:传递值的长度为 7,索引意味着 0
【发布时间】:2019-02-18 20:28:29
【问题描述】:

我正在尝试使用 ccxt 从 bitmex 获取 1 分钟的开盘价、最高价、最低价、收盘价和成交量值。一切似乎都很好,但我不知道如何解决这个错误。我知道索引是 7,因为我要进入数据框的 OHLCcolumns 中有 7 个值。我不知道为什么它反而暗示有 0。非常感谢这让我整天头疼:(

# noinspection PyUnresolvedReferences
from datetime import datetime
# noinspection PyUnresolvedReferences
import time
# noinspection PyUnresolvedReferences
import ccxt
# noinspection PyUnresolvedReferences
import numpy as np
import pandas as pd
# noinspection PyUnresolvedReferences
from IPython.display import display, clear_output


OHLCVcolumns = ['date', 'timestamp', 'open', 'high', 'low', 'close', 'volume']

dfOHLCV = pd.DataFrame(index=[], columns=OHLCVcolumns)

bitmex = ccxt.bitmex()


def fetch_current(x):
    while True:
        if datetime.now().second == x:
            break
        time.sleep(0.5)


def fetch_mex():
    listOHLCV = bitmex.fetch_ohlcv('BTC/USD',
                                   timeframe='1m',
                                   limit=5,
                                   params={'reverse': True})

    lst = list(listOHLCV[1])

    lst.insert(0, datetime.fromtimestamp((lst[0]) / (1000 + 60 * 60 * 9 - 60)).strftime("%Y/%d/%m, %H: %M:"))

    series = pd.Series(lst, index=dfOHLCV)

    return listOHLCV, series


while True:
    fetch_current(1)

    listOHLCV, series = fetch_mex()

    dfOHLCV = dfOHLCV.append(series, ignore_index=True)


clear_output(wait=True)
display(listOHLCV)
display(dfOHLCV)

fetch_current(55)

【问题讨论】:

    标签: python python-3.x algorithmic-trading ccxt


    【解决方案1】:

    不知道你在哪里得到错误,是在这里吗?

    series = pd.Series(lst, index=dfOHLCV)
    

    如果是这样,您可以尝试:

    series = pd.Series(lst, index=OHLCVcolumns)
    

    因为当您运行它时,索引正在引用空数据框 dfOHLCV。

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 2020-11-09
      • 2019-07-26
      • 1970-01-01
      • 2017-03-26
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      相关资源
      最近更新 更多