Q-Trend

Category: Indicators By: Nicolas Created: July 17, 2023, 2:16 PM
July 17, 2023, 2:16 PM
Indicators
18 Comments

Q-Trend is an multipurpose indicatorm that can be used for swing- and trend-trading equally on any timeframe (non-volatile markets are better for this thing).

Settings:

  • Trend period – used to calculate trend line in the special moments(will explain below);
  • ATR Multiplier – changes sensitivity. The higher the multiplier = the more sensitive it is.
  • Also option to smooth source data (helps get cleaner signals, as always).

How to use?
Signals are given on the chart. Also ou can use trend line as S/R line.

The idea behind:

Terms:
SRС = Source
TL = trend line;
MP = ATR multiplier;
ATR = ATR 🙂
TL = (highest of source P-bars back + lowest of source P-bars back) / 2
Epsilon = MP * ATR
I was thinking for a week about combining volatility and relation between highest and lowest price point. That why I called indicator Q-Trend = Quantitative Trend, as I was trying to think about price in a mathematical way.

Okay, time to go philosophical:
1) TL is shows good price trend, but as it is slow enough and not enough informative, we need add additional conditions to produce signals.
2) Okay, so what can we add as conditions? We need to take volatility into account, as it is crucial in the moments of market uncertainty. So let’s use ATR (Average True Range) somehow. My idea is that if SRC breaks TL + ATR, then it means that there will be upmove and we update our TL. Analogically for SRC breaking TL – ATR (breaks are crosses of TL +- ATR lines).
Conclusion:
– if SRC breaks TL + ATR, it is a BUY signal and update of trend line;
– if SRC breaks TL – ATR, it is a SELL signal and update of trend line;

(description from original author: tarasenko_)

//PRC_Q-Trend | indicator
//17.07.23
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge

// ---settings 
//p = 200 //Trend period
//atrp = 14 //ATR Period
//mult = 1.0 //ATR Multiplier
//mode = 1 //Signal mode options = [1="Type A", 2="Type B"]
//useemasmoother = 0 //Smooth source with EMA? 0=false ; 1=true
//srcemaperiod = 3 //EMA Smoother period
//colorbars = 0 //Color bars? 0=false ; 1=true
//signalsview = 0 //0 = trend inversion ; 1 = strong buy / strong sell only   
// --- end of settings 

source = customclose

// Calculations
if useemasmoother then 
src = average[srcemaperiod,1](source)
else
src=source
endif 

hh = highest[p](src) // Highest of src p-bars back;
ll = lowest[p](src) // Lowest of src p-bars back.
d = hh - ll

if barindex>p then 
once m = (hh + ll) / 2 // Initial trend line;
atr = AverageTrueRange[atrp][1] // ATR;
epsilon = mult * atr // Epsilon is a mathematical variable used in many different theorems in order to simplify work with mathematical object. Here it used as sensitivity measure.

if mode=2 then  //type B
changeup = src crosses over m+epsilon or src crosses under m+epsilon
changedown = src crosses over m-epsilon or src crosses under m-epsilon
else
changeup = src crosses over m+epsilon or src > m+epsilon
changedown = src crosses under m-epsilon or src < m-epsilon
endif

sb = open < ll + d / 8 and open >= ll
ss = open > hh - d / 8 and open <= hh
strongbuy = sb or sb[1] or sb[2] or sb[3] or sb[4]
strongsell = ss or ss[1] or ss[2] or ss[3] or ss[4]

if (changeup or changedown) then 
if changeup then 
m=m + epsilon
elsif changedown then 
m=m - epsilon
endif
else
m=m[1]
endif

if changeup then 
r=0
g=255
elsif changedown then 
r=255
g=0
endif 

if colorbars then 
drawcandle(open,high,low,close)coloured(r,g,0)
endif 

if signalsview=1 then
if strongbuy and ls<>1 then
drawtext("▲",barindex,low) coloured("lime")
ls=1
endif
if strongsell and ls<>-1 then
drawtext("▼",barindex,high) coloured("red")
ls=-1
endif
else
if r<>r[1]and r>0 then 
drawtext("▼",barindex[1],m[1]) coloured("red")
endif 
if r<>r[1]and r=0 then
drawtext("▲",barindex[1],m[1]) coloured("lime")
endif
endif
endif 


RETURN m style(line,3) coloured(r,g,0)

Download
Filename: PRC_Q-Trend.itf
Downloads: 490
Nicolas Master
I created ProRealCode because I believe in the power of shared knowledge. I spend my time coding new tools and helping members solve complex problems. If you are stuck on a code or need a fresh perspective on a strategy, I am always willing to help. Welcome to the community!
Author’s Profile

Comments

Logo Logo
Loading...