Allmänt meddelande

Collapse
No announcement yet.

LastTrade

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

  • LastTrade

    Jag skulle vilja använda mig av nästsenaste köppriset och nästsenaste säljpriset för att i script avgöra om min senast gjorda affär gick med vinst eller förlust och om min nuvarande position går i samma riktning som denna eller ej, detta för att villkora stoploss.
    Då man läser i manualen om Lasttrade står som exempel: "LastTrade(S,2) ger innehållet i cell 2 vid senaste säljtrans". Vad ligger i cell 2 som default?
    mvh
    Bertil


  • #2
    Det lagras endast vad som skrevs senast, men du har 5 celler som hänger ihop med transaktioner som kan användas på valfritt sätt. Ett sätt som kan användas är att rotera cellinformation vid order, tex i ett köpscript passar man på att lagra dels info från föregående trans samt den trans som är på väg att ske. Då kan man enkelt flytta värdet från en cell till en annan så att det sparas som förrförra transen.

    tex:

    senaste_köp=lasttrade(b,0)
    retval(senaste_köp,1) {flyttar värdet från cell 0 till cell 1}
    retval(c,0) {lagrar nuvarande pris i cell 0}

    så lagras förra köppriset i cell 1 och pris för nuvarande affär i cell 0. Då kan det läsas av från tex säljsidan med:

    förrförra=lasttrade(b,1)
    senaste=lasttrade(b,0)


    Comment


    • #3
      Här har du ett script som rullande lagrar de senaste 5 köptransarna med globala variabler.



      { Lagring av de senaste köptransarna rullande }

      senaste_köp=lasttrade(b,p)
      senaste_volym=portfolio(v)

      cond1=not(eqv(senaste_volym,getvar(10,N)))
      cond2=not(eqv(senaste_köp,getgvar(20,N)))
      cond3=and(cond1,cond2)

      { Lagring av de 5 senaste köptransarna }
      setgvarif(getgvar(17,N),16,cond3,T)
      setgvarif(getgvar(18,N),17,cond3,T)
      setgvarif(getgvar(19,N),18,cond3,T)
      setgvarif(getgvar(20,N),19,cond3,T)
      setgvarif(senaste_köp,20,cond3,T) { Senaste köpet }

      setgvarif(senaste_volym,10,cond3,T) { Senaste volymen }

      { De 5 senaste köptransarna }
      köp0=getgvar(20,N)
      köp1=getgvar(19,N)
      köp2=getgvar(18,N)
      köp3=getgvar(17,N)
      köp4=getgvar(16,N)
      Last edited by LillWicke; 2013-12-13, 00:24. Anledning: Tillägg av volym som villkor

      Comment


      • #4
        Ursprungligen postat av LillWicke Visa inlägg
        Här har du ett script som rullande lagrar de senaste 5 köptransarna med globala variabler.



        { Lagring av de senaste köptransarna rullande }

        senaste_köp=lasttrade(b,p)
        cond2=not(eqv(senaste_köp,getgvar(20,N)))

        { Lagring av de 5 senaste köptransarna }
        setgvarif(getgvar(17,N),16,cond2,T)
        setgvarif(getgvar(18,N),17,cond2,T)
        setgvarif(getgvar(19,N),18,cond2,T)
        setgvarif(getgvar(20,N),19,cond2,T)
        setgvarif(senaste_köp,20,cond2,T) { Senaste köpet }

        { De 5 senaste köptransarna }
        köp0=getgvar(20,N)
        köp1=getgvar(19,N)
        köp2=getgvar(18,N)
        köp3=getgvar(17,N)
        köp4=getgvar(16,N)
        Du har säkert kört scriptet och vet att det fungerar, men jag har en fundering. Jag trodde lasttrade(b,p) uppdateras två gånger. Först när ordern skickas och sedan när ordern har gått igenom och återrapporterats. Skulle priset inte bli det samma skulle det kunna bli två uppdateringar. Eller det kanske bara var i gamla AT?

        Comment


        • #5
          Ursprungligen postat av Henric Visa inlägg
          Jag trodde lasttrade(b,p) uppdateras två gånger. Först när ordern skickas och sedan när ordern har gått igenom och återrapporterats. Skulle priset inte bli det samma skulle det kunna bli två uppdateringar. Eller det kanske bara var i gamla AT?
          Hmm, ja, hur är det med den saken?
          Jag har fått för mig att det enbart är på återrapporteringen?
          Det här är ju väsentligt kunskap för att scriptet skall fungera som tänkt, tack för att du tog upp det Henric.

          Rikard får väl svara på detta antar jag.

          Comment


          • #6
            Ursprungligen postat av LillWicke Visa inlägg
            Hmm, ja, hur är det med den saken?
            Jag har fått för mig att det enbart är på återrapporteringen?
            Det här är ju väsentligt kunskap för att scriptet skall fungera som tänkt, tack för att du tog upp det Henric.

            Rikard får väl svara på detta antar jag.

            Oavsett hur det fungerar i min tidigare fråga skulle en cell med portfolio(v) lösa detta. Uppdatering sker bara när både portfolio(v) och lasttrade(b,p) har ändrats. Nu ska vi inte bygga en fågel av en fjäder, men jag tänkte på delavslut(tex resultatredovisning). En delay kanske också ska vara med.

            Comment


            • #7
              Ja, en delay skulle man kunna ha med. Har för mig att Rikard sagt att det tar max en minut för Nordnet att återrapportera.
              gt(Portfolio(v),0) skulle man ju även på ett enkelt sätt kunna ha med i cond2 varpå det hela då borde fungera (om man inte stegar sig in i positionerna vill säga).

              EDIT: Vid närmare eftertanke är nog en koll av volymen i en separat cell att föredra då detta kommer att fungera oavsett stegning och dubbla lasttrade. Ändrar genast i orginalscriptet.
              Last edited by LillWicke; 2013-12-13, 00:19.

              Comment


              • #8
                Det går ju fint att spara även antal i en cell vid order och jämföra med verkligt innehav osv, men jag tycker helt klart att cellerna som lagras vid transaktion är att föredra eftersom scriptet då kan användas för vilka instrument som helst. Det blir inga krockar när olika instrument ska sparas i samma celler, och inga globala celler låses upp. Dessutom behöver man inte villkira skrivningen eftersom värdena endast lagras vid order.

                Comment


                • #9
                  Tack så mycket för scriptet. Det har nog många nytta av.
                  mvh
                  Bertil

                  Comment


                  • #10
                    Ursprungligen postat av Rikard Nilsson Visa inlägg
                    Det går ju fint att spara även antal i en cell vid order och jämföra med verkligt innehav osv, men jag tycker helt klart att cellerna som lagras vid transaktion är att föredra eftersom scriptet då kan användas för vilka instrument som helst. Det blir inga krockar när olika instrument ska sparas i samma celler, och inga globala celler låses upp. Dessutom behöver man inte villkira skrivningen eftersom värdena endast lagras vid order.

                    Vet inte om jag håller med dig riktigt här.
                    Om man vill kunna köra scriptet mot olika instrument kan man ju komplettera med crcid() som nollställer cellerna när man byter instrument.

                    Fördelen med globala är ju att många olika modeller/script samtidigt kan ta del av värdena och oberoende av varandra göra beräkningar på dessa. Man slipper alltså att lägga in beräkningarna i varje enskilt script utan det räcker med att ha ett enskilt kontrollscript som pytsar ut värderna. (Bertil har ju måånga script )

                    Rikard, hur var det nu med lasttrade() ändras värdet både vid orderläggning och återrapportering? Detta kan vara bra att veta.

                    Comment


                    • #11
                      Blandar mig in i diskussionen.
                      Jag har ett relaterat problem där jag vill kontrollera antalet
                      öppna positioner som jag har i min depå.

                      Denna info behöver jag för att kunna beräkna positionsstorlek på ett
                      balanserat sätt beroende på antal öppna positioner och tillgängligt kapital
                      jag har just nu.

                      Går det att på ett enkelt sätt få fram antalet positioner i ens depå ?
                      Alltså något åt detta hållet: nrPositions:=konto("antal positioner").

                      Om inte, skulle det funka att använda Wicke's metod här med att kolla
                      lasttrade() och spara och hämta från globala variabler ?

                      Kan ge mer detaljerad beskrivning av vad jag försöker göra om jag är oklar.
                      Handelsstrategi

                      Typ: Swing trading
                      Marknad: Trendföljande
                      Tidshorisont: 2 dagar och uppåt
                      Entry: Baserad på candlestickformationer och bekräftad rörelse i ”min” riktning hos OMXSPI + instrumentet
                      Indikatorer: Stochastics
                      Profit targets: MA20/50/200, konsolideringsområden, trendlinjer, gap och Fibonaccinivåer
                      Monitorering: Automatisk med larm när köp, profit target och sälj skett
                      Exit: Baserat på candlestickformationer, initial stop, tidsstopp eller trailing stop baserat på 2*ATR(21)

                      Comment


                      • #12
                        Ursprungligen postat av LillWicke Visa inlägg
                        Vet inte om jag håller med dig riktigt här.
                        Om man vill kunna köra scriptet mot olika instrument kan man ju komplettera med crcid() som nollställer cellerna när man byter instrument.

                        Fördelen med globala är ju att många olika modeller/script samtidigt kan ta del av värdena och oberoende av varandra göra beräkningar på dessa. Man slipper alltså att lägga in beräkningarna i varje enskilt script utan det räcker med att ha ett enskilt kontrollscript som pytsar ut värderna. (Bertil har ju måånga script )

                        Rikard, hur var det nu med lasttrade() ändras värdet både vid orderläggning och återrapportering? Detta kan vara bra att veta.

                        Det beror ju helt på vad man vill göra, tex om det är script som endast handlar terminen går det ju fint att använda globala celler. Men om man handlar ett gäng aktier som en portfölj är det troligen mycket bättre att använda transaktionscellerna eftersom scripten då inte behöver ändras för varje instrument.

                        LastTrade returnerar värdena i ordern tills verkligt avslut skett och återrapporterats av Nordnet, då blir det dessa värden som returneras istället.

                        Ursprungligen postat av shadowtwister Visa inlägg
                        Blandar mig in i diskussionen.
                        Jag har ett relaterat problem där jag vill kontrollera antalet
                        öppna positioner som jag har i min depå.

                        Denna info behöver jag för att kunna beräkna positionsstorlek på ett
                        balanserat sätt beroende på antal öppna positioner och tillgängligt kapital
                        jag har just nu.

                        Går det att på ett enkelt sätt få fram antalet positioner i ens depå ?
                        Alltså något åt detta hållet: nrPositions:=konto("antal positioner").

                        Om inte, skulle det funka att använda Wicke's metod här med att kolla
                        lasttrade() och spara och hämta från globala variabler ?

                        Kan ge mer detaljerad beskrivning av vad jag försöker göra om jag är oklar.
                        Ett sätt att göra det är att beräkna kontots verkliga värde "just nu" med:

                        sub(add(cash(a),cash(t)),cash(u))

                        och jämföra med trading power, cash(t) så vet man hur mycket kapital som ligger låst i positioner samt hur mycket som finns ledigt.

                        I bänken kan man tom simulera med kredit och man vill använda belåning för aktier. Då kan man använda följande för att räkna verkligt värde:

                        sub(sub(add(cash(a),cash(t)),cash(u)),cash(c))


                        I en live-situation kommer dock cash(c) att returnera negativt värde vid belåning, varför man bör ta hänsyn till det genom tex:

                        sub(sub(add(cash(a),cash(t)),cash(u)),if(gt(cash(c),0),cash(c),0))


                        så får man en rad som bör fungera både live och i bänken. Den returnerar alltså kontots verkliga värde inkl öppna positioner men utan belåningsvärde.


                        Comment


                        • #13
                          Tack Rikard. Då är jag nog rätt ute vad gäller funktionen cash().
                          Jag tar och postar en ny tråd då jag tror det jag försöker göra inte
                          riktigt är relevant för denna tråden.
                          Handelsstrategi

                          Typ: Swing trading
                          Marknad: Trendföljande
                          Tidshorisont: 2 dagar och uppåt
                          Entry: Baserad på candlestickformationer och bekräftad rörelse i ”min” riktning hos OMXSPI + instrumentet
                          Indikatorer: Stochastics
                          Profit targets: MA20/50/200, konsolideringsområden, trendlinjer, gap och Fibonaccinivåer
                          Monitorering: Automatisk med larm när köp, profit target och sälj skett
                          Exit: Baserat på candlestickformationer, initial stop, tidsstopp eller trailing stop baserat på 2*ATR(21)

                          Comment

                          Working...
                          X