renko or tick chart for trading oil/futures

Solution
Where might I find the histogram from this image? I can't seem to locate it with a search of the site

Which, the CODH_Close_Open_Diff_Histogram...??? I've never posted it that I'm aware of...

Here you go: http://tos.mx/!9Q9sT3CZ


Ruby:
# CODH_Close_Open_Diff_Histogram
# Paints a Histogram  and Average based on the difference between Close and Open
# Created by rad14733 for personal use
# v1.0 : 2025-06-09 : Initial release
# v1.1 : 2026-03-21 : Added optional vertival lines on crossovers

declare lower;

input avgLen = 8;
input avgType = AverageType.SIMPLE;
input avgTrend = no;
input showLabels = yes;
input showVertLines = yes;
input lineweight = 3;
input histoweight = 5;

def val = MovingAverage(avgType, close -...
Does anyone use renko or tick chart for trading oil/futures? If so can you share your set up and how you trade it?

You would trade most all symbols the same when using Renko Bars... I am right now putting some polishing touches on a Renko Bar Chart for SPY but it could be used for any symbol although it may need minor adjustments to fine tune to whichever equity you choose... You should be able to duplicate most of the Chart depicted below... It's mainly Support and Resistance, SuperTrend, and VWAP... The rest is just personal customizations...

1776289160335.png
 

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

You would trade most all symbols the same when using Renko Bars... I am right now putting some polishing touches on a Renko Bar Chart for SPY but it could be used for any symbol although it may need minor adjustments to fine tune to whichever equity you choose... You should be able to duplicate most of the Chart depicted below... It's mainly Support and Resistance, SuperTrend, and VWAP... The rest is just personal customizations...

View attachment 27363


You have an interesting histogram on the representation above, @rad14733! It seems that the geometrical concept of cycloid can be applied there. The histogram shows some interruptions on the cycloid format but, for instance, a full bullish format seems to trace from around the 19:35 to the 2:36 mark and, then, a full bearish format seems to trace from around 7:25 to the 10:32 mark. I understand that Renko charts are not time based; however, have you tried coding anything along the lines of cycloids?
 
You have an interesting histogram on the representation above, @rad14733! It seems that the geometrical concept of cycloid can be applied there. The histogram shows some interruptions on the cycloid format but, for instance, a full bullish format seems to trace from around the 19:35 to the 2:36 mark and, then, a full bearish format seems to trace from around 7:25 to the 10:32 mark. I understand that Renko charts are not time based; however, have you tried coding anything along the lines of cycloids?

Thanks for thee reply... No, I have not done any cycloid research to date but have seen discussions over the years...

With this Renko Bar Chart any of a wide array of Momentum indicators mates well for confluence... I've also used PPO and MACD both with and without customized settings...
 
You have an interesting histogram on the representation above, @rad14733! It seems that the geometrical concept of cycloid can be applied there. The histogram shows some interruptions on the cycloid format but, for instance, a full bullish format seems to trace from around the 19:35 to the 2:36 mark and, then, a full bearish format seems to trace from around 7:25 to the 10:32 mark. I understand that Renko charts are not time based; however, have you tried coding anything along the lines of cycloids?
I have built a "Cyclic_Phase_Oscillator"
https://usethinkscript.com/threads/cyclic-phase-oscillator.22350/
that gives you:
  • Phase detection (Compression / Expansion / Exhaustion / Chop)
  • Early expansion triggers
  • Momentum strength (histogram)
  • Clean labels
  • Minimal lag (no heavy recursion / no long lookbacks)
You cannot directly plot a geometric cycloid on price and expect it to work. Markets are non-uniform in time, volatility-adjusted and influenced by external shocks. You can translate geometry into behaviors.

Cycloid-Like Market Mapping

Cycloid PhaseMarket Equivalent
Rising arcExpansion (trend move)
PeakExhaustion / liquidity grab
Falling arcPullback / retracement
BottomAccumulation / compression
 
Last edited by a moderator:
Your question allowed me to post a study I've found worthwhile trading futures. That CMO-Blended MAs study is here:
https://usethinkscript.com/threads/...r-with-blended-moving-averages-signals.22351/

I hadn't looked at Renko charts before, but have good luck with tick charts. After tweaking the Renko, this yields about 10X profit (without subtracting contract costs) over a 3 year, 10 tick Renko chart. The setup averages about 1 trade per day.

Screenshot 2026-04-18 073435.png


Settings:

Screenshot 2026-04-18 074148.png
 
Be careful. SHOULD YOU USE RENKO? Mixed — depends on goal

Pros:
  • Very clean trends
  • Removes chop
  • Makes crossover systems look amazing
Cons (important for YOU):
  • CMO becomes distorted (no true price flow)
  • Volatility structure disappears
  • Signals can become “too perfect” (dangerous illusion)
Renko is Not ideal for signal generation, OK for visual confirmation only.

SHOULD YOU USE TICK CHARTS? YES — big improvement
Why you might ask?

Tick charts:
  • reduce time noise
  • show real transaction flow
  • speed up momentum shifts
Effect on your indicator:
  • Crossovers happen earlier
  • Signals feel more responsive
  • Better for execution timing

Renko has multi-layer smoothing stack, which makes it LAGGY, but by design. I would use Renko for visual and tick for entries. Plus, Renko gives late signals due to CMO smoothing (ExpAverage), Fast MA smoothing (2 layers) and Slow MA smoothing (2 layers). Signals come AFTER move confirmation, not early.
 
Thanks for thee reply... No, I have not done any cycloid research to date but have seen discussions over the years...

With this Renko Bar Chart any of a wide array of Momentum indicators mates well for confluence... I've also used PPO and MACD both with and without customized settings...
Thank you for your insights/comments, @rad14733! Very interesting concept with the application of momentum studies.

 
I have built a "Cyclic_Phase_Oscillator" that gives you:
  • Phase detection (Compression / Expansion / Exhaustion / Chop)
  • Early expansion triggers
  • Momentum strength (histogram)
  • Clean labels
  • Minimal lag (no heavy recursion / no long lookbacks)
You cannot directly plot a geometric cycloid on price and expect it to work. Markets are non-uniform in time, volatility-adjusted and influenced by external shocks. You can translate geometry into behaviors.

Cycloid-Like Market Mapping

Cycloid PhaseMarket Equivalent
Rising arcExpansion (trend move)
PeakExhaustion / liquidity grab
Falling arcPullback / retracement
BottomAccumulation / compression
@antwerks, I also appreciate your insights and I understand your point! Also, thank you for sharing your work.
 
I have built a "Cyclic_Phase_Oscillator" that gives you:
  • Phase detection (Compression / Expansion / Exhaustion / Chop)
  • Early expansion triggers
  • Momentum strength (histogram)
  • Clean labels
  • Minimal lag (no heavy recursion / no long lookbacks)
You cannot directly plot a geometric cycloid on price and expect it to work. Markets are non-uniform in time, volatility-adjusted and influenced by external shocks. You can translate geometry into behaviors.

Cycloid-Like Market Mapping

Cycloid PhaseMarket Equivalent
Rising arcExpansion (trend move)
PeakExhaustion / liquidity grab
Falling arcPullback / retracement
BottomAccumulation / compression
please post the scrip for "Cyclic oil osc" indicator as shown here
 
You would trade most all symbols the same when using Renko Bars... I am right now putting some polishing touches on a Renko Bar Chart for SPY but it could be used for any symbol although it may need minor adjustments to fine tune to whichever equity you choose... You should be able to duplicate most of the Chart depicted below... It's mainly Support and Resistance, SuperTrend, and VWAP... The rest is just personal customizations...

View attachment 27363
Where might I find the histogram from this image? I can't seem to locate it with a search of the site
 
Where might I find the histogram from this image? I can't seem to locate it with a search of the site

Which, the CODH_Close_Open_Diff_Histogram...??? I've never posted it that I'm aware of...

Here you go: http://tos.mx/!9Q9sT3CZ


Ruby:
# CODH_Close_Open_Diff_Histogram
# Paints a Histogram  and Average based on the difference between Close and Open
# Created by rad14733 for personal use
# v1.0 : 2025-06-09 : Initial release
# v1.1 : 2026-03-21 : Added optional vertival lines on crossovers

declare lower;

input avgLen = 8;
input avgType = AverageType.SIMPLE;
input avgTrend = no;
input showLabels = yes;
input showVertLines = yes;
input lineweight = 3;
input histoweight = 5;

def val = MovingAverage(avgType, close - open, avgLen);

DefineGlobalColor("MomoPosUp", Color.GREEN);
DefineGlobalColor("MomoPosDn", Color.DARK_GREEN);
DefineGlobalColor("MomoNegDn", Color.RED);
DefineGlobalColor("MomoNegUp", Color.DARK_RED);

plot ZeroLine = 0;
ZeroLine.SetLineWeight(1);
ZeroLine.SetDefaultColor(Color.WHITE);
ZeroLine.SetPaintingStrategy(PaintingStrategy.LINE);

plot avg = MovingAverage(avgType, val, avgLen);
avg.DefineColor("avgUp", Color.UPTICK);
avg.DefineColor("avgDn", Color.DOWNTICK);
avg.SetLineWeight(lineweight);
avg.SetDefaultColor(Color.ORANGE);
avg.AssignValueColor(if avg > val then avg.Color("avgDn") else avg.Color("avgUp"));

plot Momo = val;
Momo.AssignValueColor(
  if avgTrend and avg > val then Color.RED else if avgTrend and avg < val then Color.GREEN
    else if Momo > Momo[1] and Momo > 0
    then GlobalColor("MomoPosUp")
    else if Momo > 0 and Momo < Momo[1]
    then GlobalColor("MomoPosDn")
    else if Momo < 0 and Momo < Momo[1]
    then GlobalColor("MomoNegDn")
    else GlobalColor("MomoNegUp")
);
Momo.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
Momo.SetLineWeight(histoweight);

AddLabel(showLabels, " CloseOpenDiff ",
    if avgTrend and avg > val
    then Color.RED
    else if avgTrend and avg < val
    then Color.GREEN
    else if Momo > Momo[1] and Momo > 0
    then GlobalColor("MomoPosUp")
    else if Momo > 0 and Momo < Momo[1]
    then GlobalColor("MomoPosDn")
    else if Momo < 0 and Momo < Momo[1]
    then GlobalColor("MomoNegDn")
    else GlobalColor("MomoNegUp")
);

AddLabel(showLabels, " COD Avg ", if avg > val then avg.Color("avgDn") else avg.Color("avgUp"));

AddVerticalLine(showVertLines and Momo crosses above 0, "xUp", Color.GREEN, Curve.FIRM);
AddVerticalLine(showVertLines and Momo crosses below 0, "xDn", Color.RED, Curve.FIRM);

# END - CODH_Close_Open_Diff_Histogram
 
Solution
Which, the CODH_Close_Open_Diff_Histogram...??? I've never posted it that I'm aware of...

Here you go: http://tos.mx/!9Q9sT3CZ


Ruby:
# CODH_Close_Open_Diff_Histogram
# Paints a Histogram  and Average based on the difference between Close and Open
# Created by rad14733 for personal use
# v1.0 : 2025-06-09 : Initial release
# v1.1 : 2026-03-21 : Added optional vertival lines on crossovers

declare lower;

input avgLen = 8;
input avgType = AverageType.SIMPLE;
input avgTrend = no;
input showLabels = yes;
input showVertLines = yes;
input lineweight = 3;
input histoweight = 5;

def val = MovingAverage(avgType, close - open, avgLen);

DefineGlobalColor("MomoPosUp", Color.GREEN);
DefineGlobalColor("MomoPosDn", Color.DARK_GREEN);
DefineGlobalColor("MomoNegDn", Color.RED);
DefineGlobalColor("MomoNegUp", Color.DARK_RED);

plot ZeroLine = 0;
ZeroLine.SetLineWeight(1);
ZeroLine.SetDefaultColor(Color.WHITE);
ZeroLine.SetPaintingStrategy(PaintingStrategy.LINE);

plot avg = MovingAverage(avgType, val, avgLen);
avg.DefineColor("avgUp", Color.UPTICK);
avg.DefineColor("avgDn", Color.DOWNTICK);
avg.SetLineWeight(lineweight);
avg.SetDefaultColor(Color.ORANGE);
avg.AssignValueColor(if avg > val then avg.Color("avgDn") else avg.Color("avgUp"));

plot Momo = val;
Momo.AssignValueColor(
  if avgTrend and avg > val then Color.RED else if avgTrend and avg < val then Color.GREEN
    else if Momo > Momo[1] and Momo > 0
    then GlobalColor("MomoPosUp")
    else if Momo > 0 and Momo < Momo[1]
    then GlobalColor("MomoPosDn")
    else if Momo < 0 and Momo < Momo[1]
    then GlobalColor("MomoNegDn")
    else GlobalColor("MomoNegUp")
);
Momo.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
Momo.SetLineWeight(histoweight);

AddLabel(showLabels, " CloseOpenDiff ",
    if avgTrend and avg > val
    then Color.RED
    else if avgTrend and avg < val
    then Color.GREEN
    else if Momo > Momo[1] and Momo > 0
    then GlobalColor("MomoPosUp")
    else if Momo > 0 and Momo < Momo[1]
    then GlobalColor("MomoPosDn")
    else if Momo < 0 and Momo < Momo[1]
    then GlobalColor("MomoNegDn")
    else GlobalColor("MomoNegUp")
);

AddLabel(showLabels, " COD Avg ", if avg > val then avg.Color("avgDn") else avg.Color("avgUp"));

AddVerticalLine(showVertLines and Momo crosses above 0, "xUp", Color.GREEN, Curve.FIRM);
AddVerticalLine(showVertLines and Momo crosses below 0, "xDn", Color.RED, Curve.FIRM);

# END - CODH_Close_Open_Diff_Histogram
That's the one I was looking for. Much appreciated!
 
One last word on Renko backtesting: Schwab's Renko data that they transmit, older than 2 weeks is not just a suspect, its a convicted murderer.

If you look at Renko charts with long timelines you'll see that the data from:
- Present to 2 weeks back appears to use OHLC data on a 1 minute time frame.
- 2 weeks to 6 months (approx.) appears to use use OHLC data on a 1 hour time frame.
- Older than 6 months appears to use OHLC data on a 1 day time frame.

I imagine they do this to reduce data transmission. But this will absolutely kill your backtest results. By aggregating on longer timeframes, you will lose the volatility experienced within that timeframe. Instead of seeing a few up and down Renko bars within a volatile day, a 1 day aggregation (that is subsequently analyzed to produce Renko bars) will only show you a single trend during that day.

Call it "repainting" or "intra-bar price distortion" or whatever, it is a stone cold assassin.
 

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
658 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