K128kevin (OP)
|
|
March 24, 2014, 04:23:05 AM |
|
Hey guys, So I've posted this here before, but I'm working on a software project that uses neural networks to predict bitcoin prices. Predictions can be seen here: http://www.btcpredictions.comA few people were asking me about predictions beyond 5 days, which was the longest forecast I had until today. I was able to get the software to make "reasonable" 20 day predictions. I say "reasonable" but really I would say they are probably very far from reliable. The average error is generally between 8.1% and 8.3% (meaning that if it predicts $500, the price will usually be between $460 and $540). So the 20 day prediction probably is not useful for trading, but it is interesting because it reflects the general patterns that bitcoin prices are taking over a slightly longer period of time. And remember, the 20 day prediction is new and still very much in a "beta" stage. I will try to improve on it, but I can't promise it will ever be significantly more accurate.
|
|
|
|
Cassius
Legendary
Offline
Activity: 1764
Merit: 1031
|
|
March 24, 2014, 10:50:02 AM |
|
Nice, great effort.
|
|
|
|
Cassius
Legendary
Offline
Activity: 1764
Merit: 1031
|
|
March 24, 2014, 11:24:47 AM |
|
Out of interest, what happens when you back-test with historical data? Specifically, does it predict the big dips and flash crashes as well as the trend? And do long long-term forecasts roughly stick to the exponential trend? It would be interesting to find out!
|
|
|
|
segeln
|
|
March 24, 2014, 11:36:23 AM |
|
Hey guys, So I've posted this here before, but I'm working on a software project that uses neural networks to predict bitcoin prices. Predictions can be seen here: http://www.btcpredictions.comA few people were asking me about predictions beyond 5 days, which was the longest forecast I had until today. I was able to get the software to make "reasonable" 20 day predictions. I say "reasonable" but really I would say they are probably very far from reliable. The average error is generally between 8.1% and 8.3% (meaning that if it predicts $500, the price will usually be between $460 and $540). So the 20 day prediction probably is not useful for trading, but it is interesting because it reflects the general patterns that bitcoin prices are taking over a slightly longer period of time. And remember, the 20 day prediction is new and still very much in a "beta" stage. I will try to improve on it, but I can't promise it will ever be significantly more accurate. Hi,nice you made a 20 day forecast. But I did`nt want it because I think it is very,very , very far from reliability same as a longterm weatherforecast. Honestly I do not understand why you did it and neglecting the Need of an update-time-intervall shortage (to 5 Minutes)This would be much more useful,since th prediction get much more reliable. Hope you are working on that
|
|
|
|
K128kevin (OP)
|
|
March 24, 2014, 12:19:38 PM |
|
Cassius - I'm not sure what happens because I don't actually see the predictions, but maybe I'll alter it so that I can. That would be interesting to see. I have a feeling it would predict very mild spikes and crashes at certain times but nothing to the same magnitude as the actual fluctuations.
segeln - I did it because I thought it would be interesting to see and other people had expressed interest in seeing it as well. I will definitely work on having it update more often too, don't worry xD
|
|
|
|
Cassius
Legendary
Offline
Activity: 1764
Merit: 1031
|
|
March 24, 2014, 12:54:00 PM |
|
Cassius - I'm not sure what happens because I don't actually see the predictions, but maybe I'll alter it so that I can. That would be interesting to see. I have a feeling it would predict very mild spikes and crashes at certain times but nothing to the same magnitude as the actual fluctuations.
segeln - I did it because I thought it would be interesting to see and other people had expressed interest in seeing it as well. I will definitely work on having it update more often too, don't worry xD
Ah, I figured long-term previous data had been used to 'teach' the software. Again, would be interesting to see if the dips were predicted, just less severe (which might make sense, as you suggest) - at which point, maybe there would be a fix to increase volatility... who knows.
|
|
|
|
K128kevin (OP)
|
|
March 24, 2014, 02:49:27 PM |
|
Cassius - That actually is how it works... the long-term previous data is used to 'teach' the neural network. I just haven't been having it output the predictions it makes while it's learning. I would be curious to see that data too though, so I think I will have it do that. Maybe I'll put up a graph showing this compared to the real historic prices.
|
|
|
|
Cassius
Legendary
Offline
Activity: 1764
Merit: 1031
|
|
March 24, 2014, 03:04:23 PM |
|
That would be cool - especially if the lines converged as it learned with each passing week.
|
|
|
|
rebuilder
Legendary
Offline
Activity: 1615
Merit: 1000
|
|
March 24, 2014, 03:28:39 PM |
|
Cassius - That actually is how it works... the long-term previous data is used to 'teach' the neural network. I just haven't been having it output the predictions it makes while it's learning. I would be curious to see that data too though, so I think I will have it do that. Maybe I'll put up a graph showing this compared to the real historic prices.
I'm confused now. Isn't the average error a measure of how much the algorithm deviates from historical prices?
|
Selling out to advertisers shows you respect neither yourself nor the rest of us. --------------------------------------------------------------- Too many low-quality posts? Mods not keeping things clean enough? Self-moderated threads let you keep signature spammers and trolls out!
|
|
|
segeln
|
|
March 24, 2014, 05:47:46 PM |
|
segeln - I did it because I thought it would be interesting to see and other people had expressed interest in seeing it as well. I will definitely work on having it update more often too, don't worry xD
so I don`t worry I wish you all the best for your work,though I am sceptic about the 20-day longterm prediction Thanks for replying
|
|
|
|
akujin
|
|
March 24, 2014, 06:03:27 PM |
|
|
BTC: 165rKPfGJ3ndrG1QziHR6ACnViP4EQHNK7 LTC: LMysGMFjmF9gR9RzStij74msXrDP1NqW8X DOGE: DRZXGgcKN8kANwko3VycsBVVGqfy6XsSpM
|
|
|
Cassius
Legendary
Offline
Activity: 1764
Merit: 1031
|
|
March 24, 2014, 06:11:41 PM |
|
Even 8% average error gives a solid UP from here. Suggest we return in 1/5/20 days to evaluate... Hmm.. I wonder what the reliability is in very basic up/down terms. That would be cool, giving a 20-day bull/bear prediction that had a strong chance of accuracy.
|
|
|
|
K128kevin (OP)
|
|
March 24, 2014, 09:26:22 PM |
|
rebuilder - Okay I think we're not communicating clearly here, let me try to explain how it works as clearly as possible:
The neural network trains on historic data. The training process involves trying to make predictions at certain points in history and then changing parts of the neural network based on how far off the predictions were from the actual prices. The average error is how far off the predictions were once the network was done training. So basically the average error represents how far off each predicted price was from the actual price for predicting prices at every hour (or 6 hours, or 12 hours) in the past 3 years. I hope this is more clear, but please let me know if it isn't.
Cassius - I think if it just tried to predict up or down that it would be very accurate. I would guess that it would be right at least like 90% of the time, but I'm just speculating.
|
|
|
|
Cassius
Legendary
Offline
Activity: 1764
Merit: 1031
|
|
March 24, 2014, 09:48:31 PM |
|
Cassius - I think if it just tried to predict up or down that it would be very accurate. I would guess that it would be right at least like 90% of the time, but I'm just speculating.
That's what I figured. And 90% is a lot better than 50%, which is roughly what you've otherwise got. Whilst that's not so much use on the day-to-day level due to the relatively small fluctuations, it is on the scale of a month.
|
|
|
|
OgNasty
Donator
Legendary
Offline
Activity: 4914
Merit: 4849
Leading Crypto Sports Betting & Casino Platform
|
|
March 25, 2014, 08:20:36 AM |
|
This is great. Would love to see a graph showing the back data as well.
|
..Stake.com.. | | | ▄████████████████████████████████████▄ ██ ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ██ ▄████▄ ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██ ██████ ██ ██████████ ██ ██ ██████████ ██ ▀██▀ ██ ██ ██ ██████ ██ ██ ██ ██ ██ ██ ██████ ██ █████ ███ ██████ ██ ████▄ ██ ██ █████ ███ ████ ████ █████ ███ ████████ ██ ████ ████ ██████████ ████ ████ ████▀ ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██ ██ ▀▀▀▀▀▀▀▀▀▀ ██ ▀█████████▀ ▄████████████▄ ▀█████████▀ ▄▄▄▄▄▄▄▄▄▄▄▄███ ██ ██ ███▄▄▄▄▄▄▄▄▄▄▄▄ ██████████████████████████████████████████ | | | | | | ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ █ ▄▀▄ █▀▀█▀▄▄ █ █▀█ █ ▐ ▐▌ █ ▄██▄ █ ▌ █ █ ▄██████▄ █ ▌ ▐▌ █ ██████████ █ ▐ █ █ ▐██████████▌ █ ▐ ▐▌ █ ▀▀██████▀▀ █ ▌ █ █ ▄▄▄██▄▄▄ █ ▌▐▌ █ █▐ █ █ █▐▐▌ █ █▐█ ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█ | | | | | | ▄▄█████████▄▄ ▄██▀▀▀▀█████▀▀▀▀██▄ ▄█▀ ▐█▌ ▀█▄ ██ ▐█▌ ██ ████▄ ▄█████▄ ▄████ ████████▄███████████▄████████ ███▀ █████████████ ▀███ ██ ███████████ ██ ▀█▄ █████████ ▄█▀ ▀█▄ ▄██▀▀▀▀▀▀▀██▄ ▄▄▄█▀ ▀███████ ███████▀ ▀█████▄ ▄█████▀ ▀▀▀███▄▄▄███▀▀▀ | | | ..PLAY NOW.. |
|
|
|
segeln
|
|
March 25, 2014, 11:51:19 AM |
|
rebuilder - Okay I think we're not communicating clearly here, let me try to explain how it works as clearly as possible:
The neural network trains on historic data. The training process involves trying to make predictions at certain points in history and then changing parts of the neural network based on how far off the predictions were from the actual prices. The average error is how far off the predictions were once the network was done training. So basically the average error represents how far off each predicted price was from the actual price for predicting prices at every hour (or 6 hours, or 12 hours) in the past 3 years. I hope this is more clear, but please let me know if it isn't.
could you elaborate this more, please.Very interesting. I thought you were checking and calculating the Bitstamp orderbook. I put your link in the german forum of bitcoin.de = coinforum.de
|
|
|
|
rebuilder
Legendary
Offline
Activity: 1615
Merit: 1000
|
|
March 25, 2014, 12:02:04 PM |
|
K128kevin: OK, so I had the right idea, you just haven't looked at the datapoint-by-datapoint comparison, only the average error rate output in the end.
Interestingly, the short-term prediction is now forecasting a return from the 570's to about 536 in 15 hours time, as a more or less continuous downward slope. Seems like a significant enough dip to watch for comparisons.
Edit: make that 13 hours, and 532 or so - the prediction just updated as I was typing.
|
Selling out to advertisers shows you respect neither yourself nor the rest of us. --------------------------------------------------------------- Too many low-quality posts? Mods not keeping things clean enough? Self-moderated threads let you keep signature spammers and trolls out!
|
|
|
m3g4tr0n
Member
Offline
Activity: 74
Merit: 10
|
|
March 25, 2014, 12:05:47 PM |
|
This is great. Would love to see a graph showing the back data as well.
Yes, and the ultimate way of showing it would be to let the 24 hour graph shift incrementally out the left side of it's box into a real time graph. That way viewers could see the prediction accuracy overlaid on top of what is actually happening. I would definitely donate something if that scenario came to pass. good work
|
|
|
|
razfaz
Newbie
Offline
Activity: 1
Merit: 0
|
|
March 25, 2014, 12:12:56 PM |
|
Great work! Having a major in CS, I was looking a bit into algorithmic trading too. Until now I just did it on a very basic level, using simple stuff to base my choices on. The results often were that the capital rose by some (2-3) percents in a month. Having hodl't and sodl't gave mostly better results. Due to the lack of time I did not investigate it in more detail.
Which programming language do you use? Are there any frameworks supporting neural network programming?
|
|
|
|
K128kevin (OP)
|
|
March 25, 2014, 01:45:34 PM |
|
OgNasty/m3g4tr0n - yeah a lot of people have been asking about that, I think I'll try to make graphs showing this some time soon, or maybe extend the current ones to the left like you said.
segeln - Thanks for posting it to the German forum! Here's a bit of elaboration:
The part of a neural network that determines what results it will give (predictions, in this case) is "weights". A neural network consists of a bunch of nodes with edges between them, and the edges have certain weights. Initially these weights have random values. You teach a neural network by having it try to do calculations on data where you know the answer, and then adjust the weights based on how far off it was. So in this case, I have the neural network look at data at a few tens of thousands of points throughout the history of bitstamp and try to make a prediction. Initially the predictions are WAY off because the weights are just random. However, it sees how far off it was and adjusts the weights accordingly. Each time it trains on the historic data it is slightly more accurate. It takes about 25-30 ish training sessions for these neural networks to be able to predict with the average errors that I have listed on the site.
Let me know if you have any more questions!
rebuilder - Yeah I see it's predicting a pretty significant dip... I'm pretty nervous that it's going to be completely wrong lol but we'll see. I would not guess that it will dip down into the 530s or 540s but I suppose it's possible. I think what will happen is that it will dip but not by as much as it is predicting.
razfaz - Thanks! And that's pretty awesome if you were able to consistently earn 2-3% per month!
I use java for this project. I believe there are frameworks and libraries and stuff for neural networks, but I didn't use them. A few semesters ago I had to create a neural network for a class assignment, so I took the code from that and adjusted it accordingly to work for this problem (the old one was used for recognizing hand-written digits).
|
|
|
|
|