Example #1
0
def cryptoInfoToDf(varCurrency='lisk',
                   varFromDate='2018-01-01',
                   varToDate='2018-12-31'):
    # def cryptoInfoToDf (varCurrency = 'lisk', varFromDate = '04-01-2017',
    #                     varToDate = '16-01-2017'):
    """
    variables:
        varCurrency - string value of currency shortcut
        varFromDate - date in format of YYYY-MM-DD
        varToDate - date in format of YYYY-MM-DD

    returns:
        dataframe of cryptocurrency data
        created by connecting to Coinmarketcap.com
    """
    cryptoDict = {
        'lisk': 'LSK',
        'bitcoin': 'BTC',
        'ripple': 'XRP',
        'ethereum': 'ETH',
        'litecoin': 'LTC'
    }

    cryptoName = cryptoDict[varCurrency]

    fromDate = datetime.datetime.strptime(varFromDate,
                                          '%Y-%m-%d').strftime('%d-%m-%Y')
    toDate = datetime.datetime.strptime(varToDate,
                                        '%Y-%m-%d').strftime('%d-%m-%Y')

    # cryptoDict = {
    #               'LSK':'lisk',
    #               'BTC':'bitcoin',
    #               'XRP':'ripple',
    #               'ETH':'ethereum',
    #               'LTC':'litecoin'
    #              }

    # ? initialise scraper
    scraper = CmcScraper(cryptoName, fromDate, toDate)

    # ? initialise dataframe for the data
    headers, data = scraper.get_data()
    df = pd.DataFrame(data, columns=headers)

    df['Date'] = pd.to_datetime(df['Date'], format="%d-%m-%Y")
    df['Currency'] = '{}'.format(varCurrency)
    df.columns = [
        'Date', 'Open', 'High', 'Low', 'Close', 'Volume', 'Market Cap',
        'Currency'
    ]

    return df
Example #2
0
    def __init__(self, coin_code, coin_id=None, start_date=None, end_date=None, all_time=False):
        """

        :param coin_code: coin code of cryptocurrency e.g. btc
        :param coin_id: default None, somtimes has more than one coin, like:
            ACC has three coins: adcoin, accelerator-network, acchain, with different ids
        :param start_date: date since when to scrape data (in the format of dd-mm-yyyy)
        :param end_date: date to which scrape the data (in the format of dd-mm-yyyy)
        :param all_time: 'True' if need data of all time for respective cryptocurrency
        """
        CmcScraper.__init__(self, coin_code, start_date, end_date, all_time)
        self.coin_id = coin_id
Example #3
0
def gatherHistoricalDataFor(coin, start_date, end_date):
    scraper = CmcScraper(coin['symbol'], start_date.strftime("%d-%m-%Y"),
                         end_date.strftime("%d-%m-%Y"))

    # get raw data as list of list
    headers, historicaldata = scraper.get_data()

    # per ora non mi interessa più salvare il valore di Coin, contiene info che non mi servono nello spread. Ma devo mantenerla per far funzionare il resto e il pregresso già salvato su Google Spreadsheet
    headers.insert(0, "Coin")
    for historicaldata_row in historicaldata:
        historicaldata_row.insert(0, "N/A")

    return headers, historicaldata
Example #4
0
def GetAllCoinData(day_to_buy):
    coins = ScrapeCoinMarketCap()
    all_coin_data = []
    for coin in coins[:100]:
        df = CmcScraper(coin).get_dataframe()
        df['day_of_week'] = pd.to_datetime(df['Date']).dt.weekday_name
        df['symbol'] = coin
        df['prior_date_close'] = df['Close**'].shift(-7)
        df['percentChange'] = df['Close**'] / df['Close**'].shift(-7) - 1.0
        df = df.drop(labels={'Open*', 'High', 'Low', 'Volume'}, axis=1)
        df = df[df['day_of_week'] == day_to_buy]
        all_coin_data.append(df)
    appended_data = pd.concat(all_coin_data, axis=0)
    return appended_data
