def regress(scores, pub_dates, symbol): pp = pprint.PrettyPrinter(indent=4) hist_data = stockretriever.get_historical_info(symbol) y = [] # prices two days after each article was published x = [] for i in range(len(pub_dates)): dt = two_days_later(pub_dates[i]) p = get_price_on_date(hist_data, dt) if p is None or get_price_on_date(hist_data, pub_dates[i]) is None: print("missing price information") continue if get_price_on_date(hist_data, pub_dates[i]) is None: print("missing price information") continue p = p - get_price_on_date(hist_data, pub_dates[i]) y.append(p) x.append(scores[i]) x = np.array(x) / norm(np.array(x)) y = np.array(y) / norm(np.array(y)) if len(x) < 2: return False slope, intercept, r_value, p_value, std_err = stats.linregress(x, y) print("slope:\t%f\tintercept:\t%f\nr:\t%f\tp:\t%f\tstd_err:\t%f" % (slope, intercept, r_value, p_value, std_err)) return slope, intercept, r_value, p_value, std_err
def fetchStockData(ticker): stock_data = {} try: print("Fetching for:" + ticker) stock_data[ticker] = stocks.get_historical_info(ticker) # pprint.pprint(stock_data[ticker]) except KeyError: print("Key not found:" + ticker) except stocks.NoResultsError: print("No Results found for:" + ticker) return stock_data
for stock in stock_info: stock_data.append({"symbol":stock["Symbol"], "date":stock["LastTradeDate"], "price":float(stock["LastTradePriceOnly"])}) #print stock_data for i in range(len(stock_data)): print json.dumps(stock_data[i]) outfile.write(json.dumps(stock_data[i])) outfile.write("\n") #json.dumps(stock_data[i], outfile) # sort_keys = True, indent = 4, ensure_ascii=False, default=date_handler) outfile.close() print "wrote data to %s" % out_path elif resp == 'historical': path = raw_input('Path: ') start_date = raw_input('Start Date (in mm/dd/yy format): ') end_date = raw_input('End Date (in mm/dd/yy format): ') for stock_symb in dj_30: out_path = path + "/historical_stocks_" + stock_symb + "_" + start_date.replace("/",".") + "_to_" + end_date.replace("/",".") + ".txt" try: with open(out_path, 'w') as outfile: stock_info = st.get_historical_info(stock_symb, start_date, end_date) stock_data = [] for stock in stock_info: stock_data.append({"symbol":stock_symb, "date": stock['Date'], "price":float(stock["Close"])}) print stock_data for i in range(len(stock_data)): outfile.write(json.dumps(stock_data[i])) outfile.write("\n") #json.dump(stock_data[i], outfile, sort_keys = True, indent = 4, ensure_ascii=False, default=date_handler) except Exception as e: print e print "wrote data to files located at: %s" % path
print json.dumps(stock_data[i]) outfile.write(json.dumps(stock_data[i])) outfile.write("\n") #json.dumps(stock_data[i], outfile) # sort_keys = True, indent = 4, ensure_ascii=False, default=date_handler) outfile.close() print "wrote data to %s" % out_path elif resp == 'historical': path = raw_input('Path: ') start_date = raw_input('Start Date (in mm/dd/yy format): ') end_date = raw_input('End Date (in mm/dd/yy format): ') for stock_symb in dj_30: out_path = path + "/historical_stocks_" + stock_symb + "_" + start_date.replace( "/", ".") + "_to_" + end_date.replace("/", ".") + ".txt" try: with open(out_path, 'w') as outfile: stock_info = st.get_historical_info( stock_symb, start_date, end_date) stock_data = [] for stock in stock_info: stock_data.append({ "symbol": stock_symb, "date": stock['Date'], "price": float(stock["Close"]) }) print stock_data for i in range(len(stock_data)): outfile.write(json.dumps(stock_data[i])) outfile.write("\n") #json.dump(stock_data[i], outfile, sort_keys = True, indent = 4, ensure_ascii=False, default=date_handler) except Exception as e: print e print "wrote data to files located at: %s" % path