Liquidity is a key factor for getting into and out of options positions quickly and effectively. The best way to evaluate an option’s liquidity is volume. But checking the daily volume for every option leg in all your positions is not an efficient use of your time. Don’t worry; there is a decision recipe that will handle the work for you.
Typically, the more volume an option contract has, the tighter the bid-ask spread. But, as we’ve shown in the past, wide bid-ask spreads can be very costly over a long period of time. So, the best way to determine that an option is liquid is to ensure sufficient volume.
Daily volume for a contract is usually displayed in an option chain. While the information is readily available through your broker platform, it is tedious to check each leg’s volume, especially if you have many multi-leg positions.
Now you can avoid trading illiquid options by preceding an open position action with a recipe that filters for minimum volume for any option leg in a position. Better yet, you can check the volume for all legs in a multi-leg position. Plus, you can always test the automation to see if current market conditions meet your volume requirement.
In this video, I want to show you how to automatically filter option positions for minimum volume. Now minimum volume is one of the easiest things that you can do to ensure that anything that you possibly might send over to your broker as a trade order meets your minimum requirements for volume.
This is one of the powerful things that you can do with automations that you really can’t do all the time with manual trading. You can’t constantly check all the different strikes of all the different possible positions you would get into. So we’re going to show you how to set that up here inside of this video.
Right now, we have a demo scanner automation opened. I’ve just thrown a placeholder decision in place to start branching out my decision tree. I’ve suggested that the ticker symbol's IV Rank is above 60 is my threshold for the Yes and No paths. And maybe when implied volatility rank is above 60, I want to enter an iron condor position.
Again, you make all the decisions that fit your risk profile and the way that you want to trade and we’ll assume that you’ve made all those decisions up until this point. This is just a placeholder and an example.
Now, we want to get to the "Yes" path. We are checking to see if something has implied volatility rank over 60 and we’re going to try to enter a new position. Typically, how we build this out is we would build out the actual position that you want to get into. This is kind of starting with the end result in mind. You want to open a position in a particular symbol with some criteria. So, we go down to the position open screen and we select an Iron Condor.
We can select the symbol that we want to trade, or because we’re using custom input in this case, we can reuse one of the custom inputs that we created called “Ticker Symbol." This means that we enter the ticker symbol once and it flows through the whole automation.
Now I assume that you’ve double checked all the different fields here. You’ve set your expiration and your strikes and the amount of contracts or the amount of the capital that you want risk and you’re good to go with opening your iron condor position. Once you’re done you simply hit save. That now adds the open position action to our scanner automation.
Now at this point we haven’t done anything except filter for the requirement to get into the position and potentially send the order to your broker, send an open position action to the broker. Now what we want to do before this step is we want to filter for liquidity. And how we can do that is simply by clicking on the gear icon, and proceeding this action with a decision.
The reason I set it up this way is because it allows us to reuse all the information that we previously put in for this iron condor position really quickly in the next step. Now we’re going to proceed this with a decision and that decision is going to go through one of our recipes to check for some sort of volume requirements.
Now in this case we’re going to use this recipe here. We’re going to use an opportunity recipe that’s going to specifically check the volume for the particular legs that we’re interested in before getting to the point of sending the order to the broker.
Again, this is a great check and balance for your trading because if you want to trade things that are liquid, but you also want to check the volume of particular legs, you can do that here automatically and offload that task to your bots. Here we’re going to select which opportunity we’re interested in.
Well, the bots are smart enough to recognize that you’re trying to get into a position that looks like this. This is the one that we had previously built out. So rather than have to recreate this, we’re just going to reuse the existing recipe that we have here for that iron condor position. We simply select that, reconfirm all the variables and values here, and then simply hit save. Now that opportunity is plugged in.
Now when the automation runs, it’s going to pull the data for that particular trading opportunity and you’re going to tell it what leg to focus on. In this case we’re going to focus on the short call leg. Notice you can swap and change these variables and fields right here automatically and easy inside of the automation editor.
We’re going to focus on the short call leg and instead of open interest we’re going to change this to volume. We’re going to check the volume and make sure that the volume today is greater than a certain number of contracts that have been traded. Let’s say 100 contracts. Notice that you can change any of these variable fields and say that you want the volume to be less than or exactly equal to, but in this case with the volume recipe we typically want to say something is greater than. Once we’re good to go, we simply go through all the prompts and hit save.
Now it’s going to add this decision right in front of the actual open position action. So, when the automation runs, it’s first going to check and see if we have a high implied volatility. If we don’t, then it’s going to end and it’s going to check again at the next time that the automation runs. If the answer is true and yes, the symbol does have IV Rank above 60, it continues down to the next step. The next step here is to check and see if the iron condor position that we want to enter has a short call leg volume that is greater than 100 contracts. If the answer to that question is yes, and it’s over our threshold for trading, then we would continue down the yes path and open the position.
Notice that we can test this logic right here inside of the actual automation editor. We can run this on our Demo Bot and we can check a particular symbol like SPY and run the test. Notice that our IV Rank in this case is just under 60 so it didn’t continue forward. So, let’s make a quick little change here, so we can run this and get some better results. We’ll put the threshold really really low at one for IV Rank just for testing purposes. Go back here and start the test.
Okay, we got past the IV rank threshold, now it’s going to go to the next one which is checking to see if the short call leg open interest is greater than 100. Notice that today, right now, at the time that we ran this the short call leg, volume is 126. That’s obviously greater than 100, so it continued down the "Yes" path and it would potentially try to open the position here. Again, this is all a test and you can test the logic here and make sure it make sense to you before you turn on your automations. Let’s go back into our automation and add some additional fields here.
Let’s say that we don’t just want to check one particular leg, we want to check multiple legs. We want to check the short call leg and the short put leg. Those are our inside strikes for our iron condor position, so we want to check both. Well we’re going to reuse that same recipe that we created here, we’re going to go over to our list of potential opportunities, pull in the information for the iron condor just like we previously did.
Now instead of checking the short call leg, we’re going to check the short put leg. We’re going to change this to volume and again we’re going to check and see if the volume is greater than 100. Now when I hit save, I have two decisions that are being added to this one decision action.
Notice that this is using an "And" statement, not an "Or" statement, which means that both of these have to be true in order for the bot to continue down the "Yes" path. Both the short call leg volume and the short put leg volume has to be greater than 100 in order for this to continue. This ensures that it meets any volume liquidity requirements that we have before getting into a position.
Once you’re good to go, you simply hit save. That’s now updated and reflected here and again we can test this whole thing using our very low IV rank threshold that we set. We’ll start the test again, and notice that this time the test fails.
It did get pass the first step which was IV Rank over 1, that was an easy threshold, but when we get to this decision block here we can open it up and we can see where this fails. Notice that this failed with the short put contracts. The short call contracts still had volume today of 126 contracts. However, the short put leg did not have enough volume to meet our requirements and therefore it failed.
This would not have entered that position until that short put leg had volume greater than 100. Notice that you can obviously see all the decision recipes that get run inside of your automations, inside the log and testing right here at Option Alpha.
So that’s exactly how you add a filter for option position liquidity, including volume, inside of your automations.