Vervoort Heiken-Ashi LongTerm Candlestick Oscillator [LazyBear]

HACOLT (Heikin Ashi Candles Oscillator Long Term) is a technical indicator designed by Sylvain Vervoort. It is based on Mr.Vervoort's other indicator, HACO (Heikin-Ashi Candles Oscillator - posted here:

Optimized for long-term trading, HACOLT shows three levels: -1, 0 and 1. These levels suggest "an open short position", "no open position", and "an open long position", respectively. Passing from a certain level to another is viewed as a trading signal:
- Rising from -1 or 0 to 1 suggests a Long Entry and Short exit;
- Falling from 1 to 0 or -1 suggests a Long Exit;
- Falling from 1 or 0 to -1 indicates a Short Entry.

Fits in nicely with any trading setup as a confirmation indicator

More info:

List of my other indicators:
- GDoc:
- Chart:
Master Index: List of all my indicators

Remove from Favorite Scripts Add to Favorite Scripts
// @author LazyBear 
// List of all my indicators: 
study("Vervoort LongTerm Heiken-Ashi Candlestick Oscillator [LazyBear]", shorttitle="HACOLT_LB")
length = input(defval=55, title="TEMA Period")
emaLength = input(defval=60, title="EMA Period")
candleSizeFactor = input(defval=1.1, title="Candle size factor")
calc_tema(src, length) =>
	ema1 = ema(src, length)
	ema2 = ema(ema1, length)
	ema3 = ema(ema2, length)
	3 * (ema1 - ema2) + ema3

haOpen = nz((haOpen[1] + ohlc4) / 2, ohlc4)
haClose = (haOpen + max(high, haOpen) + min(low, haOpen) + ohlc4) / 4
thaClose = calc_tema(haClose, length)
thl2 = calc_tema(hl2, length)
haCloseSmooth = 2 * thaClose - calc_tema(thaClose, length)
hl2Smooth = 2 * thl2 - calc_tema(thl2, length)
shortCandle = abs(close - open) < ((high - low) * candleSizeFactor)
keepn1 = ((haClose >= haOpen) and (haClose[1] >= haOpen[1])) or (close >= haClose) or (high > high[1]) or (low > low[1]) or (hl2Smooth >= haCloseSmooth)
keepall1 = keepn1 or (keepn1[1] and (close >= open) or (close >= close[1]))
keep13 = shortCandle and (high >= low[1])
utr = keepall1 or (keepall1[1] and keep13)
keepn2 = (haClose < haOpen) and (haClose[1] < haOpen[1]) or (hl2Smooth < haCloseSmooth)
keep23 = shortCandle and (low <= high[1])
keepall2 = keepn2 or (keepn2[1] and (close < open) or (close < close[1]))
dtr = keepall2 or (keepall2[1] and keep23)
upw = dtr == 0 and dtr[1] and utr
dnw = utr == 0 and utr[1] and dtr
upwWithOffset = upw != dnw ? upw : nz(upwWithOffset[1])

buySig = upw or (not dnw and (na(upwWithOffset) ? 0 : upwWithOffset))
ltSellSig = close < ema(close, emaLength)
neutralSig = buySig or (ltSellSig ? 0 : nz(neutralSig[1]))
hacolt = buySig ? 1 : neutralSig ? 0 : -1
plot(not overlayMode ? hacolt : na, style=columns, color=hacolt>0?green:hacolt<0?red:blue, title="HACOLT")
Big Time Work...From a Big Time Coder...
+1 Reply
LazyBear PRO ChrisMoody
Thx Chris
+1 Reply
Awesome. It's definitely both a interesting and a lagging indicator. Showing signals where most other indicators show something else:

+1 Reply
ChartArt ChartArt
3 different always opposing signals :)

