def printError(my_dpi, data): """ All data contanining the stock price info are retrieved from the database given the stock name :param my_dpi: dpi screen :param data: data to be plot :param max_error: maximum error allowed """ try: stockFile = [] try: for eachLine in data: splitLine = eachLine.split(',') if len(splitLine) == 2: if 'values' not in eachLine: stockFile.append(eachLine) except Exception as e: print(str(e), 'failed to organize pulled data.') except Exception as e: print(str(e), 'failed to pull pricing data') try: date, closep_raw = np.loadtxt( stockFile, delimiter=',', unpack=True, converters={0: mdates.bytespdate2num('%Y%m%d')}) closep = closep_raw[::-1] max_error = 0.1 while max_error < float(2 * max(closep)): segments1 = segment.slidingwindowsegment(closep, fit.interpolate, fit.sumsquared_error, max_error) segments2 = segment.slidingwindowsegment(closep, fit.regression, fit.sumsquared_error, max_error) err1 = str(evaluate_MSE(closep, segments1)) err4 = str(evaluate_MSE(closep, segments2)) segments1 = segment.topdownsegment(closep, fit.interpolate, fit.sumsquared_error, max_error) segments2 = segment.topdownsegment(closep, fit.regression, fit.sumsquared_error, max_error) err2 = str(evaluate_MSE(closep, segments1)) err5 = str(evaluate_MSE(closep, segments2)) segments1 = segment.bottomupsegment(closep, fit.interpolate, fit.sumsquared_error, max_error) segments2 = segment.bottomupsegment(closep, fit.regression, fit.sumsquared_error, max_error) err3 = str(evaluate_MSE(closep, segments1)) err6 = str(evaluate_MSE(closep, segments2)) print( str(max_error) + " " + err1 + " " + err2 + " " + err3 + " " + err4 + " " + err5 + " " + err6) max_error += 0.1 except e: print("Error")
def draw_window_API(my_dpi, max_error, stockToFetch): """ All data contanining the stock price info are retrieved from the database given the stock name :param my_dpi: dpi screen :param data: data to be plot :param max_error: maximum error allowed """ fig = plt.figure(figsize=(1000 / my_dpi, 700 / my_dpi), dpi=96, edgecolor='k', facecolor='black') fig.suptitle("PIECEWISE SEGMENTATION INTERPOLATION", fontsize="15", color="white", fontweight='bold', bbox={ 'facecolor': 'red', 'alpha': 0.5, 'pad': 10 }) try: print('Currently Pulling', stockToFetch) urlToVisit = 'http://chartapi.finance.yahoo.com/instrument/1.0/' + stockToFetch + '/chartdata;type=quote;range=5y/csv' stockFile = [] try: sourceCode = urllib.request.urlopen(urlToVisit).read().decode() splitSource = sourceCode.split('\n') for eachLine in splitSource: splitLine = eachLine.split(',') if len(splitLine) == 6: if 'values' not in eachLine: stockFile.append(eachLine) except Exception as e: print(str(e), 'failed to organize pulled data.') except Exception as e: print(str(e), 'failed to pull pricing data') try: date, closep, highp, lowp, openp, volume = np.loadtxt( stockFile, delimiter=',', unpack=True, converters={0: mdates.bytespdate2num('%Y%m%d')}) SP = len(date) # First subplot ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=3) segments = segment.slidingwindowsegment(closep, fit.interpolate, fit.sumsquared_error, max_error) draw_plot(closep, plt, ax1, "Sliding window with interpolation") draw_segments(segments, 'red') plt.ylabel('Stock Price') plt.title("Sliding window", color='w') # Second subplot ax2 = plt.subplot2grid((3, 3), (1, 0), colspan=3) segments = segment.topdownsegment(closep, fit.interpolate, fit.sumsquared_error, max_error) draw_plot(closep, plt, ax2, "Sliding window with interpolation") draw_segments(segments, 'green') plt.ylabel('Stock Price') plt.title("Top down", color='w') # Third subplot ax3 = plt.subplot2grid((3, 3), (2, 0), colspan=3) segments = segment.bottomupsegment(closep, fit.interpolate, fit.sumsquared_error, max_error) draw_plot(closep, plt, ax3, "Sliding window with interpolation") draw_segments(segments, 'blue') plt.ylabel('Stock Price') plt.title("Bottom up", color='w') plt.subplots_adjust(hspace=0.3) plt.show() except e: print("Error")
def draw_window(my_dpi, data, max_error): """ All data contanining the stock price info are retrieved from the database given the stock name :param my_dpi: dpi screen :param data: data to be plot :param max_error: maximum error allowed """ fig = plt.figure(figsize=(1000 / my_dpi, 700 / my_dpi), dpi=96, facecolor='black') fig.suptitle("PIECEWISE SEGMENTATION INTERPOLATION", fontsize="15", color="white", fontweight='bold', bbox={ 'facecolor': 'red', 'alpha': 0.5, 'pad': 10 }) try: stockFile = [] try: for eachLine in data: splitLine = eachLine.split(',') if len(splitLine) == 2: if 'values' not in eachLine: stockFile.append(eachLine) except Exception as e: print(str(e), 'failed to organize pulled data.') except Exception as e: print(str(e), 'failed to pull pricing data') try: date, closep_raw = np.loadtxt( stockFile, delimiter=',', unpack=True, converters={0: mdates.bytespdate2num('%Y%m%d')}) closep = closep_raw[::-1] print(max(closep)) max_error = max(closep) * 2.5 # First subplot ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=3) segments = segment.slidingwindowsegment(closep, fit.interpolate, fit.sumsquared_error, max_error) draw_plot(closep, plt, ax1, "Sliding window with interpolation") draw_segments(segments, 'red') plt.ylabel('Stock Price') plt.title("SLIDING WINDOW - ERROR " + str(evaluate_global_error(closep, segments)), color='Yellow', fontweight='bold') # Second subplot ax2 = plt.subplot2grid((3, 3), (1, 0), colspan=3) segments = segment.topdownsegment(closep, fit.interpolate, fit.sumsquared_error, max_error) draw_plot(closep, plt, ax2, "Sliding window with interpolation") draw_segments(segments, 'green') plt.ylabel('Stock Price') plt.title("TOP DOWN - ERROR " + str(evaluate_global_error(closep, segments)), color='Yellow', fontweight='bold') # Third subplot ax3 = plt.subplot2grid((3, 3), (2, 0), colspan=3) segments = segment.bottomupsegment(closep, fit.interpolate, fit.sumsquared_error, max_error) segments = segment.bottomupsegment(closep, fit.interpolate, fit.sumsquared_error, max_error) draw_plot(closep, plt, ax3, "Sliding window with interpolation") draw_segments(segments, 'blue') plt.ylabel('Stock Price') plt.title("BOTTOM UP - ERROR " + str(evaluate_global_error(closep, segments)), color='Yellow', fontweight='bold') plt.subplots_adjust(hspace=0.3) plt.show() except e: print("Error")
ax = gca() for segment in segments: line = Line2D((segment[0], segment[2]), (segment[1], segment[3])) ax.add_line(line) with open("example_data/16265-normalecg.txt") as f: file_lines = f.readlines() data = [float(x.split("\t")[2].strip()) for x in file_lines[100:320]] max_error = 0.005 # sliding window with regression figure() segments = segment.slidingwindowsegment(data, fit.regression, fit.sumsquared_error, max_error) draw_plot(data, "Sliding window with regression") draw_segments(segments) # bottom-up with regression figure() segments = segment.bottomupsegment(data, fit.regression, fit.sumsquared_error, max_error) draw_plot(data, "Bottom-up with regression") draw_segments(segments) # top-down with regression figure() segments = segment.topdownsegment(data, fit.regression, fit.sumsquared_error, max_error) draw_plot(data, "Top-down with regression") draw_segments(segments)
ax = gca() for segment in segments: line = Line2D((segment[0], segment[2]), (segment[1], segment[3])) ax.add_line(line) with open("example_data/16265-normalecg.txt") as f: file_lines = f.readlines() data = [float(x.split("\t")[2].strip()) for x in file_lines[100:320]] max_error = 0.005 #sliding window with regression figure() segments = segment.slidingwindowsegment(data, fit.regression, fit.sumsquared_error, max_error) draw_plot(data, "Sliding window with regression") draw_segments(segments) #bottom-up with regression figure() segments = segment.bottomupsegment(data, fit.regression, fit.sumsquared_error, max_error) draw_plot(data, "Bottom-up with regression") draw_segments(segments) #top-down with regression figure() segments = segment.topdownsegment(data, fit.regression, fit.sumsquared_error, max_error) draw_plot(data, "Top-down with regression")
def draw_window_API(my_dpi, max_error, stockToFetch): """ All data contanining the stock price info are retrieved from the database given the stock name :param my_dpi: dpi screen :param data: data to be plot :param max_error: maximum error allowed """ fig = plt.figure(figsize=(1000/my_dpi, 700/my_dpi), dpi=96, edgecolor='k', facecolor='black') fig.suptitle("PIECEWISE SEGMENTATION REGRESSION", fontsize="15", color="white", fontweight='bold', bbox={'facecolor':'red', 'alpha':0.5, 'pad':10}) try: print('Currently Pulling',stockToFetch) urlToVisit = 'http://chartapi.finance.yahoo.com/instrument/1.0/'+stockToFetch+'/chartdata;type=quote;range=5y/csv' stockFile =[] try: sourceCode = urllib.request.urlopen(urlToVisit).read().decode() splitSource = sourceCode.split('\n') for eachLine in splitSource: splitLine = eachLine.split(',') if len(splitLine) == 6: if 'values' not in eachLine: stockFile.append(eachLine) except Exception as e: print(str(e), 'failed to organize pulled data.') except Exception as e: print(str(e), 'failed to pull pricing data') try: date, closep, highp, lowp, openp, volume = np.loadtxt(stockFile, delimiter=',', unpack=True, converters={0: mdates.bytespdate2num('%Y%m%d')}) SP = len(date) # First subplot ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=3) segments = segment.slidingwindowsegment(closep, fit.regression, fit.sumsquared_error, max_error) draw_plot(closep,plt,ax1,"Sliding window with regression") draw_segments(segments,'red') plt.ylabel('Stock Price') plt.title("Sliding window", color='w') # Second subplot ax2 = plt.subplot2grid((3, 3), (1, 0), colspan=3) segments = segment.topdownsegment(closep, fit.regression, fit.sumsquared_error, max_error) draw_plot(closep, plt, ax2, "Sliding window with regression") draw_segments(segments,'green') plt.ylabel('Stock Price') plt.title("Top down", color='w') # Third subplot ax3 = plt.subplot2grid((3, 3), (2, 0), colspan=3) segments = segment.bottomupsegment(closep, fit.regression, fit.sumsquared_error, max_error) draw_plot(closep, plt, ax3, "Sliding window with regression") draw_segments(segments,'blue') plt.ylabel('Stock Price') plt.title("Bottom up", color='w') plt.subplots_adjust(hspace=0.3) plt.show() except e: print("Error")
def draw_window(my_dpi, data): """ All data contanining the stock price info are retrieved from the database given the stock name :param my_dpi: dpi screen :param data: data to be plot :param max_error: maximum error allowed """ fig = plt.figure(figsize=(1000/my_dpi, 700/my_dpi), dpi=96, facecolor='black') fig.suptitle("PIECEWISE SEGMENTATION REGRESSION", fontsize="15", color="white", fontweight='bold', bbox={'facecolor':'red', 'alpha':0.5, 'pad':10}) try: stockFile = [] try: for eachLine in data: splitLine = eachLine.split(',') if len(splitLine) == 2: if 'values' not in eachLine: stockFile.append(eachLine) except Exception as e: print(str(e), 'failed to organize pulled data.') except Exception as e: print(str(e), 'failed to pull pricing data') try: date, closep_raw = np.loadtxt(stockFile, delimiter=',', unpack=True, converters={0: mdates.bytespdate2num('%Y%m%d')}) closep = closep_raw[::-1] max_closep = max(closep) if(max_closep > 2.0): max_error = max(closep)*2.7; else: max_error = max(closep)/2.5; print(max_error) # First subplot ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=3) segments = segment.slidingwindowsegment(closep, fit.regression, fit.sumsquared_error, max_error) draw_plot(closep,plt,ax1,"Sliding window with regression") draw_segments(segments,'red') plt.ylabel('Stock Price') plt.title("SLIDING WINDOW - ERROR "+str(evaluate_global_error(closep, segments)), color='Yellow', fontweight='bold') # Second subplot ax2 = plt.subplot2grid((3, 3), (1, 0), colspan=3) segments = segment.topdownsegment(closep, fit.regression, fit.sumsquared_error, max_error) draw_plot(closep, plt, ax2, "Sliding window with regression") draw_segments(segments,'green') plt.ylabel('Stock Price') plt.title("TOP DOWN - ERROR "+str(evaluate_global_error(closep, segments)), color='Yellow', fontweight='bold') # Third subplot ax3 = plt.subplot2grid((3, 3), (2, 0), colspan=3) segments = segment.bottomupsegment(closep, fit.regression, fit.sumsquared_error, max_error) draw_plot(closep, plt, ax3, "Sliding window with regression") draw_segments(segments,'blue') plt.ylabel('Stock Price') plt.title("BOTTOM UP - ERROR "+str(evaluate_global_error(closep, segments)), color='Yellow', fontweight='bold') plt.subplots_adjust(hspace=0.3) plt.show() except e: print("Error")