So, yes, I am a resurgent in economics, I don't know if there are any other resurgent in economics here, I would bet no, the pandas is the thing that was helping me and some other people show that we can do resurgent in economics with Python, it's really crucial for me and I'm not a programmer by profession but I spend all my days coding pandas so I learn some of the pitfalls. Now, the title might seem more philosophical than it is, it seems like I will go in depth in some very conceptual description of some specific wrong way to use pandas, it's not the topic, there are many different ways to use pandas the wrong way and I will show some of them. Disclaimer, as I said I love pandas, I couldn't, my daily work wouldn't be in Python otherwise, I couldn't manage. This has pandas has bugs and quite a bit of them, you are very welcome to help us fix them, I'm an occasional contributor and I'm more than willing to help people who'd like to contribute, learn a bit about the code base which is complex but not so complex in the sense that it's big, it could be tidier but it's not too hard to learn the main concepts and so I'm trying to organize a sprint on Saturday but I don't know of anybody who, I mean, I hope people are interested but if you are, tell me so that we can organize. This talk is not about pandas bugs, it would be too easy, there are many, many, many. It's rather about things that, well, some are borderline but are mainly design decisions which couldn't have been made very differently and so it's your, it's the user's task to understand the things. This is not even about wrong design decisions, the fact that most of you probably know NumPy more than pandas, now I think NumPy is very intuitive, it's not trivial to use but it's intuitive. Now pandas is in principle an extension of NumPy which seems sometimes more intuitive than it is, simply because it's complex, it does complex operations. Okay, let's start with some examples. So I will start with, this is an intermediate talk, so most of you will be bored by maybe the first five minutes, still it's good to start from the basic mistakes one can do in pandas. And for example, let's have a series of 10,000 elements and the same thing as a list. Now pandas is based on NumPy and NumPy is good for managing large, well, depending on what you mean by large but some thousands at least of elements. And so one should, would think it's good to store in a series that is a pandas object 10,000, well, for the moment nothing but 10,000 elements. Now let's see some timings. For instance, for retrieving by positional index. So there is clearly no competition. So the lesson is trivial for most of you but it is pandas is good if it allows you to avoid Python loops. If you use Python loops, the single operation is much more complex because you have several layers of indirection as we will see. And so if you don't need, if you are not able to use pandas to make your work better with reasonable amounts of data, then don't use it. We can see another example. Again, the list is more than 100 times faster than pandas. For comparison, this is a problem which is also present in NumPy. Even in NumPy, you have some overhead which however can be compensated by the side of the data. It's there but it's much slower. So for instance, we can compare these 7 microseconds with the 149 of pandas or the 1 millisecond with the 109 of pandas. This could be better than this probably but not to the point of NumPy. There is more structure under the code. Okay. Let's get to something slightly less trivial. Pandas a bit in the Python spirit allows you to do a lot of things that you really don't want to do or you want to avoid as much as possible. And one of these is duplicated indexes. I mean for some people, duplicated indexes are already a heresy. When I talk to some people using R and similar structures in R, they don't expect this. Now pandas allows you to do this. We build a data frame which will have a normal index from 0 to 99. And we repeat it, concatenate and remove the first 50 lines. So it's 150 lines. We can take a look at its structure. It's basically this. Okay. And then it repeats itself. The index is not unique. It's not even sorted. I didn't put this but it's good to see. It's monotonic false.  You don't want to play with this.  Now, let's start with an example. If I take lock 0, I get a series. Why? Because 0 is repeated only once. And so I can do this. And if I repeat the above, I see that the assignment worked fine. I set the first line. So we can look at the head. Now the... Sorry, it's not the head. Okay. It worked fine. Now, I might be tempted to do this. And it's going to fail. Why? Because 99 is repeated. It's actually two lines because the index is not unique. And this was a trivial case but it becomes very messy when you have an index with some elements which are repeated. Some are not. You don't know how many times they're repeated. So last one is you just want to avoid the duplicated indexes. For instance, if we take the same data frame and we reset the index, now it's going to have a nice unique index. It's also sorted. And this is the right way to work basically. Lock 0 is now only one series. And we can also see that this is slightly more efficient than the previous version. In some case, it's more than slightly more efficient. Even... Well, I didn't tell anything about this. You probably know. I'm avoiding repetitions at the expense of precision because Pandas has a lot of caching involved. So I don't want to show you caching results. And this brings the risk of unexpected results. But this is more expected. So trust me, usually this is what you see. That is, the unsorted and nonunique index is lower. Now, talking about indexes, Pandas allows you to do one thing which is not at all trivial. We remember that DF had elements indexed until 99. Now, what if I do this? Well, it's just added to the bottom. So this is different from what we were used to, for instance, in NumPy. If I have an NumPy array and I say, well, it goes until four. If I say add the fifth line, it's going to say no way. There is no position of this kind. In fact, Pandas in the label-based index mode allows you to add a line without protesting. Now, this is not necessarily a good thing to do. Let's consider this. We are adding 1,000 elements to an empty series and it takes 400 milliseconds. Now, what if we had given the index in the beginning? So it's exactly the same. But we're saying since the beginning we want exactly those elements, it's way faster. So in general, you want to be very cautious to when you add elements which are not already in the index. Well, the reason is pretty simple. It's based on NumPy. There are contiguous structures. If you add an element which is not there, it will have to change the location in memory of all the array. So it's actually asymptotically bad to not just here. Okay. And we can see also comparing the same statement twice. It's going to be slow the first time because it's an element you didn't know and it's going to be faster the second time. If you don't believe me, this time I'm lucky with time. Okay. This is a more standard problem. But some of the consequences are not so obvious. At least I've been beaten by them sometimes.   No, nothing inside. We don't care at the moment. This is possible because clearly this is possible, right? I can instantiate one line and then get an element of the line. Now I can also do this. But what is actually happening? Well, here I'm lucky. I'm actually setting an element in the third row, fourth column. That is third row, fourth position of that row. What happens if I do something slightly more sophisticated so I use lighting? Well, it's going to warn me. A value is trying to be set on a copy of a slice of the data frame. Why is it warning me? Well, basically because nothing is happening. So it's a warning that is telling me you think you are setting something, you are not. And why? Because when you use an indexer, you don't, unless you know very well the code base, you never know whether a copy has been made or it's a ref of view to the previous data. Now, this warning is standard. You probably saw it several times if you work on pandas. And so one would say, well, I feel safe. There are two problems with this. First, the logic for deciding when to give this warning are very complicated. So don't relate too much on them. But a more subtle problem is that I often work on another data frame which is derived from a previous one. And when I work on that data frame, I might experiment and not think that I'm modifying the original one. This is nothing specific to pandas. Admittedly, it's a general problem when you work on objects without copying them. And so you might modify the original data frame without noticing. So in general, what you want to do instead is my temp s equal to defloc3.cop. And that's the right way to go if you want to work on this smaller data frame. Okay. One of the very cool things... Now, one tends to think that the main addition of pandas to an umpai is represented by indexes. This is true, clearly. But it's maybe not the most complicated addition. Arguably, the most complicated addition to an umpai is represented by the possibility to manage different types in a same data frame object. It's complicated not just for developers, but sometimes possibly for users.  And let's create a column which is basically a copy of the index because we are saying that column A is exactly the index. And then we do the same thing element by element. So for each element in the index, you go, sorry, this is wrong. This is times two. So it's the same. And then you do the same thing here, element by element. So for each element, you take the element multiplied by two and put in the column. Now, certainly the second is less efficient. We all know. And if you didn't know, you saw my first notebook. But there's something worse than this. This is expected, right? We are populating a column with elements of the index. I didn't show you the index, but I can do it now. The index is just zero, one, two, three, etc. Because it's a standard index. I passed no index. What happens here? It's low, but it's not just low. It's a float. And why is that? It's not the fault of pandas. It's probably not even the fault of numpy. Also some discussion isn't going. The fact is that integers have no knowledge of missing values. So if you create a column which is empty, it's going to be filled with missing values. So, for instance, the F is this. I could say V equal to B, zero, sorry. Lock zero, B. Equal to one. You would expect an integral column? No, it's a float. Because I didn't tell him how to fill all the other rows. And this can be annoying. What is the solution? Well, it's very simple.  Why? Why am I saying this? Clearly you don't want to have this loop, but you might have to have Python loops for things that call external functions or whatever. So in those cases, if you have to work on integers and populate bit by bit data frame, just instantiate to some unused integer value before and you solve your problem. Yeah, this is what I created before, but this is the one I'm showing you. Okay. Now, since we have a data frame, I would like to say one thing that I forgot to introduce. Well, no, I'll say later. Sorry. Okay. Again, about data types, let's take a look at some non-totally expected casting. So let's create a series with two rows and 1,000 columns. Okay. So this is a shape. And as I told you, I want to be sure I'm working with integers, no missing values. So I just instantiate to minus one, which is my marker for missing value. So everything looks fine. What are the types? This is just the first four columns, but they are all integers, right? Now, this might be the, maybe it's trivial for most of you, but this can be the good time to tell something about the internals. So what you see over data frame is basically this. You have the data, you have the columns, you have the index. What happens inside to allow you to use multiple data types is this. Each column has a data type. And remember, you have some NumPy arrays, true NumPy arrays, although in some abstraction, that store the columns of the same type. Okay. So for instance, here we have a blue NumPy array, which is storing the columns, which are integer 64, then some data frame, which is storing the float columns, and some data frame, which is in NumPy array, sorry, which is storing the object columns, for example. So data types are characterized as single columns. So here I'm asking for dd types, and I'm getting one d type for each column, they're all integer, fine.  And let's use this method to do some operation on this data. Basically, I'm saying for each column, okay, you take the first element, so top row, you take the content and you add one if it's even zero otherwise. And then I do the same thing, but without adding, only setting the value is even or not. This takes 200 milliseconds. This takes three times more. So this operation is taking one third of the time of this operation. What is happening? And remember, there are no missing values here. It's all about the integers. Now what is happening is this following. If I take the first method, I'm adding values. So I'm adding a Boolean 20 integer. And it's automatically casted by Python, not by pandas 20 integer. This is a Boolean instead. And since it's a Boolean, what pandas does is record is a Boolean. But I told you that the types are characterized by column. So if this happens, it means that all columns are no type object. So it means two bad things. The first is that we are working with objects while we had Booleans and ints. So it's less efficient. And the second that it had to recast all of these columns to the new data type. So the lesson is pandas is great for having multiple data types in a single data frame. But this happens only on columns. Do not try or avoid as possible on rows.  And let's fill it bit by bit. Okay. So for each column, we are just give me a second. Just let me close a bit of stuff to be sure I'm not finished my memory. Close and hold. Better wasting five seconds now than later with memory exhausted. So what I'm saying, what I'm doing is I take each columns and I populate it with two integers, which in the index and minus the index, pretty trivial. Okay. And this is the result. Okay. Nothing unexpected. How much time does it take? A bit too much. Now recall, there is no typecasting here. Okay. There are just integers. I'm setting them as integers. It's true. I'm adding a column by column. So three seconds. What if I had initialized the columns immediately? So exactly the same operation, but I start with a data set which is already initialized. So what do you expect? Compared to the previous one? Well, now it's too easy to answer. Okay. It's not faster. And why is it not faster? Well, let's make another attempt. Now let's add the columns and initialize them to minus one. And let's fill this one. It's way faster. Another hint. Let's initialize to a float way slower. So what is happening? I told you that in a data frame, columns of the same type are regrouped together in single non-py arrays. And this makes a lot of sense, for instance, because when you have a data frame holding only data of the same type, you want operations to be as efficient or almost as efficient asymptotically as a non-py. But now let's go step by step and see what's happening. If I initialize the same data frame, I'm actually storing data in a single block. A block is a non-py array or some abstraction of it, which has a shape I would expect. Now what happens when I set the first column to integers, right? Because it was a float data frame. When I set it to integers, I get what I told you. There is now one 9999 times two block and a small likes block holding the integers. What happens when I add another column the second? This is not what I told you. Actually, it's storing the two integer columns into separate blocks, so separate non-py arrays. And why is it doing so? Because otherwise the operations we just executed would be way slower, because every time, it would have not just to create a new block for the new column. It would have to re-merge in a single non-py array all the columns of the same type. And this is an expensive operation, because it has to re-copy everything in memory. And so on, another end block. And indeed, you can check. This method tells you if the blocks as I told you, or as I told you, that is a single block for each data type.  And yeah, now they are consolidated. So this is important to know in some cases because it can be really, the consequences can be really unexpected. If we compare these two functions, so each function is doing what we did before, that is adding a column, and then taking the max. This other is doing the same, but in two separate loops. So technically, this is more difficult operation, because each max is run on the whole data frame, while this is run all the other columns inserted so far. Let's compare them. So, yeah. So the operation which is in principle quicker is taking more time. And why is that? Because every time, in every cycle of the loop, this data frame is being reconsolidated. So long story short, if you have a loop, and you have to work on the columns in this way, typically adding them or changing the type of them, then do it all once and do not try to do other operations. Because pandas is smart enough to try to reconsolidate only when it has to, but when it has to, it's a costly operation. It's an expensive operation. If we had started with integers, we wouldn't have had this problem. Or actually, it's there, but it's much less important. Okay. Again, on data types, also from another point of view, let's create an ugly data frame. Well, it's ugly, but not too much. It's got different data types, but they are all nicely ordered on different columns. So this is the right way to work. And as an economist, I like pandas because it allows me, for instance, to put a name of country and an ID of firm in the same data structure. So the data types are what you would expect. Maybe some of you would not expect objects, but pandas does not support strings. And so they are cassettes upwards. What happens if I ask the mean of this strange beast? Well, it's fairly smart. It's saying, well, column A is integer, it's one. Column, sorry, zero. Column one is 1.5, it's 1.5. Column three is 17. Column two is not numeric. I'm not going to try to take a minute out of it because it makes no sense. Great. What will happen if I do this? So I'm saying, okay, take the mean, but across the other axis. Again, it's pretty smart. It's doing the same identical thing, so excluding strings, but on the other axis. Good. Now, axis equal to one intuitively means run this operation on the transposed version of this matrix, which is a data frame. So we should expect this to be a matrix of true anyway. We should expect these two objects to be the same. And instead, we get a value error. Why is that? Well, precisely because axis equal one is smart, smarter than this. When you do this, what is happening is actually that all the d types which were nicely ordered on columns are now on rows. That is, each column has different d types. But if a column has different d types, it's only possible d type is object. And if it's object, mean is not trying to get an average, a mean out of it. And so you get an empty series. That is, it's a series of only columns with numeric d type, which are known. All columns are object type now. Okay. Whoever used pandas more than, for more than 10 lines of code probably had some group operations because pandas is really good for this. It's pretty efficient compared to other alternatives. Still, and probably you used, as I mostly used when I'm lazy, apply, apply is a very powerful function. Now, pandas is efficient for group operations. But this does not necessarily efficient that apply is efficient. And why is that?  And we ask the mean of this. It's working. And let's just check what it's producing for reference. Sorry, shouldn't have done this. For reference. Well, it's just taking the mean of bid and ask because the rest is not correct. Now, this took 91 millisecond. Is this the best we can do? Is it the best we can do? Not at all. By far. And what is the problem here? It's that group by operation can have very different characteristics. You can have what is called an aggregate in pandas. That is, you have several groups. And on each group, you want to synthesize information in a series. Or you can have, for instance, transform group by operations, which means that each group does some operation involving the group structure, but then returns a value for each value passed. They're pretty different. For instance, in a transform, I could do multiply each element by two.  Apply is very smart. It's trying to understand what you want to do. And it understands this by looking at what you return from the past function. It's smart, but this smartness has a cost. And this means that you want to use it only if aggregate or transform is not doing what you want. Okay. And I say this because apply, for instance, on Stack Overflow is very often suggested and used. It's very powerful, but it's not particularly efficient, which is sad, given how efficient is a group by object per se. Something about multi-indexes, which is one of the things I love most in Pandas. Let me just close some stuff. Okay. Now, let's create a data frame which is, again, very stupid, but has something new. This multi-index on the index. Sorry. Let me skip this, because I have 10 minutes and more interesting other stuff. Pandas is great, also because it's very coherent. That is, you have a data frame, you access a row and you get a series. You access a column and you get a series. This said, don't be fanatic. If we have a data frame with, for instance, ABC in each cell of its only column, and we want to access separately ABC, something which is a very stupid operation, but I often end up having to do. We can do this, which is for each element in the column, you apply an operation which takes X and gives me back a series with the pieces of X. Very straightforward, very elegant, since the data frame is conceptually made of series. I'm just producing the series and putting them in a data frame. Very elegant, but not necessarily the best way to operate, actually. Because if we compare this, that is the line of code I just showed you, with the following in which I'm just returning the result of X times split. The difference is huge. And the difference is huge because we are wasting series to hold three elements. A series is a complicated object which is worth using either if I have a lot of data or if I need complicated indexing or both, not for three elements which could be in a list. And so in this case, it's really a waste of computing power to have all these series instantiated to just fill the data frame. Finally, this is not strictly speaking about pandas, but it's about HDF which is probably the most used or at least I think the best accessible format to store objects on disk with pandas. Because it holds anything, it keeps the index structure, the D types, et cetera. That said, even here you don't have to be fanatic. Okay, no problem. We are just creating 1000 series, the first with one element, the second with two, et cetera, et cetera.  And we are storing them in a folder. And then we do the same thing, storing them in an HDF. You already see, it's much slower. I wouldn't expect so much slower, but let's have hope. And then what do you guess it's going to be, it's going to use less space on disk. This is 12 megabytes, this is 5.8. So in general HDF is great because it's good at storing big amounts of data and accessing, for instance, a single rows. But don't think that it's the best way to store small objects because it actually has a lot of overhead that could use actually way more space than your data. If I have five more minutes, I'd like just to show one additional thing on multi indexes, which can be unexpected. And it's the following. Now, this is a data frame, as I said, with a multi index on the index. Now, it's cool. What is the problem with this? Let's remain generic. If I ask, for instance, for, let's change this a bit and put four, five, six, okay? So they are all numbers. What is this going to say, going into return? Zero seven. Well, you probably perfectly understand the ambiguity. I'm asking one four. Now, this could be interpreted in two ways. I could say, okay, I have a multi index, and I look at one four in the multi index, or I have an object with two dimensions, and I look at one on the first dimension, four on the second. Because pandas allows you to do partial indexing. This works, and it maybe works as most of you expect. But don't try too hard to guess. In general, you want to do more, to be more explicit. That is, either you write one, four, this, which says exactly in the multi index, which I have in the index dimension, take one four, or use one, four, which is the opposite operation. Talking about this, here I use the typo. Now, in Python, most of the time, we are used to the fact that a typo and a list are actually the same thing except for implementation details. List can be modified, but it's less efficient. In pandas, it's not true, and it's not true for good reasons. And that is that this, so, yeah, you see it's different. Incidentally, it's very similar. But conceptually, it's different, and it's wrong to use this to access, to do this, basically. So the difference is that tuples mean parts of the same key. So this means I want to access that key or better. I want to access anything starting with one. This actually means I want to access one, which is partial indexing, and possibly other stuff. For instance, two. Okay. This is going to fail. So in some cases, you can obtain what you expected, even using the wrong type, but it's a simple association, and it's good to stick to it. Tuples are parts of keys, lists are lists of keys or parts of keys. And with this, I think I'm done. We're much for your talk, Pietro. We have time for a couple of questions. Just a comment on the earlier stuff about the mixing D types when you're kind of looping over arrays. It seems to me that, you know, they're kind of all in this kind of topic of like, you shouldn't loop over data frame, like, if you can avoid it. So if you, sorry, so with the earlier stuff of these examples that you built by looping over data frames and inserting things in different ways, causing these problems relating to mixed data types and mixed... Oh, sorry. The earlier stuff about, like, you constructed these examples where you, which were inefficient because you were kind of mixing data types and columns and deconsolidating the underlying arrays and so on. It seems to me that, like, a lot of that can be avoided by the general principle that you shouldn't really be looping over the data frame in this way at all. Do you agree with that? Or, like, could you please speak into the microphone? So the question was, in these examples as shown, the lesson could also, for most of the example as shown, not just the first notebook, the lesson could be don't loop of the data. Now, the general lesson is don't loop of the data if you can avoid it. Then it all depends on what you have to do. There are functions I might need to go from external libraries. There are... Maybe I'm looping over the data, but not by groups, so I'm doing the best I can to vectorize, but I need to work on each group individually. Certainly, this is always a good lesson in non-pandas. Try to vectorize as much as possible. And pandas is, I think, really good in the extent to which it offers, for instance, group bioperations which are ready to use and vectorized. Still, okay, many examples I gave are stupid, not out, but there are some cases which... And by the way, the casting problems are not necessarily related to looping. They can come out in other times even, for instance, if I set all the values I know in a series, but some are missing and they were integrated, they will still be imploded even if there is no loop involved. I'm not the most expert on this. I'm very happy with pandas integration with Matclotlib. Not because it's perfect, but because it's very handy and allows you to refine the result using Matclotlib itself. But I know many people now are talking about how it's called the web bokeh, which I should try and just ignorance so I cannot judge. The integration with Matclotlib is very nice. And, I mean, as a researcher, the web interface is less interesting to me, but I'm not expert again. This is just more of a comment, truly. You as an economist, how do you find searching for micro-optimizations with using Python? Because basic tutorials I have seen and the documentation really just provides you basic explanation of the method, but you as a non-developer, how do you get around with that? So the question was on micro? How do you search for this kind of stuff you as a non-developer? I'm not sure I get the question. Well, how did you find out the micro-optimizations you show us here today? Did you look a lot of... Did you search through the source code? How did you get around with that? Well, my honest answer is probably I discovered Jupyter notebooks, which allowed me to try five things and do the one working best. I was helped a bit by just a quick look at the code of Pandas, which is very complex, but in some sense the main concepts are pretty clear. By the way, me as an economist still missed some things in the Python ecosystem in terms of methods, estimation methods, but in terms of manipulation. I mean, I'm pretty sure I have a better life than all my colleagues using other softwares, despite some some corners we have still too smooth. Is there a source of more advanced information of Panathema whereof? No, not organized. The docs are reasonably well organized, but not complete. I mean, they are not terrible either, but they would benefit from many more examples, and if you come to the Sprint Saturday, we can work on that also. And then there are many people reporting their experiences in single Jupyter notebooks, maybe, but specifically in the economics field, very few, but it's growing quickly. Let me just add one thing. I talk about estimation methods, so let me add that when Python is not enough, the good interrogation between Python and R helps a lot, so PyR2 is a library of choice for this. Let's thank Pietro for his deep insights in Panathema.


