Although simulations will predict good profits, you will probably lose your money doing this due to counterparty risk. Counterparty risk is the risk that, between the time you click the 'sell' button and the time you actually get the money deposited in your bank account a few days later, the exchange goes insolvent.<p>When a given coin trades at different prices on two exchanges (which is what these arbitrage algorithms look for), it will try to buy that currency on the cheap one and sell on the expensive one.<p>The main reason coins have different prices (more than a few cents) on different exchanges is that people are worried about the exchange being insolvent.<p>For instance, during MtGox's slide into doom, Bitcoin was cheap there. So this algorithm would have been busily buying Bitcoin with USD on MtGox, then transferring the Bitcoin to another exchange to sell, so it could pump the USD back into MtGox. Since withdrawals from MtGox were throttled, you would have built up a large balance there. When they shut down, you would have lost bigly.<p>People do make money doing arbitrage between exchanges, but you need a sophisticated model that considers counterparty risk, which isn't something you can read from a price sheet.
Since the history of markets there have been people who believed they could define a set of rules that would allow them to win more than they lose (reliably enough to make it worth the gamble).<p>There are many reasons why this is a fool's belief, at least with one strategy over a long term. As many people pointed out already, properly calculating risk is the usual failure. But even if you properly calculate risk, there are still possibilities (which you may deem unreasonably small to consider) which can happen. This is was the final straw that caused the 2007/8 failures. Any possibility greater than zero can happen. It doesn't matter what your models prepare you for. If that "virtually impossible" scenario occurs, you lose.<p>The more commonly successful approach to algo trading is to identify an inefficiency in the market and capitalize on that. But that is a limited time opportunity. You either eat up all the inefficiency yourself (if you're lucky), or other people catch on and help you make the market properly efficient. Then you're on to the next game. And in many cases, the inefficiency you are capitalizing on is due to a lack of capability of your broker(s). And brokers don't like when you cost them money repeatedly. Eventually they catch on, and they shut you down. So you trade your time for money by way of constantly searching for new brokers and gaining access to a market only so you can profit your way right out of that market.<p>Summary: create value to win. Any other method of profit is an eventual failure.
This is a decent first-steps guide into analyzing historical trading data. With resources like Quandl, QuantConnect, etc continuing to improve, hopefully we will see more and more people diving into the data.<p>That being said, the "todos" at the end of this article kind of understate just how much work is left to be done before a strategy like this could be put into production. Ignoring the actual viability of a simple moving average cross signal, you could have the best strategy out there but would never stand a chance without significant time and effort committed to the execution and risk management sides of automated trading.<p>If building trading systems in the crypto world is something that interests you feel free to reach out to me, company / contact info is in my HN profile.
During this summer I performed a similar analysis with SMA and variations from it. My initial explorations looked very promising so I started saving market data and build a Python back-tester to test it. Once I applied exchange fees, slippage and simulated over longer periods things changed. I was no longer able to create a profitable strategy that performed well in longer time-frames over multiple markets. However its something I still want to work with.
"Hello Hacker News! Thanks for all the views. Due to increased traffic, Plot.ly won’t serve any more plots until tomorrow. Come back then?"<p>A bit off-topic, but it teaches us a lesson about avoiding getting locked-in by too many services. If I'd use a plot in my blog post I'd like it to keep working even when I get more traffic than usual. Especially if my whole blog post is useless without it.
This is cool. If you want to go further, checkout a small tool I made that automates technical analysis for crypto markets with major price signals: <a href="https://github.com/AbenezerMamo/crypto-signal" rel="nofollow">https://github.com/AbenezerMamo/crypto-signal</a>
I'm building a trading bot (ruby) that uses a collection of signals to trade. I have been working on the backtesting to do validation of different strategies across different pairs and intervals. The highest i've gotten it so far is 120X from start of LTC/BTC, but thats also on a fairly aggressive setting (and obviously idealistic);<p>SMA can work, but it can also bite you. I think using only 1 technical indicator is asking for trouble when determining entry. Use at least 2, but no more than 5 or 6.<p>As a software developer, its a cool field to tinker in. But theres lots of ignorance, hype, and crap.<p>For anyone who wants to build a simple bot, checkout gekko
<a href="https://gekko.wizb.it" rel="nofollow">https://gekko.wizb.it</a>
I'm unable to see the charts:<p><pre><code> Refused to display 'https://plot.ly/~mthwsjc/69.embed' in a frame because it set 'X-Frame-Options' to 'sameorigin'.</code></pre>