Archive for the ‘Thinkscript’ Category

ProSwingVWAP Chart: $SPY

November 20, 2018

At Friday’s close, the $SPY closed below the short ProSwingVWAP level (see 1 in the chart below). Today, it gapped down big (2 in the chart below). This is the kind of thing I’m looking for, and I’m studying if there’s an edge there and coming up with a trading strategy for it.

ProSwingVWAP: Combining Swing Points with volume-weighted prices to define trends

November 19, 2018

Hello, it’s been a long time.  Life finds a way to get you off track.  I’m trying to get things here up and running again.

This is something I was working on a long time ago, and I just re-visited it this last week.  I think it’s interesting, so here it is: ProSwingVWAP.


A VWAP is a volume-weighted average price.  I talked about VWAPs more here.  The idea for this indicator is to use Swing Points to define the period where we start tracking the volume-weighted value.  The chart above shows it in action.  I like using a VWAP as the price input, so you get a running volume-weighted total of each bar’s VWAP.  Kind of a VWAP squared.  You can use close, high, low, etc. as well.

Once a swing point (white dot) is charted, that swing point becomes the first value for that SwingVWAP.  From there, the price value you choose to average for the VWAP is volume-weighted on each bar and the running VWAP is adjusted.  This is done for swing highs (green dots) and swing lows (red dots) separately.  As long as a new swing high / low hasn’t been made, that long / short VWAP value will just continue to build.  A new swing high or low will reset the VWAP and start again.  I added optional paintbars to show green when a bar close is above the swing high VWAP, red if a bar closes below the swing low VWAP, and grey if it closes between them.  I also hide the VWAP value if bars close beyond them.

Because swing points need to have some future values to know if it really is a swing, there is a delay in this indicator.  The more forward bars you require to decide if a swing is in, the longer it will take for the data structure to be confirmed.  If you set the “FlagEarly” input to yes, then paintbars are yellow during this unknown stage.  The fastest reaction is if you use a value of 1 for Swing Forward, but you get more false positives this way too.  I usually use a value of 1 or 2.  The more bars back you look (Swing Back), you get fewer swings but they are bigger ones.  I mess with this value based on the timeframe and the particular name I’m working with, but I’ll usually use 8 or so.

I’m still in the research phase of this one, so I haven’t decided exactly what to do with it yet.  I like how it defines trends.  A bull trend is present when price is closing above the long SwingVWAP, and a bear trend when price is closing below the short SwingVWAP.  I also like the way it shows when a pullback is on, and when the trend resumes.  On the chart above of $SPY, the period from June to October is a prime example.  The market bottomed out at the end of July and then started an uptrend.  When a new swing high was in, the long SwingVWAP (green dots) told us when we were still in the pullback. Once price closed above the long value again, the trend was back on.  The short SwingVWAP kept trailing along below, reminding us that we were in a bull trend.  Then, as October started, we closed below the short SwingVWAP very dramatically, and the correction was on.  Now we seem to be right back in the middle of the two in a holding pattern.

For now it’s a just a context indicator rather than a trading signal, but it looks like it has some potential.  You can get ProSwingVWAP in the “Donors Only” folder in “Released Thinkscript Studies” at my Google site.  It will work on desktop or mobile, but paintbars only work on the desktop platform.

If you’d like to become a blog donor, hit the button below:

Update: Multi-Divergence Indicator v2 for Think or Swim (MACD, RSI, CCI, On Balance Volume and many more)

October 20, 2017

I’ve made an update to the Multi-Divergence indicator. No more arrows! It’s now a lower histogram that gives you a picture of whether the divergence is increasing or decreasing, and also the size of it relative to all the other divergences on the chart. Here’s an example of it in action for $TSLA (Tesla Inc), along with a plot of Volume Weighted MACD for visualization:


The divergences now have a value between 0 and +/- 100. Zero means no divergence is present. A bearish divergence has a negative value while a bullish divergence has a positive value. The scale is determined by the widest divergence, whether bullish or bearish, on the current chart. In this case, the widest divergence came on Sept 15. Everything else is relative to that. If a new divergence comes along that is even larger, then the indicator will scale everything to the new max value.

You can also use this new study as-is in a scan. Just set up a study filter as described below:

Go to the scan tab in Think Desktop, and choose “Stock Hacker”.  Then you click “Add Study Filter” (First in screenshot below) then click the pencil to edit the default filter that is added (Second in screenshot):


Set the aggregation period at the top to whatever timeframe you are interested in. Then edit the default ADXCrossover() seen here under Condition Wizard:


Here’s an example of how to set the scan input, looking for bullish divergences of 30 or greater on the Volume Weighted MACD with a divergence length of 20:

scan input

