Quadratic Semaphore

Category: Indicators By: Nicolas Created: August 25, 2018, 1:13 PM
August 25, 2018, 1:13 PM
Indicators
17 Comments

The quadratic semaphore indicator is an indicator that find confirmed market u-turn with the help of 2 quadratic regression calculated with Highs and Lows over the last “length” periods.

“p” setting is candlesticks quantity to confirmed the quadratic regression has formed a High or Low parabola, such as Fractals. Consecutive same signals can happen due to the use of different price values for upper and lower semaphore.

//PRC_Quadratic Semaphore | indicator
//25.08.2018
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge

// --- settings
length = 30
p=6
// --- end of settings

x1 = barindex
x2 = square(x1)
//upper semaphore
y = high

S11 = summation[length](x2) - square(summation[length](x1))/length
S12 = summation[length](x1*x2) - (summation[length](x1) * summation[length](x2))/length
S22 = summation[length](square(x2)) - square(summation[length](x2))/length
Sy1 = summation[length](y*x1) - (summation[length](y)*summation[length](x1))/length
Sy2 = summation[length](y*x2) - (summation[length](y)*summation[length](x2))/length

max1 = average[length](x1)
max2 = average[length](x2)
may = average[length](y)
b2 = ((Sy1 * S22) - (Sy2*S12))/(S22*S11 - square(S12))
b3 = ((Sy2 * S11) - (Sy1 * S12))/(S22 * S11 - square(S12))
b1 = may - b2*max1 - b3*max2
qr = b1 + b2*x1 + b3*x2

//lower semaphore
yl = low

Sy1l = summation[length](yl*x1) - (summation[length](yl)*summation[length](x1))/length
Sy2l = summation[length](yl*x2) - (summation[length](yl)*summation[length](x2))/length

mayl = average[length](yl)
b2l = ((Sy1l * S22) - (Sy2l*S12))/(S22*S11 - square(S12))
b3l = ((Sy2l * S11) - (Sy1l * S12))/(S22 * S11 - square(S12))
b1l = mayl - b2l*max1 - b3l*max2
qrl = b1l + b2l*x1 + b3l*x2

period = round(p/2)+1
hh = qr[period]
ll = qrl[period]
countH = 0
countL = 0
for i = 1 to period-1 do
 if qr[i]<hh then
  countH=countH+1
 endif
 if qrl[i]>ll then
  countL=countL+1
 endif
next
for i = period+1 to p+1 do
 if qr[i]<hh then
  countH=countH+1
 endif
 if qrl[i]>ll then
  countL=countL+1
 endif
next
atr = averagetruerange[length]
if countH=p then
 pivotH = high[period]
 drawtext("●",barindex[period],pivotH+atr/2,dialog,bold,20) coloured(25,25,112)
endif
if countL=p then
 pivotL = low[period]
 drawtext("●",barindex[period],pivotL-atr/2,dialog,bold,20) coloured(176,23,31)
endif

return

 

Download
Filename: PRC_Quadratic-Semaphore.itf
Downloads: 1005
Download
Filename: quadratic-semaphore.png
Downloads: 231
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...