• Get $40 off VIP by signing up for a free account! Sign Up

Renko Bar Based Trading System for ThinkorSwim


Options Expert
Renko Bar Based Trading System
shared workspace link: https://tos.mx/DHOcwrT
V1.0 2020-07-26

System Components

Upper Chart Panel

Renko Bars

I use Renko Bars for scalping and day trading rather than being fixated and totally consumed by trade-by-trade candle price action. The Time interval settings I use are usually between 1 to 15 day. Price range is usually set to whatever works best for a particular instrument, but usually between 2 - 15 Ticks or ATR for Equities and from 1 - 5 Ticks or ATR for Options.

The figure below shows typical settings.


RSI(13, 70, 30, CLOSE, WILDERS, Yes) [RSI]: If you have never traded using the RSI as an Upper indicator, especially with Renko Bars, you owe it to yourself to try this method as it plays into the overall trade strategy quite well. I’m surprised I’ve seen so few traders using this setup as it adds a whole new dimension to the playing field.

Trend_Reversal_Indicator_with_Signals(No, Average, Pivot, No, 0.5) [TRI]: I’m sure I’ve made at least minor modifications to this Study script but none that drastically effect its functionality.

HullMovingAvg(OHLC4, 13, 0) (Optional) [HMA]: As you can see, I have opted to use OHLC4 for the Price setting because I have found that it performs better for my needs with this setting change.

Day_Highs_and_Lows (Optional) [DHL]: This is most likely default Study script code but it might be marginally modified.

Underlying_Equity_Price(Normal, Yes, Yes) (Optional) [UEP]: Custom AddLabel script to display Stock price as well as current Trend of the instrument being traded.

The following figure illustrates a typical Upper Chart panel for an Option:


Lower Chart Panel

Waddah_Attar_Explosion(100, 13, 26, 20, 2.0, 0.2) [WAE]
For best results, the “deadZone” xLine value needs to be adjusted so that it is functional for the instrument being charted. For most options that sweet spot is in the 0.2 range. You want your ex to drop below the xLine during periods of weak price movement when the bars are extremely short. This indicates a No-Trade “deadZone” area, meaning that you wouldn’t enter a trade when ex is below xLine. Note: I have moved the xLine and ex plots to the top of the plot code section so they paint on top of the Histogram instead of behind it. I have found that when the xLine is plotted first it becomes easier to determine when ex has dipped to or below xLine. Understanding plot hierarchy, and using it to your benefit, can be very helpful with decision making.

BalanceOfMarketPower(HULL, 13) [BOMP] I have not modified this Study script other than to adjust the AverageType to HULL and the length from 14 to 13.

RayBullPower(HULL, 13) [RBP] This Study script has been modified to allow bar color selection as well as AverageType selection.

The following figure illustrates a typical Lower Chart panel:


That’s pretty much it for Chart layout aside from the fact that I also enable the Charts Left Axis by checking the checkbox in one of my Study scripts, usually RSI.

How To Use

Oh, where to begin? There is so much to cover that I hope I don’t leave anything out. I find new concepts all the time so I’m sure this section can be amended. As you may have noted, I prefer the HULL moving average and a bar length setting of 13. I have tried a plethora of different combinations of bar length settings and have found that 13 works best for my needs and synchronizes all of the indicators quite well. I also stick with standardized colors throughout for consistency.

Now let’s look at the entire Chart panel and go from there:


One thing I have just started utilizing is checking the Mark Phantom Bars option as indicated in the Chart Settings panel figure above. This causes the “phantom” bars, those that mark price movement without underlying volume, to display dimmer than true volume backed bars. All Phantom Bars have a Volume of zero and this is one of the quirks of using Renko Bars, albeit a minor one.

I won’t be covering the optional components as they are fairly self-explanatory and not part of the actual trading strategy. Sometimes I just turn them off to reduce screen clutter and to reduce processing overhead.

