У меня есть файл журнала, в котором есть сводка сделок, файл журнала выглядит так
date time amt sell/buy type current_price
2020-08-03 01:20:06 1.5 0.00187130 SELL 0.00187030
2020-08-03 01:23:20 1.1 0.00187110 SELL 0.00187090
2020-08-03 01:26:36 1.8 0.00187190 SELL 0.00187070
2020-08-03 01:29:52 1.3 0.00187160 SELL 0.00186820
2020-08-03 01:36:24 1.4 0.00186580 BUY 0.00186780
2020-08-03 01:39:41 1.4 0.00186860 SELL 0.00186640
2020-08-03 01:42:54 1.3 0.00186710 BUY 0.00186880
2020-08-03 01:46:10 1.0 0.00186990 SELL 0.00186980
2020-08-03 01:49:25 1.2 0.00186840 BUY 0.00186850
моя цель - отобразить данные внутри этого файла журнала, значения, которые я хочу отобразить, - это date_time
отформатируйте цену sell/buy
и current_price
Я читаю строки из файла журнала с помощью readlines
и для каждой строки я добавляю date_time
и current_price
к date_time_lst
и current_prices_lst
затем для каждой сделки Я добавляю sell/buy
цену и date_time
в другие списки, это явно неэффективно и требует много времени, когда я получаю график с plt.show
, я получаю значения, которые не соответствуют порядку на графике.
как вы можете видеть, ось Y не в порядке возрастания или убывания, что я делаю неправильно и как я могу улучшить это
введите описание изображения здесь
date_time_lst = []
current_price_lst = []
BUYS_prices_lst = []
SELLS_prices_lst = []
BUYS_DATES =[]
SELLS_DATES = []
with open(file__name , "r") as r_handle:
log_lines = r_handle.readlines()
for line in log_lines:
line = line.split()
date_time_lst.append(str(line[0] + " " + line[1]))
current_price_lst.append(line[5])
if line[4] == "SELL":
## the amount of BNB multiplyed by the sell price returns the amount of bitcoin we get from the trade
amt = float(line[2])*float(line[3])
SELLS_prices_lst.append(line[3])
SELLS_DATES.append(str(line[0] + " " + line[1]))
## the amount above gets added to the qoute_balance (bitcoin_balance)
qoute_balance += amt
## the original BNB amount is subtracted from the base_balance (binance_balance)
base_balance -= float(line[2])
elif line[4] == "BUY":
amt_ = float(line[2])*float(line[3])
qoute_balance += amt_
base_balance -= float(line[2])
BUYS_prices_lst.append(line[3])
BUYS_DATES.append(str(line[0] + " " + line[1]))
plt.rcParams['axes.facecolor'] = 'grey'
plt.grid(color="black")
plt.scatter(date_time_lst , current_price_lst, color='green' , label='current_coin_prices')
plt.legend(loc='lower right')
plt.show()