Jul-25-2019, 05:16 AM
Hello Everyone!
I have some functions both pulling data, stocks for one and indices for the other, from yahoo finance. The output of the function looks something like this:
{'AAPL': 208.67, 'MSFT': 140.72}<--current price
{'AAPL': 207.67, 'MSFT': 138.9}<--open price
{'AAPL': 209.15, 'MSFT': 140.74}<--high
{'AAPL': 207.17, 'MSFT': 138.85}<--low
{'AAPL': -0.00081401155, 'MSFT': 0.010266409}<--percentage change
{'AAPL': 14991567, 'MSFT': 20738275}<--volume
What's attempted is to compare the percentage changes of elements of stocks = ['AAPL','MSFT','TSLA'] against that of indices = ['^IXIC','^DJI','^GSPC'] and then do something from there (such as print something for example).
Thank you for the help!
The error i get when running the script is:
I have some functions both pulling data, stocks for one and indices for the other, from yahoo finance. The output of the function looks something like this:
{'AAPL': 208.67, 'MSFT': 140.72}<--current price
{'AAPL': 207.67, 'MSFT': 138.9}<--open price
{'AAPL': 209.15, 'MSFT': 140.74}<--high
{'AAPL': 207.17, 'MSFT': 138.85}<--low
{'AAPL': -0.00081401155, 'MSFT': 0.010266409}<--percentage change
{'AAPL': 14991567, 'MSFT': 20738275}<--volume
What's attempted is to compare the percentage changes of elements of stocks = ['AAPL','MSFT','TSLA'] against that of indices = ['^IXIC','^DJI','^GSPC'] and then do something from there (such as print something for example).
Thank you for the help!
The error i get when running the script is:
Error:Traceback (most recent call last):
File "C:\Users\bgeor\Desktop\valChg_test1.py", line 38, in <module>
if percent_stock < percent_index:
File "C:\Users\bgeor\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\ops.py", line 2096, in f
raise ValueError('Can only compare identically-labeled '
ValueError: Can only compare identically-labeled DataFrame objectsThe script:from yahoofinancials import YahooFinancials
#import all modules
from yahoofinancials import YahooFinancials
import pandas as pd1
import pandas as pd2
#Stock stickers to get data - declared globally
stocks = ['AAPL','MSFT','TSLA']
#NASDAQ Composite (^IXIC), Dow Jones Industrial Average (^DJI), S&P 500 (^GSPC)
indices = ['^IXIC','^DJI','^GSPC']
#Function to extract stock data
def getStockData():
yahoo_financials = YahooFinancials(stocks)#stocks = ['AAPL','MSFT','TSLA']
price = yahoo_financials.get_current_price()
Open = yahoo_financials.get_open_price()
High = yahoo_financials.get_daily_high()
Low = yahoo_financials.get_daily_low()
perChg1 = yahoo_financials.get_current_percent_change()
return(price, Open, High, Low, perChg1)
#Function to extract index data
def getIndexData():
yahoo_financials = YahooFinancials(indices)#indices = ['^IXIC','^DJI','^GSPC']
price = yahoo_financials.get_current_price()
Open = yahoo_financials.get_open_price()
High = yahoo_financials.get_daily_high()
Low = yahoo_financials.get_daily_low()
perChg2 = yahoo_financials.get_current_percent_change()
return(price, Open, High, Low, perChg2)
#Here we want to access the directional movement of stocks = ['AAPL','MSFT','TSLA']
#by comparing it to that of perccentage change of indices = ['^IXIC','^DJI','^GSPC']
for row in getStockData():
percent_stock = pd1.DataFrame([{'perChg1' : row}])
#carry on a logic here
for val in getIndexData():
percent_index = pd2.DataFrame([{'perChg2' : val}])
#compare percentage change of (stocks = ['AAPL','MSFT','TSLA']) against that of (indices = ['^IXIC','^DJI','^GSPC'])
if percent_stock < percent_index:
print(percent_stock)