First, looking at the figure above, you will notice the RSI overlay working in conjunction with the Renko Bar movement. See what happens when the Renko Bars encroach on or surpass the Overbought RSI line? It indicates that it’s time to start paying closer attention to your trade and to anticipate taking profits before the RSI “breaks” and everyone is in a rush to exit, potentially leaving you in a Falling Knife situation. Yet you’ll also notice that when the RSI starts breaking back below Over-Bought but the Renko Bars are below Overbought it’s a good time to potentially ride out profit-takers creating a temporary price dip.

As I continue, please note that there will be some differences in how everything is interpreted depending on whether you are scalping or day trading. The main difference being how you plan your exit. As mentioned above, I utilize the TRI. This can serve multiple functions depending on your trading time-frame. When scalping you would use the Low Reversal as an entry point confirmation or you may choose to ignore it altogether and go by lower panel indicators. I find that, at the very least, it serves as an additional confirmation. When Day-Trading you can use both the Lower and Upper Reversal bubbles for entry and exit if that is your trading style. Just be aware of potential re-paints and watch those lower indicators for potential confirmations.

Now, let’s move on to how I use the Lower indicators. The main two being the WAE and RBP indicators. The BOMP indicator is primarily used to further confirm potential trade Entry and/or Exit as indicated by the WAE and RBP indicators. All three lower indicators have been set to a width of 1 for consistency as the default for RBP is 3 by default and that can cause synchronization alignment issues.

The WAE indicator provides a lot of information once you use it for a while. A Green bar indicates an upward trend in price movement. Dark Green indicates increasing strength and Light Green indicates decreasing strength. Yellow bars indicate decreasing strength and is also a good indication of upcoming Choppy Consolidation. More Yellow bars, typically tall ones, usually means a longer Consolidation period.

A typical entry signal would usually be a Green bar which has crossed above the ex line, with the ex line being your confirmation. This, of course, only holds true if it is your primary indicator and we’ll delve deeper into this as I describe the other two indicators. Now, remember those Yellow bars? Well, depending on various factors, a Yellow bar below the ex line that is below a Green Renko Bar can also be interpreted as an entry signal. Again, more on this later.

As far as exit signals are concerned, for Scalping, either a Light Green bar that closes below the ex line, ex being White on my charts, or any Red bar, would be an exit signal. For Day Trading we have several options for our exits. If the red bar is short, or a series of red bars are relatively short, in conjunction with the RSI crossing back below the Overbought line, you may choose to allow the trade to continue through what would usually be a Profit-Taking period. Your Renko Bars will also be Red during exit signals and Profit-Taking.

Next, let’s skip ahead to the RBP indicator as it can be used stand-alone or with the WAE indicator. The RBP indicator is fairly straight-forward, Green is your entry and the first Red is your exit - cut and dry. It just works! On long trade runs RBP will usually be your first to indicate an exit.

When used with WAE, the RBP indicator can be either the primary or secondary indicator. Essentially, you are looking for both indicators to display Green bars below a Green Renko Bar. Alternatively, a Yellow WAE bar and a Green RBP bar can also be used as a weaker yet valid entry signal. Also, when these two indicators are used you can optionally ignore the WAE Green bar having to cross above the ex line IF the RBP bar is also Green. Either indicator being Red can be used as your exit signal if nothing signals otherwise, such as RSI confirmed profit-taking dip.

And finally, the wildcard BOMP indicator. I say wildcard because that’s how I use it in decision making, and here is how it comes into play. Uncertain for an entry or an exit? Any switch to all three indicators painting Green bars can be interpreted as an entry signal and a switch to all three indicators painting Red bars can be interpreted as an exit signal if nothing signals otherwise, such as RSI confirmed profit-taking and short Red bars. If WAE is Yellow and RBP is Green then BOMP can optionally be the tie breaker with Green being an entry signal and Red indicating a pass. There may also be remote instances when it may be helpful in determining an early exit. Hence I tend to use the BOMP indicator as a catch-all, wildcard, tie-breaker for the most part. But important nonetheless.

