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
supertiti
9 years ago
CCI Magic DID V1
v10.3
CCI Magic DID V1
11
Indicators
supertiti Hola Angel Las funciones backgroundcolor etc etc no funcionan con la version 10.2. Para sa...
Lotech123 It may be a little late in the day, but having only just discovered this utility, I have mes...
Henry
9 years ago
SuperTrend
SuperTrend
4
Indicators
Nicolas Exit and relaunch PRT should fix this behavior.
verdi55 Thank you. After a restart, it is somewhat faster; however, it still takes about 3 minutes t...
Nicolas Good! thanks for sharing your own code! Please do so with other ones if you think you can im...
Nicolas
9 years ago
Toto8 Hello, When I use the code above with no change at all, I get an error message stating that...
fabien philipp Hi, I have the same message error by importing the itf file, or by copying and pasting the ...
mcha bonjour, merci pour cet échange mais il me semble que ce twist des SSA  et SSB serait plus ...
Pasq Concernant la remarque précédente, il est possible de remplacer les 2 lignes de code de cett...
Nicolas Merci Pasq. On peut retrouver ce code corrigé sur le forum, je viens d'en retrouver un exemp...
tahar Bonjour, je travaille sur un ecran noir et les bougies sont extremement palotes, on distingu...
Alai-n Voir Echantillons de Couleurs RVB : https://www.prorealcode.com/documentation/category/instr...
Guillaume34 Bonjour, quelqu'un à t'il réalisé ce code à l'identique mais pas dans une fenêtre sous le gr...
Doctrading
9 years ago
Nicolas Use Highs and Lows instead
Doctrading This new code with highs and lows seems to work : boxSize = 20 // On aime bien que...
DonDollar Gentlemen, just a quick question. When I am adding this column to my code, PRT shows an err...
Cavok Bonjour, Comment utiliser cet indicateur comme screener? Merci.
rajiwas Hello Nicolas, With Daily Pivot, it easy for me to show current day pivot e.g. if Date = T...
Nicolas You'll find many other pivots points indicators in the library, just use the search box of t...
rajiwas Thanks for the suggestion.
pepkatapet
9 years ago
supertiti Pour Nicolas Ne peux t'on pas ajouter un bouton  pour illustrer une suggestion par un graph...
Lyny @supertiti, can you translate your code into English version PRT ? I copy and paste your cod...
zen83 The bands 30 and 70 can also be added as supra-sold / super-purchased // RSI with volatile s...
Nicolas
9 years ago
Kase Peak Oscillator
Kase Peak Oscillator
9
Indicators
Bard Hi Nicolas, re-upping the coding request as you suggested for the genuine version of Kase's ...
Nicolas FYI: I found this other code in an old NL forum:  pri=Customcloselen=psmooth=catr = Average...
Bard Thanks very much Nicolas, but I can't post my reply here if I want to add a url link. When I...
Nicolas
9 years ago
Alessio Nicolas Hello, I have recently started using this platform, I would like to test a system th...
Nicolas Please use forums for trading strategies queries. Many thanks. 
PassionTrading Salut Nicolas, Je regarde cette indicateur très intéressant par le fait qu'il est superposé...
sally31120 bonjour Serait il possible de colorier l'histogramme en fonction du cour c'est à dire à dir...
David  Hi Doc! Thanks for sharing. For some reason I'm not getting the histogram, only a ribbon. A...
RAAAMMY Hi David, I have the same problem of a ribbon and not the histogram. Did you get a solution...
komiko 9a marche pas ? le code sur prorealtime "erreur de syntaxe l'instruction retur et autorisée ...
Nicolas En effet, il s'agit bien du code d'un indicateur et non d'un screener ou d'une stratégie de ...
RussJ Hey people Some great screeners on here but I'm pulling up too many stocks when I s...
Doctrading Thanks, man !
rajiwas How is it possible to add currentWeekHigh and currentWeekLow, currentWeekOpen and currentWee...
Takeshi Totally don't match the PRT basic pivots on weekly
cassio amigo você tem esse indicador para mt4 ou mt5.. ?
manchokcity WE NEED THIS IN MQL4 OR EX4
Nicolas We do not provide MT4 indicator in our website, all the codes around are made for Prorealti...
mamio Very nice indicator. Why doesn't it refresh as time passes?
Nicolas It should refresh on each bar.
mamio On my PC it doesn't refresh. I am using intraday tick bars (not minutes). Unfortunately I do...
Nicolas
9 years ago
Nicolas I'm currently on leave, please add your request in forums. I'll take a look later. Thanks
nglpx1 Hi. someone may explain to me, please, how expressions like: filt= c1 * (whitenoise + whiten...
Bard This is a such a great filter, but you know what happens when the bandedge value is incorrec...
supertiti
9 years ago
Doctrading Interesting code.I see that you like HKLisse and Sohocool !
Bard Hello Nicolas, thanks for posting this Fisher Transform code. I was reading John Ehler's MES...

Top