def loadDataFcn(self): self.fname, self.__var__ = QFileDialog.getOpenFileName(self, 'Open file', '{}'.format(curDir), "CSV Files (*.csv)") self.f = rc(self.fname, delimiter = ',') self.runTime = self.f.iloc[:, 0].values self.sens1 = self.f.iloc[:, 1].values self.sens2 = self.f.iloc[:, 2].values self.sens3 = self.f.iloc[:, 3].values # self.sens4 = self.f.iloc[:, 0].values self.tempVal = self.f.iloc[:, 4].values self.pressVal = self.f.iloc[:, 5].values self.humVal = self.f.iloc[:, 6].values self.oxVal = self.f.iloc[:, 7].values self.p1 = self.graph.plot(self.runTime, self.sens1, pen='r', name='{}'.format(s1n)) self.p2 = self.graph.plot(self.runTime, self.sens2, pen='g', name='{}'.format(s2n)) self.p3 = self.graph.plot(self.runTime, self.sens3, pen='b', name='{}'.format(s3n)) # self.graph.plot(self.runTime, self.sens4, pen='k', name='{}'.format(s4n)) self.graph.setYRange(0, 5) self.graph.setXRange(0, self.totTime) self.tempVal_last = mean(self.tempVal) self.pressVal_last = mean(self.pressVal) self.humVal_last = mean(self.humVal) self.oxVal_last = mean(self.oxVal) self.vecL.setText('Temp: {:d}℃ \n\nHumidity: {:d}% \n\nPressure: {:d}kPa \n\nOxygen: {:d}%'.format(int(self.tempVal_last), int(self.humVal_last), int(self.pressVal_last), int(self.oxVal_last)))
def loadData(self): fname,something = QFileDialog.getOpenFileName(self, 'Open file','{}'.format(curDir),"CSV Files (*.csv)") print(fname) f = rc(fname,delimiter=',',) global p3Time global p3sens1 global p3sens2 global p3sens3 global p3sens4 global p3temp global p3hum global p3press global p3ox p3Time = f.iloc[:,0].values p3sens1 = f.iloc[:,1].values p3sens2 = f.iloc[:,2].values p3sens3 = f.iloc[:,3].values p3sens4 = f.iloc[:,4].values p3temp = f.iloc[:,5].values p3hum = f.iloc[:,6].values p3press = f.iloc[:,7].values p3ox = f.iloc[:,8].values p3Graph.addLegend(offset=(0,10)) p3sens1plot = p3Graph.plot(p3Time,p3sens1,pen='r',name='{}'.format(sensor1name)) p3sens2plot = p3Graph.plot(p3Time,p3sens2,pen='g',name='{}'.format(sensor2name)) p3sens3plot = p3Graph.plot(p3Time,p3sens3,pen='b',name='{}'.format(sensor3name)) p3sens4plot = p3Graph.plot(p3Time,p3sens4,pen='k',name='{}'.format(sensor4name)) p3temp = mean(p3temp) p3hum = mean(p3hum) p3press = mean(p3press) p3ox = mean(p3ox) p3vecLabel.setText("Temp: {}℃ \n\nHumidity: {}% \n\nPressure: {}kPa \n\nOxygen: {}%".format(int(p3temp),int(p3hum),int(p3press),int(p3ox))) p3Graph.setYRange(0,5) p3Graph.setXRange(0,50)
def x(csv, column): listX = [float(x) for x in rc(csv)[column].to_list()] listXMean, listXMedian, listXMode, listXStd = sts.mean(listX), sts.median( listX), sts.mode(listX), sts.stdev(listX) x1s, x1e = listXMean - listXStd, listXMean + listXStd x2s, x2e = listXMean - (2 * listXStd), listXMean + (2 * listXStd) x3s, x3e = listXMean - (3 * listXStd), listXMean + (3 * listXStd) y1 = [ x for x in listX if x > listXMean - listXStd and x < listXMean + listXStd ] y2 = [ x for x in listX if x > listXMean - (2 * listXStd) and x < listXMean + (2 * listXStd) ] y3 = [ x for x in listX if x > listXMean - (3 * listXStd) and x < listXMean + (3 * listXStd) ] return [listX, listXMean, listXMedian, listXMode, listXStd, y1, y2, y3]
y=str(pindex[0])[5:tl] timearray.append(y) i0=0 indexarrayL=[i0] for x in pindex: if y!=str(x)[5:tl]: timearray.append(str(x)[5:tl]) # change to 16 to 19 to make it in seconds indexarrayL.append(i0) y=str(x)[5:tl] i0+=1 return [indexarrayL,timearray] tl = 19 # use 19 for seconds, 16 is for minutes pl=rc('p_luno_large_2.csv') pk=rc('p_kraken_large_2.csv') pl = pl.set_index('timestamp_rounded') pk = pk.set_index('timestamp_rounded') # pk=clean_prices(pkraken) # pl=clean_prices(pluno) # it was already cleaned - just the lower boundary was 0 instead of 100, but that should not matter indexarrayL, timearrayL = makearray(pl.index, tl) indexarrayK, timearrayK = makearray(pk.index, tl) mergeddf=df(columns=['Time', 'kBid', 'kAsk','lBid','lAsk']) num_iters = len(indexarrayL) print('Number of iterations: ' + str(num_iters))
from datetime import datetime import matplotlib.pyplot as plt import os import pandas as pd import sqlite3 from pandas import DataFrame as df import numpy as np from pandas import read_csv as rc df_general=rc('Copy of merged_large_2_min.csv') #Housekeeping df_general = df_general.ffill() signalmatrix = df(df_general['lBid']-df_general['kBid']) signalmatrix = signalmatrix.join(df(df_general['lAsk']-df_general['kAsk']),rsuffix='r') (signalmatrix).columns=('BidDiff','AskDiff') timeindf, RoT = trading_plugin(buy_and_sell_entries(20,10)) #In case you fancy timeindf['RoT']=RoT def buy_and_sell_entries(ADhandle,BDhandle,df_general=None,signalmatrix=None): # df_general is Best Bid Best Ask for both exchanges # Our entry and exits buyentry=[];sellentry=[] # Enter the first buy (Index is zero indexed) open_signal = signalmatrix['AskDiff']< -ADhandle first_entry_idx = df_general[open_signal].head(1).index.values buyentry.append(first_entry_idx)
import numpy as np import os import sys from PyQt5 import QtWidgets, QtGui, QtCore from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * from pandas import read_csv as rc import adminGui import usrGui global bg_color bg_color = '#484848' w = 320 h = 240 prm_list = rc('parameters.csv', delimiter=',', header='infer') sVersion = prm_list['Software Version'].values dVersion = prm_list['Device Version'].values dID = prm_list['Device ID'].values cwd = os.getcwd() class Window(QWidget): class usrButton(QPushButton): def __init__(self, parent=None): super(Window.usrButton, self).__init__() self.setText('User GUI') class adminButton(QPushButton): def __init__(self, parent=None):
from pandas import read_csv as rc from random import randint as ri import statistics as sts import plotly.figure_factory as ff p = "data.csv" def rx(x, y): return sts.mean([y[ri(0, len(y) - 1)] for i in range(x)]) x = [rx(30, rc(p)['temp']) for i in range(100)] print("Mean of population: {}\nMean of sample: {}".format( sts.mean(rc(p)["temp"]), sts.mean(x))) ff.create_distplot([x], [""], show_hist=False).show()
i0=0 indexarrayL=[i0] for x in pindex: if y!=str(x)[5:tl]: timearray.append(str(x)[5:tl]) # change to 16 to 19 to make it in seconds indexarrayL.append(i0) y=str(x)[5:tl] i0+=1 return [indexarrayL,timearray] tl = 19 # use 19 for seconds, 16 is for minutes relevant_cols = ['timestamp_rounded', 'timestamp', 'best_bid', 'best_ask'] # BTC/EUR pl=rc('p_luno_btc_eur_v1.csv', usecols=relevant_cols) pk=rc('p_kraken_btc_eur_v1.csv', usecols=relevant_cols) pb=rc('p_bitstamp_btc_eur_v1.csv', usecols=relevant_cols) pl = pl.set_index('timestamp_rounded') pk = pk.set_index('timestamp_rounded') pb = pb.set_index('timestamp_rounded') # the datasets were already cleaned, so we do not need to run clean_prices indexarrayL, timearrayL = makearray(pl.index, tl) indexarrayK, timearrayK = makearray(pk.index, tl) indexarrayB, timearrayB = makearray(pb.index, tl) mergeddf=df(columns=['Time', 'kBid', 'kAsk', 'bBid', 'bAsk', 'lBid','lAsk']) num_iters = len(indexarrayL)