示例#1
0
    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
示例#3
0
    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