Good morning, Traders. Welcome to the Traders Lab. I'm your host Tom B. Thanks for stopping by today. Could I please get a screen and audio check in YouTube and the Bookmap Discord Trader Lab chat? Okay, great. Thanks. Thanks everybody. Thanks for visiting the Trader Lab this morning. So you guys know my internet has been intermittent this morning. It's been up and down probably about eight times. Currently it appears a little stable. I think the monkeys are out the lunch or maybe went the lunch. They're always out the lunch. But I've been having trouble. So if I go down here, I'm streaming from Costa Rica. You can access the stream. I should be able to reconnect in the Bookmap Discord Trader Lab. If I'm in YouTube, I might lose the stream and not be able to reconnect though. I have help from the Bookmap team to try to get a link back in the to YouTube. But if that doesn't happen, there is a link in the bottom of the chat in YouTube and you could come over to the Bookmap Discord server. You don't have to be a Bookmap subscriber and Bookmap would never solicit you. So if you want to take that route, you can't. Just want to let you know there are some options and hopefully Bookmap will have my back on this one. If the internet does go down, I lose everything obviously. And then modems, routers, and all kinds of stuff have to reset. It all takes time to come back up. That's assuming it even does. Power goes in and out and everything gets crazy. So that's 91 degrees, 92 degrees, and you're in Costa Rica.  Anyway, thanks for visiting the Trader Lab this morning. I'm your host, Tom B. I do stream live Monday through Friday when the wind is blowing in the right direction and the monkeys aren't swinging in the trees. And this stream is about integrating Bookmap order flow tools with auction market theory using a volume profile in the intraday developing timeframe. The important thing to understand at this stream is about helping traders understand market mechanics, how the market works, why it does what it does, how you might get an alignment with it at times. Also, like everything in trading, it is a random environment that we operated. So it's not, while it might be conditional or somewhat formulaic, it is absolutely not predictable. That is the random nature of trading. So what we attempt to do in the Trader Lab and what I've done for the last few years is share structured trades that you can reverse engineer. It's absolutely free. They're all available in the Bookmap Discord Trader Lab as well. It's a community of like-minded traders who are serious about creating a business or career in trading and to also learn market mechanics and the reality of what trading is. Trading is not what most of us think it is, especially in the retail space. I think we're misled or we just have a fantasy, you know. So and whether or not we're misled intentionally, that's a different topic. But the fact is there's no secret sauce. There's no hidden agenda in the sense that somebody has anything over anybody else in this business. It's really differentiating what you do from what retail traders do. Retail traders tend to do the same behaviors and use the same processes. If we can learn from what they do and you can learn from what you do or have done, you can now potentially get a yield from it. And despite everything, all traders lose dollars. So the difference is, and this is really important, I think, for us as who now are retail traders or professional traders who've migrated to retail, whatever you are, and if you're professional, you understand these things. But both retail traders never exposed to these ideas or concepts. This business is a gaming business. That means it's a probabilistic business. And I always want to start with this because there's no magic indicated. There's no secret sauce. There isn't something somebody has found that has never been revealed before. That's nonsense. What it is, is understanding that the function or basis of this business is gaming, which means it's a, by gaming, a statistically based business. And losses, in spite of our psychological and emotional attachment to dollars and how we feel about it and all this other stuff that comes in based on our wiring, it's really overhead and cost of production. It's easy in concept, but it's not easy from an actionable point of view because how our emotional states, in my opinion, interfere with that. So this is something that I think we always want to be focusing on. And this is something that I think you'll go a long way in understanding business and take responsibility for things you have control over. That's a trade plan, only trading when you have a statistical edge, managing your emotional states, your FOMO, your impulses, all the things that derail most retail traders. This is really the challenge of trading. In my opinion, you can learn how to trade, whether or not you go, you have the tenacity to go through the learning curve and the wear and tear that it takes to try to undo habits and even potentially defective beliefs, which I'll talk about somewhere along the line here if I have time. All of these are elements that come into the business of trading. And these are the things we continually work on in the Trader Lab. You're never there. This is kind of like there's no end point. There's only growth, understanding, and development. General disclosure, all book maps, limited materials, information, and presentations are for educational purposes only and should not be considered specific investment advisor recommendations. Risk disclosure, trading futures equities and digital currencies involve substantial risk of loss and it's not suitable for all investors. Past performance is not necessarily indicative of future results. Please remember, this is not a trade calling room. This is based on structured trades that are available for all of you in the Bookmap Discord Trader Lab, as well as a library of webinars on how this process might work. And not only that, in these library of streams that I have in the Trader Lab, some of them are up to four hours long and you'll see real-time narration. Now the interesting thing about operating in a random environment is that what works one day will not work the next day. Or like a casino, you're dealing one and you're playing a game. Let's call it Blackjack. You deal the cards, you clean the dollars from the gamblers and all those dollars flow to the, you know, the dealer in the house. Next hand, played exactly the same way, all the dollars that are on the table go to one of those gamblers sitting at the table. What's the difference? Well, the difference is the random outcome. The cards dealt by the dealer and how the gamblers did the play. And that random distribution of behaviors and outcomes, random cards, random play just happened because of the random distribution of all these elements, the dollars flow to the gamblers. So the gamblers keep coming back to the table and they have intermittent success. Well, the house stays at the table, has anchored inputs, so they don't have these random behaviors. So they play the game and let's call games setups or structure trades exactly the same way. So anchored. That means they can measure it because it doesn't deviate. The cards deviate that are dealt, the gamblers play deviate because that's all random. The way the games played does not deviate. That's where the edge is created and that's how the dollars over time in a random environment are extracted from the gamblers. That's casino, that's gaming. Our business is the same. Start with that in my opinion. I'm always going to say in my opinion because when I came into trading, I thought it was all, oh, let's predict where it's going and what it's going to do. So anyway, let's go take a look. Now I'm going to say I want to start at the beginning of this. Grab a pen and a piece of paper, take some notes. Now, I know you guys have been following the stream for several years. Many of you have and there's a large community in the trader lab. But the reality of trading is there are days where it's just like what is going on and it doesn't fit a trade plan. Now, and this is going to be a day that's really difficult. And I will tell you that, you know, I do talk to other traders and I'm talking substantially large traders, professionals, okay, not retail traders. And this is hard for them too. So you got to put things in perspective. Sometimes you cannot make the market and your plan align. And part of your plan is to recognize when it doesn't align. And most of us are going to keep pushing the envelope for a lot of reasons, compelled the trade. I want to make it back, you know, and that's what will really do damage because we develop plans for market conditions when we can define them. And that's conditional behaviors. And we have a process for that in a trader lab. But when the market moves outside of those parameters, and we won't know until hindsight, let's just be real about this, then you have to have rules or conditions in place to protect you when your process in the condition of the market are not in alignment. So let's go take a look. And I'm going to start at the RTH open so you can kind of see what what goes on here. So and you can see I have holes in data like here the internet went down for a few minutes. So and that was happening all over the place. This is the RTH open. Let me explain what you're going to see session volume profile just now volume profile if you're not familiar it's just price and volume sounds real funky. But basically it's very simple. It just shows you what volume went off at prices and areas. Okay, it's my bongos I'm playing, you know, beat next year we ever hear of them. Is that noise too loud for you guys? The market pulse I'm going to actually try something here with this. Let me see. Let me know if I if I can just get it down to the background. Anyway, let me know if it bothers some of me, I just lowered it out. Okay. Okay, sorry guys, slight tapping. It's me tapping my fingers on my desk here. Okay, sorry about that. So session volume profile is going to show us all the volume. These are higher timeframe targets or levels that are relevant from an auction perspective. The cloud notes are coming off investor RT they show us important levels during the day and they adjust in real time. These levels are current so they show where high volume took place in the developing daily timeframe. Don't worry about all these things. These are custom notes that as the market develops manually I put in levels as they're developing. They're not automated. This is going to show us the chart volume profile. In other words, this is all of it. This is going to be starting at RTH open. I can zoom in and out using book map. And I'll show you how I use book map, which is I call the tip of the spear to see the microstructure. And this is the delta. Whatever I see, I can zoom in and out and see the delta. Delta shows me where the buyers and sellers are. And the idea of delta, so you guys understand, is to try to see when we have a rotation. Let's say if we think the market might rotate, where are the buyers stuck? Because they become the fuel if we counter rotate. So it helps with timing at times like everything maybe. And depending on how much data I pull in, I can see the delta. So let's start out with the RTH open and a couple of other things. Now remember I promised you a guide so I would not do statistics. You know I have a hard one. Let's take a look at our locations that are important. This is called the naked volume point of control. It's around 4798.  This is the ETH high.  Let's go to the other side. This is our open. We have a gap. This is yesterday's high. This is the overnight or ETH volume point of control. So what that suggests is this is too low. This is too high and we have the potential to test this and this. And here's the end. Let me give you the next target. Now these are targets and like everything in trading. It's like who knows 4815-ish. Now the term ish is a trader-level concept because levels are not walls. They're areas of potential behavior. So it's ish. So 4815 you might make a note of these things. This here. ETH high. Targeting. Yesterday's high filled the gap. Overnight this thing. Here. This liquidity was here. I thought we'd be getting there. And we might. And then down here. So what did we do in the ETH? Now this is before the RTH opened. We tested this level. This was an open level from yesterday. Too low. What about here so far? We've tested this level. Too high. So the possibilities are the following. Trade that. Trade this. And here's why. We already traded this. This was retail in the ETH. I'm giving. This is all before the open. Is this too low? Is this too low? Down there. Maybe this is too low. Then it's reasonable. Come back and check this. So that's a target on the hip rate. Is this too high? It's reasonable to test that. If I get through there, then there. If I don't get through that. And it could do anything in between. And it's like getting hit with a carp in the face. That's it. So that's the lay of the land before the market opens. Is everybody tracking? What's wrong with book map here? Why would I be muting book map? Is there a problem with it? Guys, is there a problem? You're getting audio coming through that's disruptive. Okay, guys. Sorry about that. I'm not sure what. All right. Okay, let's go. RTH open. Now what am I looking for? Let's go take a look. I'm looking for our first structure trade. Now remember this stream is based on structure trades. And it's also based on the reality of what happens when you trade. I can't focus on sounds and things, guys. So let's take a look at this. Now we're opening. This is the thing about this trade here, the current location on the open. I've got that. I've got this overnight mid as statistic. So my thinking on this was we're opening in the middle. Least favorite situation. I've got targets on both ends. I've got this and remember ETH high. And I have a statistic for this, but I tested this. Let's go back to the situation that we're in. I have overnight mid here, which is a statistic. And I have resting liquidity. That's a target. And let's come back. I have yesterday's high, the gap as we open here, and overnight volume point of control. That's a target and liquidity is resting. I want to make sure everybody is tracking. It's very important. Okay. This is important, guys. And what makes this important is we're opening in the middle. Now, so I'm going to tell you exactly my thinking. I'm looking at this and I'm going, all right. And I'm also have a muttering under my breath that it could go either way. So I'm thinking to myself, let's just go look. We sold off yesterday. We came back up. We got a nice tail and we gap higher. That means the shorts are getting squeezed. So I'm thinking about it and I'm going, okay, well, what would I do if I was short? Well, I would buy, I'd cover if I was short. That's one piece. The other piece is if I get the gap and I squeeze, then if the squeeze runs out, I'm going to want to sell it. And then I'm going to be heading back to this. So, but I have two scenarios. So I'm perplexed. So I'm saying as well, I don't know who's going to take the ball. Which side is going to take control first because that's what we're looking for. So now I'm going to go into microstructure and I'm going to try to read it. But I also know I'm really standing on a banana peel. Is the audio clean now, by the way, in YouTube guys? Is everything running pretty good now? So I know I'm in a problematic area. I just don't know what's going to happen. Remember casino, random behavior, clueless. I mean, are we going to get the buyers and come up and check this level? But you see it's already checked. There's my catch 22. Or are we going to get the buyers come up here statistically, get our sellers and come down to the overnight volume point of control, right? This. So that's my dilemma. So I'm going to tell you, it's a dilemma, but I since I don't know the answer, I have to take the trades. So let's look at the first trade. So right here, this is called the variable high volume node. And all it is is RTH open right there, 830 central here in Costa Rica and volume. Now this is very sensitive. It tracks the volume coming in. Eventually, it's not going to be as important. But early on, it's an indication of pricing. And what we want to try to do is see if the current price, whatever it is, if we're moving away from it and the volume and the price are moving together. So let's assume the market goes up. Is it going up? What's it going up on? Is it going up on buy stops and new buyers, which might say, might say and volume in this yellow line move higher? Or if it shifts down and we move up, are we going to pull back to it and revert? Because this is too high. So that creates the dilemma. So let's look at the first trade. So right here, I'm looking to see who takes control. I see a buyer. I see my pullback and test. Is this too low? And it could also just do this and rotate. So right here is my first test. There's my buyer. I'm going, okay, time to get long. Watch. VPOC migration. So I'm looking for a long. Now there's two possibilities. Here and here. Watch the behavior. Now remember, my problem with this is I can blast off and go up to my targets above or I can stay in balance and do two-sided trade. That's what I know. I don't know what it's going to do. So right here, 85. I come down 85. VPOC migration. Now remember, you've been following the stream two possibilities. More than two, but basically let's talk two. Is this too low or is this too high? Is this too high? That's what I have right now. So I know if this is too low and notice what it does, it checks right here. It pulls back. This is my, let me open it up for you, microstructure. And this is setting up a long. Now I have my buyers here, right? This is Delta, CVD. I'm sorry. This is the Delta down here. So this is saying buyers are in this leg. That's your Delta. Okay. So here is a micro high volume. And I'm looking at the 85. So let's just go back. You get sweep here, self sweep. So the book gets swept. Right here, it's either too high or too low. And I'm going to tell you this morning, I wouldn't call it joyous by any means. So this is support. So right here, so it's either going to go too high, break or too high, hold and break above. This is along in the trader lab. And this is your resistance is sitting right there. So it's very nuanced and very choppy. So let's just watch. It needs to hold this and you'd be stopped. Now, if you're in the trader lab, what would happen here is subject to your plan, and this is all again a function of plan. You'd be long here, your stop would be here, and you know this is too high. You have to have enough range and you want to scale. I always talk a minimum to lock configuration. The idea of a two lot, and by the way, everybody takes full stops, it's joyous, is to get risk neutral. So you can keep your stop outside. So the idea of if this was too high, let's look at it. This little micro structure here is a cell trigger. Now nobody knows it's a cell trigger in full hindsight, because you see this. I mean, look at the similarity here, chop, chop, break high, break low. That's what gives you this. What about here? Chop, chop, micro high volume, break low, check, short, except it's not a short, it's a cell trigger. Now we're looking to get long, right? Maybe. And I have a real bad time with this. Do you think you're the only one? If you did, welcome to trade, because I in the middle, I'm in the middle, and I know I'm in a bad place to trade. I like to trade at outside edges. I'm in the middle, but that means two sides possibly, but I don't know that. So let's come back to this. If you see this, this is a consolidation in the micro. There's your seller. Here's the volume. There's the test too high. And that gives you this. Now we come back. Let's look over here. Where do we come back to this volume? It's still too high. Now let's analyze this right here. There's my seller. What's too high? That microstructure. Now, I'm not trying to trade this in the sense of, oh, I got to buy it. I got to sell it. I mean, I don't know. I'm just showing you the resistance. So if I get along here, what do I know? I know that's too high, right here. I want, before I go on, does everybody see this? How are we doing in YouTube? So how do we deal with this? Well, let me tell you that. I have no crystal ball. Still, you know, I sent it out to get polished. It never came back. And here's what I know. I know that's too high. But it's also a very small structure. So it's not strong. But I do know, if I understand how the market works, which sometimes, yes, sometimes no. I mean, I understand how it works. I don't know what it will do. I should really say. I know this was too high. If I get along here, I have to look at this and go, well, I got my sellers is reasonable to think we might get our sellers again if we come back here. Here's what I'm going to do.  That puts my scale really out here. So if I get long, I'm really dealing with a shoehorn. Let's just see what it does. Here. Scale, hold. Come on, Lewis. And pull back here so far so good. So this is the trade. You'd be long. You'd have to scale ahead of this thing. Scale, get risk neutral. If you have enough range, look at this. You're talking about two, three points. Pull back here. It needs to hold this out here. Open this up some more. This is it here, actually. Variable high volume note. This was too low. So you're getting your long, you're getting your scale, and then you're going north, hopefully, right? Pull back here. So this is too low. This is too low. So if this is going north, it cannot take this out. And you'd prefer it didn't take this out. So let's watch. Still looking good. Very excited. Very euphoric. I'll hardly euphoric, but I think some things are okay. And then we come down here. So right here, what this tells me is I'm in two-sided trade. So until this, you know, we came back here, it was okay. We come back here, it's okay. We come back here, it's okay. If we roll under here, it's still okay. If we come down here, it's still okay. See the behavior? Your stop has to stay under here.  You'd be taken out. That's just the way it is. And then you're taken out. So that's the first trade. So what do I know? Let's stop at the moment. What do we know now? Right here. And this is very hard, by the way, you know? Yeah, Willard's is saying he wishes he had a crystal ball. I think I have a bowling ball. So this is where this fails, okay? Now once it does this, and let's take a look at what's going on. VWAP in mid. These are things you want to reverse engineer and think about. When does the behavior change? So so far, here's what I thought. I want to give you the thinking here. RTH open, opening swing low, buyers. Oh yeah, here we go. Come down, take out the early longs, sell stops. There they are. Sweep the book, that's going on. The pocket drops down and we reject. So far, this is okay. Off it, when you have something like this, early buyers, and we don't know, are these buyers or stops, you know, it's a combination of course, stops are going to be under this. So when this happens, it's not a big surprise to me. And then I have this, that's okay. And I instead of pushing lower, I push higher. So that still gives me the long, you see. So I'm still good here. And it's even better. Once this happens, because now I've taken these sell stops out. It's important to understand opening swing behavior. It's a separate behavior. In fact, I posted in the trader lab a while back. And I think I drew these by hand in 2012 or something. And I posted them there opening, opening structures are like five, I think. In the trader lab, do you guys have those structures that I did on opening the opening count and the opening swing? It's like four or five waves or something. And how you can read them? Do you guys have that? If you don't, you should download them. I think they should be up there. If they're not, we'll put them up in the resource area. Well, if you guys haven't done that, then you should download that. I don't know if you have it or not. I should have it. It's in the resources. So right here, we're looking for it to continue higher. And when it does this, the context is changing. Oh, thanks, CMJ. Thanks for responding to the question. So this is your support, which is tied to this. Okay, stop sweep again. Now, right here, it needs to hold this level, variable high volume node. But here's the thing I wanted you to guys to write down. VWAP, MID, and VPOC are aligned. If we're getting directional, they will start separating. What they're doing is they're staying level. That says there's no direction. And this is the key here. So right now, we're in balance. What we want to see is we really don't want this taken out. And you could see the behavior right here. We don't want it taken out. We want it to come back above. And it does not.  So the longs fail, MID, write this down, MID, VWAP, and VPOC are not separating. That tells me I'm in what's called two-sided trade or balance. Now, let's look at the profile. See what this thing looks like? It's Gaussian. That is a balanced market or two-sided. Nobody's in control here. It's just slosh right at the moment. Okay. So the idea of the longs is now like, what's going on? So is everybody with me so far? Now, this is, we're in five minutes. Are you guys with me? Now, this is a day where a frying pan that I had would be more pleasant. But it's part of trading. So now we come outside. Let me open this up for you. I'm going to try to show you. Get over here. Some other stuff here. We come outside. You'll notice I have nothing here. Let me open this up some more. So this kind of trading, this is two-sided range bound trading. It's not my thing. If you have a hard time in this, welcome to the club. I do too. It does not fit what I do because I have a hard time knowing where to activate. So let me show you some ideas with this. Let me just show you something. Now, once you understand you're in two-sided trade, you have a decision to make. It's called mean reversion trading. It's outside in and it's very difficult so you know. It's very difficult to trade because you're trying to identify the outside and it's called mean reversion. I'm going to try to see if I can show you something here. I don't know if I can. Let me just try. So this is maddening and it's painful because if you're not, if you don't recognize that you're in balance, you're going to be taking directional trades.  And it's a difference. It's a specific context. And I posted in the trader lab what's your plan and what is the context. And I didn't get a lot of response and I think I understand why because it's confusing. Are we going down or are we going up? When it's coming up here, you think it's breaking out. When it rolls over, you think it's coming down and this is very confusing. One of the ways to try to deal with that is to have a definition of balance and you're not going to know anything about it until you see it, this. So you'll take stops in here because you're going to think it's directional. But for me, when it broke under that level, then all bets were off. So everything was okay for me basically until this. Then it was, oh, what's going on? And then back here and then out here. So I'm going, oh, what a mess. So this became a mess. Does everybody agree it was a mess? Yeah, very hard to trade. Okay. Yeah, a huge mess. Okay. So me too. So, and I have statistics. You know, the other part of this is I'm going, well, overnight mid is a good statistic here and the overnight volume point of control filled the gap yesterday's high. These are all good statistics, even value area high, good statistics. So this is the short targets and this is the long targets and I'm in the middle. I want to come back to that again. Because when, before the market opens, you are trying to pick a side to see where's it going to go first. And what it did is it just did this. So very hard. So let's go take a look. I wanted to show you some market pulse because in market pulse, where's this thing going?  Are we in the top or the bottom of the bottom? Okay, thanks. So we did take it. Yeah. So so let's go take a look at this thing. Balance. See, so if you're trying to, I'm going to show you right here is too high and that's too high, but we are in balance. So we can come back in here, bounce down and you might think you're going for this or we can come down here, come outside, notice this liquidity in the book and then come back outside here. I don't remember any of this. All I remember is looking at it and feeling the pain. Yeah. So let me show you something with market pulse. And I've been looking at market pulse and you know, I'm not an indicator person, but what I find with market pulse, when you get into two sided trading, it might give you some, and you're using Delta because all two sided trading is you got your shorts and a down leg, you know, you get your buyers in the up leg. So the stops come up on behind here and then we were slosh. So that's what happens in balance. Both sides are getting pretty much what's happening, at least if you're a day trade. Market is now long. There's the buy Delta. This is the market pulse. So what this is showing us is extremes of behavior. Now the problem, of course, with any indicator is it's very limited and it's not context sensitive, but if you can observe the behavior, you might be, now you have to, here's the other part of it. Do you want to trade mean reversion? It's my least favorite condition. And the reason it's my least favorite is because I don't do so good at it. Because I can't tell what's going on here. Is this a short back to the mean? Are we going to come to the other side to the statistics down here? Or what are we going to come up to this side? That's the dilemma, you see. So let's take a look. Now this is called the initial balance high. It's the first hour's high. It happens over here. So at 930 it's set. So 930, we take it out. Now that means the possibility exists that we're going to come here and here. That's statistically where our probability lies. Now remember the caution flag? We got the ETH high and tested our target up here. That's the dilemma. Go back to the beginning of the stream. It's just what I know. But the beauty of knowing what you know is you also know you don't know and that adds the joy. So right here let's go to microstructure. And again, I have no clue. I get my range extension. So this is suggesting higher. I have this and this and higher. 4815 is potential targets. But let's look at what happens here. Market is long. I get my range extension. Looking good, Lewis. Volume. Looking for continuation. I see a seller. It's like, what are you doing here? Let's look at market pulse. Market pulse is at a high. And the delta is positive. It's reflecting. Let me just open this a little more here. Right here. This delta is reflecting the volume in this leg. So that's by stops by yours. So I have positive delta and the market pulse is also hitting an extreme. So that is potentially a situation where we might get a rotation or not. Now you have to prioritize your input. I don't use indicators. So basically you'd be looking for these. But you'd also be seeing that we're vulnerable to rotation. So right here you'd be looking. There's a seller. See the change in behavior. This is your volume in here. There's your pullback. Now subject to how what your trade plan says you could exit under here or here or here or not. But this is what's giving you a scenario of maybe extreme. And also the leg is the delta. So the buyers are in here and these guys up on the top are trapped. But you don't know until you see the seller. Okay. There's no way to predict. Remember, we're not in a prediction business. And then you get this thing.  We got an IB low. And where's our target? Yesterday's high overnight volume point of control. Value area high. Now there's no way. For me, this is just a nightmare. Because remember how I started the top of the stream and none of this had happened yet. That is this might be it for the upside or not. And we had this and this. And we have more to the downside if we get there. And to try to trade this is a mad thing. Notice this. This is our highest volume from yesterday. That's the ETH low. So we tested it. Does that look similar to this? You see what I'm saying? You see why the dilemma and we're opened in the middle? That's like balance guys. So too high ETH high. Too low ETH low. Open in the middle. Slosh, slosh, slosh. Is it logical? Are you guys tracking? It's important. So what do I know coming in? Let's go to the top of the stream. And if you missed the beginning of the stream, all this was laid out. Not predicted, laid out. And then and you have to pick a side. Well, and the reason I was thinking the long side was because the market is short and we would squeeze these guys. And that kind of put this on the table. So that's where the longs came in early. And I was okay with that because I was thinking if we get the longs, that sets up the short to there actually, right there. But instead we got chop. And why did we get chopped? Because we're in the middle. That's the top of the stream. And it's important that you now most of the time this is not the scenario, you know, but it is a scenario. So you got to look at today, it's very important that you understand today. You'll, because this is a day, it's one thing to be making profits, you know, we all want, of course, we want that every day. But let's also think about the days where we don't. Why? And it's important to study the days that don't work. And can you understand why? The thing is then, can you define why? Now it's going to be after the fact because nobody knows anything. Remember, it's random. But can you create a conditional statement that when the behavior does not align with what you're thinking, right? And, you know, basically it was up first to squeeze, maybe up, maybe to here, maybe to 15, then rotate. So the longs first, and then the rotation, and then get the targets, and then rotate down to here. That was the trade plan. So you can kind of see it's doing it. But how do you trade that? I'm going to tell you, for me, not so much, just the way it is. I mean, I'd like to tell you that I know something or the ability to navigate in CHOP. I don't do good in CHOP. I mean, what happens for me is when some lose some, and it's kind of like after when the dust settles, how'd you do for the day? Because it's just not a good kind of trade, you know, like even this, you know, if you're trading the mean reversion, and you come up here, and you don't know, how do you know we're not going to get here? And we still might. I don't know. You don't. Here's the seller. Let's look at the microstructure. Part of having a trade plan is if you understand your imbalance, you really got to trade differently. It's a separate plan. And you're not going to know your imbalance until you're in balance. I mean, you have to define it. You know you're in balance when we start sloshing around the volume point of control. Like now, it's still balance. It's still mean reversion. Notice what we're doing outside in, outside in. And are we getting our targets? Oh joy. Oh rapture. What are we doing? Where's our target? Here and here. Fill the gap. What's sitting here? This liquidity has been sitting in the book since, you know, back in the Stone Age. All the way back. This is how you look. So when I was looking over the horizon this morning, before the open, when I'm preparing, you know, everything and kind of getting everything lined up, this is sitting in the book. It's in alignment with this. So it's a target for me. That's what was setting up the idea of long shorts to here. So I was thinking, well, here, you know, and why? Because we already tested this. So I was going, well, fill the gap, get here. So that's, that's kind of thinking. And I think I've, I don't mean to belabor it. And we already tested this. So I know if I got through here, I go to 15. When I say I know, I say, I know, I might go to 15. If I can't get through here, then I'm coming here. If I get down under here, I'm coming here. But I already tested this. I know I'm repeating it, but I'm coming back to it because that's what I know. I don't know what it'll do, when it'll do it. If it'll do it, I know nothing else because I can't. So that's the trade, mean reversion. And so you, if you think you're in mean reversion, you cannot be thinking you're in a directional market. It is a separate trade plan. And again, for me, it's my least favorite, because even if I get a good location, I get risk neutral. There's not a lot, by the time I can respond or I'm trailing a stop, you know, I'm giving back a lot of the open trade equity. I also have the joy of taking full stops. Well, how does that all wash out at the end of the day? A lot of trades, a lot of stops, a lot of scales and stops. If I'm fortunate, I'm going to have some profit or I'm going to leave some for the sweeper. In other words, the casino is going to be picking up the gamblers and walking out. And it's their turn. And it's part of the business. Don't like it, but that's what it is. And I hope you weren't looking for something different because I have no control over this. I only, what I can do with this is I can try to define it as in conditional statements. And when I recognize the condition, I have a mean reversion trade plan, or I say it depending on my metrics, I do not have a good edge in mean reversion. I'm not going to trade it. I'm going to study it. I'm not going to trade it. That's what you have to decide. You can learn to trade this, but you've got to ask yourself, does it pay?  I mean, here, let's look at this. High volume, seller, who knew? Here's your high volume structure right there. Notice we come back and test it. That's a short in the trader lab back to the mean. Now you come outside, you'd be going for this. Now you're holding because we're looking for this. We pull back here. Is this too high? Now we're going to check this potentially. This is a structured trade. You've got to be trading outside in though. Can you do it? And you've got to be thinking about getting long somewhere, subject to how we behave in here. So let's keep an eye on it, okay? Can you see the rationale, the dilemma, and the rationale of the trade? Yeah, I do not. There are no cloud notes that I provide, but other participants in the Bookmap Discord trader lab do share cloud notes that are fed off of investor RT, but that's up to them to share it. They do. That's part of the collaborative nature of the trader lab, pooling resources working together. But here's the structured trade. This is the short. I was going to show you a market pulse too. I want to try to get that into this so you can kind of see. And again, I'm not an indicator guy, but I'm showing this to you because I think if you understand the condition of the market and you understand its mean reversion, and this is the thing I always talk about indicators, and I don't use them. But the reason it's important is indicators have a time and a place. They're context-specific, in my opinion. They're not generic. And that's why indicators, which are also random in their nature, might apply to certain contextual behaviors and absolutely not apply to others. How do you differentiate the difference? Well, in the trader lab, basically, it's understood that you need to understand context. Hardest part of this whole thing, besides the psychological part, is understanding the behavior. This is mean reversion outside in trader. If you recognize you're in two-sided trade, then you can deploy an indicator to help you see extremes. So what is the market pulse showing me here? Let's look. This is showing me the delta, which says long, long, long, long, long, long. Market pulse here is showing me excess. This is why you can get run over with indicators. Is this a short right there? You got a little ripple. You'd take a stop, comes outside. Now the delta, so it's only shorts based on delta because you're trying to get the longs in here and you want, and at some point, you're going to fade the longs to get the rotation for the mean reversion, if that's your thing. So let's look. So let's look. Now let me help you with this. Do I have a sell trigger? There. Do I have a sell trigger? Yes, no. There. There's a selling. There's my volume. I get a buy here. Where's my next sell trigger? Let's look. I have buy delta. Remember, I'm trying to get who's going to provide the fuel for the rotation in mean reversion. Here. Is that it? Let's look. Market pulse. Delta. This is alignment for potential short. Where's my trigger? Let's look. Where's my trigger? I have a trigger. Goes higher. Market pulse shows an extreme. Now let's look over here. Now I don't spend time on this because our nature as retail traders is to want red light, green light. That's why most retail traders, and it's a personal opinion, not in the business anymore. Most of them fail because they think the business is made up of this. It's not. Here's excess volume. Here's buy stops. Let me just look a little higher up here. You got some sell iceberg going off. Nothing material. There's just nothing going on here. Here's my excess. Here's my volume. Got nothing. Little seller. Got my buy delta. Everybody's long. Market's long. Watch. Very nuanced. Icebergs. Seller. Change in behavior. See the change in behavior. Now I got to try to get short for mean reversion. Let's see if it comes back and if I have a way in. Nope. No way in. The closest you can get into this thing is in here. And this is where you're going. $85.92. It's doable. Your stop's got to be out in here someplace. And you're going for this to unwind these longs. Oh, actually, here look. So this is your too high. Okay? Here. There's your seller. This is the bottom edge of the volume right here. So you're looking for a pullback. You could sell this if it's in your plan and this is where you're going. So because it's mean reversion. Now let's hold this location and scroll. There's your test. This is a short also in the Trader Lab. And you're going for this, right? Okay? Trader Lab short. Now I'm sharing this with you and I'm going to also give you a huge caution that if you just tried to go red light, green light, you're going to have really a bad time with it. You need to understand the condition of the market before you can deploy anything or an indicator especially. What I have found, and I don't use this in my trading, but I wanted to share it with you. And if you're just doing this, oh, it's green. It's time to sell. You know what I mean? Look at this. Right here. It's showing what? Isn't this a short? See what I'm saying? If you don't know what's going on, you're going to be doing, if you take a short here, you're going to be not only under the bus, it's going to back over you two or three times. That's why indicators are problematic unless you understand the condition of the market like here. This is doable for a rotation. But what about this? Under the bus. Can you tell why you wouldn't short here? Because it's mean reversion. It's outside it. So the only time you would use this as an example, and you know, I wanted to talk about it because you need to understand the condition of the market. And the problem for retail traders is having a one-size-fits-all process and thinking somehow what you do in a running market is going it's going to work in this mean reversion market. Different plan. I really want to stress this. If you're in the trader lab, you know what this is. You also should know this is the hardest condition I think. And it's just for me. I don't know about you. You know, by the way, if you're highly skilled at mean reversion, you should talk to me because I want to do better with it. I typically don't know. I mean, I don't know any way to know that I'm going to have a problem and I'm going to go rotation on stop and not be directional. And I didn't know it until we came out the bottom of that early launch that we were looking for. So this is back to here. Mean reversion. Back outside. Same trade. Mean reversion. Trying to go to the mean. So if you took a short out here, this is your target and then you're going for down below, right? It doesn't give it to you. Come out here. Taking a short. Coming back to here. And we're still trying to get to overnight VPOC. That is our trade. So you have a short here. But if you can't get it, you get it here. You get your target. You get your break. You pull back here. Now right here, it can just come all the way back up. Or if we don't clear here, then we have another leg. That's what I know. So let's get back to this thing. Let's see what we're doing. So right here, it's either going to do the following. It's going to come down to our next target area, fill the gap and get here or and so pull back, lower or pull back and cross over again. Why? See the change in the Delta? The market is now short. So down in here, now let's take the opposite concept. Markets long, fuels below us. Market pulse shows us an excess and this is only for mean reversion in my opinion. And I don't use it but I wanted to show you. I could use it and I'm researching it. And one of the problems with indicators I want to point out is conflict. In other words, you have to be very careful because just because this is here and this is long here is not a reason to sell it. Why wouldn't you sell it? Let me help you think about this. Think it through. What's sitting here? Buy stops. These guys short in this leg have buy stops here. We come down. I come up here. This says get short. Really? Not me. How about here? Should we get short here? You see what I'm saying? You'd be stopped. If you're just being an indicator person, you're going to have a problem. You need to know what's above here. Buy stops. Once we and here's the stops coming out, 376. Once you know the stops are come out, now you're going to look at this. Write this down. You're going to look at this if you believe we're in mean reversion. Now the other joy of all this is what stops it from just to keep going? This is joy of trading. We don't know. So right here if I think I'm in mean reversion, now let's look. My buyers are above here. Remember? There's my down leg. So these shorts that creates negative delta. Buy stops here. I get buyers here. They're going to hopefully head for the buy stops. Now either I'm going to get buyers here and more buy stops or exhaustion. There it is. There's my sellers. Now my fuels in this leg. So these guys got torched, the sellers. These guys now go back on to get torched and now there's stops under here. So now it's mean reversion. Back here. Short buy stops here. Sell stops under here. Sell stops under here. Take these guys out. Thanks for playing. Come back here. Now I don't know what's going to happen here. It could just as well come there. But I have what to my target. Is everybody tracking? Very hard trade. Any questions about this? I hope you're getting something useful out of this. I'm looking at this and I still, if I had a cast iron frying pan here, I'd be banging myself in the head with it because it is so difficult to operate. And go back to the top of the stream. Why is this condition happening? If you haven't, we're in here for the beginning of the stream. You've missed out on the why. The why is important. Now, not the prediction. There's no prediction. It's conditional. Once I, and I don't know which way the wind's going to blow, if you know what I mean, but I do know statistically what my probabilities are. This. So our plan was to go up to go down, but who thought it would be like this kind of thing. So I was looking for this kind of move coming out of the gate. And instead we got up down, up, down. Very bad. Too high back here, mean reversion. Take these guys out. Too high, mean reversion. Now all the longs that are in this thing under here, under here, under here, under here, brings us back to this. Is it logical? And mad thing. Are you guys tracking? Are you with me to get something out of this today? Today's just not joyous. You know, I'd like to say, oh, it was a wonderful experience today. No, not wonderful. But part of trading, it's workable, but you're going to pay for the privilege of trying to get your context defined. And until, you know, it's kind of thing isn't, it's not broke until it is. Then once you're doing this, and you don't, here's the thing. If you're getting long here, which is what our early trades were, and it was okay until it failed. And then when you come back across, now you're in two sided trade, it's just, and then if you're at very active in this, you're going to hit your loss limit long before the opportunity presents itself. You got to have conditional statements, not only of context, but when it's not fitting. So you'll stop trading and you'll say, well, I need, something is not aligning here. What is it? And at some point it will become clear. You don't want to hit your loss limit. It's better, you know, because sometimes we're compelled for the reasons we're not conscious of, you know, like, I want to make a back. I've taken three losses in a row. I want to get even.  That is not professional trading.  In other words, you're not rational anymore. You're under the influence of chemicals. And it really is a chemical response. So, and then your trade plan, you got to have it, you got to have things built in it. It's almost like having the emergency break, you know, there's got to be something that breaks your pattern of behavior. So it has to be defined outside of trading hours. Yeah, the primorals ooze in the brain, the wiring, the fight and flight and revenge and all this kind of jazz that goes on, which it does. You need to understand yourself. And we talk about that in trader lab, you know, I often get asked, you know, can I quote someone says to me, can I learn the trade? And I go, yeah, I believe anybody can learn the trade. But many cannot trade. You can learn the trade if you're persistent and you hold yourself accountable. In my opinion, again, it's just an opinion. You can understand how the market works. You can learn it. You can understand structure trades or setups. And you can find out if you can extract the statistical edge, you can do that. Because that's our business. Now, but even with the best plan, if you cannot manage your emotions, it's all it doesn't matter. Remember, the casino or gaming theory is our model because it's a successful business model. The games and the casinos have an edge and the casinos are disconnected emotionally from the outcome. They see this cost of production and overhead, not a personal failure. They don't shoot the dealer if they deals a hand and then gambler walks out with a suitcase of cash, right? They just play the next hand. So that's that's pretty much what our business is. But when we get close to it and emotionally involved, everything we know goes out the window. And I call it, you guys have heard of Jekyll and Hyde, right? Dr. Jekyll and Hyde. Hyde, Dr. Jekyll is the intentional scientist, logical. Hyde is sort of unbridled emotion that scrambles and takes over Dr. Jekyll. So if Hyde takes over, and that's what happens to us, all of a sudden is click, click, click, I'm going to make it back and your mind is gone. Your trade plan, you don't even know it exists. All of a sudden you become myopic and you have tunnel vision. Does this sound familiar? All of a sudden you're on a different planet at a different plane and you're having an out-of-body experience. There's a lunatic sitting, you know, clicking the mouse. Where did you go? Has that happened to any of you? If you're in YouTube, just click the thumb up so I know what's happened to you. It doesn't tell me who said it, so it'll keep your secret. Has that happened to you where somebody else is now trading? Give me a thumb up in YouTube. I guess if you're in YouTube, it's never happened to anybody.  It's an important behavior and you need to have guardrails for that. In other words, you need to define the condition. Part of a trade plan is not only, oh, where's my setup, which is what most retail traders are all concerned about. What it really is, is mental state, trade management, rules, conditions. What happens if you go click, click, click?  Are you longer short? Right here. Are you longer short? Should you be short going for this? Should you be flat because of that? What should you be doing? What is your plan? Are you just holding, trailing a stop and accept the random outcome? Do you know that this is liquidity because you did your homework and you're in the trader lab, that the alignment of liquidity gives you insight that someone without a high tier tool like Bookmap doesn't even see? Does it make sense that this liquidity is sitting here for a couple of reasons? One is to attract. The other is why would professionals, and let's assume these traders that have their orders are in alignment with yesterday's high and the retail price from ETH. Does that make this a valid target to trade ports? It doesn't mean it'll ever get here, but the potential is pretty good and it's not a trade recommendation. In the trader lab, what we talk about is trade management and randomness. We don't know. We'll get here or we'll get within a couple of ticks. Let me ask you. You're sitting here. This is your target, fill the gap. You have liquidity sitting here, which most mortals, unless they have an order flow tool, are not conscious about, especially retail traders. This was the retail price in the ETH. In other words, the highest volume. The tendency of the market is to check high volume. This was too high. We rejected it last time we were up here. I'm not paying that. Remember, trading is shopping. It's not magic. It's shopping. If that's too high, and it wasn't the ETH, and this was yesterday's high, and this was retail in the ETH. In other words, that's a fair price. If we come back here, would this be a reasonable place to exit, stage left in spite of what it might do? For me, it is. My target would be this area. The fact that this is resting in the book, you see it all the way out here, this guy's been sitting in the book, makes it a target because it has alignment. Does this make sense? It doesn't say anything about what the market will do. It only is maybe. Notice the behavior. Where do you think we might go? There. In the trader lab, these are not recommendations. Here's the deal. Outside in to the outside. This is still, what's the context of everyone, trader lab? What is the context right now? What is the context? What trades does this set up in the trader lab? Mean reversion. What does mean reversion? Outside in. Outside in. Outside in. Outside in. Not a trade recommendation. This is the condition of this market. Now, this is a viable target because of this. Let's look at this liquidity that was stacked in the book here. What did it keep doing? Bang, bang, bang, back to the reversion. This is gone. This was an obstacle. It's removed. Where's the next here? That's a target in alignment with this. Is this logical? Not easy? Logical. Are you guys with me? I'm getting a question about something called the IBF. The IBF is a mean reversion trade. However, the trade is here. Let's go look at our mean reversion pool. Let's talk about using an indicator. I'm allergic to indicators. I don't use them, but I want to help you guys think. Think. Don't run the indicators. They're not the solution. They're actually part of the problem unless you really have the discipline to put the priority of inputs first. The condition or context of the market is the regulator of how you trade it. It's called context. If you watch my primer webinar and it's available to all of you in the Bookmap Discord Trader Lab Chat, it's got like 27,000 views. Pretty amazing if you think about it. I'm not a vendor. There's no trading course. I'm just like you. I've just been doing this for almost 44 years. That's the only difference. And I always say it's not a badge of honor. It's a badge of pain because I've done what you've done except had the privilege of doing it longer. So if this shows me the leg is short, notice it's here gave me the rotation to here. Notice down here at target, it shows me the down leg location. This is like real estate liquidity. So this is a short target. And coming into here, this is a long now. Where's it? Where's the target back here? It's called mean reversion. Now, not a trade recommendation. So I was getting a question about the IBF. Let me explain what this is. This is a Trader Lab structured trade. For me, I'm not trading that. And let me tell you why. We're in a balanced trade. So these levels, the IB high, IB low. So in theory, this is long from here if you're trading IBF back here. The location for the trade is out here though, because we're not trading IBFs. We're trading mean reversion and we're trading auction levels, which are, let me come back to this thing, this. This is our outside edge. This is yesterday's high. This is our gap fill. This is our liquidity. So these are right here. This is where you're trading from outside it. So we're taking auction levels and we're kind of putting them aside because the market is just trading in a range. BC is asking, yeah, CE, did I clarify that for you? And how are we doing in YouTube? I hope you're getting something out of this. This is just a hard day. It's just what it is. The thing that is most disturbing for us as traders is understanding context. That's why I invite you to come to TraderLab if you're in YouTube and you haven't seen these concepts before. This is not an easy day for anybody. Not easy for me. There's no easy in trading. It's only random. So we'd start with that. Then it's defining the condition of the market, which is dynamic. It changes. That's the other issue for us. We can start out directional. We can get rotational. We could do anything and it can change. This can turn into a directional market or it can just do slop like this. If you got long because you're in a mean reversion situation, which is here, remember what supersedes this thing, location, condition, or context, you would know it's outside in trading and you would not know the outcome of the next trade. YouTube, does that make sense? BC, you're saying we opened out a range out of value and would it be logical to be looking for longs to VPOC? Which VPOC are we talking about? The one above or the current one? I don't understand. Just clarify the question. Just want to check, developing? Yes. This is mean reversion. So it's not where we opened anymore. We already know that we're kind of bracketed by two edges. We're bracketed by this outside edge that we tested at ETH. This is the ETH volume point of control, basically. So we checked yesterday's retail price. Guys, if you're in YouTube, so you understand, when I say retail, trading is shopping. So think about shopping and what creates high volume. If you're buying can of tuna for a buck, seller sells it to you for a buck, retail equals high volume. That's where everybody's doing business. Well, the thing about shopping is if this price is too low and we check it, we don't know. And this is too low. This is the ETH low. And this was retail from yesterday. If it's too low, we can reject it. If the previous time we were up here, this is too high. And this is an artifact from the last time we're up around 4800. This was too high. And we check it in the ETH and we're going, I'm not paying that. The quote, fair price, unless we fall out of one of these areas is going to be somewhere in the middle. This was too low in the ETH. It's outside of that and that. This was the last area that was too low. So if this is too high, previous auction, when we were up here, this is too low from yesterday. And then the ETH, which is the most recent auction, this is maybe too low or retail. Then the potential is to do zippity-doo-dah, smacked in the face with a cold flounder, and come back here. That's the potential. And I don't know. I mean, I don't know anyway. But so if we're looking at a long out here, the idea is to come back here. So how do you deal with this? If you get long, you've got to get risk neutral, and you're going for this, and you're going for the squeeze. That's what I know. I don't know what the outcome of this trade or anyone will be. That's all I know. I don't like it. That's traded. What's there to like about this? BC, did I answer your question? Thanks a lot, Orazzi. Orazzi is telling us that we have a 10-year tipped auction, about seven minutes. And any external inputs that come into the market can disrupt it, and then the market has to assimilate. And so you can get a hiccup. Also, algos will respond so it can do that kind of behavior. So the short here for me would be done here. Potential for a long back to here is, and that would be based on this mean reversion. If it doesn't get back here, the trade will fail. There's nothing more to trading than that. This still is a viable target. You just don't know. Let's look at this. Chop, chop, chop. Alignment, buying structure, pull back to here. So this is your potential long going for that. That's a structured trade. Using an indicator to help you with alignment, liquidity. You got order flow. You got delta showing that shorts are in this leg. You have buy stops sitting above here, right here, so that fuel's still in the market. And there, which is one of the reasons why if we can clear this, we go here. If we can't, then this is going to fail down here. That's as deep as this gets. So we'll watch this. And I only have a couple more minutes. Any final questions? And by the way, if you're visiting in the YouTube, thanks for coming to TraderLab. Today's a day that was a hard day for all of us, at least for me. I mean, if you guys are doing good in it, then visit TraderLab because you can help us all do better. This is a workable day and a lot of trades. Hopefully, if you've been active, you haven't done damage. Also, make sure your broker sends you a gift basket because we tend to trade a lot and it's easy to over-trade in this. And flip-flop. And you need a break, an emergency break to stop yourself if you start over-trading and flip-flopping. What I find for me is if I'm going long, short, long, short, you know, like if I'm going, oh, this is a long, oh gee, I ought to get short. And, you know, if I do that, which fortunately I don't do, but if I did and I have, I just blow myself up. So you've got to have a loss limit for days like today also. It's not about one day, guys. You know, the casinos, I'm sure, have days where they have outsized losses, but they take it in stride because they know over a large sample size they're going to, they have an edge and they extract dollars from the gamblers. That's our business. And you also need to protect yourself. So it's really important. By the way, if, whether or not you've done this, I invite you to all visit the Trader Lab. There's 60 PDFs of these structured trades and contextual conditions that you can look at Reverse Engineer and potentially derive structure from to help you define the condition of the market and which structured trades give you an opportunity to participate once you define the condition. It's kind of like the condition really defines what applies. It's not a generic condition. The conditions are very different. And the setups that are appropriate for the conditions also are specific. If you're going to participate, you need to differentiate and only deploy the tools that are appropriate to the condition. And the challenge, of course, is we don't know a condition changes until hindsight. So you're never going to be ahead of it. You're trying to stay with it or align with it. Notice where we are. Now, right here, we either break through, continue south, which, and remember, this is our target area. Or we hold this low and we come back here and it's not a trade recommendation. I have no idea. And there's a link on the bottom of YouTube. If you're interested in downloading the 60 PDFs of structured trades and accessing the library of webinars, start with the primer webinar. It gives you a high level overview of this plus circles, arrows, and structures. So you could kind of see these trades or structured trades, how they develop and what they look like. And then there's the library of webinars with real-time narrations, some up to four hours long. So you could see this in real-time. Thumb up in YouTube. If you got something from this today, I appreciate you visiting. It's not an easy day-to-day to deal with or interesting. It's interesting because it's difficult. That makes it interesting. But it's not like other days where we're sitting here and we look like we have a crystal ball. Because the reality of trading is that's just not the way it is. It's random. So the business of trading, if you're interested in that, come visit TraderLab. If you want to be part of a community of serious, like-minded traders looking to leverage their collective experience so we all get better together, collectively, visit the TraderLab. Access the link in the bottom of YouTube. You don't have to be a Bookmap subscriber now, ever, never, and you will never be solicited by Bookmap. But there's a lot of free additional education, stocks, options, crypto, order flow with a high-tier tool like Bookmap, algorithmic behavior, market maker behavior options, and a lot more. Thumb Up. Visit the TraderLab. Access the link in the bottom of YouTube. And like everything, I appreciate you visiting today. And I will see you tomorrow. Hopefully, we'll get more directional trading here instead of this rotational stuff. So it'll be more interesting and potentially more rewarding. Have a great day, everybody. Thanks again. Look forward to seeing you in the TraderLab soon.


