def main(): group_str = ['large', 'medium', 'small'] objects = [] for gs in group_str: objects.append(load(gs + ".pkl")) loader = 0 for o in objects: for s in o.getShares(): try: data = s.get_historical(start, end) if data[0]['Date'] == end and \ data[-1]['Date'] == start: print "Stock valid: " + \ s.get_info()['symbol'] else: print "STOCK INVALID: " + \ s.get_info()['symbol'] except yf.YQLQueryError: print "get_hist error on: " + \ s.get_info()['symbol'] except KeyError: print "KeyError on date: " + \ s.get_info()['symbol'] except: print "Unexpecter error", sys.exc_info()[0] raise
def main(): # ewma = pandas.stats.moments.ewma # yahoo = Share('YHOO') try: groups = ['small', 'medium', 'large'] object_groups = [] #yahoo = Share('YHOO') #print yahoo.get_historical('2014-04-25', '2014-04-29') #print sys.argv[1], sys.argv[2] for g in groups: object_groups.append(load(g + '.pkl')) file_object = open("raw_data.txt","w+" ) for small_g in object_groups: for share in small_g.shares: # print share data_list = small_g.shares[share].get_historical(str(sys.argv[1]), str(sys.argv[2])) for index in range(len(data_list)): file_object.write('Symbol: '+str(data_list[index]['Symbol'])+ ' Date : '+str(data_list[index]['Date']) + ' Volume: '+str(data_list[index]['Volume']) + ' Close : '+str(data_list[index]['Close']) +"\n") #print(data_list[index]) # data_list = yahoo.get_historical('2014-04-25', '2014-05-29') except IOError: print "Error: can\'t find file or read data" else: print "Written content in the file successfully" file_object.close()
def main(): parser = OptionParser() parser.add_option("-o", "--output", dest="outfile", help="csv filename for output") (options, args) = parser.parse_args() # print "Options: " + str(options.outfile) writeToFile = False if options.outfile != None: writeToFile = True filename = options.outfile fd = open(filename, "wb") fd.write("type,name,prediction\n") objects = [] for s in group_strings: objects.append( load(s + ".pkl")) # groups = [] # for o in objects: # groups.append(o.getShares()) group_prediction = [] for g in objects: prediction_percent = [] for share in g.getShares(): #if share.get_info()['symbol'] != "INTU": # continue model = train(share, train_start, train_end,alg_type) predict = test(share, test_start, test_end, model,alg_type) if model == None or predict == None: continue prediction_percent.append(predict) if writeToFile: fd.write("share," + share.get_info()['symbol'] + \ "," + str(predict) + "\n") print "Share: " + share.get_info()['symbol'] + \ "\tpredict: " + str(predict) avg = np.mean(prediction_percent) group_prediction.append(avg) if writeToFile: fd.write("group," + g.name + "," + str(avg) + "\n") print "Group: " + g.name + "\tpredict: " + str(avg) + "\n" fd.close()
def main(start_date, end_date, printValue): # ewma = pandas.stats.moments.ewma # yahoo = Share('YHOO') try: #groups = ['small', 'medium', 'large'] groups = [ 'large'] object_groups = [] #yahoo = Share('YHOO') #print yahoo.get_historical('2014-04-25', '2014-04-29') #print sys.argv[1], sys.argv[2] for g in groups: object_groups.append(load(g + '.pkl')) file_object = open("raw_data.txt","w+" ) X_label = [None]*10 Y_label = [None]*10 i = 0 for small_g in object_groups: for share in small_g.shares: # print share X_label[i] = [] Y_label[i] = [] data_list = small_g.shares[share].get_historical(start_date, end_date) for index in range(len(data_list)): file_object.write('Symbol: '+str(data_list[index]['Symbol'])+ ' Date : '+str(data_list[index]['Date']) + ' Volume: '+str(data_list[index]['Volume']) + ' Open : '+str(data_list[index]['Open']) + ' Close : '+str(data_list[index]['Close']) + ' High : '+str(data_list[index]['High']) + ' Low : '+str(data_list[index]['Low'])+ ' Adj_Close : '+str(data_list[index]['Adj_Close']) + "\n") if( index < (len(data_list)-9) ): X_label[i].append([ data_list[index]['Volume'],data_list[index]['Open'],data_list[index]['Close'],data_list[index]['High'],data_list[index]['Low'],data_list[index]['Adj_Close'], ema(data_list, 10, data_list[index]['Date'])[1][0]]) j = index - 1 if data_list[index]['Close'] <= data_list[j]['Close']: Y_label[i].append(1) if data_list[index]['Close'] > data_list[j]['Close']: Y_label[i].append(2) i=+1 if(printValue): print X_label[0] print Y_label[0] else: return [X_label, Y_label] #print(data_list[index]) # data_list = yahoo.get_historical('2014-04-25', '2014-05-29') except IOError: print "Error: can\'t find file or read data" else: print "Written content in the file successfully" file_object.close()
def main(): largegroup = load('large.pkl') tickers = largegroup.getTickers() first_share = largegroup.shares[tickers[0]] hist_data = first_share.get_historical('2014-04-01', '2014-04-29') smas = sma(hist_data, 10) [emas, emas_array] = ema(hist_data, 10) print "Simple Moving Averages" for date in smas: print date + ": " + str(smas[date]) print "\nExponential Moving Averages" for date in emas: print date + ": " + str(emas[date]) #pprint(hist_data) for v in emas_array: print str(v)
from object_saver import load groups = ['small', 'medium', 'large'] object_groups = [] for g in groups: object_groups.append(load(g + '.pkl')) for og in object_groups: og.printShares()
def main(): parser = OptionParser() parser.add_option("-o", "--output", dest="outfile", help="csv filename for output") parser.add_option("-p", "--predict", action="store_true", dest="predict", default=False, help="Run prediction metrics") (options, args) = parser.parse_args() # print "Options: " + str(options.outfile) # print "Options:" + str(options.verbose) run_predict = options.predict writeToFile = False if options.outfile != None: writeToFile = True filename = options.outfile fd = open(filename, "wb") fd.write("type,name,prediction\n") else: filename = None fd = None objects = [] for s in group_strings: objects.append( load(s + ".pkl")) # groups = [] # for o in objects: # groups.append(o.getShares()) group_prediction = [] for g in objects: prediction_percent = [] retry_count = 5 while retry_count > 0: try: for share in g.getShares(): #if share.get_info()['symbol'] != "INTU": # continue model = train(share, train_start, train_end) if model == None: continue g.addModel(share, model) if run_predict: predict = test(share, test_start, test_end, model) if predict == None: continue else: predict = 0 prediction_percent.append(predict) if writeToFile: fd.write("share," + share.get_info()['symbol'] + \ "," + str(predict) + "\n") try: print "Share: " + share.get_info()['symbol'] + \ "\tpredict: " + str(predict) except yf.YQLQueryError: print "StockPrediction - trying to print Share: \ symbol prediction. Share: " + share.get_info() raise except yf.YQLQueryError: print "StockPrediction - YQLQueryError on train and test. Share: \ " + share.get_info() retry_count = retry_count - 1 continue except: print "StockPrediction - unexpectederror on train and test. Share: \ " + share.get_info() retry_count = retry_count - 1 if retry_count == 0: raise else: continue break avg = np.mean(prediction_percent) group_prediction.append(avg) if writeToFile: fd.write("group," + g.name + "," + str(avg) + "\n") print "Group: " + g.name + "\tpredict: " + str(avg) + "\n" if writeToFile: fd.close() for g in objects: [p1, p2] = trade(g, test_start, test_end, g.name + ".csv") print "Group: " , g.name + "\tstart: " , str(p1) \ , "\tend: " , str(p2)