HighLow Adaptive Momentum Cycle

HighLow Adaptive Momentum Cycle

Here is a new oscillator made of a cycle calculation of the median price calculated from the highest high and lowest low of the last x periods.

An adaptive period formula can be activated to calculate the “best” period of the hi/lo channel because of market noises.

I added 4 different returned buffers to identify when the oscillator is increasing or declining above of below the 0 level which represent the bull/bear side of the market.

 

 

 

Share this

Risk disclosure:

No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.

ProRealTime ITF files and other attachments : How to import ITF files into ProRealTime platform?

PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials

  1. winnie37 • 08/28/2016 #

    bonsoir Nicolas,
    je réagis tardivement à cet indicateur 🙂 Ne serait-il pas particulièrement adapté dans le cadre de stratégies binaires, dans le sens de la tendance? A tester….

    • Nicolas • 08/28/2016 #

      Comme un nombre incalculable d’autres indicateurs codés deci delà, je compte sur d’autres pour les tester et en profiter. Si j’ai eu l’idée de faire cet indicateur à l’époque et de le poster ici, c’est qu’il m’a semblé assez signicatif pour être utilisé. Si tu as des exemples de sa bonne utilisation selon ta propre interprétation,  ça m’intéresse d’en discuter 🙂  

  2. NeraVeem • 08/28/2016 #

    Dear Nicolas,
    First of all, thank you for all your contributions, I always study them with great pleasure. I assume you are the creator of the prc-fxhilo indicator. As an indicator, this indicator is easy to invoke in other indicators. However, in the screening section this does not seem to be the case. Neither as a call function nor in case you use the code directly in a screen builder. Do I miss something or simply can not? Like to hear from you. Sincerely, Gerard

    • Nicolas • 08/28/2016 #

      It should not be a problem to use it in a stock screener, what is the problem exactly? Be aware that there are 4 different buffers, 2 for ascending and declining above 0 and the 2 others for when the oscillator is below 0.

    • NeraVeem • 08/28/2016 #

      Dear Nicolas, 
      thnx for your reply! In your answer you said: ‘It should not be a problem to use it in a stock screener’. I am afraid that the problem my ‘use direction’ is. In other words: I tried to use the indicator in a forex screener. The second possibility cause of the problem is maybe that I only use the minustwo and the plustwo lines. The other signals are ‘ignored’. Should that possible the problem? Kind regards, Gerard

    • Nicolas • 08/28/2016 #

      What condition are you trying to look for? When the oscillator is crossing the zero line?

  3. NeraVeem • 08/28/2016 #

    Dear Nicolas,
    ‘Reading’ the ‘output’ of the indicator, it seems to me that there are no ‘crossings’.  The plustwo finshed at the zero line in case of bearing direction, the minustwo also in case of bullish direction. That’s why I thought to create a screener where the one (for example: minustwo finished at zero line and the plustwo ‘take it over’. That simulates for me a ‘crossing’. Because in my opinion thre are no real crossings, I thought I would solve it by ‘greater than’ (in bullish case) or ‘less than’  ( in bearish case) operators. The remaining variables I thought would turn off with the ‘REM’ command or use the ‘ignored’ construction. De with the ‘Ignored’ command  fails and the option with the ‘REM’ gives no results in the screener.
    Please, see script below. 
    Adaptive = 1myPeriod = 14
    once f = 0once g = 0
    if barindex>myPeriod then
    //adaptive periodaveragePeriod = myPeriodif adaptive=1 and averagePeriod > 1 thenprice = medianpriceminPeriod = round(averagePeriod/2.0)maxPeriod = minPeriod*5.0endPeriod = round(maxPeriod)signal = Abs((price-stored[endPeriod]))noise = 0.00000000001
    for k=1 to endPeriod donoise=noise+Abs(price-stored[k])averagePeriod = round(((signal/noise)*(maxPeriod-minPeriod))+minPeriod)next
    endifstored=priceaverageperiod=max(averageperiod,2)myHigh = Highest[abs(averagePeriod)](high)myLow = Lowest[abs(averagePeriod)](Low)mean = (High + Low) / 2.0myVAR1 = 0.66 * ((mean – myLow) / (myHigh – myLow) – 0.5) + 0.67 * fmyVAR1 = Min(Max(myVAR1, -0.999), 0.999)fxhilo = Log((myVAR1 + 1.0) / (1 – myVAR1)) / 2.0 + g / 2.0 //main linef = myVAR1g = fxhiloif fxhilo>fxhilo[1] and fxhilo>0 thenREM plusone = fxhiloREM plustwo = 0REM minusone = 0minustwo = 0elsif fxhilo<fxhilo[1] and fxhilo>0 thenREM plusone = 0REM plustwo = fxhiloREM minusone = 0minustwo = 0elsif fxhilo>fxhilo[1] and fxhilo<0 thenREM plusone = 0REM plustwo = 0REM minusone = fxhilominustwo =0elsif fxhilo<fxhilo[1] and fxhilo<0 then REM plusone = 0REM plustwo = 0REM minusone = 0minustwo = fxhiloendifendif
    // Bullish Sign
    If MinusTwo < minusTwo[1] OR MinusTwo[1] < minusTwo[2]ThenCriteria = 110EndIf
    Screener [Criteria] (Criteria AS “MinusLow”)
    I’ve tried to upload a sceenprint as example, but that was refused by this text editor.
    So far my problem.
    Kind regards,
    Gerard

    • Nicolas • 08/28/2016 #

      Sorry, it has needed a lot more customisation of the indicator’s code to get a relevant screener. This code should work (worked for me on a daily timeframe for NASDAQ stocks for instance)
      // parameters
      myPeriod = 21
      Adaptive = 1 //boolean

      once f = 0
      once g = 0

      //adaptive period
      averagePeriod = myPeriod
      if adaptive=1 and averagePeriod > 1 then
      price = medianprice
      minPeriod = round(averagePeriod/2.0)
      maxPeriod = minPeriod*5.0
      endPeriod = round(maxPeriod)
      signal = Abs((price-stored[endPeriod]))
      noise = 0.00000000001
      mymaxbar = 254-maxPeriod
      endif

      if barindex>mymaxbar then

      if adaptive=1 and averagePeriod > 1 then
      for k=1 to endPeriod do
      noise=noise+Abs(price-stored[k])
      averagePeriod = round(((signal/noise)*(maxPeriod-minPeriod))+minPeriod)
      next

      endif
      stored=price
      averageperiod=max(averageperiod,2)
      myHigh = Highest[abs(averagePeriod)](high)
      myLow = Lowest[abs(averagePeriod)](Low)
      mean = (High + Low) / 2.0
      myVAR1 = 0.66 * ((mean - myLow) / (myHigh - myLow) - 0.5) + 0.67 * f
      myVAR1 = Min(Max(myVAR1, -0.999), 0.999)
      fxhilo = Log((myVAR1 + 1.0) / (1 - myVAR1)) / 2.0 + g / 2.0 //main line
      f = myVAR1
      g = fxhilo

      endif

      condition = g crosses over 0 or g crosses under 0

      screener[condition]
       

  4. NeraVeem • 08/28/2016 #

    Dear Nicolas,
    thnx a lot of your screener script. A quick test teaches that it works, also for Forex trading in smaller timeframes. Again, thnx !!!
     
    Gerard

  5. Vinks_o_7 • 08/28/2016 #

    hello
    Pour info, j’ai une erreur sur la version actuelle de PRT: un paramètre de type entier positif est attendu pour highest…

    • Nicolas • 08/28/2016 #

      As-tu bien enlevé les // devant les paramètres “myPeriod” et “Adaptive” ?

    • carlvan • 08/28/2016 #

      J’ai la même erreur. Pourtant ABS donne par définition un nombre positif

    • Nicolas • 08/28/2016 #

      Essayons de remplacer la ligne 27 par:
      averageperiod=max(round(averageperiod),2)

  6. Traste • 08/28/2016 #

    Hi!! this is a great indicador, which I regularly use on PRT. However, I’d love to have it on TradingView too, is there any chance it can be converted? Thanks!

    • Nicolas • 08/28/2016 #

      We don’t provide TV assistance on our website, to get private paid coding translation use the programming services: https://www.prorealcode.com/trading-programming-services/

    • Suzu Yuk • 08/28/2016 #

      Hello, I am still getting the same error even after removing the // in front of the “myPeriod” and “Adaptive” parameters….. Why?

avatar
Register or

Likes

avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
Nicolas
9 years ago
Wilko Dear Nicolas, When I apply this code i get marginal differences with the default indicator ...
Nicolas I don't know about the differences from this version and the default platform one. As far as...
Wilko Thanks for the tip about CustomClose! I wasn't aware of this.
Nicolas I would not recommend using this version of the linear regression channel, but this one inst...
Aragorna Hello, Is it possible to updated the indicator to the more updated versione of ProrealTime? ...
Nicolas Use that code instead: https://www.prorealcode.com/prorealtime-indicators/standard-deviation...
Nicolas
9 years ago
Aroon Oscillator
Aroon Oscillator
2
Indicators
gianlox seems a good indicator, have tried to see which markets work better?
gianlox seems a good indicator, have tried to see which markets work better? 
dominike
9 years ago
Brad More code that just throw up loads of errors...   Here's one:Error in the indicator: ...
Nicolas ITF files are made to be imported directly into the platform with the prorealtime tools embe...
lglmrc Can't make it work, says: "Define p variable"
Ezio Hi Xel and thanks, do you know if there is a way in PRC of reading/counting intraday ticks?...
inadis ive just discovered this, i must say very nice thanks.
Doctrading @ Rikke, Beware of such an indicator. It's just an indicator, not a trading system. You ca...
parsons40 Hello, All. Can anyone inform me how the above binary indicator or any similar indicator co...
sixtofer Hola, me gustó mucho este indicador. Pero, a la hora de instalarlo me da error en la línea 4...
totof for those who are interested, I made this small modification of the code for the eWMA which ...
totof //parameters : period = 20 lookback = 1 IF BarIndex < period THEN eVWMA = Close EL...
Pi Hello Totof, I was looking for the code for the 'eVWMA = elastic Volume Weighted Moving Aver...
supertiti
9 years ago
MAFIBO DID V1
MAFIBO DID V1
2
Indicators
Biturbanipal  Hello, Supertiti, Fine signal, in first approach ! But, i am not sure to understand exact...
supertiti Buy: when crossing UP averages 3 (green ellipses) ...............yesSell: when passing DOWN ...
Lepori Joël bonsoir, tout d'abord un grand bravo pour tout ce que vous poster c'est vraiment impressionn...
Doctrading Bonjour Joël, C'est normal, il suffit d'aller dans les propriétés de l'indicateur (il faut ...
Lepori Joël Merci beaucoup c'est vraiment gentil de me répondre.Bonne semaine à vous Jo
supertiti
9 years ago
VWAP Bands
VWAP Bands
4
Indicators
Nicolas This is exactly what this other VWAP intraday indicator is doing: http://www.prorealcode.com...
marcov66 Hi Nicolas, I would like to create 3 standard deviations (+/-) based on VWAP linked to volu...
Nicolas Sure, please open a new topic about that specific query and with a complete explanation in t...
georgec10
9 years ago
Price Action Indicator
Price Action Indicator
0
Indicators
Grantx When I add this code, the indicator appears in the panel below price. How do I get it to dis...
Patrik72 Hello, thank you very much for the great indicator. One question, is it possible just have l...
datageek is it possible to add Mid pivot points (midR1 and MidS1)?
zilliq
9 years ago
eisi Found the solution in a forum post from nicolas...thank you :)
hua hin Bonjour merci pour votre contribution Comment changer les horaire je voudrai mettre l hora...
desmondlua once maxii=undefined once minii=undefined once maxi1=undefined once mini1=undefined once...
Ronny Should C5 = Chikou > SSpanA[26] and Chikou > SSpanB[26] be C5 = Chikou > SSpanA and...
Emperor.it Chikou = close[26] it's a mistake. Chikou Span is today's closing moved back 26 periods. It...
Nicolas Indeed, there is a mistake in that code. It is often the case when using Ichimoku and its tr...
dave
9 years ago
pareras13 Buenos dias, m'he descargado el indicador pero no me aparece en el precio. Tengo la versión ...
Rua022 Buenas tardes, para la versión 12 tiene un par de errores por lo que no se puede ejecutar , ...
druby https://www.prorealcode.com/topic/error-al-anadir-el-indicador-laguerre-filter-on-price-en-p...
xel
9 years ago
Nicolas Very nice and qualitative contribution to the Library, well done xel! I'm looking forward fo...
xel Thanks a lot Nicolas! This is a very helpful indicator to catch "Fastest Moves" if you use ...
Saud Thanks for this one, I was hoping PRT would add this.
Investment Account Wow great thanks ... looks good! Do I set the colour shades up from within the indicator 's...
avatar
Anonymous Thanks for your comments and yes, that is exactly how I set up the colour levels.
Vish Thanks I have added this in my watch list. Has anyone tried it yet ? Does it work on currenc...

Top