Questions About Float

MerryDay

Administrative
Staff member
Staff
VIP
Lifetime
Last edited:
Solution
I do have a list of all of the stock symbols and sec code. I can put this in table column but how will it call the float information?
ToS does not have float data and float data cannot be imported. You can import the symbols not the data.
You 'could' try creating a very long if statement
if DE then whatever_float else
if CAR then whatever_float else... etc... etc...

Most members use outside websites or maintain spreadsheets.
The float number can be from any source like finviz, yahoo etc. and then you can simply input that number into the script settings and it will draw the rotation lines based on that number.
 
Okay, that was easy... Here you go.

You will need to input the Float from one of the sources; however, you will get all three labels. :)
Code:
#######################################################
input Float = 100000000;

def V = volume(GetSymbol(), AggregationPeriod.DAY);

def MktCP = Float * Close(GetSymbol(), AggregationPeriod.DAY);

plot x = (V/100/Float)*100;

AddLabel (yes, ("Float: ")+ Round(Float * .000001, 1) + "M", Color.CYAN);

Addlabel (yes, ("Float RT: ") + Round(x, 2), color.DARK_ORANGE);

AddLabel (yes, ("MCap: $")+ Round(MKtCP * .000001, 1) + "M", Color.CYAN);

##############################################################
 
Last edited by a moderator:
Thanks for trying @ankbhard I did try your script but not sure how to interpret the data shown. As you can see in the chart below, i used a float number of 12,3 million for symbol GNPX which traded almost 84 million shares on friday so there should have been at least six rotations on friday alone (which your label show) but i can only see one vertical line at the beginning of friday. Any idea why it`s not showing all the other rotations?

And is there a way to only plot the rotation lines on the lower volume graph only instead of on the chart?

0tbOtXe.png
 
That is a stupid bug in the code as it shouldn't show any lines...

Try this:

Code:
#######################################################
input Float = 100000000;

def V = volume(GetSymbol(), AggregationPeriod.DAY);

def MktCP = Float * Close(GetSymbol(), AggregationPeriod.DAY);

plot x = (V/100/Float)*100;

AddLabel (yes, ("Float: ")+ Round(Float * .000001, 1) + "M", Color.CYAN);

Addlabel (yes, ("Float RT: ") + Round(x, 2), color.DARK_ORANGE);

AddLabel (yes, ("MCap: $")+ Round(MKtCP * .000001, 1) + "M", Color.CYAN);

x.Hide();

##############################################################
 
Yes, the new code removes the lines shown earlier. But do you think it`s possible to have some sort of visual indicator on the chart too as soon as a rotation happens? It just makes it more simple to see where a shift in supply/demand may happen.

And if there is a possibility to also add audio alerts when a rotation happens, that would also be very useful.

Thanks:)
 
@mansor Nope, sorry. The script from @ankbhard above does work but it`s only the labels. I hope someone here can figure out how to add vertical lines in the volume graph to visually show where the rotations happens.
 
@zeek I came across this code the other month somewhere on another form. I add the labels similar to the ones. The code plots vertical lines once the float rotates similar to the photo you posted.

Maybe @ankbhard can help clean the code up?

Code:
######################################################
def Today = volume(period = "DAY");
input Float = 10000000;
def V =  if Today then volume(period = aggregationPeriod.MIN) else 0;
def TVol = TVol[1]  + V;
def nodes = (TVol) % Float;

AddVerticalLine(nodes < nodes[1],  CONCAT("Float Rotated: ", CONCAT(round(TVol / float, 0), "")) ,  Color.WHITE, Curve.SHORT_DASH);

AddLabel (yes, ("Float: ")+ Round(Float * .000001, 1) + "M", Color.White);

AddLabel (yes, ("T.Vol: ")+ Round(Today * .000001, 2) + "M", Color.White);

Addlabel (yes, ("Float RT: x")+ Round(Today/float, 0), if nodes < 0 then color.WHITE else Color.RED);
 
Last edited:
@zeek Try this one, it's basically the same as what @SD_Snitch posted it just needed an extra line to be closed out. Let me know if it works?

Code:
def Today = volume(period = "DAY");
input Float = 10000000;
def V = if Today then volume(period = aggregationPeriod.MIN) else 0;
def TVol = TVol[1] + V;
def nodes = (TVol) % Float;

AddVerticalLine(nodes < nodes[1], CONCAT("Float Rotated: ", CONCAT(round(TVol / float, 0), "")) , Color.WHITE, Curve.SHORT_DASH);

AddLabel (yes, ("Float: ")+ Round(Float * .000001, 1) + "M", Color.White);

AddLabel (yes, ("T.Vol: ")+ Round(Today * .000001, 2) + "M", Color.White);

Addlabel (yes, ("Float RT: x")+ Round(Today/float, 0), if nodes < 0 then color.WHITE else Color.RED);

plot Data = close;
 
Thanks a lot! It works and i just realised why it didn`t show when i tried @SD_Snitch version earlier. I applied it on a 2 min chart and the aggregation period for the script was MIN so after changing to TWO_MIN, it now works as well with his version.

