Kase Peak Oscillator - v2

Category: Indicators By: Nicolas Created: July 22, 2017, 8:21 AM
July 22, 2017, 8:21 AM
Indicators
12 Comments

The Kase Peak Oscillator technical indicator was developed by Cynthia Kase.

The Kase Peak Oscillator indicator algorithm combines an Average True Range indicator and a Standard Deviation volatility indicator.

The logarithmic models used better reflect the true nature of the market and allow the indicator to automatically adapt to cycle time and volatility.

Second version of this indicator already in the library, but this time converted from a more advanced code translated from MT4 code, by a request in forums.

//PRC_Kase Peak Oscillator V2 | indicator
//19.07.2017
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
//translated from MT4 code

// --- settings
//kpoDeviations  = 2.0 // Kase peak oscillator deviations
//kpoShortCycle  = 8   // Kase peak oscillator short cycle
//kpoLongCycle   = 65  // Kase peak oscillator long cycle
//kpoSensitivity = 40
//allPeaksMode = 0 //1=true ; 0=false
// --- end of settings

if barindex>kpoLongCycle*2 then
 ccLog = Log(Close[0]/Close[1])
 ccDev = std[9](ccLog)

 avg = average[30](ccDev)

 if (avg>0) then
  max1 = 0
  maxs = 0

  for k = kpoShortCycle to kpoLongCycle-1 do
   max1 = Max(Log(High[0]/Low[0+k])/Sqrt(k),max1)
   maxs = Max(Log(High[0+k]/Low[0])/Sqrt(k),maxs)
  next
  x1 = max1/avg
  xs = maxs/avg
 endif

 xp    = kpoSensitivity*(average[3](x1)-average[3](xs))
 xpAbs = Abs(xp)

 kpoBuffer   = xp
 kphBuffer   = xp

 tmpVal = average[50](xpAbs)+kpoDeviations*std[50](xpAbs)
 maxVal = Max(90.0,tmpVal)
 minVal = Min(90.0,tmpVal)

 if (kpoBuffer > 0) then
  kpdBuffer =  maxVal
  kpmBuffer =  minVal
 else
  kpdBuffer = -maxVal
  kpmBuffer = -minVal
 endif

 kppbuffer=0
 if (not allPeaksMode) then
  if (kpoBuffer[1]>0 and kpoBuffer[1]>kpoBuffer[0] and kpoBuffer[1]>=kpoBuffer[2] and kpoBuffer[1]>= maxVal) then
   kppBuffer = kpoBuffer[1]
  endif
 if (kpoBuffer[1]<0 and kpoBuffer[1]<kpoBuffer[0] and kpoBuffer[1]<=kpoBuffer[2] and kpoBuffer[1]<=-maxVal) then
   kppBuffer = kpoBuffer[1]
 endif
 else
  if (kpoBuffer[1]>0 and kpoBuffer[1]>kpoBuffer[0] and kpoBuffer[1]>=kpoBuffer[2]) then
   kppBuffer = kpoBuffer[1]
  endif
  if (kpoBuffer[1]<0 and kpoBuffer[1]<kpoBuffer[0] and kpoBuffer[1]<=kpoBuffer[2]) then
   kppBuffer = kpoBuffer[1]
  endif
 endif
endif

return kphBuffer coloured(105,105,105) style(histogram), kpoBuffer coloured(105,105,105) style(line,2), kpdBuffer coloured(255,0,255), kpmBuffer coloured(0,191,255), kppBuffer coloured(255,0,255) style(histogram,2)

 

Download
Filename: PRC_Kase-Peak-Oscillator-v2.itf
Downloads: 264
Nicolas Master
Trader, Programmer, Coder enthusiast. Work with each other for a common goal.
Author’s Profile

Comments

Logo Logo
Loading...