Help us to understand what you are teaching us, Lord Jesus.  And we ask this in the most precious name of Jesus. Amen. Amen, amen. Thank you, thank you, John, for leading in that prayer. So yesterday, we were talking about the different kinds of prayer. We touched upon a few and we had some remaining. So we will talk about it today and then move on to the next chapter. I'm on page 19. I talked about the prayer of unburdening where we could, you know, go into God's presence and just open up our hearts and, you know, trust God to give us his peace in exchange for all that we bring to him. So the next prayer here is the prayer of faith, okay, for healing. Now we see in the book of James, James chapter five, verses 14 through 16. Now it encourages us to, like many of you would have read that it says, if there's anyone sick among you, then you ask the elders to come and pray for them anointing with oil and then, you know, that scripture there, verse 15 of chapter five, James, it says, the prayer of faith will save the sick. So praying a prayer of faith, okay, is what releases God's healing on somebody's life. It could release healing on somebody's body. You see an example of this in the case of Paul as well. When Paul was stranded on the island of Malta, there was the local leader over there who was sick, okay, and Paul prays for this person who had a fever. Paul went into him and prayed, it says, and he laid hands on him and healed him.  A prayer of faith, okay, a prayer of faith. So we use this when we are ministering healing to people. So you pray based on, and where does our faith come from? Our faith comes from the word of God. So we meditate on God's word, we learn from God's word on the work of the cross and what has been made available to us.  So the prayer of faith for the healing of the sick. Now prayer of waiting. This could be a prayer where you continue to tarry on in the presence of the Lord, okay. So we might choose to take some time and just be in God's presence. Now in these moments of waiting, if we pray other kinds of prayers, maybe a prayer of thanksgiving, a prayer of petition, a prayer of supplication, that's all right. In general, what we're doing is we're just spending time with the Lord. Some people like to call it soaking, okay. I don't know if you have come across that term, but just being in God's presence and waiting upon the Lord, okay. Now, once again, just being in God's presence and letting that touch you, inquiring in the temple as Paul puts it in Psalm 27, just gazing upon the beauty of the Lord. You know, what happens to us? You know, we get ministered too, right. And we are a loving God to work in our lives when we engage in the prayer of waiting. Isaiah 40 is another beautiful passage where we are told, you know, they that wait upon the Lord shall mount up with wings as eagles. So what is this waiting? Is it just a passive way of being in God's presence? No, you could very actively with your trust in the Lord wait on the Lord. And we know that God is somebody who comes through for us. And another beauty of the prayer of waiting is that who he is being imparted to us. This very passage, Isaiah 40, you know, it says that they that wait upon the Lord shall mount up with wings as eagles, okay. And how is that possible? In the earlier verses there, you see that, you know, God increases the strength, right. For those who are weak and those who do not, they lack might, God increases might, God increases strength. So God will impart his abilities, his grace to us as we wait on him. And this is a beautiful kind of prayer that you and I can engage in just waiting upon the Lord and in his presence, okay. The next category of prayer we have here in our notes is called the prayer of watching, okay. So what is the prayer of watching? The very term watching is associated with alertness. So when somebody is watching over a house, you have a watchman, what is the watchman doing? The watchman will prevent the wrong people from entering, okay, and only allow the right people to come in. In the same way, we can guard ourselves, our families, our ministry, whatever God has entrusted to us through prayer. So prayers of watching are prayers of protection, okay. And the term watching reminds us that, you know, we have positioned ourselves in a way that we are guarding, okay. Now Isaiah 62 is a good example. There is a passage there that talks about watching. Could somebody please read this? This is verses six and seven. Isaiah 62 verses six and seven. Isaiah 62, six and seven. I have set watchmen on your walls. O Jerusalem, they shall never hold their peace day or night. You who make mention of the Lord, do not keep silent and give him no rest till he establishes and till he makes Jerusalem a praise in the earth. Oh, okay, great. Yes, thank you, thank you, Rosalind. So you notice here, God is saying that he set watchmen on the walls for Jerusalem. So there were people who were appointed to pray, okay, and you realize in that same passage that these people were crying upon the Lord. They were calling on the Lord and not giving God any rest. So that is, what is that? Not giving God any rest, calling upon the Lord. It is prayer. So there are people who were praying for Jerusalem and what are they called? They're called as watchmen. So we are able to guard, protect, watch over what God has entrusted to us. In this case, a city. So we could also be watching for our city, for our nation, through our prayers, okay? And God can extend his protection to us. Now we see different aspects of this. Again, we will touch on it in a deep way later on, prayers of protection. For now, maybe I'll give you an example of the way Jesus, you're told Peter, right? Like Satan has sought to sift you as wheat, but I have prayed for you. So the prayer actually protected, okay? And it guarded Peter. So in this manner, we can engage in prayer of watchfulness and that is also another kind of prayer that we can incorporate. So we've covered different kinds of prayers so far. If you have any comments or questions, okay, Divya has a question here. Does watchtower also refer to the same? Yes, Divya. So a watchtower in those days, they would have these fortresses, okay? And compared to a watchtower where the watchmen would position themselves, they could see to a large distance from the height, okay? So when they could see to a large distance, if there was an intruder, right? If there was an enemy army that is trying to take over the city, they would be able to observe that, or if one of their own spies was running up to deliver a message, they could quickly note that. So watchtower, watchmen, all this has to do with the protection of the city. So yes, you can associate watchtower with this watching as well. Okay, thank you, thank you, Pastor. Yeah, sure. Thank you, Divya. Any other thoughts about the kinds of prayers so far? All right, great, yeah. Yeah, I just wanted to say that really love when you shared about the prayer of consecration. Okay, praise God. Yeah, it was a new revelation, yeah, thank you. Wow, praise God, yeah, thank you, Divya. And did you notice today Pastor Jake's also, like Pastor Jake Kumar prayed for consecration and he said, consecrate yourselves. So I felt like God was ministering along. Yeah, yeah. You know, those lines as well. So yeah, praise God. All right, fine. So we will move on to the next chapter here. We are going to page 22 now and we will talk about how to pray a believing prayer. This is by far the most common prayer that we all engage in because it comes under the category of asking and receiving. So when we want to receive it, it needs to be a prayer of faith. And so we will talk about how to pray this believing prayer. Okay, we engage this mostly when it comes to our personal needs, but we could also engage this when we're asking God for certain things for our ministry, right? Certain decisions that we have to make or if you're not in the ministry as such, maybe your work life or other aspects that concern your life. So asking and receiving, but asking in faith or making a believing prayer. So what are some things that help us? Okay, what do we see in scripture? The first thing that we need to pray a believing prayer is a clear conscience. Okay, why should we have a clear conscience when we approach God? Any thoughts on that? Can I contribute? Yes, please. Yes, Isaac. You need a clear conscience so that you talk exactly ask God for what you desire or what you want God to feel. So that's why if you have a clear conscience, you don't want to pray a believing prayer. Okay, thank you. So to be able to ask exactly what you want, okay? All right, thank you, Isaac. Divya, yes, Divya? Yeah, I was just thinking like God completely knows what you are and what you have done. So you cannot hide anything from God. So yeah, to have a clear conscience means I'm being truthful, right? I'm being transparent to God. Yes, yes. So we are being truthful and honest before God. All of what you shared is important and that is those do make up the reasons as to why we must have a clear conscience. Now, in addition to that, in scripture, we see exam 66 and verse 18, it says that if I have sin or iniquity in my heart, then God will not hear my prayer, right? So when I come with the wrong conscience, it's not aligned to the will of God, okay? And thereby, how can I be asking in his will? I'm hiding sin in my heart and scriptures tell us that God will not hear when we have a heart with sin in it. And similarly, one John chapter three, there are some references in your notes that I'm referring to, we will read a few, but otherwise I will just tell you what the essence of that scripture is. So one John three versus 21 through 22, it says that we are able to pray when our heart does not condemn us, okay? So when does our heart condemn us? When there is guilt, okay? When there is a sin that we have not taken care of. And when we pray with our heart condemning us, then those prayers are not heard. Okay, how about we read this passage, one John chapter three versus 21 through 22? Could somebody read it please? Belover, if our heart does not condemn us, we have confidence to work God. And whatever we ask, we receive from him because we keep his commandments and do those things that are pleasing in his sight. Yes, yes. So you see here the importance of having a heart that is clear, okay? Nothing within us condemns us. And when you come before God in that way, our prayers are heard, okay? That's what this passage says. So to carry a clear conscience is very, very important. Now another passage which is referenced here in our notes is from first Peter three versus seven and 12. And it's in the context of marriage where Peter writes to the husbands and says, like you must respect your wife because if that doesn't happen, like you come before God without a clear conscience, without treating the wife right, then again, there is a hindrance to the answered prayer, right? So having and maintaining a clear conscience is like a prerequisite for a successful prayer life. So if there is anything, any sin, any, you know, like I generally say, like go by the conviction of the Holy Spirit in our hearts as we read the word, as we're spending time with God, worshipping, the Holy Spirit has a way of ministering to us, right? And just nudging us and saying this thing in your life, I think you should surrender it. So deal with it quickly, like keep short accounts with God and deal with it. So when we do that, what happens? We can maintain a clear conscience. And when you have a clear conscience, it's a lot easier for us to walk in answered prayers, okay? So maintain a clear conscience. That's the first one. Second is to pray in the name of Jesus. John chapter 14, verses 13 through 14. Can somebody please read that? John 14, verses 13 and 14. John chapter 14. Whatever you ask in my name, that will I do so. So then the Father may be glorified in the Son. If you ask me anything in my name, I will do it. Okay, right. Yeah, thank you, John. Thank you. And Jeffina, I noticed you also wanted to read. Maybe you can read the next scripture. Okay, I hope that's okay, Jeffina. Yes, ma'am. Okay, right. Yeah, thank you. Thanks, John. So the scripture says, whatever you ask in my name, right, I will do it for you. Now, what is the importance of praying in the name of Jesus? Any thoughts on that? Jesus' name is name above all names. Okay. Yeah, God has positioned Jesus' name above all. Okay, so the highest name, okay. And we also understand that the highest name means authority. So the highest authority, if you want something done, you generally use a seal or a letter or something from the person who has authorized you to do that. For example, you know, a bank account.  Here is a letter. So Divya is going in my name and the bank will heed to that because here is a letter authorizing her to go ahead and do the transactions. So in the same way, here on the earth, one of the ways in which we demonstrate our authorities by the use of the name of Jesus because that name is backed by authority, okay. So Jesus said, you pray in my name. So what are we doing? You know, we are using the power of attorney. We are using the authority of the name of Jesus when we pray. And this is how Jesus taught us to pray. He said, you pray to the Father in the name of Jesus. So that's a common way of making our prayer. So we usually pray to the Father in the name of Jesus, right. So you have the authority of the name of Jesus in your prayer, okay. And that is the second thing that we want to bring to our notice. Now, for us to make a believing prayer and to receive an answer to that prayer, it is also important for that prayer to be in the will of God, okay. Let's read another passage. So, Jeffina, you can read this. One John chapter five versus 14 and 15. First John chapter five versus 14 and 15. And we are confident that he hears us whenever we ask for anything that pleases him. And since we know he hears us, when we make our request, we also know that he will give us what we ask for. Yeah. So you see, when we ask in line with what God has willed, he hears us, okay. And because he hears us, we are assured, we are confident that we are going to receive from him. So praying in the will of God is very, very important. And here the term is the revealed will of God. So the revealed will of God for us is the scriptures, the word of God. And the word of God has God's revelation on various things, right? About what our calling could be, what God's purpose is for our lives, the way of living, right? What do you call it? Like the decisions that we have to make, the way we must engage in relationships, so many things that have to do with living life here on the earth. So the will of God is already revealed. So we can pray with the knowledge of God's will. And that makes the prayer very effective because what did we read just now? When we pray in the will of God, we are sure that God hears us, okay. And that's a righteous prayer that is going before God. So for example, if I pray for somebody's healing, I don't have to think twice whether it's okay to pray for healing or not okay to pray for healing because at all times it's okay to pray for healing, right? God has already spoken in his word and said, I'm Jehovah Rafa, the Lord who heals you. So God is always on the side of healing. So I can pray, it is in the will of God to pray for somebody's healing, all right? So in that manner, I must identify the will of God. Now, for example, what if there is a matter which is not as clear cut as praying for healing or praying for a life that glorifies God. These are all broad things and we all know that we should align ourselves to what scripture say. But what about specifics of life, right? Like you are going to make your next decision about a project. How do you know what is God's will? Any comments? Or like what career to take or what, who to marry? Because the Bible has instructions, but how would you know that, oh, okay, man, I have, this is the person or this is the course that I have to take, specific. Maybe God gives us a confident at that time that this is something that we can go for it. Maybe we can speak through some verses. But sometimes it's so confident on the decision that this is God's plan. Okay, good, good, yes, yeah. So God kind of gives you that direction and that confidence that this is the decision that you have to make. Anyone else? How about the specifics? How do you know what is God's will? Divya, peace of God, okay. Okay, she adds also, so the peace of God about a matter, circumstances will also align, Godly counsel, yes, that's true, okay. And I think we've done a sermon series on God's guidance. So apcwo.org slash books, you will find an entire book that you can go read on how to identify God's guidance for various aspects of our life. So the point that I'm making is identify God's will. If you wanna pray about something, identify God's will first, okay. And this could take a while. You may want to read the Bible, study the word of God to come up with, okay, fine, this is God's will. So I'm gonna pray along these lines. Or something specific, one of the things that the Bible says is that the Holy Spirit revealed the will of God. We read that passage in 1 Corinthians chapter two where we say, no eye has seen, no ear has heard, no mind has conceived, the things that God has prepared for those who love Him. But as you go further down, we read in scripture that, but it is revealed to us by the Holy Spirit. So even the things which are seem unrevealed, they are revealed to us through the Holy Spirit. So as we pray, as we meditate in God's word, as we wait upon the Holy Spirit of God, He can give us that revelation, okay, and we can understand. So I'm reminded of David Yongecho. Many of you would have heard about this Man of God. He has written a book called The Fourth Dimension about prayers and specific prayers. So he talks about being very specific in prayer and all that. But I want to take your attention to the time when he prayed for his church growth and he shares that example. And he talks about how the Holy Spirit used to put a number in his heart. So at one point when he had, I may be like, I haven't heard that sermon for a while, so I may not be exact about the numbers here, but something like there were three people in the congregation and Yongecho, Pastor Yongecho was praying and God told him, pray for 300 people. And he said, God, I have only three people. Like what are you saying? How can I pray for 300 people? So he got that number and he prayed very specifically for, okay, I want 300 people here. And eventually it happened, right? The church grew to 300 people and then God put another number in his heart. And I think that was 3000. So then he started praying through that number. See some specifics that he got from God and he would pray through those specifics, right? So we can wait on the Lord, we can study the word of God that will show us what is the revealed will of God for a matter, okay? And when you are aware of that, whether it is a general thing, or, you know, for example, forgiveness, that is, we know as you study God's what should I forgive this person or not, God's word says forgive. So we can do that. But specifics, exactly Lord, what do you want me to do? Where do you want me to go? You know, Holy Spirit is also able to reveal that to us when we pray, we spend time with him. And once you receive that, you can pray more specifically in line with that, you know, exact thing that God may want for us, all right? And when you do that, you're confident because you've received it from God and you are praying that through as well, okay? So that is the next point there about praying a believing prayer, all right? So you're all with me so far. Are you okay? Are you getting something out of this? Yes, ma'am. Okay, great, great, great. Thank you, thank you. All right, yes, so let's continue. The next important thing is to pray with strong desire, okay? So once we know that something is God's will for us, and this is what God wants, now I gave you the example of Pastor Yungi Cho when he prayed for his church growth, okay? And he also talks about strong desire. You know, when you know that something is God's will for you and church growth, of course, you know, that is something God wants for every church for more people to be blessed and the people who are there to mature in the Lord. So he would pray with a strong desire and he encourages people also to do the same.  But, you know, basically he shares his point on strong desire to be keen on seeing that happen because otherwise what happens?  If it grows, it's okay. If it doesn't grow, so it's okay. You know, God will be like, what is this prayer? You know that it is my will for the church to grow. Then you pray with strong desire, right? We cannot be like double-minded. This is okay, that's also okay. When we pray like that, you know, we don't receive answers to such kind of prayers. So we must have a strong desire to receive an answer for that because we've already spent time with the Lord, spent time in His Word and we have come to a place where we know, okay, this is what God wants for me and I must have it. So pray with a strong desire. Okay, so there are a couple of passages here that also talk about, you know, having that strong faith. So Mark 11, 24, maybe one of us can read that please. Mark 11, 24. I say to you, whatever things you ask when you pray, believe that you receive them and you will have them. Very correct. Thank you, thank you, Rosalind, for reading that. So you see, Jesus said, when you pray for something, you pray believing. You believe that you have received them, then you will have them. But double-mindedness prevents us from receiving from God. Okay, so we have to be firm and we must not have a casual approach for the outcome. If we have a casual approach, it means that, you know, we are not assured that this is God's will for us and we are okay to kind of let it go. So that shouldn't be the case. But you pray God's will and pray it with a strong desire. You should have a strong desire. And God, you know, I want to see this happen. So once again, you know, I'll just share from Yongee Cho's example itself.  So he had a strong desire to see a large church. And we know today that his church is, is it the second largest church in the world? I think so. So it's a second largest church in the world. At a time when he had, you know, some three people or so, apparently he would preach with the faith that one day there will be thousands of people in this church. So he would preach as if he's preaching 2,000 people. All right? So apparently the few people in the church would tell him like, pastor, please stop screaming. We can hear you very well. You know, you don't have to scream so much. But in his head, he used to think, I'm preaching to a thousand people. So what if there are only three people in front of me? But, you know, he had that strong desire. God is going to do this. I will pray for this. I will work for this. This is going to happen, right? So we need to have that kind of a strong desire. It's not like, yeah, you know, it's fine. When we come to God in that way, even now we said when you pray, you believe that you receive it, then you will have it, right? So we must pray and also get that assurance when we pray in our spirit saying, okay, God, you have done it for me, I know. And, you know, we will see those things happen because we are not praying out of our own minds and our own desires, but we are praying in the will of God. All right? So the next point here is about praying with faith, okay? Praying with faith. We've just read Mark 11, 24, and there is a similar passage in Matthew 21 verse 22. Again, one of us, please read it. Matthew 21 verse 22. Matthew 21 verse 22. You can pray for anything and if you have faith, you will receive it. See, what does it say? If you have faith, you will receive it. So we must pray with faith, okay? What is faith? Faith is the inner assurance of the things which we have hoped for. So when we have faith, we know that it's coming, okay? So I used to think this to myself when I was studying in college. So I was praying for a certain course after I graduated and it took a long time before I got an opportunity to actually do that course. So that entire period during the waiting time was very hard because it was not coming through. I was only praying, I was only praying, but I would tell myself, it's like you know that God will do it for you, okay? And it's hard to explain to other people. Whenever my friends would talk to me and they would say, hey, this is the common course, you take it, no problem. I'll be like, no, no, no, but I wanna do a course that has to do with this, this and this and they'll be like, you keep dreaming, it's never gonna come to you. But I would want to tell them that, but I have faith, I know God will do it for me, but it's hard to explain, right? Because faith is that inner assurance that we have on the basis of God's word for us. So I would tell myself, it's like walking into a dark room, but you can feel a table as you step into it, right? You can't see the table, but you can feel the table and you know there is a table. Now, people who are looking at the dark room from the outside and they'll be like, there's no table there, we can't see any table. But you're like, no, but there is a table here because you can feel it, you can touch it, it is there. So as you're journeying with God, that is faith. God puts faith in your heart to do things which others may not even see, right?  So long story short, in my case, I actually got the course which I desired, right? Whatever I used to tell my friends, it's going to be a course that will deal with this and that it was exactly that course. And I used to tell them, it's gonna be like this, I'm gonna study in this, you know, a certain place. Everything actually happened, right? But not out of my will or my desire or anything like that. But I'm just telling you how God can give us the faith. And obviously in my case, it took a long time for me to pray, to prepare my heart and to have that sense of assurance within me that okay, even if people say it's not gonna happen, I know, I've prayed for so long and God has given me that assurance. It will happen and it happened, right? So, you know, we can have faith for things as we journey with God by the power of his word, by the power of his spirit and he can give us that, you know, something to hold on to deep within us and that is called faith. And when you pray with faith, you know that things are going to happen, right? You know, K-N-O-W, how to explain that? It's very difficult to explain to somebody else, but when you're praying, you pray knowing God is going to do it, I know and it happens, okay? So, have faith and faith again, you know, faith, it's not just like sitting and saying, yeah, I'm praying, it'll happen. Faith is active, faith is not like resigning passively and say, yeah, someday it's going to happen, but you're actively moving in the direction where God is leading you and you do whatever it takes to do it. And about faith, we can speak so much. I'm sure you have a class on faith that Pastor is teaching, so you know, you can get your inputs, more inputs from there about believing God, praying a believing prayer, declaring in faith. You know, so many things for you to hold on to that faith and keep pressing forward in God's direction. So when we pray in faith, we know that we receive it, okay? Okay, so the next point here is to persevere with faith. All right, so I told you some prayers, we might see immediate results, but there are certain other prayers which might take a while. Now, why do, the answers take a while? Maybe it's not God's timing yet to do something or maybe our hearts are not yet aligned and prepared for us to step into those things. So there can be several reasons why it's taking a while, but what should we do? We continue to engage in prayer. So what does this prayer look like? Will the prayer look more like, or begging God every time, God, I want to do that course, you have to give it to me, you have to give it to me. No, it doesn't mean that we beg God when we are persevering in prayer. Initially, when we are trying to identify God's will, you know, we might, our prayers might not be clear. We might be saying, God, okay, help me, I like that course, can you make a way, can you open the door? But, you know, as we are studying his will and yielding ourselves to the Holy Spirit, God brings us to a place where we are clear, okay? It's right according to his word and the Holy Spirit is giving witness, bearing witness with my spirit that he's gonna do it, okay? And I'm going to get this course. So once you have the faith and when you are clear, you've prayed, you know, you ask believing that you have received it, right? After that, what to do? After that, perseverance means thanksgiving to God. Perseverance means, you know, praising God and remaining at a place of rest, confidently in God, saying, God, I thank you. You have heard my prayer, you're working on my behalf, things are aligning according to your plan for my life, you know, so you're praying prayers of declaration, excuse me, praying prayers of thanksgiving, right? So perseverance does not mean you're begging from the day you started praying about it till the day that you actually get it. Somewhere in between, you're quite clear. This is what God wants, but you continue to pray, right? You're praying prayers of thanksgiving, prayers of declaration and also, you know, it could also mean spiritual warfare where you are praying and as you're praying, whatever hindrances are there against that thing from, actually working out or coming through in your life, you know, those things are being removed. So that would be your persevering in prayer as you wait on the Lord for the answers to come and you know, you continue in thanksgiving and the wonderful example of thanksgiving is the life of Abraham, when God promised Abraham that he would have a son. So you have the passage in Romans chapter four where it talks about the stages or in a sense, the steps of faith where he trusts God, he believes God and once God gives him the assurance, he continues with thanksgiving.  So you continue in thanksgiving. So these are some keys for us to help us walk in believing prayer. Believing prayer, which yields answers through which you can receive from God, you know, whatever you are waiting on him for. So I think today we have touched on the content which is there in our notes. I think some more points that I mentioned here, I will touch on it quickly and then if you have any questions, we will take that up. So down below in that chapter, page 23, there is a question which says, if I have prayed and asked once for something, is it correct if I keep on asking God for the same thing over and over again? So I think I've already answered that question. There's no need to keep on asking God over and over again. You go through these stages, right? At some point, when you've prayed in faith, knowing that it is the will of God, you transition into more of a thanksgiving kind of a prayer. The next question, does God always give whatever we ask? So for this, we go back to the will of God, which is in the word of God. So we must understand the word of God. If we are asking aligned to the word of God, yes, we can expect answers for whatever we are asking. But if we are asking a miss or we are not aligned to God's word, and if we are kind of trespassing on some of his laws, then it won't happen, for example.  And I'm gonna jump today from my terrace. I'm using all the principles, right? By faith, in the name of Jesus, thanksgiving, everything I'm praying. I'm saying, Lord, nothing will happen to me, I know. But I'm going against the law, natural law of gravity, which God has already put in place.  So there are certain boundaries, there are certain laws. Like, we will talk about it later when we study. I'm just giving you one example. See, miracles happen, okay? And based on the purpose of God, certain miracles happen. But every time to expect God to change the normal boundary or the law, that wouldn't be right because he has put certain things in place. For example, one day, Joshua and all, when the battle was going on, the sun stood still, it says, and they were able to engage in battle. But does it happen every day? No, it doesn't. Now, if I ask that and say, God, today, I haven't submitted my assignment, the sun has to stand still. I don't think that prayer will get answered, right? Because we're asking it to bend the rules and bend the laws and the boundaries of God. So if we ask, in that manner, those prayers will not be answered. So whatever we ask doesn't get answered. If it is aligned to the word of God, the will of God, yes, you can expect answers to that prayer. What if I do not know God's will about a matter? Simple, find out, study, understand, okay? Efficiency five tells us that that we must understand the will of God. First you understand the will of God, know the will of God. So it's okay to take time to understand the will of God, right? And even if we are going through a phase in our lives where we feel, hey, I still can't understand, you can pray a prayer of consecration the way Jesus prayed and say, God, I want this, but not my will, but yours be done. So that's a prayer of surrender, a prayer of yielding, a prayer of consecration, okay?  So these points were there in our notes, we have covered them. Now coming to the comments here, okay, thanks Divya, that analogy helped me for so many years. I used to think to myself, no, there's a table. I know there's a table, right? And God actually came through. That's very tangible. Yeah, sure. Yes, yes, thank you. Okay, Haribika, okay, you've read the book of Paul Yongecho, Key of Faith, okay. Sure, that's a good book, and Jefina, oh, okay, thank you. Jefina, thank you for your encouragement. So any questions about praying, a believing prayer? All right, yeah. Yes, ma'am, I have a question. Yes, Haribika. In a scripture, Paul said, I pray in spirit and wisdom. What did it mean? Okay, he says in spirit and wisdom. Yeah. Okay, so would you know the exact verse, Haribika? No, ma'am, I'm not remember, but just I've not remember where there is written. Because I can recall, I think 1 Corinthians 14, where Paul says, you know, I pray in the spirit and I also pray with my understanding. I think verses 14 and 15, you know, so I can only think of that. So basically it's very simple. He's saying that he prays in the normal languages, and he also prays in tongues. That's what it means. Okay, thank you, Ma'am. Sure, thank you. Yes, Nicholson, you have something to say? My hand is raised. Hello. Yeah. Hello. Yes, yes, Nicholson, please go ahead. No, I just wanted to say that you answered a lot of my questions actually. Oh, okay, glad. In the faith class, I had asked a question about going and just praying. If you feel like praying to random people also, and I think you answered a lot of those questions. Oh, okay, praise God. Yeah, that's wonderful. Yeah, I'm so happy to hear that, because today, I mean, we usually pray for our students, but I was praying and I was saying, Lord, you know, the students have to be ministered to, because it's not just about covering the portions, right? But I very specifically prayed that, so I'm encouraged to hear what you just said. Thanks for that, praise God. Thank you. Yeah, okay, Divya, Dev Desh, okay. Thank you, brother, brother Dev Desh. He says he's blessed and Divya is really powerful. Sometimes I even forget I prayed about something, but when God answers it later on, I'm amazed. Just sharing, sometimes it is wonderful to think of God's way of answering prayers. Yeah, so true, so true. Yes, yes. Yes, so we have one comment here. We'll take that up. I know we have overshot time, and with this explaining this last verse, we can wrap up. So Jude 120, I think it says strengthen yourself in your inner man praying in the Holy Spirit. That's what it says, right? Jude verse 20, okay. So building yourself up in the Most Holy Faith. Yeah, praying in the Spirit. Talk about it. Okay, Most Holy Faith means what faith? Yeah, I don't think it is referring to any category of things, you know, faith for this or faith for that, but basically it says you are building yourself up in your spirit man by praying in tongues. Jude 20 is also a scripture that talks about praying in the Holy Spirit. Okay, so what happens? We pray in the Holy Spirit. Faith comes through the word of God, that's there, but we develop a spiritual strength when we pray in the Holy Spirit. So both of these things, meditating on the word and praying in the Holy Spirit will contribute to a great faith life if I can put it that way. So if you wanna be a person of faith, word spirit, right, the work of the word, work of the spirit, then you're walking in faith, right? And so many prayers that you pray, you'll see that those prayers are being answered. So that's what I would say for Jude 20. Does it make sense, Rosalind? Yes, ma'am, thank you. Oh, okay, great, great, wonderful, yes. Yes, so thank you, everyone. It was good to study this topic. We will pick up from the next topic in the next class and also just to let you all know, in September, maybe early September, I will post your first assignment, okay? So be mentally prepared for that. We will cover as much portions as possible until then and then you will also need to work on your first assignment, just the heads up there. All right, so thank you once again. God bless you. Have a wonderful rest of the day and we'll meet again next week. Thank you, thank you, thank you. Yeah, thank you, Divya, blessed to have all of you and the interactions here as well. Thank you, class, take care. Bye for now. Thank you, Mani. Thank you, thank you for the dish, bye. Thank you, man. Thank you, bye.


