Scanner for low float stocks in ThinkorSwim

G

GeneHo

New member
2019 Donor
VIP
Is there a scanner which can scan for low float stocks in TOS?

 
Last edited:
BenTen

BenTen

Administrative
Staff
VIP
@GeneHo Not that I know of. There is this indicator though. See if its similar to anything you're looking for.

Rich (BB code):
# Float As Cumulative Volume Pivots
# Mobius
# Chat Room Request 10.04.2015
# V.02
# Added a condition to start cumulative count at the first peak or trough on a chart.

input FloatFor = "SPY"; #hint FloatFor: ETF's do not have a float. Total shares outstanding are adjusted to control NAV (Net Asset Value). Check them often for available shares.
input Float = 877632000; #hint Float: Share Float or for ETF's available shares
input n = 21; #hint n: length used for average volume.

AddLabel(GetSymbol() == FloatFor, "Float Value For: " + FloatFor, color.white);
def h = high;
def l = low;
def c = close;
def V = volume;
def AvgFloatP = Float / Average(V, n);
def HighestHigh = HighestAll(h);
def HighBar = if H == HighestHigh
              then BarNumber()
              else HighBar[1];
def LowestLow = LowestAll(l);
def LowBar = if L == LowestLow
             then BarNumber()
             else LowBar[1];
def FirstBar = if HighBar < LowBar
               then HighBar
               else LowBar;
def CumVolume = if barNumber() > FirstBar
                then CompoundValue(1, if CumVolume[1] < Float 
                                 then CumVolume[1] + v 
                                 else if CumVolume[1] crosses Float
                                      then 0
                                      else CumVolume[1], v)
                else 0;
plot CVpoint = if GetSymbol() == FloatFor and
                  CumVolume crosses above Float
               then c
               else double.nan;
CVpoint.SetPaintingStrategy(PaintingStrategy.Points);
CVpoint.SetLineWeight(4);
CVpoint.SetDefaultColor(Color.Yellow);
plot CVline = if GetSymbol() == FloatFor and
                 CumVolume crosses above Float
              then c
              else double.nan;
CVline.SetPaintingStrategy(PaintingStrategy.Line);
CVline.EnableApproximation();
CVLine.SetDefaultColor(Color.Yellow);

addLabel(GetSymbol() == FloatFor, "Float = " + Float + "  Float/Avg Bars = " + Round(AvgFloatP, 0) + "  Cumulative Volume = " + CumVolume, color.white);
 
Last edited:
G

GeneHo

New member
2019 Donor
VIP
Thanks @BenTen .

 
Last edited:
P

Pumper

New member
@GeneHo Not that I know of. There is this indicator though. See if its similar to anything you're looking for.

Rich (BB code):
# Float As Cumulative Volume Pivots
# Mobius
# Chat Room Request 10.04.2015
# V.02
# Added a condition to start cumulative count at the first peak or trough on a chart.

input FloatFor = "SPY"; #hint FloatFor: ETF's do not have a float. Total shares outstanding are adjusted to control NAV (Net Asset Value). Check them often for available shares.
input Float = 877632000; #hint Float: Share Float or for ETF's available shares
input n = 21; #hint n: length used for average volume.

AddLabel(GetSymbol() == FloatFor, "Float Value For: " + FloatFor, color.white);
def h = high;
def l = low;
def c = close;
def V = volume;
def AvgFloatP = Float / Average(V, n);
def HighestHigh = HighestAll(h);
def HighBar = if H == HighestHigh
              then BarNumber()
              else HighBar[1];
def LowestLow = LowestAll(l);
def LowBar = if L == LowestLow
             then BarNumber()
             else LowBar[1];
def FirstBar = if HighBar < LowBar
               then HighBar
               else LowBar;
def CumVolume = if barNumber() > FirstBar
                then CompoundValue(1, if CumVolume[1] < Float
                                 then CumVolume[1] + v
                                 else if CumVolume[1] crosses Float
                                      then 0
                                      else CumVolume[1], v)
                else 0;
plot CVpoint = if GetSymbol() == FloatFor and
                  CumVolume crosses above Float
               then c
               else double.nan;
CVpoint.SetPaintingStrategy(PaintingStrategy.Points);
CVpoint.SetLineWeight(4);
CVpoint.SetDefaultColor(Color.Yellow);
plot CVline = if GetSymbol() == FloatFor and
                 CumVolume crosses above Float
              then c
              else double.nan;
CVline.SetPaintingStrategy(PaintingStrategy.Line);
CVline.EnableApproximation();
CVLine.SetDefaultColor(Color.Yellow);

addLabel(GetSymbol() == FloatFor, "Float = " + Float + "  Float/Avg Bars = " + Round(AvgFloatP, 0) + "  Cumulative Volume = " + CumVolume, color.white);
How do I use this?
 
P

Pumper

New member
Where can I get a low float scanner? Obviously we all know about setting up a scan with a minimum volume of x and a maximum number of shares in the ToS. This kinda sorta works but not really. Say I put my scanner like...

Volume - 1 million
Shares - 20 million

I will be missing out on stocks that have lets say 30 million shares and have a volume of 25 million. You see my point?

So is there a low float scanner? Or somehow to scan a certain ratio of volume to shares?
 
B

Boninm252

New member
Has anyone written a script that will return the value of the float volume? TOS does not give a float volume anywhere in their software.
 
J

JabronLames

Member
VIP
I haven't seen any ThinkScript code reference the equity fundamentals =(.

I use https://finnhub.io/docs/api for stuff like that, as well as backtesting minute data.

Warning: Requires knowledge of Python, go, or JS to run.
 
J

JabronLames

Member
VIP
@BenTen

Your example sets the Float of this as a static variable input.

Is there way to fetch this value in the script without having to look it up? I started another thread recently that asks this question here; https://usethinkscript.com/threads/get-the-index-of-the-stock-with-addchart.2873/



******COPY FROM THE THREAD

The example code below overlays the chart of Security over the current chart. Currently Security is a list of pre-defined tickers that you can choose in the study settings.

That's fine and dandy, but with how volatile the market can be it would be nice to have the stock's corresponding index load along with the chart...it would sure help me know if I need to press the get out button because Poppa Powell said something Mr. Market didn't like...

Question:
I was wondering if there was a way to dynamically set the value of Security based on the chart that is currently loaded. Does TOS use the current ticker as a class.asItDoes with Color.example or ChartType.Example?

*Is there a way to do this? Or is this a dead-end?

Code:
declare lower;

input chartType = ChartType.CANDLE;

input Security = {default "SPX", "COMP", "DJX"};

AddChart( high = high( Security ),
low = low( Security ),
open = open( Security ),
close = close( Security ),
type = chartType );


AddLabel(1, if Security == Security."SPX" then "SPX = S&P 500 INDEX"

else if Security == Security."COMP" then " COMP = NASDAQ COMPOSITE"

else if Security == Security."DJX" then " DJX = DOW JONES INDUSTRIAL AVERAGE INDEX"

else "ERROR – none were found", Color.WHITE);


****END OF THREAD
 

Similar threads

Top