+3 Reply
The so called lag is actually good, makes you buy on a pullback if you're smart.
ChartArt IvanLabrie
It's not that every example looked as good as these obvious pullback chances.
I see you are still on your quest for that holy-grail setup. :)
+1 Reply
ChartArt LazyBear
Oh, yes. I am. And with each new indicator which I'm testing and comparing to others I'm coming closer to my goal :P That's one small step for (a) man; one giant leap for 'that holy-grail setup' :)
These aren't opposing Signals...You have to take in Context what type of move your going to get based on the Longer Trend.

When LazyBears bars are red...and you get a bottoming only expect a small move up providing you a entry to go with the overall trend...which his Candles clearly show.

Same if his bars are green and you topping signal.

Those provide good entry levels to get in trade.

What your looking for is a Bottoming Signal when his bars are Green....or a topping signal when his bars are red...That == A Great Entry To Go With Trend. the right of the chart you get 2 topping signals when the bars are green....You should expect a small pullback. But when you got Bottoming Signal with Green Bars Great Entry for potentially Trend Reversal...Price Action was showing a Higher Low for the first time in a While on the Chart.

Example 2 - The lowest Red Candles you got a bottoming signal...Nice entry for a counter trend move....however while you were in that trade the bars turned Green...Then you got a bottoming signal...Great place to Add to Position. Therefore you could have caught the bottom of a Trend Reversal...

It's all how you read the charts...Remember...My Indicators...LazyBears Indicators...just tools to help visually. Price Action tells All...Learn How to read Price Action First...then Indicators filter out Higher probability moves...
+2 Reply
LazyBear PRO ChrisMoody

Great explanation.
+1 Reply
ChartArt LazyBear
Thank you for your detailed comment Chris. I understand the trading system idea you laid out. The chart I posted was just a bad example where most indicators worked more or less well with each other, although the signals are not similar. But I had previously looked at more chart data where it wasn't so easy to combine the signals of these indicators in such a way and my comment was mainly geared towards what isn't visible in this screenshot. My mistake was to not clarify this more.

Overall, after testing more indicators the last days I'm still convinced the shown "lag" is a downside of the 'Heikin Ashi Candles Oscillator Long Term' indicator and not an advantage. But I'm not going to start a debate here to defend my opinion. Whoever wants to treat this "lag" disadvantage of this indicator as a helpful feature can feel free to do so :)
Nice Post Though...Thanks for always being so active...Your posts help a lot of other people out!!!
It looks like those "lags" are the signal to wait on if your going to time a move with derivatives such as options.
+1 Reply
Great Code Again...Congrats for winning Indicator of the week!!!

Big Time People Get Big Time Results...And LazyBear....You are the definition of a Big Time Coder!!!!
+1 Reply
LazyBear PRO ChrisMoody
Indicator of the week? lol...thanks for letting me know Chris.

Now, I have something to show my wife for all the time I am spending on TV :)
+4 Reply
I really like how you used the indicator box with overlay indicator. More please!
+1 Reply
Do you have any other momentum colored candlestick chart indicators?
Please do check out all my indicators - - I have many other momentum indicators. Adding candle colors is easy, just let me know which one you'd like to try.
ifty78692 LazyBear
Are your indicators available for MT4?
This is a great free candle indicator
LazyBear PRO QuantitativeExhaustion
Thanks JR
Blue Caution / Trend Change

Green Trend Up
Red Trend Down
Hi Chris,
I tried to copy your code into a strategy code version 3 but have undeclared identifier error for HaOpen, HaClose, upwWithOffset and neturalSig.
I have tried to use the following and managed to solve it for HaOpen, HaClose and neutralSig. However, I am still getting propble with upwWithOffset stating it is bool series.
HaOpen = 0.0
HaOpen := (your definition)
If it is not too much trouble, can you advise how to change your code so that it can use with version 3?
Ideas Scripts Chart
United States
United Kingdom
Home Stock Screener Forex Signal Finder Economic Calendar How It Works Chart Features House Rules Moderators For the WEB Widgets Stock Charting Library Priority Support Feature Request Blog & News FAQ Help & Wiki Twitter
Private Messages Chat Ideas Published Followers Following Priority Support Public Profile Profile Settings Account and Billing Sign Out