There’s More

So, is that all there is? No! Pay close attention to the RSI as well as the Renko Bars relation to Overbought and Oversold. Sometimes the HMA can be useful in passing on a weak exit signal if the trend hasn’t turned. TRI is very useful in confirming entries and exits as long as you don’t use it as a primary signal or you’ll risk getting burned by repaints.

I no longer use a zeroLine on my Histograms, for good reason. If you’ve ever noticed what just looks like the zeroLine painting where there would normally be a bar you may be missing part of the story. By turning off the zeroLine you just see a gap between bars as though the bar never painted. Here is the trick! Hover your mouse pointer over any bars adjacent to the gap and your phantom bar or bars will magically appear. For example, I have seen a long gap of 15 bars or more that presented themselves as Red, Green, and Gray when revealed. I’ve seen every combination of phantom bar colors, Red to Green, Gray to Green, etcetera, that can be very helpful in making trade decisions that couldn’t have been made if the zeroLine was plotted. It is just about impossible to distinguish the phantom bar color by using the hovering trick with the zeroLine plotted so I simply turn them off and reap the benefits.


The entire Chart Panel above includes a majority of what this strategy system encounters with the exception of RSI being in Oversold range, long Choppy DownTrend, or what a series of tall Yellow WAE bars foretells. I purposely selected this segment of chart for a GLD option because it has a very diverse amount of examples for such a short amount of chart. Some jump right out and others may take longer to find. A re-read of indicator use, and the twists and turns of interpreting them, should reveal most of them. I may eventually grab some snippets to help isolate some of the patterns.

If I follow my own rules this system can be very beneficial. I have actually spent a couple days ignoring the rules, intentionally, to prove that not following the rules is far less profitable than following them. And there were losses rather than gains. But it had to be done with real money because the real world is not as forgiving as back-testing. So, in the real world if I follow the rules rather than going rogue I have a far greater success rate. In 3 days of following the rules I had 12 wins and 2 losses. In 2 days of not following the rules and second guessing I had 4 wins, 1 break even, and 9 losses. And that was in an equal mix of market trends between Bullish and Bearish.


While I’m sure I haven’t covered every aspect of this trading system I feel that I’ve covered most of it, and, hopefully, adequately. I still find nuances as I use it more and more. After trying more than a few indicator suites I can honestly say that this one works the best for me. And I hope that it will for others as well. I will be sharing my setup, customized code and all, to provide a good starting point. If anyone finds a bug or makes improvements, please let me know.

THE END - rad14733
Last edited by a moderator:
Interesting, much different than how I use Renko. But, I don't use it for options, I'm strictly a swing trader.

I use 8 ticks if I'm running it and a much larger number when I need time to do other things. I've also found that using momentum based indicators and volume to be extremely profitable.

Good luck and thanks for a very informative presentation.

Hey, thanks for the comments, @WayneG... Yeah, I do both day and swing trading but primarily day trading... As stated above, I've used a plethora of indicators and timeframes/ticks and have found that for day trade price action scalping you want small tick counts... I follow the underlying stocks with Renko Bars as well and usually drop the ticks below ATR so I can see tighter action in relation to the options... I've found that when running Renko Bars I usually need to find a tick count that best suits a given instrument regardless of price range...
@rad14733 have you tested this setup with Futures as well, specifically for ES and NQ, if so, how well does this setup respond to price action for possible trades in either direction (long or short)?

Thanks for your work and knowledge to share with the rest of the community, appreciated.
@rad14733 have you tested this setup with Futures as well, specifically for ES and NQ, if so, how well does this setup respond to price action for possible trades in either direction (long or short)?