Alrighty, welcome back to Operating Systems. Everyone's most fun class to come to while there's midterms and other courses, yay. All right, so today, pretty much just more simple stuff, more review stuff we don't actually have to know. Well, first half we'll probably want to know for the midterm, other half is mostly for your enjoyment and it's a good thing to know. So we can explore some dynamic priority scheduling, may also be called feedback scheduling, depending on the literature, just another scheduling algorithm, so we're taking a rewind back. So in this algorithm, we essentially let this algorithm manage the priorities. So it scales the priorities and the only thing you get to set is the initial priorities. So looks kind of like round robin, there's set time slices, we measure CPU usage across the time slices and the idea behind it is we would increase the priority of processes that don't use their time slice. So they're more likely to actually get scheduled next and we will decrease the priority of processes that use their full time slice. So they essentially give up the CPU and hopefully make it a bit more fair to the rest of the processes. Yeah, yeah, so they can still use their full time slice just after they're done it. They get a lower priority so that other processes can use their time slice and then they'd get a lower priority and the one that was waiting would be higher so eventually it would run again. It's essentially, this is just like kind of the same ideas round robin except we're just adding priorities. So we'll see how that works in the example. So like we've been doing in Linux, the lowest number means higher priority. So for this, each process gets assigned some priority when it starts that you would be able to specify PN and the algorithm works as follows. So we pick the lowest priority number that is the process to scheduled. If it yields, we just pick the next highest priority process. If there is a tie, we would just go to a rival order or something like that. If it's lower priority, if a lower priority process becomes ready so lower number, AKA higher priority, then switch to it immediately. So we have preemptions here. Then at the end of our time slice, so there'd be like an accounting time slice and then a time slice for a process just to make things easier. So at the end of a accounting time slice, we would just record how long each process runs for in this interval. So it would be some number C to the end where N is the process number and in this timer interrupts still occur. So the calculation we do is whenever we recalculate priorities, we calculate the new priority P, the N as the last priority divided by two. So it gets smaller and smaller over time because we're dividing by two and then we add however how much time it actually used in the CPU in this time interval. And after we do that accounting, we reset every process, it's CPU usage back to zero. So this would be an example. We have four processes ready to execute in arrival order X, Y, A, B and then we have CPU and IO bound processes. So A and B are something called CPU bound processes, which means they just want to execute on the CPU. They will use as much time as you will give them. While X and Y are IO bound processes, which means they are actually waiting on for some resource or something like that. So they'll only execute for a little bit of time and then they'll have to wait because they're interacting with a file or something like that, something that's much slower. So it doesn't need that much CPU time to make the request to the kernel and then the kernel gets to block it until it's finally done with that request and then it can unblock it. So in this case, we have a timer interrupt every one time unit. The maximum time slice for a process to execute in is 10 time units and the priority interval whenever we recalculate the priority for every process is also 10. So I could make it that I recalculate the priority whenever something gets context switch, that's just a design decision you might choose. But if I have processes that are, if I'm context switching between them really, really fast and they don't use their entire time slice, well, I don't want to really waste time doing accounting every time I do a context switch as well. So I might just delay the time that I pick to recalculate the priorities. So in this schedule, well, if all the processes have a initial priority of zero, then they're all tied. So they just go in arrival order. So I would schedule X first. It is an IO bound process. So it only executes for one time unit and then it's blocked for five. So it won't be available again until time equals six. So in this case, I've executed X and it is now blocked and now I get to pick between Y, A and B. I pick Y just because it is the next, the next soonest in arrival order. So after that I'd schedule Y for one time unit, then it would block for five. So it would be ready again after seven time units have passed. So in this case, I just schedule process A for the rest of the time. So even though the other two processes are ready sometime in here, because they all have a tie for priority, you wouldn't get preempted unless you have a lower priority. So process A is the next runnable process at time two and it would just run until we have to recalculate the priorities. So at time 10, we recalculate the priorities and see if it's still going to run. And here is that showing that X is ready at time six, Y is ready at time seven. And at time 10, we recalculate the priorities. So all their initial priorities were zero and then we just add a constant number with how long it actually executed for in the last time units. So process X executed for one time unit, process Y executed for one time unit, process A executed for eight time units and process B executed for zero time units. So these are all the new priorities. So because priority B now, or sorry, process B now has the lowest priority over every other process, we would preempt process A and we would just schedule process B and it would fill up the whole time slice. So it's done, yep, which one? So the eight in A was not arbitrary. So I'm doing, I'm recalculating the priorities every 10 time units. So I just took a break here whenever I hit 10 to recalculate, if A was still the lowest or tied for the lowest, it would execute for the rest of its time slice. So like two more units. But here I preempt it because now process B is now the lowest priority and I kick it out. So any questions about that? Yep, yep. So here at the top it says, they all have an initial priority of zero. So arbitrary, yeah, but it's there. All right, any other questions? Yep. So what it means that X and Y block for five time units means whatever they're done executing for their one time unit, they're actually waiting on some type of resource or something like that and they can't execute anymore. So the kernel is waiting on some file to happen, something like that and then after five time units we can actually execute them again. So they'd be ready. Yep, yep, yeah, so if A came in first at the beginning of this arrival order, it would just hold it for 10 time units, then we would recalculate, then its new priority would be 10 and it would be the last and then it's a tie for the rest of them. Okay, so let's see how that we can do the same thing again, except set the initial priority for A and B to be six and X and Y can still be zero. So in that case, starts off the same. So although, whoops, should be flipped the other way, whoops. Anyways, yeah, so X and Y are higher priority, it should be a lower number but I screwed up and put it as a higher number for some reason so it should be flipped. But anyways, same thing would still apply. X would go first because it is a higher priority process, then Y would go first and then A would only execute for four time units and then at time six, X is ready because it gets unblocked. So it's done waiting for whatever the kernel was gonna do with it and because it has a higher priority, it would be unblocked and since it's a higher priority then process A, it would be scheduled to run immediately, run for one time unit, be done at time seven, Y is ready, it would execute for one time unit and then it would get blocked and then here A would execute until the A executes until we recalculate all the priorities and then here we would recalculate the priorities as so. So X and Y, yeah, so, oh sorry, it says A and B have a priority of six, okay. I said it wrong, sorry. All right, so process X, it's new priority while it's old priority was zero divided by two. It ran for two time units in the last 10 time units so it's new priority is two. Y ran for two time units as well, it's old priority was zero so it's new priority is two. Process A, it's old priority was six so divide two gives you three, plus it ran for six time units so it's new priority is nine and process B, it's old priority was six, it ran for zero time unit so it's new priority is three. So X and Y still have a higher priority or lower number than A and B but we see that we have now flipped and we would prefer to execute process A over B or sorry, process B over A. So at this point X and Y are still blocked so X and Y would still be blocked for two more time unit or yeah, two more time units so we would schedule process B, B would run for two time units and then at that point X is ready to execute so X would execute again because it is a lower number or higher priority so it executes for one time unit, Y would be ready, execute for one time unit and then B would execute for four time units until X is ready again, then X would be ready, then Y would be ready. So any questions about that? So just hops back and forth. Yep, yep, yeah so you could have it recalculate at the time of every context switch but that would probably be too costly especially how many times we're switching here so generally you just recalculate every at some fixed priority or some fixed interval, yep. So then our CPU would just be idle, right? Yeah, so if A and B finished and we only had X and Y and they were blocked and those were our only process, if they're blocked we can't execute anything our CPU would just be idle. So we would get what? Yeah, it'd be idle for like two thirds of the time. Yep, yeah sorry so in here X and Y have priority of zero and then A and B have priority of six. So we would prefer to execute X and Y because they have a lower number. So yeah, I said it wrong before the initial priority of X and Y are zero now A and B have a priority of six so we would prefer not to run them. But if everything's tied like before whenever we scheduled A it just stays until we recalculate the next priority interval. All right, any more questions about that? Fairly boring. More follow the simple algorithm. All right, so let's talk about large language models then and more fun stuff you could do. So large language model is very large so like 30 billion parameters and the model itself is like 20 gigs and on some C++ project they're like oh well I have this 20 gig model but I only need four or 6.4 gigs of RAM. How is this possible? And it's so efficient. People were discussing it on the GitHub and saying oh how is this ever possible? And I will teach you the trick because now you can understand it and this is why people should take an operating system class because everyone thought this wasn't possible but it's not. So I alluded to this last time that we can control our processes virtual memory. So memory map or M map is used to map files to a processes virtual address space. This sounds much worse than it is. I see some groans already but this is actually a useful thing that makes your life a lot easier. So what it does is it gives you like a pointer to a virtual address and that pointer you can just access the file through that pointer. You don't have to use a buffer. You don't have to use anything. You don't have to worry about going to the right location in the file. You don't have to worry about literally anything. You just access it as if it was memory. No read or write system calls. You interact directly with the file system with just using memory addresses and this is possible through the magic of virtual memory. So this M map system call takes like six arguments. We can just dive into an example instead because this is fairly boring. So let's just go into a fun example. So in here, here's an example. So remember whenever we were opening a file before well if we wanted to read the contents of a file and then if we wanted to read the contents of a file and shove them out over standard out while we had to set up a buffer we had to open the file, got a file descriptor, did a read system call on it and then did some stuff and then did a write system call on it with a buffer making sure that all the sizes were right maybe having to retry doing the read system call over and over again and it was a giant pain. So instead we can make this program. So this program has the open system call so we get a file descriptor from that. So I'm going to do a little meta thing here and I will open this own source file with the flag read only and then I set up the struct stat. So we haven't seen the system call yet. We won't really see it so but it's a good one to know. So this stat struct tells you information about a real file. So you can fill in that struct using an F stat system call so you give it a file descriptor you want information about and then the address of that struct so it can just write the information there same type of deal with the rest of the system e-calls we saw, negative one if there's an error otherwise it sets error no and you should probably check it. So here I just check that it is the success error code and then here is my M map. So M map takes six arguments. The first argument, it looks like a lot of arguments but most of them you don't really have to use. The first argument is an address if we were very picky about what virtual address we wanted. So you could say I want this memory to be mapped at this specific virtual address. 99.9% of the time you will not care so you can just give it a null that means I don't care where you put it. Then you have to say what the length of this is. So here in this stat struct there is a field called stsize or underscore size that tells you how big that file is. So I want this virtual memory map to be as large as the file that I want it to represent. Then there is some protections. So it lets you essentially modify that PTE entry if you want different permissions. So here I have to set protection. I want to be able to read from it and I don't set write. So if I try and write to any address I get back from that it'll give me an error. If I wanted to write to it I can set a write flag if I really want. Then there's a bunch of flags with how this should behave. This is called private. So that means this memory mapping is private to your process. If you fork the other process does not get this same does not get the same mapping or anything like that or it gets an independent copy of the mapping. If this flag is shared then both processes will map to the same physical location and then you'll be sharing memory, which will be fun. And that's another way to communicate between processes that's really, really fast. This argument is the file descriptor. So whatever if you want it backed by a real file what is the file descriptor of that file? And then the last argument is just the offset. So how many bytes from the beginning of the file do I want to start this memory mapping? Yeah, so that's a good question. So if I use the share flag is that alternative of what I'm doing with pipes and you can think about it that way but it's like a buffer that your processes can actually see. It's not managed by the kernel. Kerl just says, hey, both of you you have the same memory mapping for virtual addresses goes to the same physical memory so you can share values. You can do whatever you want. So it doesn't have to be like a first in first out thing like pipes, you can just do whatever you want. So this stat struct is specifically for getting information about actual files. So if you read the documentation like so here it'll tell you exactly what everything it's for yeah, it gives you all probably too much information. Basically it just gives you information about a real file like who owns the file. Like if you do LS or something like that all that information about the file. So like here is the size, here's who owns it here's the permission. It would all be in that stat structure. Yeah, so whatever you fork both processes are gonna be exact copies. So if this was, if this is private and I fork they'll both have that same virtual address but they'll be independent of each other. So private is basically like how fork behaves normally. So all your virtual memory is private to you. Okay, cool, any other questions? Yeah, so this is fun, this is useful. So here we can check if it failed or not and then after we have the memory mapping we don't need the file descriptor anymore so we can just close it.  So I just read it like memory I don't have to do a read or write system call and how it works under the hood is the kernel knows that that virtual memory region is associated with this file. So as soon as you try to access a memory address it would get a page fault on like the first page and then it would read the first page of the file and then actually read that into physical memory and make sure that that virtual page maps to that physical page. So I just access it as if it was memory. So here I just access it this file as if it was an array. So I just go have a for loop that iterates over every single character and I just do a printf for that character and then afterwards it has an associated so like malloc has a free M unmap is essentially the free version of Mmap. So if I go ahead and execute this my key is not working, then guess what? I just get the contents of the file and no read system call, nothing, no fuss, no must actually pretty awesome. So any questions about that? Yep, so data is a virtual address where as soon as you start accessing it it accesses the file. So this address could be anything but if I'm like, you know, byte zero here then it would be the first byte of the file then the third byte da da da da da and so on and so forth until the end of the file. So pretty cool and actually this hopefully you prefer this over read and write system calls, it's actually a lot easier but most people won't know of this because they haven't taken this course and they don't know they're scared of virtual memory or don't even know what it is. So since you know what virtual memory is you can use this and it's not too bad. So why did I talk about this? So that Mmap system call is lazy so it just sets up the page table and initially it does not read from the file. So it just creates page table entries that are invalid that have some bookkeeping information that says, hey, whenever we try and access this virtual page I should probably read from this file. So the kernel would store some information in the page table entry because if the valid bit is zero well it just generates a page fault anyways and the other 63 bits the kernel can use for whatever information it wants so it can just store a pointer or whatever that says, hey, this page should actually map to this file. So what it would do is it would just keep track on where on disk is this actual file and then whenever you first try and access the page you get the page fault and then the kernel reads from that disk into memory so you can't even see that it's doing it and then it would make that entry valid and then you can just access it, no fuss, no must and the nice part of this is since the kernel is lazy well you will only read in whatever pages of the file you actually use. So if you use the whole file I have to read the whole file still it's not doing anything magic but if I only read like the first byte and the last byte I would probably only read the first page and the last page as long as that file is quite huge. So back to the question so they asked well that file is 20 gigs you had to read the whole thing so how is it not taking 20 gigs of memory? How is it only when I'm using it it only uses 6.8 gigs? So the reason this is is because this whole discussion the whole patch they made to make this super efficient blow people's minds is instead of opening a file and just reading 20 gigs of it they just M mapped it that was it that's the whole patch they just M mapped it they replaced read and write system calls with just accessing memory and that was it and the reason it was so great is because large language models are really sparse you don't use for each inference you don't actually use the entire 20 gigs of the model you might only use a few gigs of the model or something like that so if you just M map it and you just use the memory directly well you don't have to worry about trying to be efficient or anything you just let the kernel handle the page faults whenever they happen and just let it load it into memory whatever parts of the file it actually needs. So in part of this discussion one of the experts was like oh there's talking about like how big the page tables need to be in order for this magic to happen so it would have to set up the page tables. So we can actually answer that question how much space does the kernel need for the page tables so someone posted you only need 40 megabytes of page tables for that 20 gig file. So they argued it was 20 times 10 20 gig file by four times 10 24 times 10 24 so this is two to the power of 30 so this is a gigabyte and then divided by this magic number what is this magic number? Page table size and so we made our page tables fit on a page it's a page size so yeah this is the page size and then times eight so times eight why would we multiply by eight so this is the page table entry size so eight bytes so in this case for 20 gigs of space well we take 20 gigs divided over the page size so that is how many virtual pages I would need for 20 gigabytes and then each of those virtual page numbers needs a page table entry so they just multiply it by eight and then divided by 10 24 times 10 24 which is just a megabyte and then someone clarified that yeah this calculation is just 20 gigs divided by the four kilobyte page size times eight bytes per page table entry divided by one kilobyte even though that should actually be one megabyte so is this correct or not so what do we think about this? So they just changed this and said oh it's one kilobyte but 10 24 times 10 24 is actually one megabyte so they just said it wrong yeah so if you do a map with a 20 gig file you need a page table entry for all of it even if it's not going to be used you still need a page table entry so it might not actually like load the page and read from the file but it still needs a page table entry so is this the worst case or is this the best case? So yeah this is like the best if we only include L zero right? So this is how many entries we need in L zero page tables how many entries do we need in L one page tables probably too much to think about now so in fact this is correct but this is like best case scenario assuming that we only used L zero page table entries and they're all well they would all be beside each other but there's no multi-level page tables so in this case if you want to be statistic and do like actually this is how much it uses well it's right that we need to the 20 page table or 20 times to the 18 page table entries so those are the page table entries we need across L zero page tables so if that's how many page table entries we need well we know that we can only fit two to the nine page table entries in each L zero page table so we can figure out how many L zero page tables we need by just dividing it and then we get 20 times to the nine or 10,240 full L zero page tables so these full L zero page tables would be 40 megabytes except we can count how many of them we need so if we need 10,240 L zero page tables we need that many entries across our L one page tables so because we need that many entries across our L one page tables well each L one page table can point to up to 512 L zero page tables so if we just divide how many L zero entries we need divide by how many we can fit in an L one page table we would get 20 full L one page tables so in fact we wouldn't need just these 10,240 full L zero page tables we would need also 20 L one page tables and we wouldn't count our L two page table because we would always need an L two page table it would already be there for us so actually and this is like whatever that meme is is that nerd guy with the glasses that definitely needs to be 100% correct so in this actually our best case we would need 10,240 full page tables which if we divide by the page size and how many entries we need we actually need 40.07 megabytes worth of page tables not 40 so Panantic, yes, yeah you only have one L two page table yeah so in this case this assumes that we would already have an L two page table because our process is already running so it would just add entries to that, yeah so each level of page table can only point to two of the nine things cause we only have nine index bits so that means it can only point to two of the nine different things which is 512 all right any more questions about that that's like fun, well it's not that fun but you can answer it and it should kind of make sense yep so why did I divide by what sorry oh so the question is why did I divide by two the 20 here and I divide by two the 20 here because I just want it in megabytes so two the 20 is just megabytes or MIB like the real megabytes not the marketing fake megabytes all right so that's actually our best case did we ever need to go that far no but do we know multi-level page tables hell yeah we do all right so that's pretty much it any other questions lab three lab whatever yeah so in this case we wouldn't have the worst case because we're mapping all that virtual memory together so all the addresses would be contiguous so they would be beside each other in the L zero page tables so the worst case would be like if we were like on a boundary of our L one page tables so we might need another one that's pretty much our worst case so our worst case is gonna be maybe they don't exactly fill a page table maybe instead one has one entry and the other has 511 or something like that but it's only gonna affect the first and the last so it's probably not gonna be that much different worst case would only be off by like maybe four page tables no two maybe two all right any other questions lab three lab anything we can take a break you guys are probably going to be screwed for your other midterms so yeah we can just end early and I will be around so just remember for you we're on this together


