Tape Reading Indicator for ThinkorSwim

SolidChiken

New member
2019 Donor
Hi guys is there any tape reader code available in TOS? Grateful if anyone has the tape momentum indicator. Find it might gives a good signal for both entry and exit when the spike goes up extremely.

mwfAyUR.png
 

Shinthus

Active member
2019 Donor
I am just curious if there are any open source thinkscript for tape reading / analysis. Are you interpreting this as "the green spike means to sell?" Because a huge downtrend occurred right after it. There used to be a trader who used MACD histogram divergence but he used it discretionarily along with tape reading and price action, he was very successful day trading 60% annual return on account size on a million dollar account. But I have not been successful with it.
 

BenTen

Administrative
Staff member
Staff
VIP
Lifetime
Not sure if this is what you're looking for.

Code:
# TS_TapeMomentum
# http://www.thinkscripter.com
# [email protected]
# Last Update 07 Nov 2010

#hint: For use on tick charts <b>ONLY</b>. Red inidcates average momentum, yellow > average, green > two standard deviations.
#hint period: Averaging period.
#hint capMultiplier: Multiple of standard deviation at which large spikes will be truncated with a magenta dot.
#hint capLargeSpikes: Truncate larger spikes at a given standard deviation multiplier to avoid scale compression.

declare lower;
   
input period = 14;
input capMultiplier = 5.0;
input capLargeSpikes = YES;
def isTickChart = if getAggregationPeriod() <= 3200 then 1 else 0;

def timer = secondsTillTime(1615);
def deltaT = absValue(timer[-1]-timer);

def momentum = if isTickChart then volume/deltaT else 0;;
def aveSM = average(momentum,period);
def sdAve = aveSM+2*stdev(momentum, period);
def spikeCap = totalSum(momentum)/barNumber()*capMultiplier;

plot tickMomentum = if capLargeSpikes then min(momentum, spikeCap) else momentum;
plot cap = if capLargeSpikes and tickMomentum==spikeCap then spikeCap else double.nan;
cap.setStyle(curve.POINTS);
cap.setLineWeight(2);
cap.setDefaultColor(color.magenta);

tickMomentum.setPaintingStrategy(paintingStrategy.HISTOGRAM);
tickMomentum.setLineWeight(2);

tickMomentum.assignValueColor(if tickMomentum >=min(spikeCap, sdAve) then color.green else if tickMomentum > aveSM then color.yellow else color.red);

plot zero = 0;
zero.setDefaultColor(color.white);

addChartLabel(!isTickChart,"THIS STUDY ONLY FOR USE ON TICK CHARTS",color.red);

Switch over to Tick charts or else it will not work. I found it here.
 

SolidChiken

New member
2019 Donor
Following is what the article explains about the study:

It detects fast changes in the pace of the tape. The green bars are “extreme” spikes. When you get these extreme spikes it indicates an algo, HFT, or large institution is executing a huge order, and the pace of the tape is above average. When you get spikes around 600 or more, often they can indicate tops or bottoms.

Thank you @BenTen. Grateful...Hmm... Now then realized this study requires Tick chart. Got to find out if it works for me.
 

BenTen

Administrative
Staff member
Staff
VIP
Lifetime
@SolidChiken This indicator is fascinating. If you find any good examples of how to use it, please share. If you or @Shinthus or anyone for that matter don't want to use tick chart then replace the following code:

Code:
def momentum = if isTickChart then volume/deltaT else 0;;

with

Code:
def momentum = volume/deltaT;

Not sure if doing so would keep the same concept but worth experimenting.
 

jeffquick

New member
Here's a version of tape speed I wrote a few years back. When "tape speed" is up, it can signal potential turnaround points (as the big guys load or unload), or sometimes the reinforcement of a trend as more people jump in.

The current version of this indicator will only work on tick charts and will not function properly on time based charts. Additionally, it's not 100% real time, as it requires the close of the current bar to generate the calculation.

Let me know if you have questions.

-Jeff

Code:
declare lower;

#########################################################
plot neutral_line_pos = 1;
neutral_line_pos.SetDefaultColor(Color.GRAY);
neutral_line_pos.SetStyle(Curve.SHORT_DASH);

plot zero_line = 0;
zero_line.SetDefaultColor(Color.GRAY);


#########################################################
def tdiff = SecondsFromTime(0930);

def tsrw = (1 / (tdiff[0] - tdiff[1])) * 100;