Thanks for your work and knowledge to share with the rest of the community, appreciated.
Sorry, Ishaam, I do not trade Futures and only trade Call and Put Options... I have tried the system on Stocks and it seemed to work well, however...
How do you use it for options ? I am new to it.
All trades work according to the first post... You optionally watch the underlying and follow the options indicators... You have to watch and interpret the trade action... It doesn't say "Buy" and "Sell"... You get a "feel" for what's happening and what may be happening in the future... After that the patterns will start to become apparent... My best advice would be to back test, or do a look back, of multiple instruments and remember what the initial post said... The more positive indicators, the more confirmation... I wouldn't necessarily recommend it for a beginning trader... That being said, I'm more than willing to give specific advice but there is no step by step...
@rad14733 First off, thank you for the write up and sharing your strategy!

I have a question in regards to a comment you made a few times throughout your summary about "RSI profit taking". Are you referring simply to selling (when signaled along with other indicators) when the RSI line is near overbought? If not, can you elaborate further on what you mean by "RSI profit taking"?

Also, some of your comments make it appear as though you are making trade decisions based off of the Renko bars distance from RSI overbought/oversold values - am I understanding this correctly? While the RSI indicator itself is fixed on the upper chart, when I move the chart around, the Renko bars will change position in relation to the RSI indicator. Is there a chart setting you use to fix the price axis within your fixed RSI indicator or how are you using this?
Good questions, @Dupre... "RSI Profit Taking" is what happens during an RSI dip you encounter when the RSI line exceeds Overbought and price possibly pulling back momentarily... It happens virtually every time it crosses over... It is very distinct with Renko Bars...

As for the Renko Price and RSI action, RSI is not "fixed", it is "overlayed"... Yes, the chart and RSI move about when scrolling back in history but is oriented properly while the chart paints... As the chart is painting and the instrument price rises above RSI quickly beyond Overbought the Renko Bars will also run above Overbought... I watch closely when this happens because the trade becomes volatile in this condition... What you see as historical data comes into view from the right as you scroll is pretty much what it looked like during live trading... I often see a one to two Renko Bar drop during RSI Profit Taking and will ride that out if I'm not strictly scalping... But, then again, I run low tick counts intentionally, and see more dips than if I used ATR on most options...

Figure Depicting RSI Profit Taking with Renko Bars


Renko Bars are a whole different animal compared to candlesticks... The only way to get it is to watch the strategy in live action or to back test a lot of different instruments... I'm hooked...

Hope I explained that well enough...
Last edited:
Thanks very much for sharing! I really like the idea of putting an option ticker in the chart to evaluate the movement, will try that on my setup as well. I have been trading Renkos set to ATR also, just using the Hull and a simplified version of the Swing Arm. Very right that Renkos are a different animal, but for myself I am finding that I am much more consistently profitable when I use them.
What do price messages mean? Are these entry points?
Today I tested your strategy on $GOOGL and noticed that these price messages are redrawn.
What do price messages mean? Are these entry points?
Today I tested your strategy on $GOOGL and noticed that these price messages are redrawn.
The price bubbles are generated by the Trend_Reversal_Indicator_with_Signals study... They "help" with conformations but are not outright buy and sell signals, unless you want them to be - but they do repaint... There are no true buy and sell signals, just indicators for you to interpret based on what you see and what you learn about how the suite functions on specific instruments... It should be noted that I have everything optimized for scalp day trading options... This setup has worked the best for me out of the many dozens of indicator combinations I have used - but only once I had a good feel for how everything ties together... And they only work if you stick to what they offer up rather than going rogue... I used the setup to make some decent profit early this morning and then proceeded to lose it all and a lot more by not following what the indicators were telling me... That's two days in a row...!!! And I know better than to second guess what the market is telling me... I may be dealing with some traders anxiety or burnout which I need to evaluate and deal with... :confused:

One aspect of those trend reversal bubbles is that if you are trend trading you can hold a trade until the closing bubble paints, regardless of where in the bubble pair you entered the trade... But for a quick scalp I'm usually out as soon as the indicators switch from green to red... The RayBullPower indicator seems to work best for me for entering and exiting scalps... The entire suite combined comes into play for managing a day trade trend... And remember, I primarily trade Call Options and very few Put Options... But I do use the same chart layout for monitoring the underlying stocks because sometimes that will help keep me from getting into a bad option trade where I'd be chewed up by chop... Not to mention that option action sometimes lags behind stock action considerably...
This is great stuff. What ATR settings can you use to swing trade stocks?
TOS really doesn't have much for ATR settings when it comes to Renko Bars... At least not that I am aware of... When I mentioned ATR that was what I was referring to... I am, however, toying around with an ATR related indicator...
Nice. I really enjoy your posts and insight! What indicators/chart settings do you recommend for swing trading stocks/options?
Great strategy here @rad14733 . I am using this for the Micro S & P futures. Never tried ATR renko. Lets see how it goes on Sunday. (Paper trade of course). Using TMO Oscillator instead of RSI and its looking good. Also using the derivative RSI oscillator as a "bonus" indicator.
@kalivibe The settings described in the first post are my basic option trading settings and I use the same settings for monitoring the underlying stocks... I'll see if there are more optimal settings for longer swing trades and report my findings...
@rad14733 You have an excellent strategy system and I was so impressed I created an actual TOS Strategy using many of your rules and some of my own. It works great on Renko bars (10 ticks) especially for Options. For example, .SQ200807C150, using the strategy was quite impressive. So as my contribution I am providing my code and possibly have others and yourself tweak it.

# Version 1.0 Date: 2020-08-08
# Credits to rad14733 Renko Bar Based Strategy
# IrishGold Compilation of signals
# This Strategy best traded on Range -Renko Bar -10Ticks my preference - Options Trading
# Many parameters can be tweaked
# Strategy = opening a Long EntryPrice when a green WAE greater than ExplosiveBar signal, translation: MACD Calculation(trendUp) is positive and exceeds the  BollingerBands Bands Calculation (ex) which indicates the Strength of Signal
#Short Entry TrendDown and Signal Exceeds (ex)
# Also BullPowerSignal and Balance Of Power Signal  and RSI are used as alternate or confirmation signals

# Parameters
input Contracts = 1;
input TradeLong = 1;
input TradeShort = 0;
input sensitivity = 100; #"Sensitivity"
input fastLength =13; #"FastEMA Length"
input slowLength = 26; #"SlowEMA Length"
input channelLength = 20; #"BB Channel Length"
input mult = 2.0; #"BB Stdev Multiplier"
input deadZone = 0.2; #"No trade zone threshold"
input avgType = AverageType.HULL;
input length = 13;
input over_Bought = 70;
input over_Sold = 30;
input price = close;
input useRTH = 1;
input TradeTimeOpen = 0935.0;
input TradeTimeEnd = 1550.0;
input averageType = AverageType.WILDERS;
input EODCloseAll = 1;

# Limit trading time for Options especially
def RTH = if SecondsFromTime(TradeTimeOpen) >= 0 and
               SecondsTillTime(TradeTimeEnd) >= 0
            then 1
            else 0;

def NetChgAvg = MovingAverage(averageType, price - price[1], length);
def TotChgAvg = MovingAverage(averageType, AbsValue(price - price[1]), length);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;

def RSI = 50 * (ChgRatio + 1);
def OverSold = over_Sold;
def OverBought = over_Bought;
def UpSignal = if RSI crosses above OverSold then OverSold else Double.NaN;
def DownSignal = if RSI crosses below OverBought then OverBought else Double.NaN;
def RSIDescending = isDescending(RSI(fastLength));

def FPL = FPL();
         text = "Total Profit: " + AsDollars(FPL),
         color = if FPL > 0
                 then Color.GREEN
                 else Color.RED

# RSI reaching OverBought Take Profit signal
def TakeProfit = if RSI crosses above OverBought then 1 else 0;

# Calculations for "Waddah Attar Explosion " ------------#