Example #5
0
def get_latest_data(coin_list):
    """Get latest price data for given coin list."""
    li = coin_list.split()
    ret = dict()
    for i, x in enumerate(li):
        scr = CmcScraper(x)
        try:
            header, data = scr.get_data()
            ti = list()
            pr = list()
            for j, xx in enumerate(data):
                if xx[4]:
                    pr.append(xx[4])
                    ti.append(xx[0])
            ret[x] = dict(t=ti, p=pr)
        except Exception:
            print("Invalid coin symbol: {0}".format(x))
        print(i, x)
    return ret
Example #6
0
def get_history_all():
    """Get all history close data."""
    cmc = Market()
    listing = [item['symbol'] for item in cmc.listings()['data']]
    ret = dict()
    for i, x in enumerate(listing):
        scr = CmcScraper(x)
        try:
            header, data = scr.get_data()
            ti = list()
            pr = list()
            for j, xx in enumerate(data):
                if xx[4]:
                    pr.append(xx[4])
                    ti.append(xx[0])
            ret[x] = dict(t=ti, p=pr)
        except Exception:
            print("Invalid coin symbol: {0}".format(x))
        print(i, x)
    return ret
Example #7
0
 def retrieve_data(self, ticker):
     # initialise scraper without time interval
     scraper = CmcScraper(ticker)
     # get raw data as list of list
     headers, data = scraper.get_data()
     # get data in a json format
     xrp_json_data = scraper.get_data("json")
     # export the data as csv file
     scraper.export("csv", name=ticker)
Example #8
0
def update(event):
    messagebox.showinfo('info',
                        """更新历史数据耗时较久,视网络环境需时20到40分钟,请耐心等待""")
    cmc = Market()
    listing = [item['symbol'] for item in cmc.listings()['data']]
    hist = dict()
    step = 100 / len(listing)
    for i, x in enumerate(listing):
        scr = CmcScraper(x)
        try:
            header, data = scr.get_data()
            ti = list()
            pr = list()
            for j, xx in enumerate(data):
                if xx[4]:
                    pr.append(xx[4])
                    ti.append(xx[0])
            hist[x] = dict(
                t=ti,
                p=pr
            )
        except Exception:
            print("Invalid coin symbol: {0}".format(x))
        print(i, x)
        progress.step(step)
        progress.update()
    sym2id, id2sym = get_id_table()
    outdata = dict(
        history=hist,
        s2i=sym2id,
        i2s=id2sym
    )
    with open("cmc_history.json", "w") as f:
        json.dump(outdata, f)
    update_date()
    messagebox.showinfo('info', "成功更新历史数据")
def main():
	global currencyList
	n = 0
	curDay = strftime("%d-%m-%Y", gmtime())

	l = len(currencyList)
	#l = 1
	while n < l:
		# initialise scraper
		scraper = CmcScraper(currencyList[n], '01-01-2000', curDay)

		# # get data as list of list
		headers, data = scraper.get_data()

		# # export the data to csv
		scraper.export_csv('history/'+currencyList[n]+".csv")

		# # get dataframe for the data
		df = scraper.get_dataframe()

		x = []
		y = []
		with open('history/'+currencyList[n]+'.csv', 'r') as f:
		    sreader = csv.reader(f)

		    i = 0 
		    for row in sreader:
		        if i > 0 :
		        	x.append(i)
		        	y.append((float(row[2]) + float(row[3]))/2)

		        i = i + 1

		prediction = predict(y,currencyList[n])

		print currencyList[n] + ' => ' + str(prediction) 

		y.reverse()
		data = {}
		data["pointStart"] = 1230764400000
		data["pointInterval"] = 3600000
		data["dataLength"] = len(y)
		data["data"] = y
		data["prediction"] = prediction

		json_data = json.dumps(data)

		#print json_data
		file = open('public/'+currencyList[n]+'.json', 'w') 
		file.write(json_data)
		file.close() 

		n = n+1
from cryptocmd import CmcScraper

# initialise scraper
scraper = CmcScraper('XRP', '01-01-2015', '30-10-2018')

# get data as list of list
headers, data = scraper.get_data()

# export the data to csv
scraper.export_csv()

