Allmänt meddelande

Collapse
No announcement yet.

Extra objekt ?

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

  • Extra objekt ?

    Hej, jag såg ett inlägg om att köpa omx-termin på indexet.

    Då funderade jag lite och undrar om det går att köpa en warrant
    på själva aktien.

    T.ex Jag har ett script till Volvo aktien som genererar köp på volvo, kan jag då ta den köpsignalen och köpa en warrant som jag får genom min lista på nordnet ?, om det går hur gör man ?
    Robert R.

  • #2
    För att ta in warranter får du göra det via egen sida/lista först, för att få in kurser s a s. Kryssa sedan för egen lista i Insamling av data och Välj framför Nordnet, och kryssa för egen lista/TO.

    Det finns såpass många av warranter, och aktieoptioner att vi har tyvärr inte dessa på vår kundservice dock, utan du måste köra det online.

    Annars går det bra att göra det du önskar. Du arbetar då på pappret som du skall handla i som huvudpapper, och använder aktiens utveckling som extra objekt för att göra analysen på.

    Så har du bara gällande köp-säljkurs på warranten för att lägga limiten på warranten vid ordern.

    Gör också en test på dessa långa namn på warranter att du får rätt beteckning på dem genom att lägga manuella order utom räckhåll att det går igenom så du ser att det blir rätt namn i systemet på dem.

    Comment


    • #3
      Jag använder cmpref, men hur skriver man te.x detta script jag hittade här på forumet för det extra objektet.

      Enkla script där man har close med har jag fått att fungera men inte för detta bollingerband scriptet.

      bkrossh:=BolBands(20,2.0,X)
      bollnyss:=hhv(bkrossh,okbakåt)
      closedn:=LT(l,Ref(c,1))
      bsignal:=And(bollnyss,closedn)
      bhighnyss:=hhvbars(bsignal,tittabakåt)

      blowsignal:=BolBands(20,2.0,X)
      blownyss:=hhvbars(blowsignal,tittabakåt)
      bdiffsignal:=sub(bhighnyss,blownyss)
      xx=And(gt(bdiffsignal,0),lt(bdiffsignal,7))
      Robert R.

      Comment


      • #4
        Du behöver skriva om bollingerfunktionen i sina beståndsdelar med script så du kommer åt dataserien du använder.

        Här ett exempel först att utgå från där man tar bollinger på ett rsi istället:

        En liten mall för RsiBollinger:


        Övre RsiBollinger--------------
        rperiod:=14
        mperiod:=20
        deviation:=2.0
        bollingerpådata:=rsi(rperiod)
        m1:=mov(bollingerpådata,mperiod,s)
        sd1:=stdev(bollingerpådata,mperiod)
        add(m1,mult(sd1,deviation))

        Undre RsiBollinger--------------
        rperiod:=14
        mperiod:=20
        deviation:=2.0
        bollingerpådata:=rsi(rperiod)
        m1:=mov(bollingerpådata,mperiod,s)
        sd1:=stdev(bollingerpådata,mperiod)
        sub(m1,mult(sd1,deviation))

        Mellan RsiMedel--------------
        rperiod:=14
        mperiod:=20
        deviation:=2.0
        bollingerpådata:=rsi(rperiod)
        mov(bollingerpådata,mperiod,s)



        Mall för bollinger som extra objekt:

        Övre Bollinger--------------
        rperiod:=14
        mperiod:=20
        deviation:=2.0
        bollingerpådata:=CmpRef(c,0,A)
        m1:=mov(bollingerpådata,mperiod,s)
        sd1:=stdev(bollingerpådata,mperiod)
        add(m1,mult(sd1,deviation))


        då ser du raden som är utbytt

        bollingerpådata:=CmpRef(c,0,A)


        sedan får du lägga till korsningstestet

        mperiod:=20
        deviation:=2.0
        bollingerpådata:=CmpRef(c,0,A)
        m1:=mov(bollingerpådata,mperiod,s)
        sd1:=stdev(bollingerpådata,mperiod)
        xbolup:=add(m1,mult(sd1,deviation))
        bkrossh:=gt(CmpRef(h,0,A),xbolup)

        Det där kan du bara stoppa in först i ditt tidigare script.

        Sedan raden

        closedn:=LT(l,Ref(c,1))

        till extra objekt blir

        closedn:=LT(CmpRef(l,0,A),CmpRef(c,1,A))

        då är du hemma.

        Comment


        • #5
          Ja, efter mycket tänkade har jag fått det att fungera.
          Tack skall du ha, så här blev det till slut.


          tittabakåt:=2
          okbakåt:=2
          mperiod:=3
          amperiod:=7
          deviation:=2.0
          adeviation:=2.0

          bollingerpådata:=c
          m1:=mov(bollingerpådata,mperiod,s)
          sd1:=stdev(bollingerpådata,mperiod)

          xbolup:=add(m1,mult(sd1,deviation))
          bkrossh:=gt(h,xbolup)

          bollnyss:=Hhv(bkrossh,okbakåt)
          closedn:=LT(L,Ref(c,1))
          bsignal:=And(bollnyss,closedn)
          bhighnyss:=hhvbars(bsignal,tittabakåt)

          abollingerpådata:=c
          am1:=mov(abollingerpådata,amperiod,s)
          asd1:=stdev(abollingerpådata,amperiod)
          axbolup:=add(am1,mult(asd1,adeviation))
          blowsignal:=gt(h,axbolup)

          blownyss:=HHvbars(blowsignal,tittabakåt)
          bdiffsignal=sub(bhighnyss,blownyss)
          xx=And(gt(bdiffsignal,0),lt(bdiffsignal,7))


          flagga=mult(xx,12)
          i30(flagga)

          {@A(30,VOLV B )}
          Robert R.

          Comment


          • #6
            Tänker på två saker:

            1. Du använder inte extra objektet någonstans?

            Som det är skrivet behövs det alltså inte alls och tar bara kraft att lägga upp det varje gång(men det är kanske testscript för aktien inte det som körs på warranten du visar här ?).

            2. Väldigt mycket namn som är delnamn av andra namn.

            Det är livsfarligt. Ibland går det bra ändå, men det kan likväl bli något helt annat än du tänkt dig.

            Tänker på mperiod och amperiod osv.

            Det börjar t.ex med att

            amperiod:=

            ändras till

            a3:=

            osv igenom hela scriptet med sök-ersätt.

            Indexera alla med olika siffror eller bokstäver istället. Inte olika längder som gör att ett namn är delnamn i ett annat.

            mperiod1:=
            mperiod2:=

            eller

            amperiod:=
            bmperiod:=

            så att varje namn blir unikt.

            Comment


            • #7
              en sak till...

              så här bör det ser ut på slutet för att vara säker på att det verkligen blir 30-minuters och inte något annat. Prefixet behöver omsluta all kod där minnesreferenser börjar.


              i30( bdiffsignal=sub(bhighnyss,blownyss)
              xx=And(gt(bdiffsignal,0),lt(bdiffsignal,7))
              flagga=mult(xx,12)
              )

              Efter alla tilldelade namn är sök-ersatta så blir det bara dessa rader kvar i scriptet, och all kod ligger i dessa rader. Det är detta kompilatorn ser sedan och behöver först veta upplösningen.

              Comment


              • #8
                Hur gör jag för att använda detta scriptet på indexet och handla terminen, går det ?

                Jag har tryckt på knappen extra objekt men det fungerade ju inte.

                rgln1:=Mov(LinReg(c,16),3,e)
                ma1:=Mov(c,5,e)
                slowrsi:=Mov(LinReg(Rsi(25),4),10,e)
                rsistiger:=Lt(HhvBars(slowrsi,2),1)
                regupp:=Lt(HhvBars(rgln1,2),1)
                stochastic:=Gt(Stoc(LinReg(c,15),3),60)
                tidnu:=Frac(DATE())
                totalt:=Mult(tidnu,1440)
                rest:=Int(Mod(totalt,30))
                tidsignal1:=Gt(rest,8)
                tidsignal2:=Gt(rest,26)
                {tidsignal1:=1}
                innehav:=Portfolio(v)
                {innehav:=0}
                {felexponerad:=Gt(innehav,0)}
                felexponerad:=0
                lastsell:=LastTrade(S,P)
                i30(
                level=Add(0.5,Div(-1.5,innehav))
                vinst=Lt(c,Sub(lastsell,level))
                tidsignal3=Or(And(Or(Eqv(innehav,0),vinst),tidsignal1),tidsignal2)
                signal1=And(Gt(ma1,rgln1),And(tidsignal3,And(stochastic,And(regupp,rsistiger))))
                signal2=And(Or(felexponerad,signal1),Lt(slowrsi,45))
                signal2)

                Comment


                • #9
                  Du måste göra om signalerna och använda dig av cmpref(c,0,a)
                  Ett litet exempel:

                  momtum1:=MOV(MO(10),3)
                  momtum2:=LT(momtum1,101.0)

                  Skrivs till

                  momtum1:=MOV(MO(10),3)
                  momtum2:=cmpref(LT(momtum1,101.0),0,A)

                  Detta sätter du på indexet och väljer extra objekt omx30.

                  Detta fungerar för mig.
                  Robert R.

                  Comment


                  • #10
                    Jag lade in scriptet som simulera och fick dessa signaler ( se bild )

                    Jah är inte säker på om det verkligen hade köpts OMXS305A men det ser ju onekligen så ut.
                    Attached Files

                    Comment


                    • #11
                      CmpRef() kan bara användas i funktioner som har en inparameter för dataserie typ

                      Mov(d,p,SEW)
                      LinReg(d,p)

                      osv

                      Andra funktioner t.ex RSI() och Stoch() har ju inte något dataserie som parameter, utan bara period.

                      Här står lite om hur man får till det och skriver några vanliga funktioner med script, så att man kan använda dessa även på extra objekt:

                      http://www.frndsw.com/vbulletin/show...ight=cmpref%2A

                      Så något i denna stilen får man göra:

                      RSI är den funktionen du behöver som skriven i script:



                      period:=25
                      rra1:=if(gt(cmpRef(c,0,A),Cmpref(c,1,A)),sub(CmpRef(c,0,A),Cmpref(c,1,A)),0)
                      rrd1:=if(lt(CmpRef(c,0,A),Cmpref(c,1,A)),sub(Cmpref(c,1,A),CmpRef(c,0,A)),0)
                      rras1:=sum(rra1,period)
                      rrds1:=sum(rrd1,period)
                      rrwrsi:=mult(div(sub(rras1,rrds1),add(rras1,rrds1)),100)
                      closedata:=CmpRef(c,0,A)
                      rgln1:=Mov(LinReg(closedata,16),3,e)
                      ma1:=Mov(closedata,5,e)
                      regupp:=Lt(HhvBars(rgln1,2),1)
                      stochastic:=Gt(Stoc(LinReg(closedata,15),3),60)
                      tidnu:=Frac(DATE())
                      totalt:=Mult(tidnu,1440)
                      rest:=Int(Mod(totalt,30))
                      tidsignal1:=Gt(rest,8)
                      tidsignal2:=Gt(rest,26)
                      {tidsignal1:=1}
                      innehav:=Portfolio(v)
                      {innehav:=0}
                      {felexponerad:=Gt(innehav,0)}
                      felexponerad:=0
                      lastsell:=LastTrade(S,P)
                      i30(
                      regrsi=LinReg(rrwrsi,4)
                      slowrsi=Mov(regrsi,10,e)
                      rsistiger=Lt(HhvBars(slowrsi,2),1)
                      level=Add(0.5,Div(-1.5,innehav))
                      vinst=Lt(c,Sub(lastsell,level))
                      tidsignal3=Or(And(Or(Eqv(innehav,0),vinst),tidsignal1),tidsignal2)
                      signal1=And(Gt(ma1,rgln1),And(tidsignal3,And(stochastic,And(regupp,rsistiger))))
                      And(Or(felexponerad,signal1),Lt(slowrsi,45))
                      )

                      Comment


                      • #12
                        Jag skall prova detta, tack.

                        Det var ju önsketänkande att tro på en enkel knapptryckning men vad göra när man inte vet vad en dataserie är och knappt fattar inparameter, ibland hade det varit lättare med Grekiska, då kunde man ju frågat någon Grek vad det betydde.

                        Comment


                        • #13
                          Kan det här vara rätt ?


                          sl) Index sälj termin

                          period:=25
                          rra1:=if(gt(cmpRef(c,0,A),Cmpref(c,1,A)),sub(CmpRef(c,0,A),Cmpref(c,1,A)),0)
                          rrd1:=if(lt(CmpRef(c,0,A),Cmpref(c,1,A)),sub(Cmpref(c,1,A),CmpRef(c,0,A)),0)
                          rras1:=sum(rra1,period)
                          rrds1:=sum(rrd1,period)
                          rrwrsi:=mult(div(sub(rras1,rrds1),add(rras1,rrds1)),100)
                          closedata:=CmpRef(c,0,A)
                          rgln1:=Mov(LinReg(closedata,16),3,e)
                          ma1:=Mov(closedata,5,e)
                          regner:=Lt(LlvBars(rgln1,2),1)
                          stochastic:=Lt(Stoc(LinReg(closedata,15),3),40)
                          tidnu:=Frac(DATE())
                          totalt:=Mult(tidnu,1440)
                          rest:=Int(Mod(totalt,30))
                          tidsignal1:=Gt(rest,8)
                          tidsignal2:=Gt(rest,26)
                          {tidsignal1:=1}
                          innehav:=Portfolio(v)
                          {innehav:=0}
                          {felexponerad:=Lt(innehav,0)}
                          felexponerad:=0
                          lastbuy:=LastTrade(B,P)
                          i30(
                          regrsi=LinReg(rrwrsi,4)
                          slowrsi=Mov(regrsi,10,e)
                          rsistiger=Gt(HhvBars(slowrsi,2),1)
                          level=Add(0.5,Div(1.5,innehav))
                          vinst=Gt(c,Add(lastbuy,level))
                          tidsignal3=Or(And(Or(Eqv(innehav,0),vinst),tidsignal1),tidsignal2)
                          signal1=And(Lt(ma1,rgln1),And(tidsignal3,And(stochastic,And(regner,rsifaller))))
                          And(Or(felexponerad,signal1),Gt(slowrsi,-45))
                          )

                          Comment


                          • #14
                            Vet inte i vilket avseende du menar?

                            Du har bytt rsistiger till rsifaller på slutet som inte finns definierat. Det blir ju inte rätt hursomhelst.

                            Det var vad jag såg vid snabb titt.

                            Comment


                            • #15
                              Byt denna raden
                              rsistiger=Lt(HhvBars(slowrsi,2),1)

                              till

                              rsifaller=Lt(LlvBars(slowrsi,2),1)

                              LlvBars() levererar ju hur många perioder det är till lägsta värde att RSI() utav två perioder. Dvs antingen 0 eller 1.

                              Om det är 0 perioder till lägsta värdet så har du antingen samma värde i båda, eller sista periodens värde är lägst. Då får du sant.

                              Comment

                              Working...
                              X