Allmänt meddelande

Collapse
No announcement yet.

Supertrend Indicator

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

  • #91
    Sista ouput?
    Antigen resultatet från loopen. När cellerna har värde noll eller en ny stapel börjar. Annars använs bara nuvarande och föregående periods värde för beräkningen.

    Comment


    • #92
      Tänker mest om output går att lagra i en egen cell efter beräkningen är klar, så blir övriga celler lediga igen för nästa Supertrend.

      Comment


      • #93
        Så enkelt är det inte. Nästa värde beror på de tidigare bandens värden och om trenden är upp eller ner. Om ingen ändring använd tidigare supertrend. Värden får inte uppdatera sig själv vid animering inne stapeln. Dessutom behövs en historisk databeräkning när cellerna inte har något värde, tex i början och om cellerna tappar värdena. Ingen loop ska göras inne i stapen när cellerna har värden(annars trökt med många instrument). Du förstår om du börjar rota i scriptet. Visst du kanske har bättre lösning?

        Comment


        • #94
          Ah, då är jag med.

          Comment


          • #95
            När du skrev lediga igen för nästa supertrend tändes en lampa. Kom på ett sätt att eliminera 3st celler. 4-6 är nu lediga. Ingen djupare testing eller simulering. Ser i alla fall ut att fungera bra i diagrammet. Jimmy får kolla om det fungerar exat som senaste versionen jag gjorde i skarpt eller simulering. Annars får vi leta ny lösning.

            {// Olika val}
            VäljBeräkning:=1 {atr=1 ema(true_range)=0}
            Diagram:=0 {1=endast rita 0=sim,skarpt}
            perioder:=10 {perioder för banden}
            multiplier:=3 {bredden på banden}
            Längd:=250 {lookback för att vara säker på att kurvan är synkad}
            {//}

            idag=or(eqv(int(d),int(date())),Diagram)
            stämpel=if(gt(mn(sub(aref(d,1),aref(d,2)),sub(aref(d,2),aref(d,3))),0.5),int(d),d)

            Atg=atr(perioder)
            TrueR=ema(mx(mx(sub(h,l),sub(h,aref(c,1))),sub(aref(c,1),l)),perioder)
            Arange=if(Väljberäkning,Atg,TrueR)

            HLA=div(add(h,l),2)
            BUB1=add(HLA,mult(multiplier,Arange))
            BLB1=sub(HLA,mult(multiplier,Arange))

            retval(if(not(eqv(getval(7),stämpel)),aref(BUB1,längd),getval(1)),1)
            retval(if(not(eqv(getval(7),stämpel)),aref(BLB1,längd),getval(2)),2)
            retval(if(not(eqv(getval(7),stämpel)),aref(BLB1,längd),getval(3)),3)

            {Beräkna nya kurvor för perioden}
            MaxVarv=if(eqv(getval(7),stämpel),0,Längd)
            retval(0,0)
            turns=retval(add(getval(0),1),0)
            förraU=add(getval(1),0)
            förraL=add(getval(2),0)
            förraS=add(getval(3),0)
            lookBack=sub(MaxVarv,turns)
            uppdatOK=and(gt(MaxVarv,0),gt(lookback,0))
            Kurs=aref(c,lookBack)
            BUB2=aref(BUB1,lookBack)
            BLB2=aref(BLB1,lookBack)
            retval(if(uppdatOK,if(or(lt(BUB2,förraU),gt(aref(c,add(lookBack,1)),förraU)),BUB2,förraU),getval(1)),1)
            retval(if(uppdatOK,if(or(gt(BLB2,FörraL),lt(aref(c,add(lookBack,1)),förraL)),BLB2,förraL),getval(2)),2)
            Upper1=and(eqv(förraS,förraU),le(Kurs,getval(1)))
            Lower1=and(eqv(förraS,förraU),ge(Kurs,Getval(1)))
            Lower2=and(eqv(förraS,förraL),ge(Kurs,getval(2)))
            Upper2=and(eqv(förraS,förraL),le(Kurs,getval(2)))
            retval(if(UppdatOK,if(Upper1,getval(1),if(Lower1,getval(2),if(Lower2,getval(2),if(Upper2,getval(1),getval(3))))),getval(3)),3)
            loop(turns,MaxVarv)

            fastU=if(or(lt(BUB1,getval(1)),gt(aref(c,1),getval(1))),BUB1,getval(1))
            fastL=if(or(gt(BLB1,getval(2)),lt(aref(c,1),getval(2))),BLB1,getval(2))
            fastS=if(or(and(eqv(Getval(3),getval(1)),ge(c,getval(1))),and(eqv(getval(3),getval(2)),ge(c,getval(2)))),fastL,fastU)

            superTrnd=add(fastS,0)

            retval(if(and(eqv(MaxVarv,250),idag),stämpel,getval(7)),7)

            draw(supertrnd,4,bqb)
            and(0,0)

            Edit: En ändring i scriptet.
            Last edited by Henric; 2021-12-05, 22:16.

            Comment


            • #96
              Ursprungligen postat av jimmy Visa inlägg
              ....
              Det finns bara 10 st retvalceller varav 2 st använder jag redan till att lagra köp/säljsignal id. Så i praktiken har jag bara 8 celler till förfogande.
              Skulle behöva minst 2 instanser av indikatorn så 4 celler per instans. Den relativa trenden för index kan jag dela via globalcell.
              Hej Henrik,
              Väldigt tacksamt att du försökt få ned antal celler som används och delat skript.

              Tyvärr använder skriptet 5 celler och då räcker inte 10 celler till i min tillämpning som använder två celler till annan logik.

              Rikard, är det möjligt och utöka antalet celler?
              Har även ställt frågan i annan tråd om det går att introducera en typ av cell
              som har omfattning instrument men delar värden mellan skript. Det skulle vara mycket användbart är min uppfattning. Dvs frågar om två olika behov och önskar tydligt svar på båda frågorna.
              MVH

              Comment


              • #97
                Fråga och svar om fler celler finns i denna tråd
                https://www.autostock.se/vbulletin/s...newpost&t=5845

                Comment

                Working...
                X