Advanced Darwin Filtering Tool
My motivation to make this filtering tool into a complete product (web app) died a sad death - not an unusual occurrence. I truly HATE making user interfaces - I had finished writing the main filtering part in C almost 3 weeks ago, but couldn’t bring myself to do any work on UI and client handling. So I am just going to put out the “unfinished” product. It is still quite useful/usable - but using it isn’t a breeze. I don’t think I will be making a UI for this anytime soon (I cannot stress enough how much I hate UI making). Enough blabbering!!! DOWNLOAD HERE
Once Rules/Never Rules
That’s right. We got rules again. Rules are evaluated with an AND expression. Once rules will select a darwin if they match at least ONCE, never rules will select a darwin if they NEVER match.
There is a rules file. First two lines are Once Rules Lower Bound and Upper Bound respectively - Next two lines are Never Rules Lower and Upper Bound respectively. The rules file is called currentTest.csv.
You can edit this this file in Excel or any text editor, BUT REMEMBER, if you edit it in EXCEL, add an apostrophe before TIMESTAMPS, otherwise excel will round that value. Remember not to change format of the file, keep saving as CSV.
Here is how the file looks
In the downloaded zip file, you will find already compiled executables for windows and linux platforms - if you don’t want to open them (bad security, don’t open random executables) I included the C code. You can compile it yourself.
How do I use this thing - Example
Timestamps require epoch timestamps in milliseconds. You can convert your chosen timestamps to epoch time at https://currentmillis.com/
- Select Darwins from period Dec 20, 2017 - Dec 31, 2017
- At least 50% total return (Quote > 150)
- EX = 10
- Dscore > 70
- Max Drawdown > -20 (between 0 and -20)
- At least 365 days of history
- Filter during Jan 1, 2017 - Dec 31, 2017 Peiod
- When EX = 10, Dscore NEVER falls below 55
Working with results
After entering rules, you save the rules file, and run the executable. It will filter the darwins according to your specifications. Next up, let us assume we wish to construct a portfolio and “forward test” these darwins.
- Some Darwins are/were dead/inactive, but they will still keep showing up in the results. We need to manually filter them out. For this example, we will look at the Dec 2, 2017-Dec 31-2017 period, and see if any activity is present in Darwins, then eliminate non-active Darwins. Here is how
Now that we got our results, and cleaned them up of inactive Darwins (in this case STV is not inactive, so maybe looking at wider range of activity is warranted) let us run a forward test
- Buy at 2018-01-01
- Exit if Dscore < 55
OUCH. Clearly, extremely simplistic selection based purely on Dscore and some few other criteria are ineffective for portfolio creation.
I realize that using this might prove challenging if you don’t have much experience with computer related stuff. Give it a try, and if you get stuck, write here with screenshots, I will try to lend a hand.
Important: Close your results file before running filter program. Otherwise it can’t write to an open file.