Disclaimer: the following post is an organized representation of my research and project notes. It doesn’t represent any type of advice, financial or otherwise. Its purpose is to be informative and educational. Backtest results are based on historical data, not real-time data. There is no guarantee that these hypothetical results will continue in the future. Day trading is extremely risky, and I do not suggest running any of these strategies live.
My wife was chasing our 2-year-old from around the camper towards to the car the get packed up to go to dinner. It was then that I noticed my father at the side of the house, red in the face and out of breadth.
"I hate to be a bother, but we have a problem."
My father is a bit extra from time to time, so I blinked. Real slow like. After that millennia passed. I just replied, "show me."
I made my way down the hill and around the house to the basement entrance. He was talking to me while we were heading down there, but I wasn't paying attention. I heard something about a leak and water on the floor. I open the door and step inside, splashing straight into an inch or so of water.
A million things went through my head while I bolted to the pressure tank and to hit the emergency shut off valve for the water supply to the house. Where are the main water lines located downstairs? How far are they from the fucking door? How long was this happening to fill all the way to the door an inch deep? How many live electric outlets and power strips are about to start blowing circuits?
All of these questions got answered in pretty rapid succession. Of the square footage in my mostly unfinished basement, about a quarter of it got covered in water. The only finished portion of my basement (the in-law studio my father occupies) got hit pretty hard, of course. There were multiple power strips running real live electricity through them floating in the water like the door in the Atlantic from that one movie we've all seen more than once. You know the one, don't pretend. It was just one teeter totter away from blowing out a circuit and probably giving me a good kick.
In the end, I got the water off and the slammed all my basement circuits to off to assess the potentially deadly situation. I did pause, though. My dad has a cat that I wouldn't mind...
Anyway, that's what happened to me a couple of weeks ago. I got the pipe problem solved and a good lesson in basic water plumbing for houses. I had a guy come out to give me a quote on mitigation and repair the very next morning. I'm not sure if prices for this type of work are targeted at insurance prices plus average deductibles or contractor types just think people are stupid, but when I saw the quote, I realized I was going to need to do it myself.
This type of work isn't complicated. It's actually pretty damn simple. Pull water soaked/damaged materials, dry and dehumidify everything, continuously assess moisture levels, test for mold, and be proud of this proprietary knowledge you've just come up with. Insert eye roll. Then, of course, you need to be able to replace the damaged pieces you just cut out of your walls and floors.
Too easy. I'm no stranger to hard work and I'm not stranger to this kind of work. I've got all the tools, I've done it before, and anything I don't already know is just a few finger taps away on ye ole YouTube machine.
Then it took two weeks. Why? Because I was doing it alone, while trying to work from home (HGT and client work), watch and care for a toddler, and every couple of steps I took forward I had to backtrack because I discovered a new gift from the home's previous owners. Such as the fact that the plank flooring (now ruined, cause Linoleum ain't waterproof) that was previously installed directly on top of carpet (hydrophilic) which had been glued to the concrete with no less than 3 gallons of glue.
This went on the entire project. One new discovery after another.
But that's past me now. I mean, mostly. I have a trailer full of construction trash I need to get rid of, a little furniture to move around, and I have to have a conversation with an old Vietnam vet about hoarding in a studio apartment. Other than that, this nightmare is past me.
Now I am sitting at my keyboard, I have no idea what day it is unless I look at the calendar and I have to do it multiple times a day because I forget. My toddler has become an official and credentialled 2-year-old. I'm operating off of caffeine fumes and the occasional nicotine pouch to help me focus.
And I just stare. I just stare at the fucking screen and can't figure out what I'm supposed to do. Before this event I had plans, and they are still written out, but I look at them and I don't want to fucking do them.
If you ever need clarity in your life, or you want to start thinking straight (about the shit that matters), go do something hard. Physically hard. Not just once. Do it for a while. Wake up every day and do hard physical work for as many hours as you can manage. Think only about how much it fucking sucks (this will be easy, because if it's hard enough, it is all you can think about), and resign yourself to doing it until it's done at whatever pace you have to do the thing in. Then, when it's done, go back to the other thing in your life that needed some perspective.
That's what happened to me. Not by design. It just sort of happened, but here I am. I've been trying to dig back into my projects this week, but the drive isn't there. There is so much that I am unhappy with when it comes to researching trade systems. I hate trying to find the right program or having to make a program sort of do thing I want/need. I hate that there is a concept of "public" companies yet everything you need to play (platforms, data, etc) the game is private, proprietary and costs money.
Well, I don't want to play that game anymore. I don't want to keep getting lost in the different platforms and methods for researching strategies and trading. I don't want to have one program for chart trading, one for hot key trading, another for backtesting strategies, one for equites, another for futures, and STILL have to use 5 different coding languages to glue shit together or make the things I want to make. It's fucking exhausting and, probably by definition, insane.
So, I have to make some changes. I am solidifying the tools I use and switching my focus using my own code for researching and testing. I am going to focus on Python (as that is commonly used and the lowest barrier to entry) and a low-level language such as C or Zig. The latter of which will just be a side project to work on along the way.
As of right now, for the platforms that I will use that run on Windows, I am looking at keeping Sierra Chart (but not why you think) and... well, that's it, really. I will continue to use Norgate Data for end-of-day data for futures and equities, and Sierra Chart has a built-in DTC messaging protocol that allows users to stream or get historical data, send and receive trades, etc. This is really cool, because Sierra Chart uses very minimal resources when running and can be used as a platform for testing and running algorithmic systems with, without having to use their built-in framework. We can let Python do all the work and generate trades directly to the platform.
Important Note
The quote above is something I wrote the other day, when I first started this post. At the time, I was thinking that I would use Sierra Chart as my catch all for futures and equity data. Since they have a DTC protocol, this seemed like a good way to get good historical and streaming data through Sierra Chart for both testing and running live strategies on. However (this is the important part), it turns out that even sending data over your own home/personal network is a violation of the data usage agreements.
Wait, what?
That's right. Technically, sending the data from one machine to another, over any type of network, could be considered distribution of data and thus violate the data usage agreement. This got me thinking. Is this type of restriction/verbiage common amongst data providers?
Well, let's check out the ones I use and see...
First, let's look at how Sierra Chart words it.
And this is how they interpret it.
That's pretty explicit.
Next, let's check Norgate's license agreement.
Hmm, "redistribute the Data in any way or form" seems to jump out, doesn't it? I guess the argument would focus on the definition of "redistribution". Regardless, it is ambiguous enough to make me uneasy. You see, my goal was to use Norgate data and the Python library to just copy the data bases and the data I need and make it accessible to my desktop machine for testing. It seems that this would probably qualify as "redistribution" to some, should they wish to get upset by it. Since this verbiage is similar to Sierra Chart's, a conservative person would believe that sharing across a network is probably prohibited.
If my intention was to have Windows be a secondary machine attached to my home network, I would probably be in violation of the data usage agreements with the two providers that I was looking towards for my data needs.
Fascinating development.
Back to our regular programming...
You may notice I didn't mention RealTest. That is because I am at a weird point where I don't really want to keep or use ANY proprietary backtesting engine. I still really enjoy RealTest, and I think it is one of the best backtesting engines there is. I also love that it is written in C (just C, not C++), and is very efficient. However, it lacks some of the features that I really want to start testing with my research. I don't have as much control as I would like when creating custom features for testing. Of course, I can always find work arounds, but I don't want to spend time on workarounds when I could spend that time developing a good system that does exactly what I need. I would also like the ability to test both end-of-day and intraday strategies.
I am currently trialing WealthLab too (for the next year). What I am thinking about doing with this is using it as a way to store libraries of strategies, indicators, and tools that I develop for the platform. It is written in C# (sigh), and the framework is in C#, but that's ok. It has extensive documentation for its framework and extension API. It also makes it easy to offer libraries and tools as subscriber-based extensions that are easy to install.
This would mean I could restructure how and what is offered to paid subscribers. GitHub access will remain the same (with some restructuring interiorly) for Red Team members, but paid subscribers will gain access to the HGT Indicators and Strategies extensions for WealthLab. This way, I can try and address all levels of reader. Research and ideas can remain focused on the development using Python (or whatever else seems fun), but users who want to test the strategies and indicators without having to code or compile something themselves, can access to the versions for WealthLab.
In case you are wondering, I chose WealthLab because it seems to have the most features that would suite many different levels of trader’s needs. The system is robust enough to handle strategies like the ones I have been testing in RealTest, and offers a strong extension eco system of tools, data and broker connections, and many others. It seems to have a pretty active user base and responsive development team.
While this endeavor may take several weeks of constant work, I think it will be worth it in the end. This way, I can start to focus on the work that I truly enjoy, solving problems with code and trade research.
Conclusions
Now, you might be wondering, "what does this mean, Larry?"
Let's recap:
Hard work is good for the soul.
I hate Windows and feel very restricted using proprietary platforms for my research and trading needs.
I am going to stop using Windows regularly, turning my laptop into a network machine for remote access when I have a specific need for something on Windows.
I am no longer going to be testing my ideas on proprietary platforms. Instead, I am switching focus to using Python and (insert low-level language here) for my research needs.
I don't like restrictive data usage agreements that technically don't even let me share the data across my own network to another personal machine. So, I'm not going to use those data providers.
Okay, so you don't like Windows, and you don't like the commonly used restrictive language in the data usage agreements. What are you going to do about it?
Well, I'm going to stop using them. I already didn't like the fact that data can't be retrieved for free. There is something about having a public domain for retail traders/investors that gate keeps data that rubs me the wrong way. Top this with the excessive restrictions on your own machine or network and it's just something that I can't get behind.
There are data providers out there that are API first and have less restrictive verbiage on their data usage agreements. I plan on looking at these types of providers in the future, but for now...
I'm switching to crypto.
Ha. Wait, are you serious?
Yup.
What better way is there to escape the platform lock in, restrictive data usage agreements, and still be able to provide useful and informational content to your subscribers?
If you can think of one, I'll be willing to listen. Put it in the comments.
Until next time, happy hunting.
Feel free to comment below or e-mail me if you need help with anything, wish to criticize, or have thoughts on improvements. You can also DM me or start a chat thread. Red Team members can access this code and more at the private HGT GitHub repo. As always, this newsletter represents refined versions of my research notes. That means these notes are plastic. There could be mistakes or better ways to accomplish what I am trying to do. Nothing is perfect, and I always look for ways to improve my techniques.