input period = 21;
def tsavg = average(tsrw[1], period);
def tsrtavg = tsrw / tsavg;

def truncate = if tsrtavg > 3 then 3 else tsrtavg;  #required to attenuate HUGE signals that make the smaller signals hard to read

plot tape_speed = truncate;
tape_speed.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
tape_speed.AssignValueColor(if tape_speed >= 2 then COLOR.WHITE else if tape_speed > 1.0 then Color.GRAY else  Color.DARK_GRAY);
 

Playstation

Active member
VIP
This works on 5min quite well, but anything higher the signals are kind of off. Doesn't work on Day chart. I think it would be great for futures ticks!
Is it possible for the histograms to change colors on mobile?
 

SolidChiken

New member
2019 Donor
@takiz1ma I don't have the code. The screenshot was taken from a site. However, I took two studies from the TOS and made them look similar like above.

Code:
# TD Ameritrade IP Company, Inc. (c) 2008-2020
# Stochastic Momentum Index

declare lower;

input over_bought = 40.0;
input over_sold = -40.0;
input percentDLength = 3;
input percentKLength = 5;

def min_low = lowest(low, percentKLength);
def max_high = highest(high, percentKLength);
def rel_diff = close - (max_high + min_low)/2;
def diff = max_high - min_low;

def avgrel = expaverage(expaverage(rel_diff, percentDLength), percentDLength);
def avgdiff = expaverage(expaverage(diff, percentDLength), percentDLength);

plot SMI = if avgdiff != 0 then avgrel / (avgdiff / 2) * 100 else 0;
smi.AssignValueColor(if smi > smi[1] then Color.green else Color.red);

plot AvgSMI = expaverage(smi, percentDLength);
avgsmi.setDefaultColor(Color.Dark_Gray);

plot overbought = over_bought;
overbought.setDefaultColor(Color.Dark_Red);
overbought.setStyle(curve.SHORT_DASH);

plot oversold = over_sold;
oversold.setDefaultColor(Color.Dark_Green);
oversold.setStyle(curve.SHORT_DASH);

plot UpSignal = if smi crosses above AvgSMI then smi else Double.NaN;
plot DownSignal = if smi crosses below AvgSMI then smi else Double.NaN;
UpSignal.SetDefaultColor(Color.WHITE);
UpSignal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
UpSignal.SetLineWeight(2);
UpSignal.hideTitle();
DownSignal.SetDefaultColor(Color.Dark_Orange);
DownSignal.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
DownSignal.SetLineWeight(2);
DownSignal.hideTitle();

180clj3.png
 
Last edited by a moderator:

murkr

Member
VIP
I'm currently scalping high relative volume, low float stocks using TOS and IB for charts & trading.

Everyone says to watch the Time & sales and level 2 but I'm having a hard time visualizing when a large buying spike is about to move the stock significantly.

Is there any TOS script or IB feature that can help me visualize large positions on the books? I feel like that would help me figure out when the big move is about to happen because I can watch a big resistance level get smaller and smaller. As I see that, I will jump in.

This will only be done when the chart looks good to go up not just anytime I see a large resistance
order shrinking.
 

givemethenews99

New member
Hello

I created the pace the Tape indictor but I get a red coloured title in the indicator when added as a study.

Has anyone changed the below script to work with 15 minute charts?

My objective is to see large increases in tape speed to confirm fake outs.

I used this script from a above post.

Cheers

Code:
declare lower;

#########################################################
plot neutral_line_pos = 1;
neutral_line_pos.SetDefaultColor(Color.GRAY);
neutral_line_pos.SetStyle(Curve.SHORT_DASH);

plot zero_line = 0;
zero_line.SetDefaultColor(Color.GRAY);


#########################################################
def tdiff = SecondsFromTime(0930);

def tsrw = (1 / (tdiff[0] - tdiff[1])) * 100;


input period = 21;
def tsavg = average(tsrw[1], period);
def tsrtavg = tsrw / tsavg;

def truncate = if tsrtavg > 3 then 3 else tsrtavg;  #required to attenuate HUGE signals that make the smaller signals hard to read

plot tape_speed = truncate;
tape_speed.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
tape_speed.AssignValueColor(if tape_speed >= 2 then COLOR.WHITE else if tape_speed > 1.0 then Color.GRAY else  Color.DARK_GRAY);
 

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.
Top