All right, what's up everybody? This is Alex from Xtrades and welcome back to another weekly trade ideas list. Hope everybody had a wonderful trading week last week, had a good weekend, all that good stuff. I would say a couple of good setups last week. We had Tesla calls that we were looking at, did very well on Monday, had a 6% rally. Also had CVS calls which continued its breakout pretty well. I would say it still has some more room to go up to the 83s, so keep that on watch. Another one we were looking at was AAL, American Airlines, it did break that channel. So we thought it could see some downside but eventually after FOMC, it did rally back up, reclaim its trend and invalidate the thesis. So unfortunately that one didn't work. Another play we had last week was TLT calls. I did alert that one in the chat or in the Discord as well as on the Xtrades app. We didn't have TLT calls in the watch list last week but if you were tuned in with our Discord and our community, I did send that out after the FOMC. So after Jerome Powell sounded as dovish as he did, I felt pretty confident, you know, yield to go down and then bomb values would go ahead and gain and we did see that. So we closed those for about 48% and I do have a remainder position to head back up to the 95s, hopefully. So keep bonds on watch. I believe the futures are doing pretty good after hours. If you pay attention to the bond future, you can track ZB, which is 30 year bonds or ZN, which is the 10 year bonds. So keep those on watch. They're still relatively a pretty good valuation I would say right now. Definitely better than stocks look in terms of value areas. So hopefully we could see some more retracing that since I still do have a partial position in that. Yeah, otherwise I'd say it's a pretty solid week.  Obviously it's been a little bit harder to find setups each week. As the market goes higher, you start to leave value areas and things start running with it.  So I still try to find value in the markets, regardless, even if the indexes keep making all time highs every single week, because usually there's laggers still or there's things that haven't run as much and you can still catch those. And that's kind of what we've been going over the past couple of weeks, finding value areas, looking for stuff that still has room to retrace up without having to go long into QQQ or the spy at all time highs. But before we get into our setups, let's go ahead and go over the economic calendar real quick. We do have a shortened week in the stock market this week. It's gonna be closed on Good Friday. Ironically, when we have the biggest data set of the week, it's gonna be a PCE on Friday. So we won't be able to trade that, but it will be a big data set and it will affect Monday, maybe even the future Sunday night. But unfortunately we won't be trading the cash session on Friday because it will be closed. So there's still dropping the data regardless and we'll wanna pay attention to it. But for Monday we do have a couple Fed speakers. It's gonna be Raphael Bostic, also Austin Gulesby. Otherwise for data, it's just gonna be new home sales at 10. Pay attention to that. That can always move the market just a little bit. I haven't really seen it move in a big fashion or anything, but new home sales does kind of set some fluctuations in the market. You might see a knee-jerk reaction when it drops. And for Tuesday, you're just gonna wanna pay attention to consumer confidence at 10 a.m. Wednesday, Christopher Waller's gonna be speaking, another Fed member, but that's gonna be at 6 p.m. So we won't be able to take action on that. And then on Thursday, it's probably gonna be the big one of the week. It's gonna be GDP. Also have Chicago Business Barometer, just a PMI. Really any PMI data always has a chance to move the market. So pay attention to that at 9.45. And then pending home sales at 10 and also consumer sentiment at 10 as well. So I'd say consumer sentiment and GDP is gonna be the big one on Thursday. Since we're gonna be missing out on PCE down here on Friday, hopefully the GDP pending home sales consumer sentiment will kind of give us a little boost. So that's really it. So we're having Friday. Just wanna see PCE continuing to go lower. Hopefully we don't see any signs that it's sticking because that will kind of contradict the dovishness for the Fed. So if we have two in a row that are looking sticky, it's not gonna be good for rate cut odds and we might see yield spike. Also at 11.30, we do have Fed Chair Jerome Powell speaking, but like I said, market's gonna be closed. So really, this could just set us up for a move on Monday or at least a future Sunday night. So that's really it. Market's gonna be closed Friday. Probably just wanna pay attention to the GDP and the consumer sentiment on Thursday. Also consumer confidence Tuesday and on to seasonality for this week, we do have a relatively bullish till on the seasonality period. You can see winning trades are at 65%. We do have a little upthrust here. And then after March 26, there is a little dip, I guess. And then it looks like another kind of little push right here. So this period right here may look a little mixed, but overall it looks like the trend from late March all the way into April is bullish. It does make it a little bit more tough to expect such a big move like this. All the way into April, after we've already moved so much, hopefully we'll get some little dips on the way to set up for legs higher. So you don't wanna just go in straight up all the time. This sets up for a bigger move down. So I just wanna see that higher, low, higher, high structure still holding as we've been doing. And if you go down to the 10-year data set, which is more recent years, you can see winning trades at 80%. Summerized profit at 10%. And this little leg higher actually looks just a little bit different. A little bit more bullish than the 20 year, but overall they're pretty similar. It's still bullish. Like I said, 20 years was at 65% winning trades and then 10 years less data, but at 80%. So if you went long the last 10 years for this period from the 25th to March 29, you would have won eight and lost two. So nice little win right there. And it's pretty similar all the way up into April as well. There might be a little drag period right here at the midpoint of the month, but overall very bullish from now until April. All right, not through the setups for this week. We do have three. It's gonna be all calls I'm looking at this week. I didn't really see any put setups I liked just yet. Our first one here, you can see we have CCJ. Has a nice little bullish falling wedge here. We have a test one, a test two, basically a test three. I mean, I touched it. Don't really see a big rejection off the test three line, but that's okay. Breaking out of that, we have a test one, test two, test three in the lower as well. And it's pretty straightforward. We do have a big line of resistance here, 44, 47. Also have a drop based drop supply right here overall. This is a pretty big sell and balance candle. If we can get over the 44s here, the 44, 47, this could fill up pretty quickly just because this sell and balance was so quick to the downside. And you would head it up to supply right here. We'd probably find resistance. But for right now, you just wanna watch 44, 47. It's pretty straightforward. That's a big rejection level. It will need to get over that. It might see a little bit of short-term resistance here, but overall we'll need to break over that. Like I said, to get up to supply. So make sure to watch that big level right here. That's a pretty big rejection level. It's a clear sell and balance. So you definitely wanna mark this. And then above that, it's literally all free space. So all of this could just fill up just as quick as you would see a gap fill up as well. CCJ, looking at calls, maybe the longer dated, April minimum, maybe even May. Give it some time to work and be a little patient. All right, next we're going into TSM. I would say a lot of the semis look very similar right now, especially if you look at SMH. That's the semiconductor ETF that I track personally. A lot of the setups look the same. NVIDIA, TSM, AMD, they all kind of have this similar structure. They're kind of in the middle of a little dip, I guess. It's nothing major, but most of them still are holding over their nine and 21 EMA combos. Same thing with TSM right here. Still holding its nine, 21 EMA combo. Actually kind of consolidating off it last two sessions. Also had a chance to break down this trend line. Ended up reclaiming that. So I'm definitely watching that as well. I'm hoping we can see just a continuation. Try to get back to the 52 week high level. Just gonna be at the 158. Obviously I don't think this will just happen in a week or anything. Just gotta be more realistic. Also bouncing off this rally-based rally demand zone here. Got a rally-based rally, held that up pretty well. So hopefully we can see some continuation off of that. And overall, I would feel relatively bullish on TSM going forward as long as it's holding its nine, 21 EMA combo as it's been doing. You can see the trend clearly on the nine and 21 EMA combo. Bounce here, bounce here, held up right here as well. Now trying to see some continuation. Also KDJ is positive. So Oscillator for Momentum is turning up, that's good. Not exactly sure how the market's going to price in that little China news that had over the weekend about Intel and AMD. I believe the Chinese government is not allowing AMD and Intel to have their chips into government computers, but we'll see how that goes. Not sure if TSM could be a sympathy for that. Maybe it could see some upside from that. Not exactly sure. Right now I feel like all the semis kind of go together. So if one thing's bad for one, it's bad for all. But who knows? As long as TSM is holding this nine, 21 EMA combo, holding up this little trend line we went over, I would say it's still in pretty good shape. We could see a retrace back up to the 52 week high area. Obviously, I'm not expecting that to hit this week or anything. Like I said, give it time. Just keep your expectations low in the market and if it hits your price target, it'll feel that much better. So TSM looking at calls. I might just look at mostly day trades and stuff, but this could be a good swing as well, at least up into earnings. If you go with May expiration minimum, give it time and your risk off should probably be under, you know, 133s. If it breaks this demand zone, breaks your nine and 21 EMA combo, you're gonna look at something else. Honestly too, you could probably even keep your risk tighter just because the semis have already ran so much. So if you're more skeptical, like I am, you could keep it way tighter, keep your risk on your options, contract premium instead of levels. All right, and last but not least, for the individual tickers, we're going over S bucks. So this is Starbucks. I'm really just looking at this drop based rally demand zone. You could see it's actually kind of trying to bounce off at a couple of times. You can see this is the third time basically coming down into it. We also have a pretty gnarly downtrend line here. So you got to test one, test two, test three. So clear downtrend, it can't get over that. If you even want it to be a little bit more smart, you could just wait for it to break out before doing anything. But I am kind of looking at this demand zone as a potential holdup area. If you go down to the one hour as well, you can see the support a little bit more clearly. So you have a pretty strong structure here at the nineties, get a bounce area, bounce area. Now maybe coming back down for another. Maybe we could see it bounce back up, head back up to the trend line at least, wait for it to break out before projecting further. So this might be a little bit more of a contrarian trade. It's definitely in a downtrend. It hasn't really been having great upside or anything like that. And it could be somewhat of a value area. It's definitely cheaper than most things. In terms of technical analysis, a lot of things are breaking out at all time highs. S bucks has not even gotten close to that. So maybe we can hold up this drop based rally demand area and risk off should just be under 89.21 or the demand zone low. If it starts breaking under your demand zone low, you could look at something else. And then short-term, like I said, just looking for a pop up into the downtrend line at least. Once we break out of that downtrend, you can project higher. So S bucks, I'm looking at calls. Like I said, more contrarian might be a little bit more risky. Just watch this demand zone. Keep patience. It could hang out down here for a little bit with this downtrend line in the way. Also have a couple moving averages in the way. Get your 9.21.50 all trending below that.  You can see nice and close here. Definitely has some issues at the moving averages. So just watch those be careful. Overall, probably will need to get back over those to see a real uptrend. And if it can get over this downtrend line as well, probably start reclaiming its moving averages as well. So just be a little bit more careful with this one, but definitely watch the drop based rally demand zone area could be a good support as well as that one hour I showed you. There's pretty good structure at the 90s at least. Maybe you could see a bounce here. All right, now onto some index analysis. Last week on spy, we were looking at this little uptrend line breaking. So you can see this was our Friday's close last Friday. But one thing we did look at as well, we never broke that 9.21 e-mail combo. I did mention you'd probably wanna wait for it to get under that 9.21 e-mail combo for, you know, assuming it's gonna break down here and rightfully so because we just ended up bouncing off of that and reclaiming back over. So you're 9.21 combo. You just wanna keep that on watch as usual. That's basically been our analysis for the past couple of weeks. You really don't wanna get too bearish until it starts breaking under this and keep looking for dip buys as it dips into it. And it just keeps proving that over and over again. Even on the FOMC, even though I'm not going long for swings up here and the index is the least, I went long TLT, ended up day trading QQQ on FOMC day. It went long over VWOP. It was just a, it was a great trade nice and quick too because we had a big pop for the FOMC. So I'm still willing to go along the market obviously on a day trade basis, just not going long swings up here on the SPY or QQQ. Like I said, I still like TLT. It's a nice value play. There's still room for yields to go down and you'll see bond prices go up. But for levels this week on SPY, we do have a new back test area at 518.22. So if price can get back into the 518s, you look for dip buys there. Nothing really changed otherwise. You still have this big gap below. We're starting to get a little bit further away from that one. If you wanted to draw this trend back up, you could do that too. But really, I feel like you could just use that nine and 21 EMA combo. It's been respecting that pretty good. You can see if you really haven't broke it at all. Had a brief period under it right here in January, but that's about it. All other balances have worked out. So really to go along on the SPY here or day trade it at least for upside, you'd want to wait for it to get into 518.22. That's at least the area I would be looking for. I mean, it doesn't have to get down there, but like I said, your best value area short term are going to be off a back test area at resistance or previous resistance supports or directly at the one day moving averages. Just keep it simple. So that's really it. Otherwise, we're still at 52 week highs here. Very elevated. And really you'd probably want to wait for it to dip back down a little bit and you could get a nice bounce area either at 518s or at the moving averages. All right, not too QQQ. So last week is pretty similar to SPY. It also closed right here. So this is last Friday's closed. Closed under that trend line, but it did reclaim. This one was a little bit harder because it did close under the 9 and 21 e-mail combo as well. So look, we have the break under the 9 and 21 and the close also had a break under the trend line too. So you did have a pretty good signal to go down here, but the one thing we were looking at last week, and I did mention this, you'd want to wait for that 433.70 structure break before getting too bearish. And that's exactly what we held up. We also gapped up just a little bit on Monday and overall did back into it again on Tuesday and it ripped off of that again. So that 433.71 has been very strong. It's also that gap structure low. So here's the gap. And the 433s is that structure low. So even though we had that up trend line breaking, also it closed under your 9 and 21 e-mail combo. The 433s overall did hold and reclaimed back over your moving averages. Everything is back to being gravy again. So we do have a clear line of resistance at 448. We rejected off of it on Thursday, just a little bit. Wasn't a big pullback or anything, but it definitely reacted to that one day resistance. So that's really it. That's pretty much our trading range for the QQQ. It doesn't look like spy. It's not broken out yet. So you probably will want to mark that 448. So if you can get over that, you could scalp the breakout, catch a nice day trade similar to spy. So here's spy, that 518s was your big line of resistance.  So likewise with QQQ, you will want to see that 448 breakout. Just go ahead and mark that. It's pretty straightforward. If I can break over that, it'll make a nice scalp to the upside potentially. And then overall, similar to what we just went over on spy, you want to see a breakout, try to make a base off previous resistance and they can make another leg higher. So I just want to keep seeing you make that higher low, higher high structure. That's a sign of a good uptrend. We don't want to go in up too fast. Also don't want to go in up too slow either because that makes volatility very low and it's harder to day trade. But either way, everything is back in order here. I would just say on QQQ, the 448s could be an issue. Just a little short-term one. So I mean, if it does pull into that, if you see a good enough rejection bar in the 15 minute or five minute, you could try put scalp at 448s. Maybe even if we gapped under Friday's low here at the 444s, go ahead and mark your previous day low and high. You can make day trade levels off that as well. So last week is kind of proof you want to pair levels with the moving averages because if you just went short on the 921 break, you would have gotten screwed off this 433. And also a spy had never broke under its 921 and EMA combo yet. So maybe you're seeing both at the same time. That's a pretty good signal. But if one's not breaking, that could mean the market's still pretty strong. And last week we had spy holding up its 921 EMA combo despite breaking its trend. Well, we had QQQ breaking its trend and the 921 EMA combo. So hope that makes sense. Right now on QQQ, just 448 is your nearby resistance. KDJ is positive, which means momentum is still pretty good. You're over your 921 EMA combo. Things are still good on that end. I really wouldn't scalp puts unless you get to 448 and you have a nice rejection bar off of that. Or if you can get under 444s, which is Friday's low, there's a pretty big buy imbalance here from FOMC that you can fill back down to the moving averages. And that's about it. All right, and last but not least, we'll go over the VIX real quick just because we haven't covered it in a while. There really hasn't been a big reason to cover the VIX just because you've been so stuck between 15s and the 12s, really haven't gone anywhere. And volatility signals have been a little bit less reliable lately, but overall I'd say it still follows the technicals pretty good. I'm guessing there's probably algorithms and big money program to kind of follow these levels. As you can see, when it gets up to the 15s, volatility sells off. Once it gets back down to the 12s, volatility gets bought back up at least short term. And that's kind of where it's been trading all the way since, you know, the new year. So now that we're back at the lows and tested that 1237 area, which is this kind of triple bottom area, you can see we wicked pretty hard off of it. Definitely want to start being a little bit more careful in the market. When volatility gets too low, you want to take things slow. When volatility gets high, it's time to buy. And right now, volatility is very low. So it's been a little bit harder to day trade the indexes because when volatility goes low, ATR is also tightened up and there's less range to trade and you don't see as big of swings. So if the VIX can keep holding up as 1237s here, at least over 12 minimum, I would expect volatility just to get back up to the 15s again eventually. They're pretty clear pattern here of just holding up the 1237s and bouncing short term, heading back up to the 15s. And then once we get to the 15s, volatility sells off aggressively.  Also another one recently right here. And likewise for the upside as well, once it gets to the 12s, you can see it bounces pretty good short term and it just keeps repeating over and over. So just due to the fact that this pattern keeps repeating, we can keep a watch on VIX. Maybe this could be a signal that volatility is going to shoot back up short term. So definitely keep that on watch. And hopefully that's true. So we can see a little dip into the 518s on the spy. Cause if we can get to the 518s, that could be a good back test level. Like I said, good area to buy the dip, look for a bounce right off this previous resistance. So definitely keep a watch on VIX. It's at its short term value area. Every time it gets down here, we do see some type of little bounce and basically just a little short shot up to the 15s. So that's really all I got for you guys this week. Even though it's been a little bit harder to find setups, I hope you guys are still enjoying the videos I drop every week. I enjoy making them. I enjoy charting and finding the setups, even if they get a little bit more difficult as the market goes higher. I would say we still have a pretty good eye for finding value in the market. You're going to see at least one setup pay, at least the past couple of months. It's not a guarantee or anything. I mean, this week, all the setups could fail for all I know, but I would say we've had some pretty solid ones the past couple of months, regardless of the market being too high. We have found opportunities elsewhere and they've worked pretty well. So I love you guys. I'm going to get this chopped up, sent out. Thank you for watching and make sure you like, comment and subscribe to our Xtrades YouTube channel. I love you guys and I'm out. There's a reason why Xtrades is currently the fastest growing application on the market for sharing financial ideas. With over $2.5 million paid in the last two years to contributors, users are flocking to see what trades the top traders on the leaderboard are sharing in real time. If you're looking to grow your reputation as a trader on the internet or discuss your trading ideas with other reputable investors, click the link below and get connected with the trading mentor today. Completely free of charge.