def findSimilar(currentPatternIndex): #takes a pattern and checks past data, #returns list of previous pattern start points in past data and 'pattern closeness score' reqCloseScore = settings.reqCloseScore methodNumber = settings.closeMethodNumber predictionDistance = settings.futureDistance historicData = settings.historicData similarPatternsIndex = [] pastData = settings.historicData patternLength = settings.patternLength currentPattern = historicData[currentPatternIndex : currentPatternIndex + patternLength] for startPoint in range( 0 , len(pastData) - predictionDistance - patternLength): patternToCheck = pastData[startPoint : (startPoint + patternLength)] #print(str(startPoint)) #print('toCheck : ' + str(len(patternToCheck))) #print('current : ' + str(len(currentPattern))) closeScore = comparePattern(currentPattern, patternToCheck, methodNumber) if closeScore > reqCloseScore: if closeScore != 100: similarPatternsIndex.append( [startPoint , closeScore] ) return similarPatternsIndex
#yList = futureResults(similarPatterns) yList = normalisedFuture print(yList) print(int(len(yList))) print(xList) print(int(len(xList))) #pyplot.scatter(xList, yList) pyplot.scatter(25,(historicData[startPosition + length + futureDistance])*ratio,color = 'blue') pyplot.show() pastPatterns = generatePastPatterns(len(currentPattern), historicData) similarPatterns = [] from shapeComparison import comparePattern for i in pastPatterns: #print('Past pattern : '+str(i)) if comparePattern(currentPattern,i[0],1) > 35: similarPatterns.append(i) futurePrices = [] def futureResults(similarPatterns): futureResults = [] fururePrices = [] for i in similarPatterns: futurePrice = historicData[i[1] + len(currentPattern) + futureDistance] futurePrices.append(futurePrice) futurePercentage = percentageChange(historicData[i[1] + len(currentPattern)],futurePrice) futureResults.append(futurePercentage) return futureResults print('Found ' +str(len(similarPatterns)) + ' similar patterns') print('Done')
print(int(len(yList))) print(xList) print(int(len(xList))) #pyplot.scatter(xList, yList) pyplot.scatter( 25, (historicData[startPosition + length + futureDistance]) * ratio, color='blue') pyplot.show() pastPatterns = generatePastPatterns(len(currentPattern), historicData) similarPatterns = [] from shapeComparison import comparePattern for i in pastPatterns: #print('Past pattern : '+str(i)) if comparePattern(currentPattern, i[0], 1) > 35: similarPatterns.append(i) futurePrices = [] def futureResults(similarPatterns): futureResults = [] fururePrices = [] for i in similarPatterns: futurePrice = historicData[i[1] + len(currentPattern) + futureDistance] futurePrices.append(futurePrice) futurePercentage = percentageChange( historicData[i[1] + len(currentPattern)], futurePrice) futureResults.append(futurePercentage) return futureResults