I run this website that uses artificial intelligence to try to predict future bitcoin prices (and now, after a major upgrade, eur/usd and aud/usd exchange rates). I will soon be adding more currency pairs as well. The predictions are displayed on simple charts. Starting tomorrow, you'll also be able to see charts showing its performance by showing predicted vs actual prices.
Any feedback or suggestions would be much appreciated! That being said, I recognize that this is 4chan and finding constructive feedback might be a longshot lol...
been watching your site before. inspired from it to do some of my own projects.
However neural nets only gets so good at predicting, but there are way too many factors which the NN can't take into account (news, forum sentiment, core devs not reaching consensus, etc)
It's true that it is very difficult to take into account everything. Arguably impossible. I guess the key is to incorporate all of the important factors into the inputs.
You can use sentiment/news data as input to a neural network, and I am planning on doing that. As long as you can quantify something, it can be used as an input. Sentiment can be quantified, and there are a bunch of ways that key words and other aspects of news data can be converted into numeric values that can be used as inputs. I am hoping on doing this in the future, and I think it will greatly improve accuracy. We will see how it goes!
Testing it on EUR/USD. It gets the sentiment of the market right, but it is a little bit off. I think it is not adjusting accordingly to a real time. Also I think the chart freezes after hour or so, thus it's not possible to refresh it and you must log off/on again to make it work, which is a little annoying.
Yeah I actually haven't tested the eur/usd or aud/usd ones at all yet. I just created those yesterday. All of the algorithms are still being tweaked.
So I haven't done much testing at all yet, just testing on historic data. I use the past ~1 year's worth of price data to train the neural networks, but I allocate 20% of it randomly for testing. I test it on that 20% and the average error of each point in each prediction tends to be between 0.2 to 0.5% for the 24 hour charts. That sounds low but it doesn't necessarily mean it will perform in real life so we'll see.
Tell us smth about your NN models. How many layers, how many neurons per layer, what activation functions are being used, what error measure are you using? Atm sounds pretty vanilla to me m8
I don't trade at all actually, although I might in the future. I don't recommend trading based on these predictions because they have not been tested yet at all. When I am convinced that they are somewhat reliable, I may incorporate the data into a trading strategy and simulate trading. If that proves to be reliably successful, I will start trading.
Most of them are 4 or 5 layers, but the architecture of each one is different. Activation functions are all sigmoid. I measure the error by allocating 20% of the training data as test data (randomly) and test how far off predictions are from actual prices (by percentage). Results tend to be between 0.3 and 0.5% ish. Still need to do a lot more testing.
Gonna start working on JSON recurrent nets soon, maybe with LSTM layers. Also gonna pull in more news data as inputs.
Sorry about that :/
There are a couple reasons I require registration. One is that it gives me more information about site usage. Another is that in the future, if I manage to get this to be reliably accurate and I can add more valuable features, I may need to start charging a small fee. I don't like to do that but I'm already spending a lot of money on hosting and API subscriptions to have this site up, and I spend quite a bit of time working on it too.
This is pretty interesting OP, how can I learn more about machine learning and stuff like this? How hard is it to learn if I just know programming, logic, and basic stats? What do I need to know beforehand?
Knowing programming, logic, and basic stats will definitely put you in the right kind of frame of mind. If you are interested and enjoy that type of thinking then you can definitely learn this stuff! It's also definitely not easy, but it's super interesting and rewarding! I find machine learning to be incredibly fascinating.
So I learned about this stuff in college, and then continued learning by reading research papers and articles online. One book that we used in college that was really helpful was called "Artificial Intelligence: A Modern Approach". I would highly recommend it - it goes over much more than just neural networks. It's a bit pricey I think (maybe ~$150) but you could probably pirate a pdf of it if you wanted.
Other than that, I would start by learning about feed forward neural networks. You could try implementing some simple ones on your own, there are probably tutorials for doing that out there. From there you can move on to recurrent neural nets and other more complicated structures.
I hope this helps. Good luck!
So you're telling me that you will be able to predict exchange rates for two of the major currency pairs? That seems pretty unbelievable desu, this would kind of defeat the whole forex market wouldn't it?
Maybe not as acurate as it should be for basing a profitable strategy on it but yes, learning an unknown function, in this case the underlying function of the market, is the whole purpose of an ANN.
Posting on forums haha... I managed to get a couple thousand members in a previous iteration of this project and this version is better. Maybe I'd get some ads too at some point, but probably not unless it started actually bringing in revenue
I'm not claiming that I am able to predict the prices. I am trying to do that though. Obviously it won't have 100% accuracy but hopefully it will be accurate enough to be profitable. It definitely wouldn't break any markets.
Have to admit umade me laugh and impressed me at the same time. So many members with forum posts.... damn. While i'm so dumb to try myself on SEO to gain some clicks for my business
Haha yeah I was doing seo stuff early on when I first created the site. It was pretty easy to get it to the top of most google searches related to Bitcoin prediction or future prices. It's a pretty niche market. Also posting in forums (especially popular ones) will boost your Rank in google searches up by a lot. Basically you want a lot of links to your site on other sites, and especially on other sites that get a lot of visitors. I took a class in college where we learned about the google page rank algorithm, and it's actually not that complex. Understanding it helps a lot.
What is your business?
Thanks a lot anon! Appreciating the forum advice
IT-Security, started a few months ago. Finishing all the lawyer stuff and then going live with the website. I guess searching for high traffic related forums is now one of the top priorities.
I'm curious why you say that? There are dozens of research papers out there where people use sliding windows for stock price prediction or other very similar tasks and have a lot of success. I've already had a lot of success with this too.
Are there? I'd love to read them...
You can do mean reversion analysis and more complicated shit like that with a neural network, but pure time series prediction they way you are trying does not work. I've explained this to you before when you posted on /sci/ (or was it /g/?, regardless i've seen your site before).
Also your error calculation method is outright misleading, and useless when it comes to relevance to a trading strategy. Flipping a coin on 1 step ahead time series prediction will produce similar error rates to what you get.
>>The average error is the average amount off that each prediction is for the neural network that made this prediction. It calculates this by having it make predictions at a few tens of thousands of points throughout the historic price data and compares its predictions to what the actual prices were. The average % off for all of these predictions is the average error, so basically it is the average error of the neural network used to make the predictions seen on these charts.
That's just the first hit on Google. There are dozens more, just search around on Google. It's pretty common. I don't know why you think it doesn't work. Everything in my experience points to the exact contrary.
I'm not sure what you mean by flipping a coin, since that is binary and predicting a price is not a binary task. If you meant that keeping a flat output would create a lower average error, then that is false. Well actually it depends on the data set, but it's definitely false with bitcoin. I've had neural networks that have this problem (they only predict flat prices) and the average error measure is higher for those nns than for the ones I have in production now.
That being said, I agree that it is misleading. I am working on coming up with more meaningful measures of accuracy, but the only true measure is testing against actual future prices, which is time consuming. This is why I no longer display the error measures over the charts, and instead provide charts showing actual performance over the past 24 hours.
It absolutely will not. In fact, predicting flat 100% of the time would do better than that. Basically what you are saying is that the average price deviation is less than my error values, which is just flat out false. That would mean that the average deviation for the price of bitcoin over 24 hours would have to be less than 0.5%. And for euro and aud it would have to be less than like 0.2-0.3%.
What are you basing this on?