Stage 3, day 13:
I have not updated this journal for a week and I'll explain why. During the last week, I lost my focus.
I finally did complete margin trading feature last week-end but I haven't deployed it. Upon completion, I wanted to reward myself by allowing myself to improve a spot in the code by using the C++ Move semantics. That spot is by far critical and very cold therefore, it doesn't matter much whether I am moving or copying data. The appeal of that task was to invest a small amount of time perfecting my knowledge.
So I took out a book that I have purchased over a year ago dedicated to the Move semantics topic and in the book preface, the autor announce that he is using C++11 uniform initialization throughout the text and provide a bulletpoints list of the benefits of doing so... It is funny how on the first read, I didn't caught this detail and this caught my interest this time. On reading that, I have been convinced that modernizing my code base by using uniform initialization would be a good thing.
oh boy, I didn't suspect into what kind of commitment I was entering in... It is essentially putting your finger in a set of gears and ending up losing your whole arm in terms of time. This has been essentially a monk task that has been painfully boring and tedious to modernize the whole codebase. It is not first time that I adopt a new guideline/practice and update the whole codebase but it has been a while since the last time that I did it. The thing is that the more the code base grows, the more tedious it is to review and adapt the whole thing...
It took me the whole week. Was the effort worth it? I am mitigated about this question... Yes, the whole endeavor did allow me to spot very small glitches but that was certainly not worth a full week of work... I don't know how I did end up falling in this pitfall... Maybe some part of my subconscious mind did take over my focus to make me focus on something unimportant but what I know is that after a day of doing this... I couldn't leave the task uncompleted. The idea of leaving the mordernizing task uncompleted was annoying me in a deep way...
That being said, I did update the server last week-end with all the bug fixes that I did bake in since mid-October (without margin trading activated). All those changes have been tested in during the last week that has been very busy in trading activity. The big BTC/ETH pump did trigger my system a lot...
On one day, I made a nice profit with over 150 trades but the outcome got spoiled by the exchange that did misbehave in a new way that it has never done before. The unexpected situation did highlight a major flaw in my system and did make my system enter several bad trades that made me lost about $100.
The problem comes from the fact that I use 50 connections to receive the market data in a parallel manner. One assumption that my system made was that all connections were either up or down. I ended up with 5-10 connections having a hard time staying connected. So the system ended up detecting trading opportunity except that it was using some data that was stall for a minute or 2...
I have removed this multi connection system to replace it by a single connection for all my data. It is not optimal but I'll need to endure this way until I address this new problem...
I'm not sure if I'll tackle this new problem first or if I'll deploy the margin trading first...
I'll conclude by saying that I might have made few bad decisions last week but what is done is done... I'll focus on the present and the future to thrive with success soon...
I have not updated this journal for a week and I'll explain why. During the last week, I lost my focus.
I finally did complete margin trading feature last week-end but I haven't deployed it. Upon completion, I wanted to reward myself by allowing myself to improve a spot in the code by using the C++ Move semantics. That spot is by far critical and very cold therefore, it doesn't matter much whether I am moving or copying data. The appeal of that task was to invest a small amount of time perfecting my knowledge.
So I took out a book that I have purchased over a year ago dedicated to the Move semantics topic and in the book preface, the autor announce that he is using C++11 uniform initialization throughout the text and provide a bulletpoints list of the benefits of doing so... It is funny how on the first read, I didn't caught this detail and this caught my interest this time. On reading that, I have been convinced that modernizing my code base by using uniform initialization would be a good thing.
oh boy, I didn't suspect into what kind of commitment I was entering in... It is essentially putting your finger in a set of gears and ending up losing your whole arm in terms of time. This has been essentially a monk task that has been painfully boring and tedious to modernize the whole codebase. It is not first time that I adopt a new guideline/practice and update the whole codebase but it has been a while since the last time that I did it. The thing is that the more the code base grows, the more tedious it is to review and adapt the whole thing...
It took me the whole week. Was the effort worth it? I am mitigated about this question... Yes, the whole endeavor did allow me to spot very small glitches but that was certainly not worth a full week of work... I don't know how I did end up falling in this pitfall... Maybe some part of my subconscious mind did take over my focus to make me focus on something unimportant but what I know is that after a day of doing this... I couldn't leave the task uncompleted. The idea of leaving the mordernizing task uncompleted was annoying me in a deep way...
That being said, I did update the server last week-end with all the bug fixes that I did bake in since mid-October (without margin trading activated). All those changes have been tested in during the last week that has been very busy in trading activity. The big BTC/ETH pump did trigger my system a lot...
On one day, I made a nice profit with over 150 trades but the outcome got spoiled by the exchange that did misbehave in a new way that it has never done before. The unexpected situation did highlight a major flaw in my system and did make my system enter several bad trades that made me lost about $100.
The problem comes from the fact that I use 50 connections to receive the market data in a parallel manner. One assumption that my system made was that all connections were either up or down. I ended up with 5-10 connections having a hard time staying connected. So the system ended up detecting trading opportunity except that it was using some data that was stall for a minute or 2...
I have removed this multi connection system to replace it by a single connection for all my data. It is not optimal but I'll need to endure this way until I address this new problem...
I'm not sure if I'll tackle this new problem first or if I'll deploy the margin trading first...
I'll conclude by saying that I might have made few bad decisions last week but what is done is done... I'll focus on the present and the future to thrive with success soon...