That's awsome! I don't quite understand the reasoning behind the math yet though.
Could you maybe point me to some reading explaining the logic of the method?
Hem... Actually, I came up with this by myself. You see, it's only a step futher Goomboo's method: his and mine share the input signal (ema-diff), but the behaviour is different. Goomboo's one is acting like a Schmitt Trigger (
http://en.wikipedia.org/wiki/Schmitt_trigger), as it has only three output states (BUY EVERYTHING, SELL EVERYTHING, HOLD).
After operating the chrome bot for a while, i noticed that useful information was given not only by the ema-diff current value (is it positive? negative? above/under some threshold?), but also its
trend, too. For instance, when the price has a peak, the ema-diff
derivative changes sign.
Since I'm an engineer in the field of Control Theory, I wondered if
smoothening Goomboo's strategy worked. So, instead of brutally buying/selling everything, the strategy I came up with should gradually buy or sell small quantities of btc, depending on the current ema value, its variation, and its past history.
So I fetched Gox's historic data, and wrote a small piece of software which simulates this aforementioned PID (
http://en.wikipedia.org/wiki/PID_controller) strategy. Since I didn't know which parameters would fit best, I ran multiple instancies with different values.
Behaviours similar to Goomboo's strategy can be achieved with positive kP,kD and kI parameters (with kD >> kP in order to sell at the top and buy at the bottom).
Finally, I discovered that the best outcomes (20-30% profit from 1st to 17th may) came with NEGATIVE kI and kD parameters.
In a few words, this strategy is good for ranging markets. It buys gradually when the price falls, and it sells when it rises. But
it will not profit if the price rises (or falls) for too long. I will attach some simulation charts in a minute.
I've been searching for something similar on Google, but couldn't find anything. Perhaps it has been given some other name (other than PID, which is a term from a totally different field), and it uses some other different signal (or set of signals, multiple inputs give more information than one, see MACD).
But this one is very similar to the original one, and can be understood by almost everyone, as it's quite simple.
Any thoughts?