def getData(self): #get url to data from kraken api pair = self.pair interval = str(self.interval) base = 'https://api.kraken.com' endpoint = '/0/public/OHLC' params = '?pair=' + pair + '&interval=' + interval url = base + endpoint + params #download the data json_string = requests.get(url) dictionary = json.loads(json_string.text) dict_len = len(dictionary['result'][pair]) self.dflength = dict_len #creat pandas df col_names = ['time', 'open', 'high', 'low', 'close', 'volume', 'sma20', 'sma40', 'rsi', 'obv','hma20'] df = pd.DataFrame(columns = col_names) #creat df cause the import stuff would work for x in range(dict_len): temp = dictionary['result'][pair][x] df = df.append({col_names[0]: temp[0], col_names[1]: temp[1], col_names[2]: temp[2], col_names[3]: temp[3], col_names[4]: temp[4], col_names[5]: temp[5]}, ignore_index=True) #turn df into floats for col in col_names: df[col] = df[col].astype(float) #add techinical indicatiors to the df df['time'] = [datetime.fromtimestamp(x) for x in df['time']] df['sma20'] = sma(df['close'].tolist(), 20) df['sma40'] = sma(df['close'].tolist(), 50) df['hma20'] = hma(df['close'].tolist(), 200) df['rsi'] = rsi(df['close'].tolist(), 10) df['obv'] = obv(df['close'].tolist(), df['volume'].tolist()) return df
def prepare_data(symbol): coin = symbol coin_1 = crypto_data(coin) df = coin_1 df['SMA_20'] = sma(df['Close'], 20) df['SMA_50'] = sma(df['Close'], 50) df['EMA_20'] = ema(df['Close'], 20) df['EMA_50'] = ema(df['Close'], 50) df['MACD'] = macd(df['Close'], 26, 12) df['per_k_stoch_10'] = percent_k(df['Close'], 10) df['per_d_stoch_10'] = percent_d(df['Close'], 10) df['OBV'] = obv(df['Close'], df['Volume']) fp = [] for price in df['Close']: fp.append(price) fp.pop(0) fp.append(df['Close'].mean()) df['FP'] = fp df_predict = df.tail(1) df.drop(df.tail(1).index, inplace=True) label = [] for i in range(len(df)): if df['FP'][i] > df['Close'][i]: label.append(1) else: label.append(0) df['goes_up'] = label df = df.drop(['FP'], axis=1) df = df.fillna(df.mean()) df_predict = df_predict.drop(['FP'], axis=1) return df, df_predict
def getData(self): #get url to data from kraken api data = pd.read_csv("Kraken_BTCUSD_1h.csv") #creat pandas df col_names = [ 'time', 'symbol', 'open', 'high', 'low', 'close', 'volume', 'volume usd', 'sma20', 'sma40', 'rsi', 'obv' ] df = pd.DataFrame(data, columns=col_names) print df #turn df into floats for col in col_names: df[col] = df[col].astype(float) #add techinical indicatiors to the df #df['time'] = [datetime.fromtimestamp(x) for x in df['time']] df['sma20'] = sma(df['close'].tolist(), 20) df['sma40'] = sma(df['close'].tolist(), 40) df['rsi'] = rsi(df['close'].tolist(), 14) df['obv'] = obv(df['close'].tolist(), df['volume'].tolist()) return df