def chat(msg): global dictionary,pending,pending_action,state,my_friend print(msg) usermessage=txt_recog(msg) if usermessage=='quit': my_friend.send(get_chatbotanswer('See you.')) sys.exit() intent=interprete(interpreter,usermessage)['intent']['name'] entities=extract_entities(nlp,usermessage) Org=Check_Org(entities) intent_=(check_intents(intent)) dictionary,pending,pending_action,state=bot_reply(intent_,state,pending,Org,pending_action,dictionary) if state==END: my_friend.send(get_chatbotanswer('See you.')) sys.exit() action=pending_actions() if pending is not 0: my_friend.send(get_chatbotanswer(action[pending_action])) if state is not 0 and state is not 3 and state is not 5: my_friend.send(get_chatbotanswer(state_change_action(state))) if (dictionary['function'] is not None) and (dictionary['company']is not None): CPN=Stock(get_ticker_symbol(dictionary['company'])) if dictionary['function']=='b': if error_check1(CPN)==1: p_CPN=CPN.get_price() state=FOUND my_friend.send(get_chatbotanswer('Ok,I have found it! The price of {0} is {1}$'.format(dictionary['company'],p_CPN) )) else: my_friend.send(get_chatbotanswer('Information of company not found')) state=NOTFOUND if dictionary['function']=='c': if error_check2(CPN)==1: mv_CPN=CPN.get_volume() my_friend.send(get_chatbotanswer('Ok,I have found it!')) state=FOUND my_friend.send(get_chatbotanswer('The volume of {0} is {1}'.format(dictionary['company'],mv_CPN) )) else: my_friend.send(get_chatbotanswer('Information of company not found')) state=NOTFOUND if dictionary['function']=='d': if error_check3(CPN)==1: mc_CPN=CPN.get_market_cap() my_friend.send(get_chatbotanswer('Ok,I have found it!')) state=FOUND my_friend.send(get_chatbotanswer('The market value of {0} is {1}$'.format(dictionary['company'],mc_CPN))) else: my_friend.send(get_chatbotanswer('Information not found')) state=NOTFOUND if state == FOUND or state==NOTFOUND : my_friend.send(get_chatbotanswer('Do you have other questions? Say "quit" to quit')) state=INIT
class TestFieldMethodsBatch(object): def setup_class(self): self.batch = Stock(["AAPL", "TSLA"]) self.batch2 = Stock(["AAPL", "TSLA"], output_format='pandas') self.batch4 = Stock(["AAPL", "TSLA"], json_parse_int=Decimal, json_parse_float=Decimal) def test_get_company_name(self): data = self.batch.get_company_name() assert isinstance(data, dict) assert data["AAPL"] == "Apple Inc." data2 = self.batch2.get_company_name() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) def test_get_primary_exchange(self): data = self.batch.get_primary_exchange() assert isinstance(data, dict) assert data["AAPL"] == "Nasdaq Global Select" data2 = self.batch2.get_primary_exchange() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) def test_get_sector(self): data = self.batch.get_sector() assert isinstance(data, dict) assert data["AAPL"] == "Technology" data2 = self.batch2.get_sector() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) def test_get_open(self): data = self.batch.get_open() assert isinstance(data, dict) assert data["AAPL"] > 0 data2 = self.batch2.get_open() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" def test_get_close(self): data = self.batch.get_close() assert isinstance(data, dict) assert data["AAPL"] > 0 data2 = self.batch2.get_close() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" def test_get_years_high(self): data = self.batch.get_years_high() assert isinstance(data, dict) assert data["AAPL"] > 0 data2 = self.batch2.get_years_high() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" def test_get_years_low(self): data = self.batch.get_years_low() assert isinstance(data, dict) assert data["AAPL"] > 0 data2 = self.batch2.get_years_low() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" def test_get_ytd_change(self): data = self.batch.get_ytd_change() assert isinstance(data, dict) data2 = self.batch2.get_ytd_change() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" def test_get_volume(self): data = self.batch.get_volume() assert isinstance(data, dict) assert data["AAPL"] > 50000 data2 = self.batch2.get_volume() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "int64" def test_get_market_cap(self): data = self.batch.get_market_cap() assert isinstance(data, dict) assert data["AAPL"] > 1000000 data2 = self.batch2.get_market_cap() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "int64" def test_get_beta(self): data = self.batch.get_beta() assert isinstance(data, dict) assert isinstance(data["AAPL"], float) data2 = self.batch2.get_beta() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" data4 = self.batch4.get_beta() assert isinstance(data4, dict) assert isinstance(data4["AAPL"], Decimal) def test_get_short_interest(self): data = self.batch.get_short_interest() assert isinstance(data, dict) assert data["AAPL"] > 50000 data2 = self.batch2.get_short_interest() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "int64" def test_get_short_ratio(self): data = self.batch.get_short_ratio() assert isinstance(data, dict) assert isinstance(data["AAPL"], float) data2 = self.batch2.get_short_ratio() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" data4 = self.batch4.get_short_ratio() assert isinstance(data4, dict) assert isinstance(data4["AAPL"], Decimal) def test_get_latest_eps(self): data = self.batch.get_latest_eps() assert isinstance(data, dict) assert isinstance(data["TSLA"], float) data2 = self.batch2.get_latest_eps() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["TSLA"].dtype == "float64" data4 = self.batch4.get_latest_eps() assert isinstance(data4, dict) assert isinstance(data4["AAPL"], Decimal) def test_get_shares_outstanding(self): data = self.batch.get_shares_outstanding() assert isinstance(data, dict) assert data["AAPL"] > 100000 data2 = self.batch2.get_shares_outstanding() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "int64" def test_get_float(self): data = self.batch.get_float() assert isinstance(data, dict) assert data["AAPL"] > 1000000 data2 = self.batch2.get_float() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "int64" def test_get_eps_consensus(self): data = self.batch.get_eps_consensus() assert isinstance(data, dict) assert isinstance(data["AAPL"], float) data2 = self.batch2.get_eps_consensus() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" data4 = self.batch4.get_eps_consensus() assert isinstance(data4, dict) assert isinstance(data4["AAPL"], Decimal)
class TestFieldMethodsShare(object): def setup_class(self): self.share = Stock("AAPL") self.share2 = Stock("AAPL", output_format='pandas') self.share4 = Stock("AAPL", json_parse_int=Decimal, json_parse_float=Decimal) self.share5 = Stock("TSLA") def test_get_company_name(self): data = self.share.get_company_name() print(type(data)) assert isinstance(data, six.string_types) assert data == "Apple Inc." data2 = self.share2.get_company_name() assert isinstance(data2, pd.DataFrame) def test_get_primary_exchange(self): data = self.share.get_primary_exchange() assert isinstance(data, six.string_types) assert data == "Nasdaq Global Select" data2 = self.share2.get_primary_exchange() assert isinstance(data2, pd.DataFrame) def test_get_sector(self): data = self.share.get_sector() assert isinstance(data, six.string_types) assert data == "Technology" data2 = self.share2.get_sector() assert isinstance(data2, pd.DataFrame) def test_get_open(self): data = self.share.get_open() assert isinstance(data, float) assert data > 0 data2 = self.share2.get_open() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_open() assert isinstance(data4, Decimal) assert data4 > 0 def test_get_close(self): data = self.share.get_close() assert isinstance(data, float) assert data > 0 data2 = self.share2.get_close() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_close() assert isinstance(data4, Decimal) assert data4 > 0 def test_get_years_high(self): data = self.share.get_years_high() assert isinstance(data, float) assert data > 0 data2 = self.share2.get_years_high() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_years_high() assert isinstance(data4, Decimal) assert data4 > 0 def test_get_years_low(self): data = self.share.get_years_low() assert isinstance(data, float) assert data > 0 data2 = self.share2.get_years_low() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_years_low() assert isinstance(data4, Decimal) assert data4 > 0 def test_get_ytd_change(self): data = self.share.get_ytd_change() assert isinstance(data, float) data2 = self.share2.get_ytd_change() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_ytd_change() assert isinstance(data4, Decimal) def test_get_volume(self): data = self.share.get_volume() assert isinstance(data, int) assert data > 1000 data2 = self.share2.get_volume() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "int64" data4 = self.share4.get_volume() assert isinstance(data4, Decimal) assert data4 > 1000 def test_get_market_cap(self): data = self.share.get_market_cap() assert isinstance(data, int) data2 = self.share2.get_market_cap() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "int64" data4 = self.share4.get_market_cap() assert isinstance(data4, Decimal) def test_get_beta(self): data = self.share.get_beta() assert isinstance(data, float) data2 = self.share2.get_beta() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_beta() assert isinstance(data4, Decimal) def test_get_short_interest(self): data = self.share.get_short_interest() assert isinstance(data, int) data2 = self.share2.get_short_interest() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "int64" data4 = self.share4.get_short_interest() assert isinstance(data4, Decimal) def test_get_short_ratio(self): data = self.share.get_short_ratio() assert isinstance(data, float) data2 = self.share2.get_short_ratio() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_short_ratio() assert isinstance(data4, Decimal) def test_get_latest_eps(self): data = self.share5.get_latest_eps() assert isinstance(data, float) data4 = self.share4.get_latest_eps() assert isinstance(data4, Decimal) def test_get_shares_outstanding(self): data = self.share.get_shares_outstanding() assert isinstance(data, int) data2 = self.share2.get_shares_outstanding() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "int64" data4 = self.share4.get_shares_outstanding() assert isinstance(data4, Decimal) def test_get_float(self): data = self.share.get_float() assert isinstance(data, int) data2 = self.share2.get_float() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "int64" data4 = self.share4.get_float() assert isinstance(data4, Decimal) def test_get_eps_consensus(self): data = self.share.get_eps_consensus() assert isinstance(data, float) data2 = self.share2.get_eps_consensus() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_eps_consensus() assert isinstance(data4, Decimal)
def analyse_data(self, filename, coin, formatted_cryptocurrency_tweets, j_info): tweetsInHour = [] print("Number of unique tweets in an hour for " + coin + " is " + str(len(formatted_cryptocurrency_tweets))) file_exists = os.path.isfile(filename) if sentiment_config.TYPE == "CRYPTO": change = j_info['ticker']['change'] volume = j_info['ticker']['volume'] self.price = j_info['ticker']['price'] timestamp = j_info['timestamp'] else: stock = Stock(sentiment_config.EXCHANGE) change = stock.get_price() - self.price volume = stock.get_volume() self.price = stock.get_price() timestamp = datetime.datetime.now().strftime("%H:%M:%S") try: # average compound average_compound = float( sum(d['sentiment']['compound'] for d in formatted_cryptocurrency_tweets)) / len( formatted_cryptocurrency_tweets) cryptoFeature = { 'TimeStamp': [timestamp], 'Sentiment': [average_compound], 'Volume': [volume], 'Change': [change], 'Price': [self.price], 'NoOfTweets': [len(formatted_cryptocurrency_tweets)] } formatted_cryptocurrency_tweets = [] pd.DataFrame.from_dict(data=cryptoFeature, orient='columns').to_csv( filename, mode='a', header=not file_exists) # Make Predictions linear_predict_change = predict.generate_linear_prediction_model( cryptoFeature, filename) multi_linear_predict_change = predict.generate_multi_linear_prediction_model( cryptoFeature, filename) tree_predict_change = predict.generate_tree_prediction_model( cryptoFeature, filename) forest_predict_change = predict.generate_forest_prediction_model( cryptoFeature, filename) if linear_predict_change is not None and multi_linear_predict_change is not None\ and tree_predict_change is not None and forest_predict_change is not None: #get average prediction average_prediction = (float(linear_predict_change) + float(multi_linear_predict_change) + float(tree_predict_change) + float(forest_predict_change)) / 4 self.notify_user(str(average_prediction), str(cryptoFeature['Sentiment'][0])) #Plotting self.cryptocurrency_current_price.append(self.price) self.cryptocurrency_plot_time.append( datetime.datetime.now().strftime("%H:%M:%S")) print("Linear " + linear_predict_change) print("Multi Linear" + multi_linear_predict_change) print("Forest" + forest_predict_change) self.plot(linear_predict_change, multi_linear_predict_change, tree_predict_change, forest_predict_change) else: print("Still building set") except Exception as e: print("No tweets in the last hour", str(e))
print('Tesla: open price %f, current price %f' % (opn, pri)) # look at AA (Alcoa?) aa = Stock('AA') eps = aa.get_latest_eps() pri = aa.get_price() print('AA: latest EPS %f, current price %f' % (eps, pri)) # show symbols and company name for each # for s in symbols: # if s['isEnabled'] == True: print(s['symbol'] + ', ' + s['name']) # Apple apple = Stock('AAPL') apple.get_key_stats() apple.get_volume() apple.get_earnings() apple.get_quote() apple.get_quote()['peRatio'] apple.get_quote()['close'] def pStock(symbol): priceCriteria = 5.00 data = Stock(symbol) quote = data.get_quote() pe = quote['peRatio'] close = quote['close'] sts = data.get_key_stats() cName = sts['companyName']
from iexfinance import Stock from iexfinance import get_historical_data from datetime import datetime tsla = Stock('TSLA') print("open", tsla.get_open()) print("volume", tsla.get_volume()) print("price", tsla.get_price()) print("close", tsla.get_close()) start = datetime(2018,10,11) end = datetime(2018,10,13) df = get_historical_data("AAPL", start = start, end = end, output_format = 'pandas') print(df.head())