Python plot - длина переданных значений равна x, индекс подразумевает y - PullRequest
0 голосов
/ 05 января 2020

Я пытаюсь построить несколько сделок на графике BT C. Я не могу отобразить свои входы на покупку и выход на продажу на графике BT C, потому что значения, переданные для оси x, отличаются? Если это проблема, я должен построить их оба против множества дней, которые я сделал? Я все еще учу Python, поэтому не уверен, как это сделать. Я много чего перепробовал, но не знаю, произошла ли ошибка в формате даты? или длина массива и как я могу заставить массивы использовать одни и те же даты. Я также попытался нанести графики buySide и SellSide на один и тот же график, но он покажет мне два графика с двумя разными осями x.

Вот мой код:

with open('trades.csv', mode='r') as csv_file:
 reader = csv.DictReader(csv_file)
 buySide = []
 date = []

sellSide = []
date2 = []

for row in reader:

 if row['market'] == 'BTC-PERP' and row['side'] == 'buy':
  buySide.append(float(row['price']))
  date.append(row['time'].split("T")[0])
 elif row['market'] == 'BTC-PERP' and row['side'] == 'sell':
  sellSide.append(float(row['price']))
  date2.append(row['time'].split("T")[0])


green = plt.scatter(date, buySide, c = 'green')

red = plt.scatter(date2, sellSide, c="red")

pair = 'BTC-PERP'

# Load OHLCV (open/high/low/close/volume) data with 4H resolution

 ohlcv = ftx.fetch_ohlcv (pair, '1h')


# Get closing prices for each day

prices = [x[4] for x in ohlcv]


# Convert Unix timestamps to Python dates
dates = [datetime.fromtimestamp (x[0] // 1000) for x in ohlcv]


# Prepare a Pandas series object
data = pd.Series (prices, index=dates)
# plot buy side on btc chart
data2 = pd.Series(buySide, index=dates) #error here


# Draw line chart
data.plot()
data2.plot()

и ошибка:

raise ValueError(
    301                             "Length of passed values is {val}, "
--> 302                             "index implies {ind}".format(val=len(data), ind=len(index))
    303                         )
    304                 except TypeError:

ValueError: Length of passed values is 24, index implies 1500
...