Stage 2, day 24:
Since yesterday, things did unblock big time. My arbitrage system is finally up an running. The estimations that I did during day 6 of stage 2 were very pessimist. I estimated that it would take over 100% CPU usage and over 1Mbps of incoming bandwidth.
Reality is very far from that estimation. I'm using less than 5% CPU and maximum bandwidth usage that I have seen is 50 Kbps.
I guess the way that I interpolated was flawed. I took possibly the busiest exchange (XBT/USD) and I multiplied its volume by the number of pairs that I would subscribe to receive their data. A lot of pairs appears to be very low volume.
Also, the 15% CPU usage that I was seeing. The huge CPU usage is mostly caused by the GUI. For now, my arbitrage prototype is command line only. This is why it is so low demanding in CPU resources.
Bottomline, this wrong estimation did make me fall into the classical premature optimization programming evil.
I work late last night. Getting close to the finish line was giving me energy to keep going until I finish. On the first run, well, it did run fine but there was a glitch in my code because it was reporting trading opportunities giving ridiculous 300000% yield.
When I saw that, I said ok. This might be tricky to find that glitch. I better try to get some rest before chasing it. Finally, early this afternoon, I squashed the last bug.
There was another glitch where all reported opportunity had a time window of 0 usec. That means that as soon as the opportunity was spotted, it was immediately disappearing. That was possibly another bug in my code. I have changed the way I measure the time window. This is important to know before I start executing the reported opportunities. How much time can I hope having to execute the trade?
Next, I did filter out silly opportunities. I was reported trade ideas that could return a dime in profit. This is ridiculous due to the inherent risk of trading. Going for it would be the equivalent of bending over in front of a steamroller to pick up a dime on the ground. Not worth it.
So my improved and fixed system has been running for the last 40 minutes without reporting any opportunity. I need to let it run at least 24h before concluding anything. In a period of about 3h this afternoon, it spotted about 20-30 opportunities. Some were looking very juicy with a yield of 6%+ but it was unconclusive because they were reported with all the glitches that the program still had this afternoon.
but now, it is very quiet. I had no idea what to expect. I wish that it would be crazy as in a casino where you hear all the slot machines going crazy all around the place 'ding-ding-ding-ding'. No, it is not what I see right now...
but hey, if my computer can generate few dollars every day effortlessly, I'm going to take it.
I think that I'll go see a movie at the theater. I want to go see 1917. I'll let my computer run and possibly when I return, I'll get some result data to crunch...
Since yesterday, things did unblock big time. My arbitrage system is finally up an running. The estimations that I did during day 6 of stage 2 were very pessimist. I estimated that it would take over 100% CPU usage and over 1Mbps of incoming bandwidth.
Reality is very far from that estimation. I'm using less than 5% CPU and maximum bandwidth usage that I have seen is 50 Kbps.
I guess the way that I interpolated was flawed. I took possibly the busiest exchange (XBT/USD) and I multiplied its volume by the number of pairs that I would subscribe to receive their data. A lot of pairs appears to be very low volume.
Also, the 15% CPU usage that I was seeing. The huge CPU usage is mostly caused by the GUI. For now, my arbitrage prototype is command line only. This is why it is so low demanding in CPU resources.
Bottomline, this wrong estimation did make me fall into the classical premature optimization programming evil.
I work late last night. Getting close to the finish line was giving me energy to keep going until I finish. On the first run, well, it did run fine but there was a glitch in my code because it was reporting trading opportunities giving ridiculous 300000% yield.
When I saw that, I said ok. This might be tricky to find that glitch. I better try to get some rest before chasing it. Finally, early this afternoon, I squashed the last bug.
There was another glitch where all reported opportunity had a time window of 0 usec. That means that as soon as the opportunity was spotted, it was immediately disappearing. That was possibly another bug in my code. I have changed the way I measure the time window. This is important to know before I start executing the reported opportunities. How much time can I hope having to execute the trade?
Next, I did filter out silly opportunities. I was reported trade ideas that could return a dime in profit. This is ridiculous due to the inherent risk of trading. Going for it would be the equivalent of bending over in front of a steamroller to pick up a dime on the ground. Not worth it.
So my improved and fixed system has been running for the last 40 minutes without reporting any opportunity. I need to let it run at least 24h before concluding anything. In a period of about 3h this afternoon, it spotted about 20-30 opportunities. Some were looking very juicy with a yield of 6%+ but it was unconclusive because they were reported with all the glitches that the program still had this afternoon.
but now, it is very quiet. I had no idea what to expect. I wish that it would be crazy as in a casino where you hear all the slot machines going crazy all around the place 'ding-ding-ding-ding'. No, it is not what I see right now...
but hey, if my computer can generate few dollars every day effortlessly, I'm going to take it.
I think that I'll go see a movie at the theater. I want to go see 1917. I'll let my computer run and possibly when I return, I'll get some result data to crunch...