示例#1
0
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
示例#2
0
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()
示例#4
0
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() 
示例#5
0
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()

 
示例#7
0
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)