• Memorial Day Sale! Claim the biggest discount of the year with $50 off VIP using code MEM50. Sign up here.

Option Delta Scanner for ThinkorSwim


Staff member
I found this interesting scanner by justinsandock called Argon Option Delta Scan for ThinkorSwim. It's supposed to help you:

  • Looks for Options which can be sold for more than their Probability ITM.
  • The value of selling the Option is found by subtracting the next OTM option from the current.
  • The Probability ITM is approximated with the Option Delta.
  • Because options can be for $1, $0.50 or $2.50 etc the value is divided by the difference in strikes to assess risk.
  • Finally there is a Profit Factor so it can look for options giving a profit larger than a set ratio.

  • As reported by our members and @markos mentioned that this study appears to be incomplete from 3 years ago. As a result, this scanner will not work on ThinkorSwim. I'm marking it Archived here unless someone can contribute and make something out of it. I apologize for the confusion.

In the Money Options Scanner

# Argon Option Delta Scan
#Justin Sandock 9/19/2016

#Use the TOS Option Filters to set Volume and Days to Exp

def PFac = 1; # Defined minimum mark up value
def price = close;
def ITMMAX = 33;
def ITMMin = 28;

plot scan = ((Close(symbol, price) - Close(GetNextOTMOption, price))
/ (GetStrike() - GetStrike(GetNextOTMOption))) > (Delta() * PFac0);

# AND ITMMAX > Delta() < ITMMin;

Here's another one

# Argon Option Delta Scan
#Justin Sandock 9/19/2016

input PFac = 1; # Defined minimum mark up value
input StrikeDepth = 5; How deep OTM of options to check
input price = close;

# Get MarkC and Delta at current Strike
# Get MarkL at lower Strike
# Get MarkDif of MarkC-MakrL.
# Get StrikeDif between strikes of MarkC and MarkL
# Is MarkDif < Delta * StrikeDif * PFac?

# Or get all OTM options for underlying and add to list like Option[0] to Option[n]
# Then subtract Option[n+1] from Option [n] and compare difference with Delta * PFac

def OpName[0] = GetATMOption();

For n = 0 to StrikeDepth do
  OpPrice[n] = GetValue(price, OpName[n])
  OpName[n+1] = GetNextOTMOption(OpName[n])
  StrikeDif = Get

For i = 0 to StrikeDepth do
  If OpPrice[i] - OpPrice[i+1] > Delta(OpName[i]) * PFac then PRINT???

Plot Scan

# def OpCode = GetATMOption();
# def MarkC = GetValue(price);

Fold n = 0 to StrikeDepth with MarkL do MarkN(n) = GetNextOTMOption()

plot scan = PFac < (fold n = 0 to length with s do s + getValue(price, n, length - 1)) / length;

plot scan = iv_percentile > 50.0;
Last edited:


Active member
2019 Donor
Thanks Ben...I copied these codes and paste it as a studies or scan but it does not seem to work.. Please advise. thank you
Can you shed some lights on using option delta in thinkscripts? I was not able to get the delta values that match TOS option chain.

I copied the following script from TOS and applied to a deep ITM option (.spy200221c297). The TOS option chain shows delta of 0.73 today while the plot shows 0.58, which is a big difference.

declare lower;
def epsilon = 0.01 * close(GetUnderlyingSymbol());
plot approxDelta = (OptionPrice(underlyingPrice = close(GetUnderlyingSymbol()) + epsilon) - OptionPrice()) / epsilon;
plot Delta = Delta();

Does the Delta() in thinkscript support volatility smile approximation as it's my intended setting? or does it use other volatility calculation mode?

Thanks for your time!


New member
Hello Experts - I am wondering if there is some inbuild scan we can do or build one for the following.

-> Scan/Search all options since the START of their INCEPTION -- Say when the open them in JAN-FEB for Next 12 months and LEAPS
-> SKIP weekly expiration Contracts - Do not include them in the criteria
-> SHOW the output of options where options VALUE are Dropping one way since OPEN -- NOT IT WENT UP and THEN DOWN -- ONE way down for say CALLS

Please advise how to.
I'm making a multi-leg scanner, and I have everything I need and my results are fine tuned to go with the parameters of @rad14733 's Renko chart which is absolutely amazing. It goes in hand with my trading style. The last thing I'm trying to do Is scan for only strikes that are just OTM for both calls and puts. I'm looking at $5 now OTM now, but that can be changed.a $50 stocks isn't likely to move $5 in a few weeks unlike something more expensive that will move $25 a day. The numbers can be changed of course, I'm just using $5 as an example.

So far, I have found

and then I just came across this which has some rather large sequenced scripts in it. I was wondering if there is an easy answer to my question or will it be complex and ill have to pick apart and put together a sequence in the link at the beginning of this paragraph?


New member
I want to be able to find stocks that have good risk/reward on options. So if a stock increases by 30% it should double or triple the investment and if the stock decreases by 30%, it shouldn't decrease the option price significantly.

Theoretically, I want to be able to see which expiration and strike price I should look into

Is this possible?


Similar threads