Appreciate it(y)
 
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?
 
@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/

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);
 
@zeek did you figure out how to adapt automatically the float size to the ticker on which you use the float rotation indicator? Did you code any other new features to this script?

Thanks so much for this code!
 
@zeek Here is as far as I could go. Still need to manually put in the float, but instead of as an input parameter, which will kind of become useless, if you want to use this as a scanner, you can edit the source and key in the float for each ticker you care about and save the script. look at the piece of code in the bottom, "Float = ", followed by each ticker that you care about and the respective float values.

Code:
#Float_RotationSTUDY.ts
#Author SuryaKiranC
#Draws a White Horizontal Line every time the entire float of a stock is sold on your chart timeFrame.

declare on_volume;

def Float;
def aP = GetAggregationPeriod();
def Today = volume(period = "DAY");
def V = if Today then volume(period = aP) else 0;
def TVol = TVol[1] + V;
def nodes = (TVol) % Float;

AddVerticalLine(nodes < nodes[1], Concat("Float Rotated: ", Concat(Round(TVol / float, 0), "")) , Color.WHITE, Curve.SHORT_DASH);
AddLabel (Float, ("Float: ") + Round(Float * .000001, 2) + " M ", Color.WHITE);
AddLabel (Float, ("Float RT: x") + Round(Today / float, 2), if nodes < 0 then Color.WHITE else Color.RED);

#Float Values need to be provided in the below format Source for Float data is Stockbot (Discord Bot)

Float=
if GetSymbol() == "JNCE" then 16429449 else
if GetSymbol() == "DIT" then 143160 else
if GetSymbol() == "DJCO" then 1005609 else
if GetSymbol() == "VRTA" then 1006025 else
if GetSymbol() == "AXR" then 3654459 else
if GetSymbol() == "TSLA" then 741015516 else
if GetSymbol() == "NVDA" then 590646696 else
if GetSymbol() == "TWTR" then 760550457 else
if GetSymbol() == "FB" then 2378308967 else
if GetSymbol() == "AAPL" then 17086047395 else
if GetSymbol() == "AMZN" then 425760507 else
if GetSymbol() == "NFLX" then 432269673 else
if GetSymbol() == "GOOG" then 289106942 else
if GetSymbol() == "SHOP" then 107624688 else
if GetSymbol() == "SPOT" then 123634771 else
if GetSymbol() == "ROKU" then 105527159 else
if GetSymbol() == "DIS" then 1803978963 else
if GetSymbol() == "WMT" then 1389926724 else
if GetSymbol() == "TGT" then 499011517 else
if GetSymbol() == "HD" then 1075371699 else
if GetSymbol() == "ENPH" then 116202773 else
if GetSymbol() == "MSFT" then 7455013097 else
if GetSymbol() == "AAL" then 502456205 else
if GetSymbol() == "BA" then 563481534 else
if GetSymbol() == "DAL" then 635627690 else
if GetSymbol() == "UAL" then 290085732 else
if GetSymbol() == "LVU" then 587623408 else
if GetSymbol() == "VMW" then 78838275 else
if GetSymbol() == "DELL" then 245785769 else
if GetSymbol() == "ADBE" then 477079606 else
if GetSymbol() == "CRM" then 875784910 else
if GetSymbol() == "NOW" then 190024891 else
if GetSymbol() == "CMG" then 27575019 else
if GetSymbol() == "BYND" then 35438304 else
if GetSymbol() == "KO" then 4266334099 else
if GetSymbol() == "PEP" then 1379751949 else
if GetSymbol() == "SBUX" then 1166559128 else
if GetSymbol() == "CPB" then 201349701 else
if GetSymbol() == "TSN" then 286732593 else
if GetSymbol() == "UNH" then 944699557 else
if GetSymbol() == "ATVI" then 759515101 else
if GetSymbol() == "TTWO" then 113110542 else
if GetSymbol() == "EA" then 287300743 else
if GetSymbol() == "GME" then 485134183 else
if GetSymbol() == "TWLO" then 134379827 else
if GetSymbol() == "AMD" then 1112803420 else
if GetSymbol() == "INTC" then 4251413631 else
if GetSymbol() == "AVGO" then 392589268 else
if GetSymbol() == "TXN" then 914419869 else
if GetSymbol() == "TSM" then 5185493973 else
if GetSymbol() == "QCOM" then 1127103369 else
if GetSymbol() == "AMAT" then 909457258 else
if GetSymbol() == "MU" then 1109043529 else
if GetSymbol() == "NTAP" then 221383608 else
if GetSymbol() == "RNG" then 76205145 else
if GetSymbol() == "ZM" then 173994270 else
Double.NaN;

**PS: I got these ticker names from https://www.lowfloat.com/ and the float values from stockbot (discord bot)

@zeek if you want to see how it looks like head back to https://usethinkscript.com/threads/...e-stats-for-thinkorswim.970/page-6#post-34054
 
Last edited:

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
392 Online
Create Post

Similar threads

Similar threads

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ‘Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.

How do I get started?

We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.

If you are new, or just looking for guidance, here are some helpful links to get you started.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top