Sequence Analyzer (SA) is an exhaustive sequence mining application, built originally for retail Foreign Exchange trading and strategy development, but can be used for other fields of study.
Currently, SA has two features. The first feature allows for the discovery of all patterns within a range of lengths (Pattern Range) in a sequence. A frequency chart is displayed on the left panel of all found patterns and frequency of occurrences.
The second feature allows for the mining of forecasts/outcomes within a range of lengths (Forecast Range) after a preceding pattern (Pattern) was found in the sequence. Again, a frequency chart is displayed on the right panel of all identified outcomes and their frequencies.
I have also included a sample file that one can play around with in order to see what it can do. The sample sequence is based on a classification algorithm for regime analysis in my personal trading. Without giving away too much, each letter defines a new regime cycle (case-sensitive), so have some fun and see what you can mine out of it.
I may add more features in the future, but it’s ready to be used as is.
Edit: January 22, 2014 - Uploaded the newest version.
You’re going to have to play around to figure out exactly what this application is used for. My guess is that 1/100 traders on this forum will understand its purpose(s).
Do you remember the hotel scene in the first crocodile dundee film? One day I’m going to shout at you out of a window what it’s for and its going to be awesome.
I’ve been working on it some more (it’s my small project for the holidays) and have already added some more features. I am currently working on adding Wald–Wolfowitz runs test into the application.
Any of you guys have anything else you want in it?
I agree, if you dont know what it is, or what its for then you’re not going to be able to understand the output.
I dont want to be a total pain in the a$$ but hey its Christmas. I think the existing tool is awesome. Something that helps with the encoding would be cool too. This is obviously tricky since, you cannot assume anything about the raw input data or the details of the encoding function. I can maybe think about this a little more if you have any interest.
By encoding i mean the function you apply to market data to give you the raw discrete sequence of AbbABa etc. I dont know what you use to decide individual regime in your example but the thing that takes in the market data and outputs the discrete sequence.
With the application, there is no set sequence that an individual must analyze. They can analyze anything they want. I’m sure coding a small script to create these sequences would not be very difficult for most beginning programmers.
It could be as simple as:
Up Bar = A
Down Bar = B
The user would have a sequence of A&Bs.
Something more on the intermediate level would be to first classify the bars through clustering (let’s say we want to cluster into 6 groups). K-Means would do the trick for this.
Group 1 = 1
Group 2 = 2
Group 3 = 3
Group 4 = 4
… And so on.
This time you’d have a sequence of 1-6s, and again the SA could mine for possible patterns and perform forecasts on patterns.
Again, I encourage traders to think outside the box… Who says the encoding must be based on price?
Example:
You could use sentiment analysis (natural language processing) on Tweets with the hashtag “#EURUSD” (can be scanned via Twitter API). Then, using cluster analysis, cluster the results into “x” amount of groups. Create a time-series sequence to be analyzed via Sequence Analyzer. See what you can find.
There’s obviously other routes of course, this is just an example. With the above example, I can see someone working with unsupervised learning (neural nets). The sky’s the limit.