Guys, Hal Steinbrenner is sitting with us. I got to tell you, I was blown away by the press conference. It seemed like Garrett Cole came from central casting to be a Yankee. He said, all the right things. As you're sitting there, are you thinking, wow, we made a great decision? Well, we knew that earlier. I didn't know he had the sign. That's amazing that he kept that all those years. But it proves he is who he says he was, lifelong Yankee fan. And you can just tell he's proud to be here. Hal, what was your initial reaction when you heard that Cole had made a decision and the Yankees were it? Obviously excited. A lot of people worked hard on this for a good number of days. And I think everyone involved on our side conveyed a lot of good messages about our organization, about our culture. And I think it resonated with him. Hal, from everything that I've heard, you were intimately involved in negotiating with Scott Boris. Why was this so important to you? And why did you get intimately involved? Well, look, I think my message to the Coles and to Scott was fairly simple. Unlike other top pre-agents in years past, I really felt that Garrett would be a game changer for us for a number of reasons, which I conveyed. And because of that, I wanted them to know that we were going to be extremely committed to getting this done, to doing what we can. And we were going to be competitive. Was there ever a point throughout the negotiation process where you thought this might not end up like this, that he might go somewhere else? Well, there always is, as you know. This one was no different. He's an incredible talent. And obviously, there was more than one player. Now, the free age of market the last couple of years, there have been players that Yankee fans said, well, why don't the Yankees go for them? Why don't they go for this guy? This is the guy you went to. Why not the other guys? And what made him different, Hal? Well, again, I truly believe that Garrett's going to be a game changer for us. He's a starting pitcher. You know my take on starting pitching, how important it is. Obviously, he's incredibly talented. And his makeup is off the chart. He's very intelligent, very tough. His work ethic is impeccable. And he's 29 years old. I mean, you put all that together, and that's a guy that can really make a difference. Hal, you talked about some of the conversations you had with him. What stood out to you the most? Look, I think his love for the Yankees, his lifelong love for the Yankees, and his intelligence. I mean, you don't really know till you get to know somebody how intelligent they are or on. He's an unbelievably intelligent guy. And I think the questions he asked in that four and a half hour meeting, which I could not be at, unfortunately. But obviously, I got the rundown. A lot of intelligent questions about analytics. And you can tell his work ethic is very strong. Hal, bottom line, it's a lot of money. And you and your family who wants to have to write the check, is that a difficult check to write? Well, it is a lot of money. But remember, this isn't just for 2020. This is going to be one of the best aces in baseball. We're going to have for a good number of years. And I think it's going to bring us some world championships. That's the hope, always. In your mind, how much better is this team now that Garrett Cole is a part of it? It's considerably better. There's no doubt about it. Look, we've got a very good rotation, as I've said before. But this is one of the top pitchers, maybe the top pitcher in all of baseball. And when you put them on the front end of the rotation for a number of years like this, things can happen, positive things. Happy holiday to you and your family. You too, likewise. That's how it started.