Allmänt meddelande

Collapse
No announcement yet.

Supertrend Indicator

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

  • #61
    Ursprungligen postat av Henric Visa inlägg
    En annan sak att test live är att använda max reserverad perioder. Tex aref(BUB1,lookBack:250)
    Jag har inte förstått logiken i scriptet tillräckligt bra eller hur NAT fungerar under huven - för att ta det vidare. Uppskattar om du skulle vilja lägga ut förslag på kodförändring.

    EDIT: refererade du till denna rad? BUB2=if(eqv(turns,MaxVarv),BUB1,aref(BUB1,lookBack))?

    Comment


    • #62
      Ursprungligen postat av jimmy Visa inlägg
      Jag har inte förstått logiken i scriptet tillräckligt bra eller hur NAT fungerar under huven - för att ta det vidare. Uppskattar om du skulle vilja lägga ut förslag på kodförändring.
      EDIT: refererade du till denna rad? BUB2=if(eqv(turns,MaxVarv),BUB1,aref(BUB1,lookBack))?

      EDIT2: provade (trial & error)

      MaxVarv=if(1,längd,1)
      BUB2=if(eqv(turns,MaxVarv),BUB1,aref(BUB1,lookBack:250))
      BLB2=if(eqv(turns,MaxVarv),BLB1,aref(BLB1,lookBack:250))

      men live på testkonto köps alla instrument tyvärr så tror inte det gjorde någon skillnad.

      Comment


      • #63
        Jag kör nästa vecka om ingen annan vill

        Comment


        • #64
          Jimmy,

          Jag testade min senaste version i en ordermodell med villkoret att close>superTrnd och delay på 15 sekunder. Vissa aktier signalerar och vissa inte. Sedan vände jag på villkoret och andra aktier signalerar. Det ser ut att fungera. Tiden rann ut innan 17:30 så jag hann inte göra någon analys av individuella aktiers superTrnd, osv.

          En sak som skulle kunna hända är att ordermodellerna är sanna när scripten kopplas på . Detta då getval är noll när man börjar. Får kolla nästa vecka.

          Edit: Som tur var loggade jag superTrnd. Det stämmer även där att close var större eller mindre än superTrnd. Beroende på hur jag satt villkoret. En aktie hamnade i bland över och ibland under. Då hade även superTrnd ändras som den kan göra då det är animering. Har du satt diagramritning=0?
          Last edited by Henric; 2021-10-01, 17:49.

          Comment


          • #65
            Jag har lagt in skriptet som standardknapp och kör det på ett fönster som är kopplat till listan med aktier, samt på index. Där är Diagram:=1

            I ordermodell är skriptet Diagram:=0

            Bra tankar kring cell 0 vid uppstart och att ha en delay. Ska se om jag hinner labba något innan USA stänger

            Comment


            • #66
              Hur ser koden ut för att lägga in en delay på 15 sekunder?

              Jag testade att lägga ett villkor att supertrend ska vara > 1.
              Jag tänkte ifall den har värde 0 eller 1 vid anslutning men det hjälpte inte. flera USA-aktier köptes på testkonto trots tydligt ligger under trendlinje. En aktie låg under linje och köptes ej, övriga ca 3-5 stycken jag provade köptes.
              Jag provar gärna det du provat..

              Comment


              • #67
                För att testa köp sker pga att celler är 0 vid anslutning

                Provade sälja innehaven som köpts vid anslutning och tog bort villkoret att inte köpa samma dag. Alla innehav köptes tyvärr tillbaka. Hade hoppats på att dem inte köptes..

                Comment


                • #68
                  ge(mult(sub(date(),lasttrade(b,d)),86400),15)

                  Jag köper bara en åt gången så kan man kolla i intervall.

                  Vi får fortsätta nästa vecka.

                  Comment


                  • #69
                    Har testat på USA-papper.
                    Har konstaterat att grafens val av FinalU vs FinalL skiljer mot ordermodell (ibland/oftast).

                    Exempel AAPL - skrev ut nedan värden i INI från ordermodell - enbart AAPL kopplat.
                    Skärmdump på grafen visar linje ovanför pris ca 149, dvs FinalU medans ordermodellen visar att superTrnd = FinalL

                    SetIniIf(superTrnd,2800,1)
                    SetIniIf(FinalU,2801,1)
                    SetIniIf(FinalL,2802,1)

                    V2800=132.0950000000000
                    V2801=149.0450000000000
                    V2802=132.0950000000000

                    Attached Files
                    Last edited by jimmy; 2021-10-01, 21:06.

                    Comment


                    • #70
                      Jag får också konstiga resultat live. Kopierade scriptet för säkerhetsskull. Ett för ritning och ett för handel. Körde på AZN och simulerade två dagar för att se signal idag. I diagram och simulering ligger close över linjen. Live ligger under. Alltså måste live använda FinalU?

                      Comment


                      • #71
                        Rikard har du någon idé om vad i NAT/skriptet som kan vara orsak till att resultat skiljer live vs simulering/graf med scriptet?

                        Comment


                        • #72
                          Har inte hunnit gräva ner mig i det ännu, hoppas hinna om några dagar.

                          Comment


                          • #73
                            Jag tror det är att getlval(6) blir noll i första perioden för att sedan synkas. När man kopplar på live så blir getval alltit noll. För att debugga tog jag bort getval(4-6) och kör hela loopen och sparade värdena inne loopen. Fick det inte att fungera.

                            Comment


                            • #74
                              Jag gjorde om den så att loopen alltid körs fullt ut. Det fungerar live för mig. Körde 6 aktier där 3 låg under i diagrammet och 3 över.

                              Det går säkert att modifiera så att den bara loopar en gång när förra periodens värde är sparat. Frågan är om det sparar så himla mycket. Om man bara handlar vissa tider i perioden kan man loopa en gång när den inte handlar även om värdet just då blir fel. Det skulle även gå att bygga en simulationsversion eller att vi bygger vidare med en snabbare version.

                              Jimmey, du får testa som vanligt.

                              {// Olika val}
                              VäljBeräkning:=1 {atr=1 ema(true_range)=0}
                              Diagram:=1 {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)

                              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(aref(BUB1,Längd),1)
                              retval(aref(BLB1,Längd),2)
                              retval(aref(BLB1,Längd),3) {börjar alltid med undre}

                              {Beräkna nya kurvor för perioden}
                              MaxVarv=add(längd,0)
                              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)
                              BUB2=if(eqv(lookBack,0),BUB1,aref(BUB1,lookBack))
                              BLB2=if(eqv(lookBack,0),BLB1,aref(BLB1,lookBack))
                              retval(if(or(lt(BUB2,förraU),gt(aref(c,add(lookBack,1)),förraU)),BUB2,förraU),1)
                              retval(if(or(gt(BLB2,FörraL),lt(aref(c,add(lookBack,1)),förraL)),BLB2,förraL),2)
                              Upper1=and(eqv(förraS,förraU),le(aref(c,lookBack),getval(1)))
                              Lower1=and(eqv(förraS,förraU),ge(aref(c,lookBack),Getval(1)))
                              Lower2=and(eqv(förraS,förraL),ge(aref(c,lookBack),getval(2)))
                              Upper2=and(eqv(förraS,förraL),le(aref(c,lookBack),getval(2)))
                              retval(if(Upper1,getval(1),if(Lower1,getval(2),if(Lower2,getval(2),if(Upper2,getval(1),getval(3))))),3)
                              loop(turns,MaxVarv)

                              draw(sub(getval(3),5),6,bqb)
                              and(0,0)
                              Last edited by Henric; 2021-10-05, 15:57.

                              Comment


                              • #75
                                jeg kigge bare lidt på scriptet
                                Er det korrekt at bruge turns som stiger mere og mere?
                                så springes der jo over verdier da turns bliver størere og størere i verdier.
                                er det ikke meningen at man vil loope gennem alle verdierne?

                                lookBack=sub(MaxVarv,turns)


                                ex: turns = 1,2,3,4,5 ...
                                ex: lockback = 249,247,244,240,235 ...

                                Comment

                                Working...
                                X