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
List of my other indicators:
- GDoc: https://docs.google.com/document/d/15AGCufJZ8CIUvwFJ9W-IKns88gkWOKBCvByMEvm5MLo/edit?usp=sharing
// // @author LazyBear // List of all my indicators: // https://docs.google.com/document/d/15AGCufJZ8CIUvwFJ9W-IKns88gkWOKBCvByMEvm5MLo/edit?usp=sharing // 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") overlayMode=input(false) calc_tema(src, length) => ema1 = ema(src, length) ema2 = ema(ema1, length) ema3 = ema(ema2, length) 3 * (ema1 - ema2) + ema3 haOpen = nz((haOpen + 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 >= haOpen)) or (close >= haClose) or (high > high) or (low > low) or (hl2Smooth >= haCloseSmooth) keepall1 = keepn1 or (keepn1 and (close >= open) or (close >= close)) keep13 = shortCandle and (high >= low) utr = keepall1 or (keepall1 and keep13) keepn2 = (haClose < haOpen) and (haClose < haOpen) or (hl2Smooth < haCloseSmooth) keep23 = shortCandle and (low <= high) keepall2 = keepn2 or (keepn2 and (close < open) or (close < close)) dtr = keepall2 or (keepall2 and keep23) upw = dtr == 0 and dtr and utr dnw = utr == 0 and utr and dtr upwWithOffset = upw != dnw ? upw : nz(upwWithOffset) buySig = upw or (not dnw and (na(upwWithOffset) ? 0 : upwWithOffset)) ltSellSig = close < ema(close, emaLength) neutralSig = buySig or (ltSellSig ? 0 : nz(neutralSig)) hacolt = buySig ? 1 : neutralSig ? 0 : -1 plot(not overlayMode ? hacolt : na, style=columns, color=hacolt>0?green:hacolt<0?red:blue, title="HACOLT") barcolor(overlayMode?hacolt>0?green:hacolt<0?red:blue:na)
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?