# get dataframe for the data
df = scraper.get_dataframe()
import streamlit as st
from cryptocmd import CmcScraper
import plotly.express as px

st.write("# 비트코인 BTC 데이터")

# CmcScraper 사용시 날짜 입력 주의 : '%d-%m-%Y
scraper = CmcScraper('BTC', '01-01-2021', '07-01-2021')

df = scraper.get_dataframe()

fig_close = px.line(df,
                    x="Date",
                    y=["Open", "High", "Low", "Close"],
                    title="가격")
fig_volume = px.line(df, x="Date", y=["Volume"], title="거래량")

st.plotly_chart(fig_close)
st.plotly_chart(fig_volume)
Example #12
0
from cryptocmd import CmcScraper

# initialise scraper without passing time interval
scraper = CmcScraper('XRP')

# data as list of list in a variable
headers, data = scraper.get_data()

# export the data as csv file, you can also pass optional name parameter
scraper.export_csv('xrp_all_time.csv')

# Pandas dataFrame for the same data
df = scraper.get_dataframe()
print(df)
from cryptocmd import CmcScraper

scraper = CmcScraper('bch', '01-01-2012', '14-08-2018')
scraper.export_csv('bchusd.csv')
Example #14
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from cryptocmd import CmcScraper

# Initialise scraper with 'coin code' of cryptocurrency
# If time interval is not passed all time data will be scrapped
scraper = CmcScraper('btc')

# You can pass name for the csv explicitly,
# Else it will be named in format {coin_code}_{start_date}_{end_date}.csv
scraper.export_csv('btc_all_time.csv')
import streamlit as st
from cryptocmd import CmcScraper
import plotly.express as px

st.write('# 비트코인 BTC 데이터')

scrppper = CmcScraper('BTC', '01-01-2021', '07-01-2021') # %d-%m-%Y

df = scrppper.get_dataframe()

fig_close = px.line(df, x='Date', y=['Open', 'High', 'Low', 'Close'], title='가격')
fig_volume = px.line(df, x='Date', y=['Volume'], title='거래량')

st.plotly_chart(fig_close)
st.plotly_chart(fig_volume)
Example #16
0
	def get_historical_quotes(self) -> pd.DataFrame:
		scraper = CmcScraper(self.ticker)
		df = scraper.get_dataframe()
		return pd.DataFrame({'_id' : 'null', 'Ticker' : self.ticker, 'TimeStampID' : 
			df['Date'], 'Price_USD' : df['Close'], 'Price_BTC' : 'null', 
			'MarketCap_USD' : df['Market Cap'], 'Volume24hr_USD' : df['Volume']})
def get_market(coin='BTC'):
    scraper = CmcScraper('BTC', '06-03-2018', '30-05-2018')
    headers, data = scraper.get_data()
    scraper.export_csv(
        csv_path='/home/cedric/Documents/UM/Info_mining/twitter_stream/market')
Example #18
0
# Following methods are available to get data in multiple formats from https://coinmarketcap.com

from cryptocmd import CmcScraper

# initialise scraper without passing time interval
scraper = CmcScraper("XRP")

# data as list of list in a variable
headers, data = scraper.get_data()

# export the data as csv file, you can also pass optional name parameter
scraper.export_csv("xrp_all_time.csv")

# Pandas dataFrame for the same data
df = scraper.get_dataframe()
Example #19
0
from cryptocmd import CmcScraper

# initialise scraper
scraper = CmcScraper('BTC', '15-07-2012', '01-08-2018')

# get data as list of list
headers, data = scraper.get_data()

# export the data to csv
scraper.export_csv("test.csv")

# get dataframe for the data
df = scraper.get_dataframe()
Example #20
0
# currency = ["ETH","XRP","BCH","EOS"]

extractedData = []

def plotGraph(df):
	for index,x in enumerate(df): 
		plt.plot(x['Date'],x['close'],label=currency[index])

	plt.title("CLOSE")
	plt.ylabel('close ($)')
	plt.xlabel('Date')
	plt.legend()
	plt.show()