script calc_macd {

    input source = close;
    input fastLength = 13;
    input slowLength = 26;

    def fastMA = MovAvgExponential(source, fastLength);
    def slowMA = MovAvgExponential(source, slowLength);

    plot out = fastMA - slowMA;


script calc_BBUpper {

    input source = close;
    input length = 20;
    input mult = 2.0;

    def basis = SimpleMovingAvg(source, length);
    def dev = mult * StDev(source, length);

    plot out = basis + dev;


script calc_BBLower {

    input source = close;
    input length = 20;
    input mult = 2.0;

    def basis = SimpleMovingAvg(source, length);
    def dev = mult * StDev(source, length);

    plot out = basis - dev;


def t1 = (calc_macd(price, fastLength, slowLength) - calc_macd(price[1],
fastLength, slowLength)) * sensitivity;

def t2 = (calc_macd(price[2], fastLength, slowLength) -
calc_macd(price[3], fastLength, slowLength)) * sensitivity;

def e1 = (calc_BBUpper(price, channelLength, mult) - calc_BBLower(price,
channelLength, mult));

def e2 = (calc_BBUpper(price[1], channelLength, mult) - calc_BBLower(price[1], channelLength, mult));

def trendUp = if t1 >= .50 then t1 else 0;
plot trendDown = if t1 < .50 then (-1 * t1) else 0;

def tUp = trendUp; #"UpTrend"
def tDn = trendDown; #"DownTrend"
def ExplosiveBar = if t1 > 0 and t1 > e1 then 1 else 0;
def ExplosiveBarShort = if trendDown > e1 then 1 else 0;

# //// WAE END CODE ////#

# BullPower Power
def BullPower = high - MovingAverage(avgType, close, length);
def BullPowerBuy = if BullPower > 0 then 1 else 0;
def BullPowerSell = if BullPower < 0 then 1 else 0;

# Balance of Power
def averageType2 = AverageType.HULL;
def rawBMP = if high != low then (close - open) / (high - low) else 1;
def BMP = MovingAverage(averageType2, rawBMP, length);
def BMPTrend = if BMP > 0 then 1 else 0;

# Conditions for Orders
def TradingTime = if useRTH then RTH else if !useRTH then 1 else 0;
def Close_EOD = if EODCloseAll and  SecondsTillTime(TradeTimeEnd) <= 60 then 1 else 0;
def BuyTrend = TradingTime and ExplosiveBar and trendUp and BullPowerBuy and BMPTrend  ;
def SellTrend = trendDown or BullPowerSell  or !ExplosiveBar;
def LongOrder = BuyTrend and TradeLong and RSI < 65 ;
def CloseLong = SellTrend ;
def TakeProfitSell = TakeProfit == 1;
def ShortOrder = TradingTime  and trendDown and BullPowerSell and TradeShort and ExplosiveBarShort;
def CloseShort = BuyTrend or RSIDescending or !ExplosiveBarShort;
def orderPrice = (open[-1]+close[-1])/2;

# Long Trades
AddOrder(type = OrderType.BUY_TO_OPEN,LongOrder, price =orderPrice, tradeSize = Contracts, name = "Long", tickcolor = Color.GREEN);
AddOrder(type = OrderType.SELL_TO_CLOSE, CloseLong, price = open[-1],  name = "Close");

# Special Closing Orders
AddOrder(type = OrderType.SELL_TO_CLOSE,TakeProfitSell, price = open[-1],name = "Profit");
AddOrder(type = OrderType.SELL_TO_CLOSE,Close_EOD, price = open[-1],name = "EODLong");

#Short Orders
AddOrder(type = OrderType.SELL_TO_OPEN, ShortOrder, price = orderPrice, tradeSize = Contracts, name = "Short", tickcolor = Color.GREEN);
AddOrder(type = OrderType.BUY_TO_CLOSE,CloseShort, price = open[-1], tradeSize = Contracts, name = "CloseShort");
AddOrder(type = OrderType.BUY_TO_CLOSE,Close_EOD, price = open[-1], tradeSize = Contracts, name = "EODShort");
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
270 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.