Automatically sell a synthetic covered call when the bot opens a long equity position, and use a monitor automation to exit the position at a defined profit target.
Covered Call Synthetic Bot template shared in the Community.
The text is the output of AI-based and/or outsourced transcribing from the audio and/or video recording. Although the transcription is largely accurate, in some cases, it is incomplete or inaccurate due to inaudible passages or transcription errors and should not be treated as an authoritative record. This transcript is provided for educational purposes only. Nothing that you read here constitutes investment advice or should be construed as a recommendation to make any specific investment decision. Any views expressed are solely those of the speaker and should not be relied upon to make decisions.
Okay, so again, welcome back to the bot workshop today for the covered call synthetic bot. As I mentioned to people who are in here right now, I goofed a little bit, and I said this was a beginner bot template. It's more of an intermediate bot template, so we're gonna move a little bit faster today. But hopefully, you guys have a chance to go through this.
Okay, so we're gonna be building out a covered call synthetic bot template this week. This is gonna be really cool one to do. It could be a really cool, you know, arrow in your vast or quiver. What's the term for that? Like arrow in your hat or whatever it is. Okay, so it could be a really good tool in your toolbox there. There's a better analogy.
But we have to do four different automations to accomplish this. So we've gotta do the stock entry, the covered call entry, the stock exit, and the covered call exit as well. Okay? Quiver, yeah, sorry, quiver. I was messed up with the words.
Okay, so we have to do four automations which is what we're gonna do. I built out this bot and shared the template in the community before. It's doing okay; it's just running out one ticker right now. So it's doing okay and doing well. But we'll see, you know, I think it's a good one to have. It introduces some pretty simple automations that you can do. And of course, I'm interested to see everyone's variations, okay?
So to go ahead and create a new bot, we just go up to the top left-hand corner of our home bot screen and click the button to create a bot. We're gonna call this one Kirk's CCS or Covered Call Synthetic bot. You guys good with that? And we're gonna give it some capital. Probably wanna give it a little bit more capital, depending on what ticker we're trading. I don't know. We'll just give it; it's all paper money right now, so we'll just give it 50,000.
Here's where you definitely gonna do; two positions at max, two positions at a time. The way that I would do is covered calls is I would have one bot be one ticker. So, in this case, I would do one bot, one ticker. That way, we can use bot input which I'll show you how to do it here in a second as well.
So I'm gonna do Kirk's covered call synthetic bot, 50,000, 2 positions because we're gonna do the stock in the covered call, and max two positions at a time. So create that shell and go ahead and view the bot.
So now that we have the bot here, what we're gonna do is we're gonna add our first automation again. Again, we're gonna build out all of this from scratch. We'll send the template into the community. Again, you guys can have this. It's a little bit different of variation from what I had built out previously, a little bit simpler. I'll leave it up to you all to super customize it.
So the first automation that we're gonna add, and this is gonna be a brand new automation, is we're gonna add the automation for the covered call stock entry portion. So you can call this covered call stock entry scanner, covered call, CCS entry scanner, whatever you wanna call it, that's we're gonna do. This is the first portion of it, and it's essentially to open up the stock position.
So first thing that we're gonna do, though, in this, is we're gonna make sure that the bot doesn't already have a stock position. Again, this is where I'm gonna go a little bit faster on this week's workshop because there's a lot of building that we have to do.
So the first thing I'm gonna do here is I'm actually gonna create a decision to check and see if the bot already has an equity position. So, in this case, I'm gonna go down to the recipe for bot has at least or equal exactly one position of any type. So that's the first one I wanna do here. Bot has exactly one, and I just wanna change this to less than one position with long equity type.
Now, this is going to ensure, so when I add this first decision block here, it's gonna ensure that if one of the two positions that the bot gets into. It's not gonna double up on long equity positions, right? So if the bot has less than one long equity position, i.e., 0, go ahead and continue down the yes path. But if it already has one equity position, basically end and go down the no path. We're gonna leave the no path blank cause we don't want anything to happen on that no path.
Next thing that you're gonna do here is you're gonna add any other technicals or any other filters that you want. This is where I would encourage you to get super creative add your variations to the community. Let's get more variations inside of that post this week. Last week we had a couple, great. Let's get a lot in there. There's a lot of variations you can do in here, but this is the section where you wanna add all of those variations.
So, in this case, you could do whatever you want. You could do a moving average; you could do trend. You could do some technicals. You could do a combination of different things that you wanna trade. You could introduce some earnings things like you don't wanna sell a covered call if earnings are 90 days at. You know, like something like that. So whatever you wanna do in here, do some sort of technicals. I'll throw one in here so that we can start the process. And again, we'll add a custom input for the ticker symbol. So we're calling this one ticker symbol. You can default value; we'll set to SPY. And then we'll do like a simple trade, right? So we don't wanna do covered call if the stocks not in an uptrend or whatever the case is, okay? This is the placeholder for all of the technicals and all of the other decisions that you wanna do.
So once we have that in place, then we get to the point where we actually open the position. So this is where we're gonna go ahead and add an action to open a position. We're gonna open a long equity position. Since we've already created that ticker input, we're gonna go ahead and reuse that same ticker input. Again just recycling all the inputs in here, and then we're gonna go to the amount here.
Now, in this case, you could do the share amount. But I'm gonna create a custom input for this field. That way, when you use this covered call template on, say, low price ETF or a high price stock, now you can modify the amount. And you can do 100 shares of one ticker and 200 shares of another ticker because it's a lower price security. Does that make sense?
So we're gonna go ahead in here, and we're gonna add a custom input for the amount field, and we're gonna call it long equity amount. Just so we know exactly what it is when we go to build this out for other bots. So basically, the whole open position action is a setup custom input: the ticker which will be reused plus the amount which we can set as long equity amount later.
Okay, are we all good to go here with this one first? Actually rightful through that one which was really good. All right, so once that's done, then just go ahead and exit out of the window. This is where you're gonna set it. So run your ask in here. Where do I set it? Boom, we're gonna set it here. We're gonna do 100 shares, so now we have that, but now this field is variable so that, again, if we switch over and – trade something lower price like EEM. EEM is a lower price security. Maybe we'd do 200 shares.
Now it's all in here. We don't have to mess with the actual automation. The automation is flexible for whatever we do, and we hit save. Okay, so we have the first one added here. This is our covered call entry scanner.
Next, we have to do the covered call synthetic. The actual physical covered call synthetic. Now I call this synthetic because we can't do it naked. So we're gonna do it super super super super wide, right? We're gonna do like a 30 delta and a five delta. Something really, really wide that's incredibly naked, and we just pay a small premium to do a risk define since we have to do risk define right now.
So we're gonna add a new automation. We're gonna leave this one here; we're gonna build out a brand new one. You can call this one something like synthetic entry scanner. Whatever you want, do it. I use like code words like CC for covered call, or, you know, PC for put credit spread or whatever the case is. You do whatever you want.
So first thing that we're gonna do here now. Same with what we're gonna do here. This is gonna be a little tricky one, but think about it logically. If we wanna get into a covered call or covered call synthetic. Or we want to sell a really wide call spread to replicate a covered call; what needs to be true in order for us to continue down this whole thing? Like the first thing that we wanna check.
The only way we're gonna do this covered call is we're gonna make sure that we have a long stock position and that we don't have an existing short call spread position that access our synthetic. So first decision that we make is a series of bot checks. So we're gonna go down, and we're gonna do the same one that we did before the same recipe. We're gonna say bot has exactly one position that is long equity. Boom, this is the first one, okay? So bot has exactly one position that's long equity. Which means that if the bot doesn't have long equity, boom, this thing is done. Don't add a covered call until you have the equity position in place.
So that's the first decision, but we can group the decisions together, and now we can check also to make sure that the bot has exactly 0 positions that are short call spreads. So first thing you do is check to see if the bot has one position, one position type open with long equity. The next thing you do is you put in an and statement in there. Again you can toggle this if you want to, but we want to do the and statement. And check and see if the bot has 0 positions with short call type basically, which means that it's got long stock, but it's available to add the covered call.
Ron said, why wouldn't you enter the covered call as soon as the bot in the stock in the other scanner? Well, you could if you want to, but I like to split them up because then, in this case, I can use the covered call synthetic on other positions if I want to. Or I can just use my regular stock trend filter, like a trend momentum one, and then overlay the covered call synthetic as another scanner. So I like to split them out, but you could easily put them together. And you can do that and put that as a variation for sure.
Gotta check for those two things. Only if those are true do we continue down the yes path? Which means that if this is not true, and let's say we have a full covered call built out, then it's gonna say no, it's not gonna add another one which is exactly what we want, right? Exactly what we want.
Next thing that we want to check. Again, go ahead and use this as a placeholder for all of the different things that you would wanna check for your particular short call spread. Now I would put a couple of these in here, just to give you like some ideas some inspiration on how you can do this. But you could do a couple different things. You could do some logic where you check for, say, implied volatility rank, right?
Maybe you don't wanna do anything that has low implied volatility rank. You could check for bid/ask spread. You could check for minimum open interest, right? So let's add a couple of these. Again, you all be the creative ones and come up with some different ones and add them to the recipes or to the post that we'll do here at the end in the community, okay?
First thing I'm gonna do is I'm gonna add that symbol field again just so we have one ticker symbol input that we're using. You could have a filter like implied volatility is gotta be above 50, right? And this could be an easy one that you add down here as well. You could also start adding some opportunity filter. So what I mean by opportunity filters, and I would definitely do this with the covered call, is start pulling in information on a potential covered call and make sure it meets some minimum criteria for you.
So the tool that we'll use for this example are a minimum bid price and a minimum open interest on the short leg. Again, you can use whatever you want here, it's up to you, but we'll use these for this particular example. So I'll on opportunity is real quick. Bob said refresh us some opportunity. An opportunity pulls in the information from the market on a potential trading opportunity. That's why we call it opportunity cause it's not a trade, not a position, it's not an order, it's an opportunity.
So you're saying, look, bot, pull in the information for this particular type of trade so that I can double-check all the values. And then you can add that same trade type and that same trade information further down and say, okay, yes, make that trade. Watch how I do it here. I'll do it here.
So here's the opportunity we want to pull in. We want to pull in a short call spread opportunity. What symbol do we want? Well, we're gonna link it back to that same ticker symbol field that we created. You can set your expiration here, so you can choose the days. You can choose to do it on monthly contracts or in between or certain amount, or whatever the case is. Here we'll just leave it at 30. You can set your short call delta. Again, you can use all the different variations here that you wanna use. And then you can set your long call leg.
You can do this a couple different ways. I would do these using deltas, but can easily do this using dollar amounts, so you could say like I want my long call delta $32 above, you know, like really far out. I think there's a point of which it's just so far out that may not even fill, or it gets meaningless. So what I would do, at least for now or what I'll do in this template, is I'll set the long delta for just a five—a five delta which should be really far out, pretty far out from most of them. Again, if you wanna make changes to yours, you can go ahead and make changes to yours.
So we'll sell the 30 delta, we'll buy the one delta five that's trying to go far out, make it as synthetic as possible. Again, we have it semi-covered because of this long equity position. So we shouldn't necessarily need to worry about the position because it's covered. But again, you can go as far on as you want.
So that's my opportunity. So now I'm telling the bot pull in the information on that exact trade right now, in that ticker symbol, and then I wanna check some values. Now here is where I would check at least something like the bid price being greater than a certain minimum threshold. So if you're trading a covered call, maybe you only wanna trade a covered call if the bid price of that spread, like the net credit that you can get, you know, somewhere is around, I don't know, 50 cents, right? So something that seems like it's valuable enough to get into the position, right?
So if I said, okay, the bid price is at least 50 cents. I can type it in here, or again you can create a custom input, and I will call this maybe something like covered call bid price hurdle, or something, right? Something that tells me, okay, I wanna get over that hurdle. Meaning that I don't just wanna sell a covered call or sell a covered call, right? If the position that I'm selling is 10 cents, I don't really wanna do that. I'll wait for a better position or better market opportunity, like tell the bot exactly what you wanna look for.
So we'll put in the bid price hurdle here again. It'll be a good way to just use some sort of targets or threshold. The other thing that we're gonna do is we're gonna go in, and we're gonna check the single leg open interest. You can use this as a proxy for any of the other different ones here too. But we're gonna go ahead and check the same opportunity here, so we'll go here to this call spread. We'll use the same ticker symbol. We'll swap this out to five delta. I told you I was gonna move a little bit faster today. Is this start working good?
And then we can go ahead and save that opportunity. Now we're going to go to a short call leg. We're gonna check the open interest and make sure that it's greater than some value. Again here, you can type in whatever you want, say 100, or what I would is I would once again create a custom input for this field. So I would say covered call short leg open interest hurdle, right? That way, I know, and let's set it something a little bit higher, maybe like 200 contracts.
So again, I'm tracking the bid price. I'm checking some sort of open interest. If there's 200 contracts of open interest, probably decently liquid enough to get into. For other tickers, it might be different. You know, check your ticker whatever you want to trade. And then, when I'm good, I simply hit save. Now it added both of these together. These are kind of like my opportunity steps, and I separate this personally from what I do for technicals.
You could easily group all of these together. You can say IV rank is above 50, and all of these different things are true. What I like to do is I like to separate them because that's what I think in my mind is I separate them from market criteria that gets me to potentially entering a trade then checking the actual trade data and trade criteria, and I put that in a bucket. That way, if I wanna change one of these buckets to go to another level later, I can just change that particular bucket like the market criteria.
Okay, next thing that we need to do is open the position, right? We need to actually open the position. So we go to open position action. The bots are smart enough to say, hey; you were looking at this potential opportunity. Do you want to reuse this opportunity? And you say, well, yes, bot. I do wanna use that opportunity. That's exactly the opportunity that I wanted.
And it pulls in all the information, and then it gives you the amount, right? The number of contracts that you wanna do. Now, like we did with the stock position, we're gonna turn this into a custom input because we wanna be able to match this up based on whatever ticker we're trading. We wanna be able to match this up with that ticker. So we're gonna do CC contract number, okay?
And then I like to do number of contracts. So you can set the contract default to one if you want to, and then you can manually change it. So I've set all the defaults like 100 shares one contract. And then, as you'll see, if we add additional bots, we can go in here, and we can split this up and change this custom input for this, okay?
So there we go, we have our ticker symbol that's plowing in, we have covered call contract number, everything else in here we're just gonna use the defaults, and then we'll go ahead and save. Now our covered call synthetic entry scanner is done. We're checking to make sure we don't have an existing position. Check in to make sure we've got no short call spread position open, doing some technicals, some filtering for opportunities, and then we're opening the position.
Why wouldn't you want to do the opportunity scan at the end equity scanner, too, to be sure the covered call opportunity is there before you enter the position? You could, for sure. You could add that in there. That's one of the thing is I think is super flexible about using these, is you could say, check for this opportunity. If that opportunity is available, then enter the stock position. You absolutely could. Great variation.
So let's close out of this window. Now we have our custom inputs here. We have a bid price hurdle, our open interest hurdle for the short leg, and then we have the number of contracts. We're gonna keep this right here because we're gonna do one contract for 100 shares. So when I save now, now I have exactly what I need for scanners. Notice for the stock scanner. I have 100 shares for the synthetic scanner. I have one contract. So I'm doing 100 to one, which is exactly what I want to do.
So let's build out the monitor automations. First thing that we're gonna do is we're gonna build out the automation to monitor stock position. Again, you can split these up. You can combine these together into different things if you want to. I like the idea of splitting them up because I may want to exit the stock position and leave the covered call position on to milk as much premium as possible, right? Or I might want to exit the covered call position at some point and re-establish a new covered call position. Does that make sense?
So the goal for me is to split these up into their own respective monitor automations—one for the stock, one for the covered call position. So first one I'm gonna do here is I'm gonna say CC stock monitor exit. Okay, whatever you wanna call it, but this is purely for the stock position that I'm monitoring in a covered call strategy.
First thing that I'm gonna do here for the repeater is I'm going to set the repeater to loop through any long equity positions. This will ensure that only positions that are long equity get sent through this monitor automation. If the position is a long call, not gonna get sent through it. If it's a short call spread, it's not gonna get sent through it. I'm telling the bot specifically loop through; when you're managing and monitoring this position, loop through only long equity positions.
The next thing that we're gonna do is I'm gonna add, again, any of the different technicals that you wanna add. So use this as your variable field if you want to. Do all the analysis that we're telling you that you wanna get out of the stock position. For us, we'll just go ahead and link that symbol to the symbol price that we're looking at, and we'll say that look, if the symbol is below its 200 day moving average, we don't wanna be entertaining, you know, covered call positions.
So this is just a placeholder. You could use whatever you want; you could use technicals, a combination of technicals. I've seen people use combinations of exponential moving averages like if it's below, you know, 30 day EMA, then exit the position, right? But it'll do that for each equity position that the bot has available, which, in this case, because we're building our bot out to have one equity position. It's just gonna loop through that one equity position. But it can be reused in other ones if you do it with other ones, okay?
Next thing that we're gonna do, once we do all of our technical analysis or whatever analysis we wanna do, is simply close the position. So we get to the point where it reaches some threshold, and I'm assuming that some threshold is gonna be, you know, there's gonna be some to use, and I want out of the stock position, right?
So I doubt there's probably many securities where you're so 100% involved that there isn't some environment that you would get out of it. So if that environment is really wide, set it really wide, right? But in this case, we're just gonna say below the 200 day moving average, a very simple trend indicator, and then close the position. That's it. For the stock monitor, you really don't have to do much else other than doing the in-between step right here and just kinda making those adjustable.
Next one that we want to add is we have to add the synthetic exit, right? We gotta add the synthetic exit. So let's build out another one. We'll call it synthetic monitor exit. Whatever you wanna call it. I usually end up using way too many words. You can use whatever you want, okay? Next thing that we're gonna do, or first thing that we're gonna do, is we're gonna have it repeat through. You guessed it; just our short call spread positions. There's no need to repeat through everything and certainly no need to repeat through a long stock; we've got that covered.
Now we're gonna repeat through the short call spread position. After we do that, then we're gonna introduce our decisions. Now here is where you probably could get very clever and tricky with how you do this. But what I would do in this case are maybe some ideas on what you could do in this case is I would do a combination of things.
First one I would look at doing is some sort of profit target. So if the position premium, again, we're just talking about the synthetic call spread. If we're looking at that, if the position premium decreases by some profit target, say it's 50%, I'd put this in here as an actual, you can just call like synthetic profit target. Probably too many words; you can probably short it down if you want to. But what if the point in which you say, oh yeah, I'm gonna close that synthetic position 100%. So maybe it's 50%, maybe 75%, whatever it is. You just put that in there as the new default.
So that's the first thing I do. The position premium decreased by our profit target for that portion of it. This is really cool because if you got a down move in the stock, you quickly take profits on your covered call. Then you could introduce other things that say like, okay, and now reintroduce. Now there's a slot open, so it's gonna look for the next available contract, right? If it's taking 20 days and the first contract is now ten days from expiration. Close the ten day, and it opens up the slot to open the new contract, which may be 30 days out.
The other thing you can do is you can introduce other things like, you can introduce when you get closer to earnings or to expiration. So what I would do is I would add another one in here, another possible exit point as the position expires in certain number of days. Remember, you're doing the covered call synthetic here, so the goal is not to continue the position all the way through expiration. I would hold the position probably pretty close to expiration because you're probably covered anyway, and at that point, then you get closer to expiration. You might wanna go ahead and close the position so that you can maintain the stock position and resell another covered call spread.
So in this case, you could say position expires in less than, I don't know, three, four, five days, something like that. Whatever it is for you, and then you say yes. So this is when I would use this recipe, and I switched it here to or because either of these have to be true for me to exit. It's not that I need a profit, and I'm close to expiration. That would be this. But that probably is not likely gonna happen. I just want one of these to be true.
You do the position went down by a profit target, or I'm close to expiration, and I want to get out of the position. Again, that's how I would use it. You can introduce a lot of different variations of this, but in my case, I just want to, you know, keep it simple for the webinar and demo today. I wanna do that using those different things; you could use a trailing stop on this as well as using smart stops. You can use multiple exit points. You could say if it's ten days from expiration and a 25% profit, close. Then another branch or no to this could be if you're 20 days from expiration and a 50% profit, close.
So get creative with this, do all of that mumbo jumbo right in here, inside of your automation. Once you're good to go and you have everything you have laid out, then you go to close the position. You just gotta finally add that last step to actually physically close the position. So whatever the framework is to get you to the point of closing the position, go ahead and close out of the position.
One other thing I want you to do with this one, this would be really fun. We haven't done this on anyone's yet; on the bot workshop, is we're gonna turn somebody's field into bot level input. This is awesome because now, what you can do is you can take this one bot template and you can use it for each individual ticker that you want to trade. That's how I would do it, so you don't have to mix up the overlap of the position count stuff like that. Gets a little tricky with covered call positions.
So, in this case, what we're gonna do is we're gonna open up our scanners. Oops, sorry, we're gonna open up the scanner settings here. And notice that we have a ticker symbol field here, and then we also had one on the stock scanner, right? So now we're gonna create a bot-level input which is gonna make these all merge together really, really beautifully.
So we're gonna call this one master ticker. We can set the default as SPY, but now what we do is we take that, basically that custom input, and we elevate it one step to the bot level. I'll show you how this works when they're all there, but now we're gonna choose this other bot level which means that we can reuse that input across other ticker symbols.
Same thing that we're gonna do here is we're gonna add another bot input for the covered call contract number. We're gonna set that at the bot level as well. That way, we don't have to jump into the actual automation here and do this. So that's that.
Then we go into the other one. We'll do the same thing. We'll create and link that bot level input now to the actual ticker symbol. Well, good for us; we already created that master ticker, so we can just use the master ticker. Now two different automations are going to be using the same ticker input. How cool is that?
So now we're taking inputs to a completely new level by using one input that flows through, not only to different automations but also flows internally to the decisions that they make. And then finally, we'll use another input for long equity amount. Again that just makes everything really clean, and you do all of your adjustments essentially on a bot level inputs, okay? Now we simply hit save, and we're good to go here.
So now, when you go to the actual settings, this is where you select everything. You select your master ticker, you select your contract, and then you set your number of shares. In this case, we'll just set 100 shares for this example here, and we're good to go. So when I save this, right? And now I have this bot. I can call this one SPY bot. If I go and I close this bot, and I create a new version of this, a lot is like awesome.
If I go and clone this one, I can immediately come in here and call this one GLD bot. And guess what I have to do? All I have to do here is set my variables right here. And I can even just swap this out. I can say, you know what? For GLD, I wanna do two contracts, and I wanna do 200 shares, right? Because maybe it's a little bit easier to get into GLD, or lower price, or whatever the case is, right?
Now I do that. These are bot level inputs, so these inputs flow through to both of these scanners now because now bot scanners are connected to this master ticker. And then once I'm good to go, I simply hit, you know, clone or create, and then I'm good to go. So now I have my two bots in here, okay?
First thing I'm gonna do here is I'm gonna save this as a template real quick. We'll say new covered call synthetic bot template from workshop, okay? I'll set these as 1 and 100, or whatever. Please go in and change them for whatever you're trading. Go ahead and view that template. Now I'm gonna share that template right into the community. I'll edit this later. Please share your variations. Okay, you guys promise you'll go in and do that? So create.
There it is. It's inside the community. Go ahead and refresh. Go in and add your variations to this bot template in here. By the way, an easy fix and swap for this is gonna be just removing the instant event, so I left that instant event in there, so you could see how it works. But you can easily swap it out if you want to. It doesn't have to be in there if you don't want it to be. I don't have that on my original template. That's something new that I haven't.
So thank you so much. Have a great rest of the week. We'll talk to everyone soon, and until next time happy trading.