0% found this document useful (0 votes)
1K views7 pages

TOS Study Links

The document provides instructions for adding several ThinkScript studies and custom columns to a TradingView chart or watchlist, including: 1. A Harmonic Multi-Pattern study that dynamically highlights harmonic patterns across timeframes. 2. A Flexgrid study that compiles 4 charts with price target alerts. 3. A Dynamic Support Resistance study that displays pivots based on timeframe. 4. Instructions for adding a custom harmonic pattern column to a watchlist.

Uploaded by

Henry Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views7 pages

TOS Study Links

The document provides instructions for adding several ThinkScript studies and custom columns to a TradingView chart or watchlist, including: 1. A Harmonic Multi-Pattern study that dynamically highlights harmonic patterns across timeframes. 2. A Flexgrid study that compiles 4 charts with price target alerts. 3. A Dynamic Support Resistance study that displays pivots based on timeframe. 4. Instructions for adding a custom harmonic pattern column to a watchlist.

Uploaded by

Henry Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Harmonic Mutli-Pattern - Dynamically highlights Harmonics patterns across all timeframes

http://tos.mx/GgUHB9

Flexgrid (4 Timeframes) - Additional TOS “screen” that compiles 4 different charts. Includes
alerts for Buy/Short with Price Targets based on price action
http://tos.mx/eLUa1z
Dynamic Support Resistance - Displays Support/Resistance points (Pivots) based on
timeframe
http://tos.mx/YqMEVQ

Market Forecast Reversal - Study that leverages RSI and CCI to “predict” direction
http://tos.mx/WCS6Hf

VWAP POC - Study displays VWAP, POC, and SD levels


Note: after adding this study, I suggest that you uncheck the “show study” checkbox as that will
remove all of the various line leves for SDs… If they are left on, it is really hard to follow your
chart. It will leave the values showing in the Upper left corner and right side of your chart
http://tos.mx/u12nb7

Harmonic Multi-Pattern Custom Watchlist Column

Watchlist w/custom columns (Can apply Multiple Time periods)


1. C/P paste code from chrome
2. Click on customize(gear icon) top right on watchlist
3. Find “custom 1” from list on left
4. Double-click on script icon to open custom quote formula box
5. Delete anything in box and paste code
6. Name it, e.g Multi1m
7. Make sure to change timeframe to 1m (in this case)
8. Click apply, ok
9. Type multi1m in search box to find your saved column and double click on it to add to your
watchlist

Repeat this with different timeframes you want to create the custom columns on your watchlist

Results will look something like this:


Copy and paste the code below into your custom watchlist column.
It is important that you manually change the input length = 13; value to match your chart
settings. For instance, if you are using a length of 21 on your charts, change the line to read
input length = 21;
# +------------------------------------------------------------+
# | Harmonic Mult-Pattern Custom Watchlist Column |
# | Robert Payne |
# | http://funwiththinkscript.com |
# +------------------------------------------------------------+
input length = 13;
def bn = BarNumber();
def lastBar = HighestAll(if IsNaN(close) then 0 else bn);
def os1 = Min(length - 1, lastBar - bn);
def _high = Highest(high, length);
def _low = Lowest(low, length);
def ph = high == _high and high == GetValue(_high, -os1);
def pl = low == _low and low == GetValue(_low, -os1);
def cph = if ph[1] then 1 else cph[1] + 1;
def cpl = if pl[1] then 1 else cpl[1] + 1;
def ph1 = (ph and !pl and cph >= length) or (ph and pl and cph >= cpl) or (ph and
bn <= length);
def pl1 = (pl and !ph and cpl >= length) or (pl and ph and cpl >= cph) or (pl and
bn <= length);
def cph1 = if ph1[1] then 1 else cph1[1] + 1;
def cpl1 = if pl1[1] then 1 else cpl1[1] + 1;
def sh = if pl1[1] then high else if high > sh[1] and !pl1 then high else sh[1];
def shb = if ph1 or sh <> sh[1] then bn else shb[1];
def sl = if ph1[1] then low else if low < sl[1] and !ph1 then low else sl[1];
def slb = if pl1 or sl <> sl[1] then bn else slb[1];
def h1 = if ph1 then high else if pl1 and cph1 > cpl1 then sh else h1[1];
def h2 = if h1 <> h1[1] then h1[1] else h2[1];
def h3 = if h1 <> h1[1] then h2[1] else h3[1];
def l1 = if pl1 then low else if ph1 and cpl1 > cph1 then sl else l1[1];
def l2 = if l1 <> l1[1] then l1[1] else l2[1];
def l3 = if l1 <> l1[1] then l1[1] else l3[1];
def h1b = if h1 <> h1[1] then bn else h1b[1];
def l1b = if l1 <> l1[1] then bn else l1b[1];
def bl_XAB;
def bl_ABC;
def bl_XAD;
def br_XAB;
def br_ABC;
def br_XAD;
if h1b > l1b {
bl_XAB = Round(AbsValue((h2 - l1) / (l2 - h2)), 2);
bl_ABC = Round(AbsValue((l1 - h1) / (h2 - l1)), 2);
bl_XAD = 0;
br_XAB = Round(AbsValue((l2 - h2) / (h3 - l2)), 2);
br_ABC = Round(AbsValue((h2 - l1) / (l2 - h2)), 2);
br_XAD = Round(AbsValue((l2 - h1) / (h3 - l2)), 2);
} else {
bl_XAB = Round(AbsValue((h2 - l2) / (l3 - h2)), 2);
bl_ABC = Round(AbsValue((l2 - h1) / (h2 - l2)), 2);
bl_XAD = Round(AbsValue((h2 - l1) / (l3 - h2)), 2);
br_XAB = Round(AbsValue((l2 - h1) / (h2 - l2)), 2);
br_ABC = Round(AbsValue((h1 - l1) / (l2 - h1)), 2);
br_XAD = 0;
}
def bl_Crab = Between(bl_XAB, 0.35, 0.75) and Between(bl_ABC, 0.35, 0.92) and
Between(bl_XAD, 1.16, 1.97);
def bl_aBat = !bl_Crab and Between(bl_XAB, 0.35, 0.41) and Between(bl_ABC, 0.35,
0.92) and Between(bl_XAD, 0.97, 1.16);
def bl_xBat = !bl_Crab and !bl_aBat and Between(bl_XAB, 0.35, 0.65) and
Between(bl_ABC, 0.35, 0.92) and bl_XAD >= 0.82;
def bl_Gart = !bl_Crab and !bl_xBat and Between(bl_XAB, 0.59, 0.65) and
Between(bl_ABC, 0.35, 0.92);
def bl_Bat = (!bl_Crab and !bl_aBat and Between(bl_XAB, 0.35, 0.58) and
Between(bl_ABC, 0.35, 0.92)) or bl_xBat;
def bl_Bfly = Between(bl_XAB, 0.76, 0.85) and Between(bl_ABC, 0.35, 0.92);
def bl_dCrb = Between(bl_XAB, 0.86, 0.92) and Between(bl_ABC, 0.35, 0.41);
def br_Crab = Between(br_XAB, 0.35, 0.75) and Between(br_ABC, 0.35, 0.92) and
Between(br_XAD, 1.16, 1.97);
def br_aBat = !br_Crab and Between(br_XAB, 0.35, 0.41) and Between(br_ABC, 0.35,
0.92) and Between(br_XAD, 0.97, 1.16);
def br_xBat = !br_Crab and !br_aBat and Between(br_XAB, 0.35, 0.65) and
Between(br_ABC, 0.35, 0.92) and br_XAD >= 0.82;
def br_Gart = !br_Crab and !br_xBat and Between(br_XAB, 0.59, 0.65) and
Between(br_ABC, 0.35, 0.92);
def br_Bat = (!br_Crab and !br_aBat and Between(br_XAB, 0.35, 0.58) and
Between(br_ABC, 0.35, 0.92)) or br_xBat;
def br_Bfly = Between(br_XAB, 0.76, 0.85) and Between(br_ABC, 0.35, 0.92);
def br_dCrb = Between(br_XAB, 0.86, 0.92) and Between(br_ABC, 0.35, 0.41);
def bull = bl_Bat or bl_aBat or bl_Gart or bl_Bfly or bl_Crab or bl_dcrb;
def bear = br_Bat or br_aBat or br_Gart or br_Bfly or br_Crab or br_dcrb;
AssignBackgroundColor(if bull then Color.LIGHT_GREEN else if bear then Color.PINK
else Color.CURRENT);
AddLabel(yes,
if bl_Crab or br_Crab then "Crab " else
if bl_dcrb or br_dcrb then "Deep Crab" else
if bl_aBat or br_aBat then "alt Bat " else
if bl_Bat or br_Bat then "Bat " else
if bl_Gart or br_Gart then "Gartley " else
if bl_Bfly or br_Bfly then "Butterfly" else
".", if bull then Color.DARK_GREEN else Color.DARK_RED);

You might also like