Josh Weissman shows how to collect cheap MBO (market-by-order) futures data using Rithmic and NautilusTrader for about $150/month versus $1,500/month for live streams, covering hardware and software s
Key Takeaways
- Live MBO data can be obtained far more cheaply than the commercial $1,500/month streaming tier by building a self-hosted pipeline on Rithmic with NautilusTrader.
- Cloud storage is generally not cost-effective for terabytes of MBO data; local storage (NAS or a dedicated desktop) is preferred for long-term retention.
- A desktop computer with ample storage, RAM and CPU is recommended over a laptop, and ECC RAM improves data integrity for always-on streaming.
- Python-based frameworks like NautilusTrader trade lower latency for development convenience, which suits strategies operating on multisecond timeframes.
What the video covers
- The video compares MBO data costs: Databento streams MBO for about $200/month, while live streaming MBO data is about $1,500/month, and the presenter claims a setup for around $150/month including live execution.
- Crypto MBO data is excluded from the scope, though the presenter notes it is free and could suit low-budget traders.
- The presenter introduces his background: a bachelor's and master's in computer science completed in 4.5 years, several internships in software engineering, data science and LLM research, and a current full-stack developer role.
- He has spent about 10 months building a retail quantitative trading system with the goal of profitability, and promotes a series following that journey.
- Storage options are compared: cloud computing is considered too expensive for storing terabytes of MBO data over the long term, while a NAS (roughly $1,500-2,000 with a drive) is a cheap option for storage only.
- A personal desktop with enough RAM, CPU power and a large hard drive (around 128 TB mentioned) is recommended over a laptop, with a rig of about $3,000 suggested as a minimum; ECC RAM is discussed for data integrity during long-running streams.
- NautilusTrader is presented as the trading framework, with Rithmic as the data and execution provider, and a telemetry component is mentioned for monitoring.
- The presenter explains that a Python-based system trades off latency, with decisions taking multiple seconds rather than around 200 milliseconds, as an accepted sacrifice.
- Live execution can be routed through futures brokers, and the presenter notes it may be possible to trade through a Roth IRA futures broker.
- The video walks through the functional layout and code of the system, including adapters, error handling and configuration, with some sections acknowledged as skipped or unclear.
Chapters
- 00:00Introduction and cost comparison of MBO data
- 03:00Presenter background and retail quant journey
- 04:03Storage options: cloud, NAS and personal computer
- 07:15Hardware requirements and ECC RAM
- 10:45Setting up NautilusTrader and Rithmic
- 16:45System architecture and functional layout
- 28:20Latency trade-offs and execution considerations
- 40:00Closing remarks and next steps
Full Transcript — Download SRT & Markdown
Speaker A
Hello, my name is Joshua Weissman and today I'm going to show you how to get cheap MBO data with arithmetic analysis trader. This is the way how I'm collecting this MBO data. And just for comparison, MBO data usually at least in terms of
Speaker A
features uh one of the competitors which I think is the most affordable I'm not 100% sure but the most popular one is data bento.
Speaker A
They stream uh MBO data um for $200 a month, which is okay. Um but in order to stream live MBO data is 1,500 a month, uh which is crazy. This video will show you how to basically get that same
Speaker A
features MBO data for only around $150 a month and that includes live execution. So that is the highle overview of this video. Also, I'm not going to be going over crypto MBO. Um, even though that's free, I'm pretty sure. So, that's
Speaker A
definitely on the table for a lot of people that have low budgets. Um, in terms of stock market, not in that. Don't have a lot of knowledge in that. So, let's go.
Speaker A
So, my background, um, just to give you a background on where I'm at. Okay. uh graduated December 2025 with a bachelor's and master's degree in computer science. Uh and I did that in 4.5 years. Specifically, I got my
Speaker A
masters and 20 December 2025, I got my bachelor's in spring. Okay. [clears throat] So during that time, I worked three different internships in the latter two years of my me attending university, ranging from being a software engineer to a data scientist to
Speaker A
even doing LLM research. So I messed around with a lot of different things. how to format software, how to um what's it called? Understand data and apply it to solve particular problems and even understand the how LMS work and how to
Speaker A
maybe extract more value out of them. So currently I work at a full stack developer at North Groomman and I work on ginex systems. So terms of how to work with huge systems and how to manage them and how to get things out of them.
Speaker A
I'm becoming pretty good at that. So uh I graduated obviously in December 2025. I spent the last 10 months basically off 2026 so far trying to build this retail quantitative system with the sole goal of being profitable which by the way I
Speaker A
should mention if you want to see my journey on that or a fellow uh retail quantitative trader enthusiast try to make it subscribe. I will be here I think in the next uh few months. So that is my background. So we kind of know hey
Speaker A
you know who is this guy? Is he is he educated? Is he qualified? So I've been trying to solve this particular system for 10 months. And I also have an educated background. Okay. So I guess my face has covered some of
Speaker A
this. Anyways, hardware. All right. So obviously you have your your trading system. Okay. And I I know some of you might have thought of this, but we're we're we're kind of going back here. So, in order to stream data, you're going to
Speaker A
need to store that data somewhere. So, you have, I'd say, like three main options, maybe four. Um, your first one, um, and the one I'm I'm not a fan of is cloud computing. Okay, so I said cloud computer. Cloud computing. Anyways,
Speaker A
cloud computing is basically you pay someone like Amazon or Google, hey, I want to use your, you know, computing units in order to solve this problem at your data center, right? And I'm going to pay you a fee. Problem with this,
Speaker A
okay, it's it's good for computations potentially, kind of expensive if you're using GPU stuff, but still could be worth it depending on how you structure that. um it does take a lot of technical knowledge in order to do this and it's
Speaker A
expensive as crap especially when you're talking about storing data. This is not the way you want to do it. Okay, these these databases like you're going to need terabytes of data potentially to store a lot of the VM data. Uh this is
Speaker A
not affordable long term. Okay, it's not it's affordable if you're your time horizon is 3 months and you know uh again I would not recommend that. So cloud computing is on the table. You can use it for multiple things. For
Speaker A
specifically storing data, I would not do that. Maybe for running, you know, trading strategies, sure. But not storing data, I don't think. Okay. Then we have two options that I have listed here, which is NAS and personal computer. So, if you want to be on the
Speaker A
cheaper side, you can go with NAS. What is a NAS? Okay. NAS is basically a little device that has a like a computer chip like a CPU and then it's to write tied directly to like this um what's it
Speaker A
called this hardware chamber where you can like insert uh hardware discs into it like HH or HDS hard drives anyways so you can insert hard drives into them okay so why this is important hard drives expensive as crap right I know I know that's the One
Speaker A
thing I will say, cloud is expensive, right? But also the personal computing units are also expensive. It just is what it is with the AI stuff that's going on. But the NAS is going to be your cheapest option in my opinion. So,
Speaker A
if you're wanting to be really cheap, you can get like one hard drive, which is 1,000 bucks, get a NAS, which is maybe another 500 bucks, and you're getting this unit for around under $2,000 for that mass, which basically
Speaker A
will be able to take in the data and store it at least. Okay, that does not include like execution or what have you.
Speaker A
You probably do not want to do that on an NAS, but NAS does allow you to essentially store data at least. So you can do that part and then you can obviously use your other computer if you want to for quations or strategies. Do
Speaker A
not do that on the NAS. NAS is only for storage, but I listed that here because that is a cheap alternative to try to source data if you don't not have the money up front right now. The best
Speaker A
option in my opinion is the personal computer. Okay, what do I mean by that?
Speaker A
So some of you guys might have a laptop. That ain't going to cut it, my friend.
Speaker A
I'm sorry. It's just it's not okay. Um, along with the personal computer, uh, if you do not have enough money for this, which I would say, hey, you want at least like a $3,000 rig in my opinion.
Speaker A
Um, my rig is kind of crazy. It It's not super crazy, but it has the specs that I want it to. It's not a server grade computer. If you have enough money for a server grade computer, [snorts] get a
Speaker A
server grade computer. Okay. Mine is an AM5 build. It supports ECC. What is ECC?
Speaker A
Essentially is error protection. So if uh a program is running for a long period of time, right? So if we're streaming in data, that program is going to be running almost forever basically on its own, we want to make sure that
Speaker A
the data is correct and basically ECC RAM allows that data to be correct throughout time. Otherwise, you'll get slow kind of corruptions in your your program without frequent reboots, which kind of sucks. You can actually plan these reboots around the weekends
Speaker A
because there is a little bit of downtime there. So, it's not like the end of the world, but ECC is it is a thing that servers have. So, that will help your data quality for sure if you're able to afford ECC, though it is
Speaker A
more expensive. To give you a comparison, the ECC RAM that I have are two 64 GB sticks and they're both currently right now $3,000.
Speaker A
A lot of money. Okay, so there's that option or there's that. But essentially, regardless of the ECC, you just need a computer that has enough hard drive space, okay, and enough computing power.
Speaker A
So you need a pretty decent CPU in my opinion and then you need uh again like a hard drive right ideally that 128 terbte hard drive. Okay, so you have that um you have that you have enough RAM and you have that hard drive, you're
Speaker A
good because you're able to stream in data. You're able to perform computations with your CPU and potentially GPU, right? So you can offload computations with strategies there. So you can stream in your data and execute pretty with a machine that
Speaker A
has enough specs. So I would actually recommend the personal computer for most of you guys. However, this won't will not be your laptop. This needs to be a computer that's configured to basically operate like a server. Okay? So, a
Speaker A
computer that's going to operate like a server where you access it and it's constantly running all of the time streaming in the data. That is the point of this thing. And I again I think the price range for this thing, you want to
Speaker A
go above 3,000. Um because again, potentially need your GPU, potentially need your CPU, potentially need good RAM, right? if you're going to run multiple experiments at once along with ingesting that that data, right, the MVO data and obviously
Speaker A
where you going to store it, right? So, you have to have that as well. So, that's what I'd recommend. Uh, in terms of SSD, um, you don't need one, but having one's nice, especially like configuring your back test results to it
Speaker A
or maybe, you know, the data that you're planning to use for your back test, you might want an SSD in order for that computation to be faster. Basically, you store your long-term data in your hard drive. Uh, but it takes a long time to
Speaker A
access it, you know, or read to it. So, if you're going to constantly go through your data over and over again, you want to put that in your SSD and it can easily like, you know, flicker through it and all that stuff. Anyways,
Speaker A
um, and I think I was going to say also a personal computer, if that's not the option, you could look into a slurm. Is it slurm computers? Basically, supercomputers that potentially, you know, local university can have. So if
Speaker A
you're a student, try to get try to get in the SL room and be like, "Hey guys, like can I use your computer resources?
Speaker A
It's not going to be as easy to configure because you are sharing a bunch of units with a bunch of people, but it is possible because you now have access to the hardware that can do these computations. So I'd recommend that
Speaker A
slurm. I think there's maybe even like subscriptions to slims that you can find online like supercomputers.
Speaker A
Um I don't know if those are the most affordable. I haven't looked it up, but like universities have these things and universities they care about profit, but I mean like it's it's basically free from what I can tell, right? Like it's
Speaker A
not as as cost, you know, expensive wise anyways. So that's also another option that is not listed here. My personal favorite personal computer for something like this. Okay. And that's just for back testing, streaming data, this whole like pipeline. Cool. So that I don't
Speaker A
even know where we're at right now. 10 minutes on my first live. This video is going to be something. Okay, I'm really going through it right now. Hopefully you guys learned some stuff here. Okay, prerequisite software. So, be able to
Speaker A
code somehow. Okay, you don't need to be a coding expert. You don't need a, you know, PhD in computer science or coding whatever. Okay. Uh, you just need to be able to code somehow, learn the basics of coding potentially. Um, you basically
Speaker A
utilize cloud code. Okay, that's really the the main skills that you need. Um, and I think on the right is a dude programming. So again, if you're if you you're a programmer, that works, too.
Speaker A
Okay? If you're programmer, chilling. If you got a computer science bachelors, which I assume a lot of you guys have, you're chilling. Okay? You know, regardless of how cook you think you are, you're good enough probably, you know, prerequisites for a project
Speaker A
like this. Okay? Um, and then the other prerequisite is having rhythmic subscriptions. So again I I talked about what Rhythmic is. Basically Rhythmic is a data provider for features data. So um what's it called? They don't don't just
Speaker A
provide the features data which they do it through exchange. So I guess they're not technically the only ones responsible but you use their system in order to get the data. Um [clears throat] that's what they have. And then they
Speaker A
also have something else. Uh oh yeah they have basically you can execute trades off of their system. So you're not just streaming in data data, but you're able to connect to a brokerage and through rhythmic be able to actually
Speaker A
do trades through them. So it's almost like a two for one right here. We're not just getting data, but you're able to execute get an execution client for $100. Okay? And that's why I say, hey, the $100 is not just for getting data.
Speaker A
It's like awesome for executing. So for later on, if you want to do this, right, to execute stuff, I would recommend this. However, you need one you you can only have one um what's it called?
Speaker A
Client. Um if you have two clients run simultaneously, you need another $100 API code API, which again I would try to avoid. And there's a strategy that I have on avoiding it and I will show that in the future. But uh that's rhythmic
Speaker A
and that's why I think it's the most affordable option is because again $100 for the API subscription, $41 for the the actual four exchanges to make four exchanges. You can pay more for other ones like ICE I think but this is
Speaker A
basically what you got. Okay, so it's 141 a month for live MBO data and that doesn't include the other, you know, variations of data that you can get like level one and level two. It's just like, you know, if you can get a level three
Speaker A
and store all of that, you want to uh but it also does support like all those other you know data types um level one and level two as well. So that's something there. Um anything else that's basically covers that right? So again
Speaker A
coding coding is key. If you don't know how to code at all need to take a basic course at least Python. Python guys Python at least if you don't know how to code. Okay. So, with this, you cannot
Speaker A
see this probably. I'm just going to move my guy here. Okay. I'm going to move my Yeah, right there. Okay. So, [clears throat] what is this? So, you need to know at least two things about Nautilus Trader. The fact
Speaker A
that you got a data client and then you have an execution client. So, Nautilus Trader, what is it? Um, if you do not know what Trader is, it's like a full pipeline of how to handle stock market data
Speaker A
of all kind, like any event data, so it can literally process like news, satellite, you format it correct, like everything essentially under the sun.
Speaker A
Basically, this one guy, Chris, shout out Chris, okay? He spent like multiple years, a decade at this point, redesigning the system over and over again to get it to this point. So, I would use this stuff. Okay? If you're
Speaker A
not using this stuff, you're like, you're just not making a good system. Okay? Like, if you want to make a a system that is legit, like, you know, in terms of other people in the industry making systems that are complex and able
Speaker A
to find edge relatively fast, you want to do something like this. I think you want to use anonymous trigger anyways.
Speaker A
But essentially, you figured out like, hey, you're going to have your data client, your execution client in terms of things that need to reach out to stuff, right? So, your data client's going to stream in data. Your execution
Speaker A
client is going to connect to your brokerage. You probably need stuff like P&L and what have you, right? It's like, hey, you have to execute a trade. I want to cancel a trade, whatever. It's my P&L, you know, all that stuff. Okay? So,
Speaker A
you're going to have these two components, and you can see they're highlighted here. Everything else inside of this that's not kind of had has this like red or green box here. It's not really important to this video. It's
Speaker A
just a black box. You're going to have to learn this stuff on your own. But it's basically uh internal systems. We are basically making the outside framework that just gathers data and has the scalability to then order stuff with a strategy in the
Speaker A
future. That's what we're basically shooting for. So that is kind of the prerequisites is just understand that high level was the fact that we have a data client and execution client. Now I got to move my guy again, dude. No man,
Speaker A
no dude. There we go. Okay, I'm going to move my guy down here. Okay, so now we have the functional layout aka cash money. Cash money. Why is this cash money? because this is how the code looks like architecturally. Okay, so we
Speaker A
have the data sources rhythmic included that we discussed, right? So we have um what's it called here is going to be rhythmic right you can also for your data sources I I'm just going to say this for this project
Speaker A
with nautilus it doesn't just work for rhythmic you can expand it to crypto mio you could expand it to uh satellite data you could you could expand it to Donald Trump tweets you could expand it to Nancy Pelosi you know whatever okay like
Speaker A
all of this data you can pipe in through this okay So, what we're going to have here is you see the purple, it says adapter projects. So, basically, you're going to have a bunch of projects which are going to be the particular adapter
Speaker A
you want to hook up. Now, Nautilus has a lot of adapters out the back, right?
Speaker A
Like um what's it called? I think I don't know if they have Poly Market, but they have Polygon or Massive. They have a bunch of default ones that are here.
Speaker A
Okay. If you feel generous, you can uh potentially code your adapters and put it in the public um what's it called?
Speaker A
Nonless repo repository. But if you can't because some of the disclosure, which by the way, Rhythmic has, then you you're going to have to build it yourself. So that's where the coding knowledge comes into play in cloud code
Speaker A
to be honest. Um so you're going to have your adapter projects again. So you're going to have like Rhythmic is it's its own adapter project and then you're going to have maybe like Donald Trump tweet scraper project and then you're
Speaker A
going to have like uh you know crypto L3 data you know whatever project and basically each project is a data stream.
Speaker A
It could either be um or it's called it's going to be client but it can either be a data client execution client or both. So in this case, rhythmic is going to be both an execution client and a data client. You can have just a like
Speaker A
a data client or just an execution client. So one way and I'm just going to say this now if you guys are still listening, okay, one way around expanding this is basically getting one data provider for potentially stock
Speaker A
market data and then a lot of my uh like Roth IRA stuff is in Charles Schwab. I think Charles Schwab has a free API. So I could basically hook that up as an execution uh client and then I could
Speaker A
hook up like Massive or whatever or anything else under a you know data source you know client and then I can basically see how how my Roth you know IRA is doing in terms of managing my long-term portfolio and simultaneously
Speaker A
it looking at my short-term portfolio at the same time. Okay, at the same time that's the system that we're building here. That's that's what I'm trying to show you guys is what is the layout for how to get a system like this started.
Speaker A
So we have these projects that we put in here in order for connect to these clients and and getting the data that we want to right now we have the actual live project which is going to be containing the strategies and containing
Speaker A
all like the pipeline stuff. So here we get you know the nautus uh we get the data source the data sources and that goes into the nautus client like we discussed and then we have for the execution sources side it goes into the
Speaker A
um nautilus execution client which I don't know why I put feature there I put future there because it's not built for me yet but anyways so you have this execution client and the idea is that on the data side you get this nautilus data
Speaker A
client it takes in the data and it puts it into two locations. It puts it into the storage and then also puts it into a feature strategy black box. Okay, so why this is a black box is I haven't built
Speaker A
this yet, but ideally you basically have this data streaming you store it and simultaneously you and by the way you store this in another process so it doesn't slow down the main pipeline. So you store it in another you know thread
Speaker A
or whatever and then that same thread is going to go and hey I want this data put it into the strategy com you know calculator whatever and then execute you know whatever the model says and by the way I just want to preface okay we're
Speaker A
not just trading like very narrow stuff here what we could do is and I forgot to mention this like we can take a Roth IRA execute trades [clears throat] off of a Roth IRA futures broker. We could hook
Speaker A
up Polygon to this thing. So, we could trade Polygon and a Roth IRA with with, you know, Apple at the same time to de if we develop some strategy where we're able to see, hey, for some reason, you
Speaker A
know, this poly market here and this, you know, stock market here and this futures here has some like relationship and we can trade strategies that reflect all of those things, right? like we're we're opening the permutation space of
Speaker A
possibilities. That's what you want your system to do, right? Because if your system can do things that no other people can do, that's where the edge is.
Speaker A
That's where the edge is. At least that's my hypothesis. Okay? We go in hard, dude. We're finding all of the edge. Okay? We're not we're not digging with shovels. We are building advanced like, you know, what's it called? Drills
Speaker A
machinery. You know, the drills that have drills on top of themselves. I don't know, dude. We're We're going to find the gold, okay? We're building systems to find the gold is what this is. Anyways, so regardless, yeah, that
Speaker A
future strategy blackbox, it takes in the data and whatever it executes it. But basically all you need to know for this video. Okay, we get this anal client and data client and then we also store it in this like, you know,
Speaker A
parkhead storage writer. Now when it comes to the Parkhead storage writer where we're using this it's pretty simple. Okay. Um a lot of people use CSV files for for data.
Speaker A
Don't use that for MVO data. Okay. Do not use it for MVO data. You want to use parquet files because they basically what they do is you know a zip file compresses information right? Um a parquet file does the same thing. So
Speaker A
imagine a CSV but you compress it. So it's like way more efficient when it comes to you storing it. And also not just that when you're reading it, it like un you know zips the section that you need. It could unzip like part of
Speaker A
the file. So you could unzip like a few rows but not the whole file. You can unzip a few columns but not the whole row. So it's a very efficient like almost like zip for um what's it called?
Speaker A
Tabular data. So like you you want to use it. Okay. And basically how you store that is you want to store it in kind of like this this mini database way. You don't have to use an actual database. I don't just
Speaker A
like a a data lake of parkquet files is what it's called which is basically a bunch of folders that have a bunch of parquet files you know. So that's what I would use. And again has its own parquet
Speaker A
writer. Use that use that they solve the problem of how do you organize it? How do you think about it? How do you whatever?
Speaker A
Use their their writer. Use it. Okay. So, basically, you have a separate file that's going to store all your event data in this, you know, parquet format.
Speaker A
And you're going to store that in your hard drive. You know, that thing that I said was $1,000 or whatever to get 20 terabytes of or whatever. You're going to point this thing. Hey, store it in that freaking hard drive. Okay. So,
Speaker A
that's basically what this is. So now this is the functional layout. I forgot to mention also that we have a telemetry project. What is a telemetry dude? I don't know what that word means. Um basically it's where data gets kind of
Speaker A
logged and monitored. So we're logging in data and we're going to monitor it. Why this is included in this three kind of project, you know, which again this is live. There's obviously like other projects that I will discuss in the
Speaker A
future once I develop them, but essentially the telemetry project is going to hook into all the other projects and be like, hey, how is the me like how are we doing here, right? Like how many data uh how many uh MBO events
Speaker A
are we processing, you know, currently how's the health of the system doing you know what's the throughput that we're getting? what's the latency of our system? Right? This is information you want. Okay? Because if you have this project up and running, you're like,
Speaker A
"Great, I'm streaming data." And you don't have, you know, metrics, you're blind. You you don't know if like your data is bad because like, you know, your system went down for a little bit or, you know, whatever, right? You know, or
Speaker A
if your your system's really inefficient, you can improve that. You don't know because you don't have metrics. So you also need metrics in order to monitor the health of your system and make sure that your data quality is good and also that your your
Speaker A
system is functioning the way you want it to. For example, if you have a strategy deployed, you want to know what it's doing. You really do. If you don't, uh it's not going to be good. So this is
Speaker A
already like hey this telemetry deal this monitoring deal this is a project that basically all the other projects touch. So I would not recommend that you have metrics individually for these projects like they are going to have their own calls to telemetry like hey I
Speaker A
need you to warn this right but telemetry is going to set up the connections being like hey all of the unit all of the log files go here and here all of the metrics go to here and here here every it's going to be
Speaker A
basically the orchestrator of like where your your metrics go to um and I think I might explain that a little bit more in depth later on. But all you need to know is that that's the main monitor project.
Speaker A
So, okay, coding at a high level. I already kind of explain this, but here I'm going to need a drink, man. Going all over this, dude.
Speaker A
So, high level coding layout. So, we have these adapter projects. Again, these contain all the data/execution sources. One of them is going to be the rhythmic project. You might have like poly market project, right? You can have Charles Schwab. You can have massive or
Speaker A
whatever, right? You have this. You're going to have your life project that basically, you know, takes in your data and stores it. You can put strategies on it, though. Mine can't do that yet because that functionality is not built,
Speaker A
but has the ability to get to that point. And then you also have your telemetry, which logs stuff. And also I should say I should preface because this image actually doesn't show this telemetistry would also hook to all of
Speaker A
your adapters right because it would also want to make sure hey you know what's the you know latency potentially of your particular project right like what's the latency of live but also what's the latency of of rhythmic so
Speaker A
telemetry would literally hook into everything um but yeah this is basically the main flow of of this project here So now I'm going to show you the system demo. So basically code storage metrics and detailed logic kind of. Okay. Again
Speaker A
I don't know how much uh you guys are kind of getting here because a lot of you know online stuff related to Quan is like dude you got to do the freaking Batman and this is like this is going in
Speaker A
hard. Okay. This is like, you know, I assume the Quant Guild people are watching this or people similar to those, you know, like super nerds, at least maybe at this point in time. So, I'm going to try to run this down for
Speaker A
you guys like what this thing is. So, I'm going to change this to this view.
Speaker A
Why this view? Because I think this hides my security stuff. Uh, do not hack me, please. Okay? Please do not hack me.
Speaker A
I beg. So, uh, cool. Not questions, resol system demo. Okay. So, I'm going to show you what's it called this. So, this is my live metrics. Okay.
Speaker A
Yeah. Hopefully I don't click on something. Anyways, so this is my like monitoring system. So, here we can see that. Hey, um actually what can we see?
Speaker A
See that there was something that happened here which there were some events that reported and kind of like dropped down immediately. Um I actually know why that is and I'll explain in a little bit. [laughter] This is just a lot of stuff that you
Speaker A
know I forget to mention like hey there's this also this other component. So this is not easy. This is how to get it cheap. I didn't say it was easy. All right if you it wouldn't be easy. I mean
Speaker A
you got to pay you got to pay money if you want it easy. Anyways so we see the health of like everything. So we have the storage health. So we know that our storage you know uh program is running
Speaker A
our rhythmic program is running and then we see that hey we are logged into rhythmic so that's that's great and we can see successful connect connections authentication failures we have all this stuff monitored. Okay. So, and then also
Speaker A
I should preface on the top here we can see hey uh we have like Prometheus we have Loki which all pre Prometheus does is it logs in like metrics. So all of this is like hey how many events are we
Speaker A
recording you know what was the last time that we saw this particular event all those are being monitored through Prometheus and Loki is just for log so anything you print on the console Loki basically takes it and also prints it
Speaker A
here. Oh man service uh my whole program is called Mafic. if this goes far enough, you know, maybe I can turn this into a business or I don't have to because it just be my personal kind of, you know,
Speaker A
wealth manager. But this is my my live component or my live project is called like Mic Live. And then you have the run ID. Um [clears throat] I'm not going to go really deep into this, but all you
Speaker A
need to know is this is the ID I gave to um live. So what's it called? All of the live runs are here. There's another one for test runs. It's like, hey, does everything work as intended? That that's something
Speaker A
else. That's another run ID. So, we have that. We can see instruments. So, we can see, hey, what if we want to see only for a particular instrument? We can do that. So, it's like ES here. These are all six,
Speaker A
which I I honestly forgot what some of these symbols mean then. I've just been trying to make this project be a fiction and all this other stuff. I definitely skipped it. A B C E F. It's not showing
Speaker A
anyway. It's right here. Okay. So, yep. Clear that. And it just shows, you know, that instrument or group of instruments, whatever. Right. So, I can just select all. It's fine. Logging level again, level logs. So, I'll kind of show that
Speaker A
in a little bit. But, so we have this kind of search bar here where we can search for things. We have um you know overall health, we have market data. So we can see here like hey how many events
Speaker A
are we kind of g grabbing and this is kind of posting the last 5 minutes. We can obviously extend that the time horizon to kind of see like huh what does that last hour look like? It kind of looks like this right? So, just going
Speaker A
to go back to the minute. So, we can see, hey, you know, this one right here, this MB, you know, market, I guess, MBT, which I think that's like a crypto.
Speaker A
This is collecting 40 events per second. I think this is also crypto. So, the crypto markets are working on the weekend. I'm recording this on a Sunday, so we can see, okay, yeah, the crypto markets, we're getting data here. The
Speaker A
other markets, they're dead in the water. They're not collecting anything cuz the the exchanges aren't open.
Speaker A
That's what you want. That's the type of data you want. You want to be able to look at this and be like, "Oh, uh, this is down. This is not. It doesn't does it make sense? Oh, yes it does. Okay, very
Speaker A
good." You know, and then we also have this where it's like, "Hey, um, does the market data kind of like when was the last time we received this sort of like market data?" So, um, or is that the
Speaker A
case? Is that the case? 10 minutes. Um I don't know if this actually scales with this but recording that measure 2 pipeline. So basically we have like a Q here which basically backlogs events. Q1 a Q uh because any dropped events is
Speaker A
bad. A Q basically prevents you from having dropped events. Q is data structure programming. If you have you know bachelors in computer science you would you would hear about this somewhere. Okay. But uh you want to have something like this as well you know and
Speaker A
then you have the latency which is basically how fast is stuff getting processed here on the average case it's taking like five microsconds. kind of five microsconds. Worst case, it's, you know, getting to 100 here, which kind of is
Speaker A
not the best, but um yeah, on average like 20 microsconds worst case, right? Worst case. Um in this kind of like third degree standard deviation, you know, this third Yeah, third standard deviation. Anyways, um which is statistics. Again, you want to learn
Speaker A
statistics if you're doing any of this, by the way. any of this. So, you know, we can see latency, we can say latency of this, which basically what this is is like rhythmic, you know, like how fast um what's it called? Is it being
Speaker A
processed through the rhythmic like interpreter or whatever to my actual data system pipeline? So, these are two separate metrics. So, we add this both of these and that's like the overall basically latency of my whole program right now. Obviously,
Speaker A
network latency is going to give a huge ball being in the milliseconds versus the microsconds. So, really what this system shows me automatically, okay, I don't know how much you guys can understand this. I'm hoping I listen a
Speaker A
little bit, man. At least one person, man. Shout out to to at least that one guy. Okay, hopefully this video is useful cuz I I assume this is like one of those videos that is like searchable, right? But
Speaker A
anyways, what this tells me is basically, hey, if I can make a strategy, right, and obviously you would have to see the the processing latency and whatever, but what this tells me is like, hey, if the network takes like
Speaker A
this long, give or take on average, right? It's like 25 milliseconds and this takes a few microsconds, this is negligible. This is the bottleneck. If we have a strategy that operates and does a computation in like you know 100
Speaker A
microsconds maybe uh if we could submit that and potentially have a program that within a trade happening on on the other end we can react in 200 n or sorry 200 milliseconds which is a fifth of a second and still do something. This is
Speaker A
not going to compete with HFT systems that compete on potentially uh nanoseconds, but this shows us, hey, where can we compete? How can we compete, right? And this, you know, still, you know, being able to submit a strategy in a fifth of a second with
Speaker A
nuance is still something we could take advantage of. So that's something that this shows us as well. This is why you want monitoring. I'm going to say that again, again, again, like, hey, you want this because this was this, this is why.
Speaker A
All right. storage. Again, we can see storage here, which this looks kind of odd to me. It did not look like this before.
Speaker A
Yeah, this is interesting. Byes written. So, I got to see if this is writing anything right now. It should. It's not showing that it writes anything right now. So, I'm going have to look at that cuz I did restart this right before this
Speaker A
recording. But, you know, we can go here and we can kind of see like, hey, it's writing. Okay. So maybe it's not writing because right like we have no events being processed. Once enough events are processed then we write it out. That
Speaker A
makes sense. So there we go. We just solved that problem. It's like okay it's not writing because we are writing in terms of badges which I'll go into detail what that is.
Speaker A
Um basically yeah this is like the buffer buffer size. Basically, we want to get a certain amount of um MBO data before we write it out to a baret file because we don't want to write one MBO individual baret file. That will that
Speaker A
will destroy everything. [snorts] That will destroy everything. It'll make things very hard to search through. So, you want to make sure that you batch your MBO data like, hey, here's this MBO segment that is associated this time ID.
Speaker A
That's really handled through Nautilus by the way. But that is that's how like I'm recording this here. And then we can obviously track errors, you know, data client error, storage errors, maybe other errors in the future, right? And I
Speaker A
guess this is selected range. U by the way, I want to say that this dashboard, I kind of understand a lot of it, but I made this a lot called cloud code. So that will potentially be another video
Speaker A
on how to make cloud code actually give you crap that works and that's really good. But uh you also kind of need to be good to make it good. So that's uh that's one angle there. Anyways, system exporter. So we can see things
Speaker A
like right now I have this system running. Look at how much CPU it's using. It's using barely anything. And I should say I have a good CPU. Okay. I got like a I don't know an AMD like 9
Speaker A
whatever 3D. I don't even know what that means. Okay. It's like I don't know 700 900 bucks.
Speaker A
But like it's it's barely busy, dude. It's barely busy. And so what's it called?
Speaker A
And that basically means I can stream a crap ton of data and my system's fine. I can run back tests to do computations. I mean, like I have enough room to do that. That's great. Memory utilization.
Speaker A
This is kind of a problem, but this is again not really that important. And I think even this kind of shows it. I don't know if this shows it that much.
Speaker A
Memory. Um, I don't think this really does, which is interesting. Anyways, a lot of this memory is kind of hoopla. Uh, because I currently have something uh some other program that's basically using part of the memory, but realistically, my
Speaker A
program is only using like 100 megabytes under the hood. Okay, I I I did the investigation. It works. So, maybe that that's something actually I'm trying to work on is make sure I can see, hey, Matrix Live, like how much memory is it
Speaker A
actually utilizing? So trying to do that. But this is again a general system exporter. So we can see hey here's my you know how much storage that we have in these various deals here. So tank is my my hard drive. Um speed is my SSD
Speaker A
and I think includes also my SSD but speed is my full fully dedicated SSD towards you know storm data or random stuff. Then we also have more metrics related to IO latency. That's not important. This is not really important
Speaker A
uh because this is outside of the hot path. Hot path meaning like hey from getting the data to executing the strategy that needs to be as fast as possible. So that's off path. I don't care but I can still see it just in
Speaker A
case. I'm like oh yeah this this is a problem here. So anyways yeah we got stuff like this and then we have process exporter. I just got this working so this probably not as pretty as it could be. Um this this needs to have Netflix
Speaker A
live again. So I can see that process and how it runs. And then these are the logs. So we can see how many logs that we're getting on the different levels, right? No, no errors so far. We get info
Speaker A
warning, right? So we can see, hey, a bunch of warnings, but you know what's called one info. So it's basically seeing that the rebuild failed. Um, it should say the instrument, but basically I'm just going through and recording
Speaker A
like, you know, 50 instruments, like 60 instruments, whatever. And a lot of those are succeeding, but a lot of them are failing.
Speaker A
And so, you know, I was basically warning like that 11 of these instruments failed, but like the other 40 of them are fine. And so, I'm logging those individually. So, that's probably something that I need to update in my my
Speaker A
metrics. But that's basically what that's telling me. So, it's like, oh yeah, that's great. Another reason you want metrics. Okay. Um, did this happen two days ago? This happened too many days ago. Guys, look at this error right here. Click it.
Speaker A
Boom. What is that error right there? Okay, so we can go here. Error, right? Does that work?
Speaker A
Uh, I don't think that worked. I think that I've not used that search bar actually. So maybe not that. But uh, boom. Error. Anyways, we can see that there is one error, right?
Speaker A
And so I just it's going to take a long time to scroll. Anyways, I did catch that there was an error. There's some sort of error with like a reauthentication process. Fixed it. But that's what you want, okay? You want you
Speaker A
want the logging to be able to see like, hey, did something go wrong? What were went wrong? And then address it accordingly. So, I know this took a decent amount of time to go through, but I just wanted to show you guys the
Speaker A
precision that this thing could potentially provide in detail in terms of your system. And just imagine you have a strategy that's just, you know, going out. It's like, okay, with the strategy, you know, what what assumptions is it making? Um, what's it
Speaker A
called? What how much money did it allocate? You know, is it considering X, Y, and Z? You can monitor all of that.
Speaker A
all of that here along with all this other stuff so you can really just know what's happening. Okay, massive massive thing is having something like this like metrics and I think I'm going to make a video specifically about this in the future to
Speaker A
be honest cuz I think this is so important and it's especially not discussed in like quant um quant you know retail trading for sure you know but even um what's it called just in YouTube in general just metrics aren't
Speaker A
taught especially in terms of like quantitative finance so I definitely want to make a video regarding this a little bit more in detail but there's this right very important part now I want to go over like the the program a little bit
Speaker A
okay so okay we got another thing still good I don't think itself anyways um cool wrote a fine line here guys um my IDE here Are you using the Emacs? Don't even know anything about that. Anyways, what I wanted to show you here on the left is
Speaker A
we have this treeview of kind of my project. So, we're using claude code. So, basically have claude to read through this stuff, be like, huh, what is this? What is this? What is this?
Speaker A
Right? And then it also makes its own documents. And I can read it in terms of understanding, oh, this is what this is doing. This is what this is doing. But also claude can go back and read its own
Speaker A
stuff that it's made. So, that's that. Um that's what the documents is. So we have a quad code makes changes documents them. Um it also does a test driven development sort of style. So any change it makes it makes unit tests for itself
Speaker A
and has to pass those unit tests in order for the code it generates to be valid and it be deployed in any sort of manner. So that's that. Also I should mention the code that you're seeing is Rust. I don't think I mentioned this at
Speaker A
the beginning but there's just so much stuff quite frankly to talk about you know. So I'm I'm going to miss some things but basically when it comes to Rust um it is a systems level programming language that is very
Speaker A
important for things being fast and efficient. If you're using something like Python quite frankly the metrics that you were seeing where hey we are we are going through things on the pipeline in the micros secondsonds is not going
Speaker A
to be possible. It's going to take you milliseconds at least potentially seconds and you're competing in a time frame where hey you're not going to be able to have a strategy that executes makes a decision and is able to
Speaker A
act on that decision in you know 200 milliseconds. Instead you're going to be working on the multisecond decisional time frame if you're using something like Python. That is the sacrifice.
Speaker A
Python is very easy. A lot of quants use it. quant researchers, but the actual deployment pipelines, do not use it because it's not fast. I should preface that using something like Rust is something you want to do. I will also
Speaker A
preface and I'm going to make another video on this probably is with Rust, okay, another special property about it is not that you're just a system level programming language. So, it's fast because you have the control of a lot of
Speaker A
low-level stuff, but also the compiler is very strict. Don't need to know what that means. All you need to know is it makes AI uh write very efficient R code. Okay, that's what it does as an inherent property that just makes it makes AI
Speaker A
really good at programming with it. So, and also know trader is built with it with Rust, which is the main reason to use Rust as well. Okay, so a lot of these properties uh have rust. So, I'd recommend if you're a programmer, use
Speaker A
Rust. If you're not a programmer, use Python. If you're feeling like you can conquer the world in your Genghaskhan and you have no experience in anything and want to learn Rust, salute, brother. I mean, this is not easy, okay? It's not easy. This type of
Speaker A
is hard, dude. I got a master's degree in this stuff and I was at the top of my class, dude. I was at the top of my class. This stuff is hard, bro. Like, for me, dude. So, just just prep, okay?
Speaker A
Anyways, so what's it called? Yeah, Rust. Rust is cool. Um, use Rust if you can. Will make things faster for you and more efficient. And also, I will say that it's a better use of your computer resources. So, if you got a cheaper
Speaker A
computer, maybe, you know, and it's like, oh, well, I don't have enough hard hardware to do this. Program it in Rust, it'll probably work. Um, it'll be more efficient. So, just preface that out there, you know. There's that.
Speaker A
So okay we have that I talked about claw I talked about uh do the documents that I'll make which again it's like hey back test your data stream or whatever. So this just various components some of them are kind of old and deprecated by
Speaker A
the way. So anyways we have an adapters projects of which that has rhythmic inside of it and this is again a special file rhythmic gives you that connects you know which is actually the actual API. I will not be showing that in this
Speaker A
video but that's you know you can store it like that and basically be like hey uh Rust you know build this project out so you have the CPP component that's C++ because rhythmic I chose the C++ option gives it C++ that automatically just
Speaker A
gets translated into Rust through these Rust codes. So um this translates it into Rust I think you know I think this just communicates to directly with the file and there's another conversions.
Speaker A
Yeah this converts it into Rust for the most part and then the different files do different things but all you need to know is basically yes we take the rhythmic data and we convert it into the data client that um Nautilus needs. So
Speaker A
that's what this does for the most part. That's this whole project basically. It's just taking the data and there's also some logs in here.
Speaker A
So um do you want to show this? I don't I really don't want to show this project. I don't want to show it because I do not want to get flagged by rhythmic quite frankly. So I will not even though
Speaker A
that probably won't show rhythmic code but anyways. So I'll just leave it in this view. So we have adapters. One of them's rhythmic infrastructure.
Speaker A
What this is is basically hey you know how are we logging stuff. So we have our logger right this is another thing this is process exporter but this is just a YAML file that contains any configuration options here Prometheus
Speaker A
Prometheus has its own configuration and basically we have a docker compose file which instantly deploys all of this stuff. It deploys Loki server. It deploys a Prometheus server and a Graphana server. And the Graphfana server is basically the interface that
Speaker A
you saw, you know, like 10 minutes or so ago and that sees the metrics being processed by these other servers. So this is where the infrastructure basically the configuration files for these servers are held. And then I'll also have cloud code generate a
Speaker A
dashboard and JavaScript. U is it JavaScript? No, it's JSON sorry uh JSON file very similar to JavaScript.
Speaker A
Anyways, um well, sorry. Um so anyways, you can import that into Graphana and it will just it just make the dashboard. That's what I did. Um this made it for me. I'm like make it like this. It's like okay
Speaker A
legacy. This was my previous implementation at this. This version's way better. Okay, it's just way better.
Speaker A
Prototypes not important. This is just where random experiments go, you know, for my stuff. This is the live project.
Speaker A
This is important. So here we can see, hey, we have um the source and we obviously have all this stuff here.
Speaker A
Um what do I want to load? Do I want to load anything? Store data. Um I don't think so because what is this violent mod? This might be main.
Speaker A
But yeah, what it'll do is it'll essentially just start this this process. It'll be like, "Hey, what load are you loading or what version are you loading? Are you wanting to do a live, you know, deployment or test
Speaker A
deployment?" And based off that, it'll be like, "All right, you know, go ahead and do that." And uh it will run, I think, cuz that's main.
Speaker A
This is lit. So yeah, I'll just run this. And then here, get a lot of stuff.
Speaker A
a lot of comments because a lot of this is AI generated though I was the dictator dictating what works and what stays and what goes. Okay, but yeah runs a lot of this code starts running this stuff loads environment configurations
Speaker A
prints things for debugging purposes. Uh that's what a lot of this code is right like hey spawn in our data client you know hey subscribe to all these instruments that we have you know in this configuration file that's also
Speaker A
something I should promise if you're doing futures like you're going to have to subscribe to all these instruments and they're going to be cycling. Um what does that interface look like? I can show you. Is it going to be like
Speaker A
I actually don't know. I actually don't know. I don't think so. I think it's actually so I can show you cuz I don't think I have any.
Speaker A
We're good. It's not not any classified data. [snorts] Not anything that me. Okay. Okay. So, basically, yeah, you just have your exchanges and then you'll have your like particular exchange and then you'll have, hey, ES can be any one of these
Speaker A
and it kind of like loops around, right? In terms of like rhythmic, it says, hey, you know, we're going to grab this option 2026, you know, in terms of like spring 2026, futures contract or fall 2026, yada yada yada, summer, whatever,
Speaker A
right? And so it just loops through all these configurations and I would have like again like an AI generate this for you and obviously review it and have it access the um CME you know features. But that's how it's doing it is it's
Speaker A
automatically configuring all of these dudes and based off the day that you're deploying this program it's going to cycle through these. So that's your that's your configuration file. It's just like, hey, go through these and whatever. But so that's going to be
Speaker A
that. And obviously that's going to be ran like here here somewhere. So, yep. So, we have that. Um, you have, you know, the instruments you're subscribing to, your DOTs running, and then the most important bit here is storage.
Speaker A
So, we're basically grabbing, you know, these events, and these are being processed here. and essentially like hey how do we handle them we want to process them kind of this buffer and then you know when when we're good we want to write these
Speaker A
instruments out to the let's see I bet you it's going to be parquet writer somewhere record write yeah write instrument so this is some sort of um what's it called is it not closure yeah that is closure you
Speaker A
know some sort of closure Um, let's close up. It's going to be calculate by written because we're what's called monitor that metric. Okay, we also recording health, right? So, we're going to record the right actually right. So, this is a catalog which I don't know if
Speaker A
I have it passed here instrument. I don't know. Again, I did not code a lot of this from scratch. So there's going to be some holes, but the important thing is having like a high level knowledge of how this stuff works.
Speaker A
So regardless, yeah, this is just some test. It's like, hey, how do we record this and and all this other stuff? So that's what that is. But yeah, it gets the instruments and it flushes them out, which means it successfully writes them
Speaker A
to the files. Um, not those. Yeah, I feel like that catalog was the one that had the stuff actually running. Yeah. So, now we're here. You just take this catalog. And that's kind of what we're doing here.
Speaker A
Yep. Yep. Yep. So, here's going to return this thing catalog. Yep. And then we're going to write with this catalog.
Speaker A
Uh, here probably. And we're going to write the catalog once we're when we're refreshing. So that's what this does is it just kind of like you know takes and again this is super nitty-gritty detail right I kind of went from high and I'm going lower
Speaker A
you know kind of showing you what this is and also I want to preface like hey some of you guys might be thinking are are you leaking your edge Josh you know and my response to you is maybe but like
Speaker A
most of you guys ain't going to implement this okay it'd be easier to like pay someone to do this right which might be a feature business venture for me. I don't know. We'll see, dude.
Speaker A
Anyways, so that's why I'm not worried about this cuz again, dude, it's taken a long time for me to even make this and that's given my my expertise terms of again hopeful internships. Uh what master's degree in computer science
Speaker A
and um again, this is the hardest for me. Really hard as So it's like man this is a lot dude and then then we have the telemetry here which again is just like a metric. So the health metrics it's just very these are
Speaker A
very simple it's just like a version of perthesius metrics that are just being logged here.
Speaker A
We have log logging which this is low key and then we have metrics which that is um what's it called? Prometheus but yeah we have this and then it's like hey take this configuration file we just you know utilize it and this lib file like
Speaker A
actually does a physical uh mapping of like our servers and all that given the the config file. So yeah and this should again the config file here should be somewhat similar to like this this compos file uproot servers and
Speaker A
stuff like that. So, and then scripts. This guy basically just deploys SH script basically with a bunch of like bash commands. So, if you're like um if you use the terminal and you type a bunch of stuff, right individually, you
Speaker A
press enter. You type another thing, press enter. The script has a bunch of those basically the commands. So, that's what this is. It's like, hey, deploy make live deploy and test. So I can just basically be like, "Hey, I want to test
Speaker A
out, you know, this new change." I write it a test. I just wait 15 minutes. I'm like, "Well, runs 15 minutes. It covered a lot of like, you know, cases or whatever." Okay, we're good. Got to deploy it. And um you run the deployment
Speaker A
script in order to do that kind of. Um that's the high level there is. We have those scripts that do that. So it makes everything simpler. So I don't have to type in a bunch of commands each time to
Speaker A
run the thing. And then the target basically just holds the compiled code which I'm not going to explain too much in detail but it does do that. So anyways um that was everything. I think this video might have been like really
Speaker A
detailed but I did see that I did have kind of like an architectural video that got a decent amount of views from people that were interested in Nautilus. So, I did want to make something that was a bit more structured and maybe help you
Speaker A
guys out in terms of trying to gather MBO data, you know, as cheaply as possible. Um, because I think it is going to make your life a lot easier when it comes to fighting edge, even though there is upfront cost and that is
Speaker A
something that's obvious. There's upfront cost in terms of expense and expertise, right? like you got to probably know how to code to do a lot of this stuff and you got to know um and you have to have enough money to front
Speaker A
up the bill in terms of like the hardware. Not just that, but like you know you're probably going to have to make the hardware yourself, right? Like make your own computer, configure that, research if the parts, you know, match
Speaker A
with each other, all this stuff. So, um what's it called? It's definitely not easy, but this is this in my opinion is like, hey, this makes the most sense in terms of finding edge because it's so quite frankly hard.
Speaker A
So, that's my opinion on that. Um, but yeah, that was that was the point of this video is hopefully help you guys out, you know, and um share my ideas because I quite frankly want to know if um my ideas are cooked or not. But um
Speaker A
what's it called? just also want to help some of you guys out that are on a similar journey because this is a journey that a lot of people don't go on. So anyways, um okay. So [clears throat] this last line
Speaker A
basically any questions that you guys have uh make sure I comment any questions you guys have in terms of like hey even criticizing my design shoot you know if you have any um additions maybe how I can improve this that'd be great.
Speaker A
You have many questions on concepts I didn't go into detail on that you're particularly um what's it called? Don't understand or what have you, you can also leave that in the comments. that will help me be able to address your
Speaker A
issues in either a comment myself or in a video ideally in a video because I can be more thorough I think there but yeah and also yeah ask me ask me to make a video on any questions you guys have
Speaker A
whether it's related to this or or other things again in terms of my quantitative knowledge it's not a lot I still need to learn that I I plan on taking a few courses in relation to that while developing this project but my expertise
Speaker A
is in software So if you have any questions related to that and trying to integrate it into quantitative finance, I think I can potentially provide you guys some value there. So if you have any questions, shoot shoot your stuff
Speaker A
and I can probably hopefully help you guys. So anyways, that was this video. Hopefully this helps you guys out in terms of trying to implement this and and um grab MBO data cheaply and building a system that that scales uh as
Speaker A
well. You know, potentially I'll have a separate video that potentially talks about that more in detail. Maybe. I don't know. Hopefully this video was was useful. But yeah, anyways, see you guys later.
Topics:MBO datamarket by orderNautilusTraderRithmicalgorithmic tradingquantitative tradingNAS storageECC RAMfutures tradingDatabento











