Allmänt meddelande

Collapse
No announcement yet.

Bygghjälp: Squeeze momentum indikator

Collapse
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Bygghjälp: Squeeze momentum indikator

    Tjo,

    jag har kollat en del på tradingview.com och där hittat en indikator jag gillar.
    https://www.tradingview.com/v/nqQ1DT5a/

    Samma indikator finns även omskriven till prorealtime.com formatet vilket nämns i filmen på följande länk:
    https://www.youtube.com/watch?v=T2h5qwo-7Sw


    Det jag är nyfiken på är om den går att göra till Autostock och isåfall hur.
    Har inte hittat ngt i dokumentationen om att sätta färger på staplar bla.
    Någo som har ide på hur man kan göra.


    prorealtime scriptet(så ni slipper ladda ner ngt):

    // Bollinger bands
    source = close
    bbMa = Average[bbLength](source)
    dev = bbMult * STD[bbLength](source)
    bbUpper = bbMa + dev
    bbLower = bbMa - dev

    // Keltner channels
    kcMa = Average[kcLength](source)
    kcRange = TR(source)
    kcMaRange = Average[kcLength](kcRange)
    kcUpper = kcMa + kcMaRange * kcMult
    kcLower = kcMa - kcMaRange * kcMult

    // Momentum indicator
    mom = LinearRegression[kcLength](source - ((((highest[kcLength](high) + lowest[kcLength](low)) / 2) + Average[kcLength](source)) / 2))

    if mom > 0 then
    if mom > mom[1] then
    momrise = mom
    momdecl = 0
    else
    momrise = 0
    momdecl = mom
    endif
    else
    if mom > mom[1] then
    momrise = mom
    momdecl = 0
    else
    momrise = 0
    momdecl = mom
    endif
    endif

    // Squeeze indicator
    sqHeight = 0.0001
    if bbLower > kcLower and bbUpper < kcUpper then
    // Squeeze on
    sqon = sqHeight
    sqoff = 0
    else
    // Squeeze off
    sqon = 0
    sqoff = sqHeight
    endif

    return momrise as "Momentum rising", momdecl as "Momentum declining", sqon as "Squeeze on", sqoff as "Squeeze off"

  • #2
    Visa i analysområde 1 och skalning 100-0-100

    Ett script kan bara returnera ett villkor. Det går att använda en kombination av villkor för trigger alternativ ritning.

    Periodlängder skrivs direkt i indikatorerna. Det går även att använda variabler=tilldelade namn för periodlängder som indikatorerna sedan använder


    Script
    =====

    {Bollinger}
    bbUpper=bolbands(20,2,u)
    bbLower=bolbands(20,2,l)

    {Keltner}
    kcUpper=add(ema(c,20),mult(2,atr(10)))
    kcLower=sub(ema(c,20),mult(2,atr(10)))

    {momentum indikator}
    kcHög=hhv(kcUpper,20)
    kcLåg=llv(kcLower,20)
    fastmom=sub(c,div(add(div(add(kcHög,kcLåg),2),ema(c,20)),2)) {fast momentum}
    slowmom=LinReg(fastmom,20) {slow momentum}

    momrise=if(gt(slowmom,aref(slowmom,1)),slowmom,0)
    momdecl=if(le(slowmom,aref(slowmom,1)),slowmom,0)

    {Squeeze indicator}
    sqon=if(and(gt(bbLower,kcLower),lt(bbUpper,kcUpper)),0.0001,0)
    sqoff=if(eqv(sqon,0),0.0001,0)

    ex1=and(and(sqoff,momrise),gt(fastmom,0))
    {exempel squeeze off, stigande slow momentuem och positiv fast momentum}
    ex2=and(and(sqoff,momdecl),lt(fastmom,0))
    {exempel squeeze off, sjunkande slow momentum och negativ fast momentum}

    draw(slowmom,3,bda)
    draw(mult(ex1,12),4,gsbF)
    draw(mult(ex2,12),5,rsbF)

    add(0,0)

    Comment


    • #3
      Hej

      Tack så mycket för hjälpen, om jag förstått det hela rätt så blir det gröna/röda staplar i intraday-fönstret samt en våg i analys 1 fönstret.

      Comment


      • #4
        Bara exempel på ritning. Det går även bra att visa i dagsupplösning. Vill du köra en speciell upplösning intraday omsluter du scriptet med tex:
        i60(
        xxxx
        xxxx
        )

        Dags för bording.

        Comment


        • #5
          Sprang på den här tråden igen, lite uppdatering av scriptet så att det ritar vågen i grönt/rött för positiv/negativ nivå:

          {Bollinger}
          bbUpper=bolbands(20,2,u)
          bbLower=bolbands(20,2,l)

          {Keltner}
          kcUpper=add(ema(c,20),mult(2,atr(10)))
          kcLower=sub(ema(c,20),mult(2,atr(10)))

          {momentum indikator}
          kcHög=hhv(kcUpper,20)
          kcLåg=llv(kcLower,20)
          fastmom=sub(c,div(add(div(add(kcHög,kcLåg),2),ema(c,20)),2)) {fast momentum}
          slowmom=LinReg(fastmom,20) {slow momentum}

          momrise=if(gt(slowmom,aref(slowmom,1)),slowmom,0)
          momdecl=if(le(slowmom,aref(slowmom,1)),slowmom,0)

          {Squeeze indicator}
          sqon=if(and(gt(bbLower,kcLower),lt(bbUpper,kcUpper)),0.0001,0)
          sqoff=if(eqv(sqon,0),0.0001,0)

          ex1=and(and(sqoff,momrise),gt(fastmom,0))
          {exempel squeeze off, stigande slow momentuem och positiv fast momentum}
          ex2=and(and(sqoff,momdecl),lt(fastmom,0))
          {exempel squeeze off, sjunkande slow momentum och negativ fast momentum}

          draw(slowmom,3,gaaf1)
          draw(if(lt(slowmom,0),slowmom,0),6,rpaf1)
          draw(mult(ex1,12),4,gsbF)
          draw(mult(ex2,12),5,rsbF)

          add(0,0)
          Attached Files

          Comment


          • #6
            Jag försökte få det att köpa/blanka vid rött och grönt men det blankade bara inga långa vad gjorde jag för fel?

            {squeeze köp}
            ejstängning:=ge(mult(1440,sub(market(c),frac(date()))),35)
            { säkerställ att klockan är minst 09:15 }
            inpådagen:=Gt(Frac(date()),0.376)
            ejlång:=Le(Portfolio(v),0)

            i60(

            {Bollinger}

            bbUpper=bolbands(20,2,u)
            bbLower=bolbands(20,2,l)

            {Keltner}
            kcUpper=add(ema(c,20),mult(2,atr(10)))
            kcLower=sub(ema(c,20),mult(2,atr(10)))

            {momentum indikator}
            kcHög=hhv(kcUpper,20)
            kcLåg=llv(kcLower,20)

            fastmom=sub(c,div(add(div(add(kcHög,kcLåg),2),ema(c,20)),2))
            {fast momentum}
            slowmom=LinReg(fastmom,20)

            {slow momentum}
            momrise=if(gt(slowmom,aref(slowmom,1)),slowmom,0)
            momdecl=if(le(slowmom,aref(slowmom,1)),slowmom,0)

            {Squeeze indicator}
            sqon=if(and(gt(bbLower,kcLower),lt(bbUpper,kcUpper)),0.0001,0)
            sqoff=if(eqv(sqon,0),0.0001,0)

            ex1=and(and(sqoff,momrise),gt(fastmom,0))
            {exempel squeeze off, stigande slow momentum och positiv fast momentum}
            {ex2=and(and(sqoff,momdecl),lt(fastmom,0))}
            {exempel squeeze off, sjunkande slow momentum och negativ fast momentum}

            köp1=And(And(And(ex1,ejstängning),inpådagen),ejlång)

            draw(slowmom,3,baaf1)
            draw(if(lt(slowmom,0),slowmom,0),6,rpaf1)
            draw(mult(ex1,12),4,gsbF)
            draw(mult(ex2,12),5,rsbF)
            mult(köp1,10)
            )


            {squeeze blanka}
            ejstängning:=ge(mult(1440,sub(market(c),frac(date()))),35)
            { säkerställ att klockan är minst 09:15 }
            inpådagen:=Gt(Frac(date()),0.376)
            ejkort:=Ge(Portfolio(v),0)

            i30(

            {Bollinger}
            bbUpper=bolbands(20,2,u)
            bbLower=bolbands(20,2,l)

            {Keltner}
            kcUpper=add(ema(c,20),mult(2,atr(10)))
            kcLower=sub(ema(c,20),mult(2,atr(10)))

            {momentum indikator}
            kcHög=hhv(kcUpper,20)
            kcLåg=llv(kcLower,20)

            fastmom=sub(c,div(add(div(add(kcHög,kcLåg),2),ema(c,20)),2))
            {fast momentum}
            slowmom=LinReg(fastmom,20)
            {slow momentum}

            momrise=if(gt(slowmom,aref(slowmom,1)),slowmom,0)
            momdecl=if(le(slowmom,aref(slowmom,1)),slowmom,0)

            {Squeeze indicator}
            sqon=if(and(gt(bbLower,kcLower),lt(bbUpper,kcUpper)),0.0001,0)
            sqoff=if(eqv(sqon,0),0.0001,0)

            {ex1=and(and(sqoff,momrise),gt(fastmom,0))}
            {exempel squeeze off, stigande slow momentum och positiv fast momentum}
            ex2=and(and(sqoff,momdecl),lt(fastmom,0))
            {exempel squeeze off, sjunkande slow momentum och negativ fast momentum}

            blank1=And(And(And(ex2,ejstängning),inpådagen),ejkort)

            draw(slowmom,3,baaf1)
            draw(if(lt(slowmom,0),slowmom,0),6,rpaf1)
            draw(mult(ex1,12),4,gsbF)
            draw(mult(ex2,12),5,rsbF)
            mult(blank1,10)
            )

            edit: Jag har även ändrat i"tiden" och kört test och det funkar men kanske beövs något mer, men son de ser ut ovan gav de 34,75 punkter på innevarande termin (C).
            Last edited by Berra; 2015-03-05, 17:37. Anledning: Jag har ändrat enl. Henrik och 34,75
            Berra

            Comment


            • #7
              Börja med att ta bort add(0,0) i scripten nedanför parenteserna. Sedan avsluta köp med tex mult(köp1,10) och sälj med tex mult(blank1,10).

              Comment


              • #8
                Skalning -100-0-100

                Hej!

                Jag undrar om det går att standardisera värdena från slowmom funktionen i ett script så att värdena ligger mellan -100-0-100 på en konstant basis? Jag använder mig av koden som Rikard försett nedan och den fungerar utmärkt i skala -100-0-100 men dem ''riktiga'' värdena ifrån slowmom ligger mellan 2 och -2 i extrema. Jag bifogar en bild där analysområde 1 är koden i skala -100-0-100 och där analysområde 2 endast är slowmom funktionen. Jag frågar då det blir svårt att testa olika samband när värdena för själva slowmom kan fluktuera mellan 2 och -2 medans en standardisering skulle underlätta.

                Tack på förhand!


                Ursprungligen postat av Rikard Nilsson Visa inlägg
                Sprang på den här tråden igen, lite uppdatering av scriptet så att det ritar vågen i grönt/rött för positiv/negativ nivå:

                {Bollinger}
                bbUpper=bolbands(20,2,u)
                bbLower=bolbands(20,2,l)

                {Keltner}
                kcUpper=add(ema(c,20),mult(2,atr(10)))
                kcLower=sub(ema(c,20),mult(2,atr(10)))

                {momentum indikator}
                kcHög=hhv(kcUpper,20)
                kcLåg=llv(kcLower,20)
                fastmom=sub(c,div(add(div(add(kcHög,kcLåg),2),ema(c,20)),2)) {fast momentum}
                slowmom=LinReg(fastmom,20) {slow momentum}

                momrise=if(gt(slowmom,aref(slowmom,1)),slowmom,0)
                momdecl=if(le(slowmom,aref(slowmom,1)),slowmom,0)

                {Squeeze indicator}
                sqon=if(and(gt(bbLower,kcLower),lt(bbUpper,kcUpper)),0.0001,0)
                sqoff=if(eqv(sqon,0),0.0001,0)

                ex1=and(and(sqoff,momrise),gt(fastmom,0))
                {exempel squeeze off, stigande slow momentuem och positiv fast momentum}
                ex2=and(and(sqoff,momdecl),lt(fastmom,0))
                {exempel squeeze off, sjunkande slow momentum och negativ fast momentum}

                draw(slowmom,3,gaaf1)
                draw(if(lt(slowmom,0),slowmom,0),6,rpaf1)
                draw(mult(ex1,12),4,gsbF)
                draw(mult(ex2,12),5,rsbF)

                add(0,0)
                Attached Files

                Comment

                Working...
                X