You click in the upper left dropdown and choose “study”, then lookup Pro_MultiDivergence_v2 from the dropdown list. Then you can select the divergence (bulldiv or beardiv) from the Plot dropdown. Under inputs you choose the length and divergence indicator you want.

For a bullish scan: Choose “is greater than or equal to” and set the select condition dropdown at top right to “Value”, and enter your scan value as a positive number.

For a bearish scan: Choose “is less than or equal to” and set the select condition dropdown at top right to “Value”, and enter your scan value as a negative number.

This indicator is in the “Donors Only” section of my Google site under Released ThinkScript Studies. You can become a donor to the blog through PayPal here:

Example RSI Divergence Trade Setup: $TSLA (Tesla Motors Inc.)

February 16, 2017

All indicators are only a method to repackage complex information in a simple and repeatable way.  I have said before that divergence indicators (like my own Multidivergence Indicator) are not good trade signals by themselves. What they are good for is context.  You will still need some entry criteria of your own to decide when to enter a trade.  You should also have a stop and a target identified before entry, which are basically a plan for if you are wrong and a plan for if you are right.

Here’s a trade I did not take, but I saw developing in real time. It becomes a useful case study for a divergence setup in $TSLA that had a positive outcome.

There was a divergence between the high prices and the RSI indicator for a week or two beforehand. By itself, that doesn’t tell you to sell. Price kept pushing higher even in the face of the divergence. The divergence eventually resolved and went away, and the uptrend continued. But it was telling you that in this context, the trend might be getting tired. You could be looking for a reason to sell. If you try to front-run it, you can get destroyed. Bull markets are built on the smoldering bodies of early bears.

Almost everyone saw that big ugly candle in $TSLA the other day, selling off after threatening to move into all time highs. Using the context of the earlier RSI bearish divergence, this candle was another good piece of information. You have several signs pointing to reversal now. One trade plan could have been to sell a break of the low of that candle, with a stop above the candle high just in case you are wrong. Whatever you do, STICK TO THE ORIGINAL STOP LOSS. Stops only move toward profit, never toward more losses. If you were wrong and price had spiked to new highs in the trend you’d eat the 8 points or so and move to the next trade. In case you were right, maybe you set a target to cover around $255 support, or maybe you sell half and let the rest ride until you see a bullish reversal candle. There’s a lot of great options when you are right! That’s the easy part.  

Here’s what happened:

If you had taken the trade, you had a big follow-through day today on the downside, and you’d be sitting on about 10 points of profit.  One more good day and your target could be hit. 

Remember, indicators only give you information. You as the trader have to decide what to do with it, taking into account your psychology, risk tolerance, account size, and all the other fundamentals. 

Multi-Divergence Scan for Think or Swim: MACD, RSI, CCI Divergence in Your Stock Scans

September 13, 2016

In my Multi-Divergence indicator, there is logic used that breaks the study filter when you try to use it in a scan. So I made a new indicator specifically for scanning by limiting it to only use MACD, RSI or CCI. Now it can be used in a watchlist scan, and it’s called “Pro_Divergence_Scan”. It is still a donor-only script, so use your blog donor info to access it in the Released Thinkscript Studies section of the Google site. If you’re not a donor, you can chip in by clicking the Donate button:

Instructions:  Import Pro_Divergence_Scan like any other study, then follow these directions to set up a scan with it.

Go to the scan tab in Think Desktop, and choose “Stock Hacker”.  Then you click “Add Study Filter” (First in screenshot below) then click the pencil to edit the default filter that is added (Second in screenshot):


Delete the default ADXCrossover() if there is one (Third in screenshot) and then click “Thinkscript Editor” (Fourth):


Choose your Aggregation period at the top (D for Daily in this example).  In the editor, type in “Pro_Divergence_Scan()” and then choose “Inspector” from the side panel.  You’ll see the Pro_Divergence_Scan study inputs and the four plots that you can scan for:

    1. BullDivs for Bullish Divergence on short timeframe
    2. BearDivs for Bearish Divergence on short timeframe
    3. BullDivl for Bullish Divergence on long timeframe
    4. BearDivl for Bearish Divergence on long timeframe



(As an aside, you can also type the name of any other study you have in your library at this thinkscript editor to get access to it for any filter.)

For the scan to trigger, you want to check for when your chosen plot value is equal to 1, because that’s what I coded the indicator to do.  To do this, add the string “==1” after the plot name, as shown here:


After this, click “Ok” and run your scan.  You may get a pop-up that warns that future changes to the study will not be reflected in this filter.  That just means that if you change the code in the Pro_Divergence_Scan, it won’t be reflected here.  The filter takes a snapshot of the code when you make the filter.  If you update the indicator, just delete the old filter and set it up again as above.