Exemplo n.º 1
0
def coinScraper(varCurrency='lisk',
                varFromDate='2018-01-01',
                varToDate='2018-12-31'):
    """
    variables:
        varCurrency - string value of currency name
        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
    """
    df = coinmarketcap.getDataFor(
        varCurrency,
        varFromDate,
        varToDate,
        fields=['Open', 'High', 'Low', 'Close', 'Volume', 'Market Cap'])

    df.reset_index(inplace=True, drop=False)
    df.columns = [''.join(col) for col in df.columns.values]
    df.columns = [
        'Date', 'Open', 'High', 'Low', 'Close', 'Volume', 'Market Cap'
    ]

    return df
def load_price_df():
    cryptos = ['ethereum']
    start_date, end_date = datetime(2017, 6, 1), datetime.now()

    df = coinmarketcap.getDataFor(cryptos, start_date, end_date)

    return df['ethereum']
Exemplo n.º 3
0
def extractData(crypto):
    start_date, end_date = datetime(2018, 8, 1), datetime(2019, 7, 7)
    df_cryptos = coinmarketcap.getDataFor(crypto,
                                          start_date,
                                          end_date,
                                          fields=['Open', 'High', 'Close'])
    display(df_cryptos.sample(10))
    return df_cryptos
def Recuperation_Historique_Crypto_2(Nom_Entier_Crypto,DATE_debut,DATE_fin):
    #Obtention des informations des Informations et Enregistrement de celle-ci en fihcier .CSV
    #~
    #~
    cryptos = [Nom_Entier_Crypto.casefold()]                       #La crypto-monnaie choisi qui sera Visualiser par Graphique

    global Nom_Entier_Crypto_path                                  #Passage en Global de la crypto choisi pour etre utiliser en tant que chemin lorsqu'il sera lu pour et par le système
    Nom_Entier_Crypto_path = Nom_Entier_Crypto                     #Enregistrelent de la crypto choisi pour son utilisation en tanr que chemin de lecture
    #-----
    #end_date_datetimevar = datetime.now().strftime('%Y-%m-%d')     #Enregistrement de la date d'aujourdui au format ISO
    #end_date = end_date_datetimevar                                #Passage de la variable a une autre pour eviter une erreur du a l'indication du format ISO
    start_date = DATE_debut                                     #Date donner pour etablir le debut du graphique
    end_date = DATE_fin
    #------
    # retrieves data and stores .msg files in DOWNLOAD_DIR
    df_cryptos = coinmarketcap.getDataFor(cryptos, start_date, end_date, DOWNLOAD_DIR = 'data/coinmarketcap' , fields = ['Close'])

    #print(df_cryptos['bitcoin']['Close'])                          #Nous recevons la date plus le prix du BTC 
    #Une fois recue, les informations obtenue sont enregistrer dans un fichier CSV avec pour nom de fichier la crypto-monnaie saisie au prealable
    df_cryptos[Nom_Entier_Crypto.casefold()]['Close'].to_csv(r'/home/'+USERNAME+'/CryptoWatch/Exemple/Graphs/CMC/data/'+Nom_Entier_Crypto.casefold()+'_USD.csv', header = True)
    print("CSV Obtenue")                                            #Message afficher dans la console
     
#def Recuperation_CSV():
    #Lecture du fichier CSV recue
    #~
    #~
    df_recue = pandas.read_csv('/home/'+USERNAME+'/CryptoWatch/Exemple/Graphs/CMC/data/'+Nom_Entier_Crypto_path.casefold()+'_USD.csv') #Lecture dans la console du fichier CSV obtenue après traitement
    #print(df_recue.columns)                                                                                                            #Affichage des titres des Colonnes du fichier recue
    #print(df_recue)                                                                                                                    #Affichage du Fichier reçue .CSV

    #Listage des colonnes DATAFRAME 'df_recue' ['Date'] et ['Close']
    INDICE_Date = 0                                                 #Indice pour la navigation dans la liste de la colonne 'Date'
    Taille_Date = len(df_recue['Date'])                             #Variable permettant de connaitre la taille de la colonne 'Date'
    INDICE_Close = 0                                                #Indice pour la navigation dans la liste de la colonne 'Close'
    Taille_Close = len(df_recue['Close'])                           #Variable permettant de connaitre la taille de la colonne 'Clone'

    liste_Date = []                                                 #Creation de la liste 'Date'
    liste_Close = []                                                #Creation de la liste 'Close'
    
    for INDICE_Date in range(Taille_Date):                          #Boucle FOR navigant dans la liste 'Date' en suivant la taille de la liste 'Date'
        #print(df_recue['Date'][INDICE_Date])                       #Affichage debug de la colonne 'Date', ligne par ligne
        liste_Date.append(df_recue['Date'][INDICE_Date])            #Ajout des informations de la colonne 'Date' dans sa liste , ligne-par-ligne

    for INDICE_Close in range(Taille_Close):                        #Boucle FOR navigant dans la liste 'Close' en suivant la taille de la liste 'Close' 
        #print(df_recue['Close'][INDICE_Close])                     #Affichage debug de la colonne 'Close' , ligne-par-ligne
        liste_Close.append(df_recue['Close'][INDICE_Close])         #Ajout des information de la colonne 'Close' dans sa liste, ligne-par-ligne

    print(liste_Date)                                               #Affichage dans la console de la liste 'Date'
    print(liste_Close)                                              #Affichage dans la console de la liste 'Close'

    return liste_Date,liste_Close                                   #Envoie les deux listes pour utilisation utltérieur
import pickle
import pandas_datareader.data
import itertools

# In[ ]:

#method 1: read the table info directly
df = pd.read_html('https://coinmarketcap.com/currencies/volume/monthly/')[0]

#find the top 100 trading volume pairs
#method 2: use coinmarketcap package
coin_list = []
namelist = Market().listings()
converter = {}  #convert the symbol to website_slug
coin_symbol = df[:100]['Symbol']
for name in namelist['data']:
    converter[name['symbol']] = name['website_slug']
for i in coin_symbol:
    try:  #some coins retrieved are not included in Coinmarketcap
        coin_list.append(converter[i])
    except KeyError:
        print('KeyError:', i)

start, end = datetime(2017, 6, 1), datetime(2019, 8, 15)
df_bitcoin = pd.DataFrame()
for name in coin_list:
    df = coinmarketcap.getDataFor(name, start, end, fields='Close')
    df_bitcoin = pd.concat([df_bitcoin, df], axis=1, sort=False)
    time.sleep(10)
print(df_bitcoin)
Exemplo n.º 6
0
 def test_fake_crypto(self):
     cryptos = ['blah_crypto']
     start_date, end_date = datetime(2017, 6, 1), datetime(2018, 6, 1)
     with self.assertRaises(SystemExit):
         coinmarketcap.getDataFor(cryptos, start_date, end_date)
Exemplo n.º 7
0
 def test_data_gathered(self):
     cryptos = ['bitcoin']
     start_date, end_date = datetime(2017, 6, 1), datetime(2018, 6, 1)
     df = coinmarketcap.getDataFor(cryptos, start_date, end_date)
     self.assertTrue(len(df) > 0)