for x in currency:
	scraper = CmcScraper(x, '1-1-2014', '18-6-2018')
	df = scraper.get_dataframe()
	df["Close**"].replace(0,np.nan,inplace=True)
	df["close"] = df["Close**"]
	df['returns'] = (df['close'].pct_change() + 1).fillna(1)
	df = df.loc[:,['Date','close','returns']]
	df = df.dropna()

	# plotGraph(df)
	print(x)
	print(df.head())
	df.to_pickle(fileName.format(x))
	extractedData.append(df)

plotGraph(extractedData)
Example #21
0
from cryptocmd import CmcScraper

# Documentation https://github.com/guptarohit/cryptoCMD
# initialise scraper without time interval
scraper = CmcScraper("BTC")

# get raw data as list of list
headers, data = scraper.get_data()

# get data in a json format
xrp_json_data = scraper.get_data("json")

# export the data as csv file, you can also pass optional `name` parameter
scraper.export("csv", name="xrp_all_time")

# Pandas dataFrame for the same data
df = scraper.get_dataframe()

result = xrp_json_data[0]

print(data[0][1])
Example #22
0
#! /usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author  : MG
@Time    : 2018/8/1 8:31
@File    : only_test.py
@contact : [email protected]
@desc    : 
"""

from cryptocmd import CmcScraper

# initialise scraper without passing time interval
coin_code = 'ACC'
scraper = CmcScraper(coin_code)

# data as list of list in a variable
headers, data = scraper.get_data()

# export the data as csv file, you can also pass optional name parameter
scraper.export_csv('{coin_code}_all_time.csv'.format(coin_code=coin_code))

# Pandas dataFrame for the same data
df = scraper.get_dataframe()
Example #23
0
def get_historical_data(crypto, first_day, last_day):
    scraper = CmcScraper(crypto, first_day, last_day)
    historical_data_df = scraper.get_dataframe().set_index("Date")
    return historical_data_df
def download_data_scrapper(from_symbol):
    scraper = CmcScraper(from_symbol)
    data = scraper.get_dataframe()
    return data
import matplotlib.pyplot as plt
from google.colab import files
uploaded = files.upload()

import io
data = io.BytesIO(uploaded['Blockchain.csv'])

f= pd.read_csv(data)
print(f)

!pip install cryptocmd

from cryptocmd import CmcScraper

# initialise scraper
scraper1 = CmcScraper('XRP', '08-08-2015', '12-04-2018')
scraper2 = CmcScraper('ETH', '08-08-2015', '12-04-2018')
scraper3 = CmcScraper('DASH', '08-08-2015', '12-04-2018')
scraper4 = CmcScraper('LTC', '08-08-2015', '12-04-2018')
scraper5 = CmcScraper('XLM', '08-08-2015', '12-04-2018')

# get dataframe for the data
df1 = scraper1.get_dataframe()
df2 = scraper2.get_dataframe()
df3 = scraper3.get_dataframe()
df4 = scraper4.get_dataframe()
df5 = scraper5.get_dataframe()
Y = f['BCHAIN-MKPRU'][0:978]
X =  pd.concat([df1['Close'], df2['Close'], df3['Close'] ,df4['Close'], df5['Close'],f[0:979]], axis=1)
X= X[1:]
import streamlit as st
from cryptocmd import CmcScraper
import plotly.express as px
from datetime import datetime

st.write('#Cryptocurrency Web App')
st.sidebar.header('Menu')

name = st.sidebar.selectbox('Name', ['BTC', 'ETH', 'USDT'])

start_date = st.sidebar.date_input('start date', datetime(2021, 1, 1))
end_date = st.sidebar.date_input('end date', datetime(2021, 1, 25))

scrapper = CmcScraper(name, start_date.strftime('%d-%m-%Y'),
                      end_date.strftime('%d-%m-%Y'))

df = scrapper.get_dataframe()

fig_close = px.line(df,
                    x='Date',
                    y=['Open', 'High', 'Low', 'Close'],
                    title='Price')
fig_volume = px.line(df, x='Date', y=['Volume'], title='Volume')

st.plotly_chart(fig_close)
st.plotly_chart(fig_volume)
Example #27
0
def updateCoins(coinCodes):
    """Update the H5 Repository with Coin Data

    Keyword arguments:
    coinList - Set of CoinCodes
    """

    global apph5datafile

    coinList = []

    if coinCodes == '*':
        print("You asked to update all tracked coins")
        coinList = config.get('Active', 'Coins').split(' ')
    else:
        coinList = coinCodes
        print("You asked to list the last week for coins %s" % (coinList))

    print("You asked to update coins %s" % (coinList))

    for coin in coinList:

        havecointable = True

        if not os.path.exists(apph5datafile):
            print("Creating Datafile %s" % apph5datafile)
            havecointable = False


#        if not ('/'+coin.upper()) in storedcoins:
#            print("Coin %s not in dataset" % coin.upper())
#            havecointable = False

        if havecointable:

            try:
                hdf = read_hdf(apph5datafile, coin)

                hdf['date_ranked'] = hdf['Date'].rank(ascending=1)
                print "Last element from %s is dated %s" % (
                    coin, str(hdf.at[0, 'Date'])[:10])
                lastdate = datetime.strptime(
                    str(hdf.at[0, 'Date'])[:10], "%Y-%m-%d")
                nextday = timedelta(1)
                nextday = lastdate + nextday
                delta = (datetime.today() - timedelta(1)) - nextday
                print("Difference from yesterday to last update ", delta)

            except KeyError:
                print("No data found for this Coin")
                nextday = (datetime.today() - timedelta(2 * 365))

            lastdate = datetime.today() - timedelta(1)

            print "Updating data from %s to %s" % (str(nextday), str(lastdate))

            startdate = '{:%d-%m-%Y}'.format(nextday)
            enddate = '{:%d-%m-%Y}'.format(lastdate)

            scraper = CmcScraper(coin, startdate, enddate)

        else:

            scraper = CmcScraper(coin.upper())

        # get data as list of list
        try:
            headers, data = scraper.get_data()

            # get dataframe for the data
            df = scraper.get_dataframe()

            print df

            # df.to_hdf('pluton.h5',coin,append=True,format='t')
            df.to_hdf(apph5datafile, coin.upper())

        except ValueError:
            print("No data found")

    return
Example #28
0
    return min_date, max_date


data_load_state = st.sidebar.text('Loading data...')
min_date, max_date = load_data(selected_ticker)
data_load_state.text('Loading data... done!')

### Select date range
date_range = st.sidebar.selectbox(
    "Select the timeframe to train the model on:",
    options=["All available data", "Specific date range"])

if date_range == "All available data":

    ### Initialise scraper without time interval
    scraper = CmcScraper(selected_ticker)

elif date_range == "Specific date range":

    ### Initialise scraper with time interval
    start_date = st.sidebar.date_input('Select start date:',
                                       min_value=min_date,
                                       max_value=max_date,
                                       value=min_date)
    end_date = st.sidebar.date_input('Select end date:',
                                     min_value=min_date,
                                     max_value=max_date,
                                     value=max_date)
    scraper = CmcScraper(selected_ticker, str(start_date.strftime("%d-%m-%Y")),
                         str(end_date.strftime("%d-%m-%Y")))
Example #29
0
def load_data(selected_ticker):
    init_scraper = CmcScraper(selected_ticker)
    df = init_scraper.get_dataframe()
    min_date = pd.to_datetime(min(df['Date']))
    max_date = pd.to_datetime(max(df['Date']))
    return min_date, max_date
Example #30
0
    def download(self,coin_data_id):
        fetcher = CmcScraper(coin_data_id)#(coin['symbol'])

        headers, data = fetcher.get_data()
        Controller.prepDataframe(self,headers,data)
Example #31
0
import os
#os.system('pip install git+git://github.com/guptarohit/cryptoCMD.git')
from cryptocmd import CmcScraper

crypto_name = os.sys.argv[1]
scraper = CmcScraper(crypto_name)

headers, data = scraper.get_data()

scraper.export_csv(crypto_name+'_all_time.csv')