Allmänt meddelande

Collapse
No announcement yet.

RetVal(d,1234)

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

  • RetVal(d,1234)

    Hejsan!
    Sitter här och försöker spika ihop en smart funktion för att handlá max antal kontrakt som kassan tillåter och därefter delsäkra halva innehavet för varje 5 punkter vinst.

    I köpdelens antalsscript tänkte jag spara undan det ursprungliga antalet köpta kontrakt.

    Kan man göra som jag gjort på näst sista raden? Får inte något syntaxfel i alla fall.
    (Resten av scriptet innehåller lite funktioner för "reparation med spinn" vid orderläggningsfel och sånt)

    va) Köp OMX antal

    skippa:=Gt(portfolio(v),0)
    maxantal:=Int(Div(Div(Cash(),s),10))
    minantal:=1
    målantal:=If(skippa,minantal,maxantal)
    innehav:=portfolio(v)
    övermål:=Ge(innehav,målantal)
    antal:=if(övermål,0,SUB(målantal,innehav))
    RetVal(antal,1)
    i1(antal)

  • #2
    Eftersom raden inte innehåller := så exekveras raden alltid. Och då skall intradayprefixet omsluta den raden också.

    Allt returneras genom RetVal() så du kan ha den mitt i utan den extra hantering du gjort. Dvs om den skall returnera flera värden(dataserie) till en annan funktion så passerar dessa transparent genom RetVal(), men första värdet som träffas på sparas i plats 1(av 0-4) enligt ditt script.


    va) Köp OMX antal

    skippa:=Gt(portfolio(v),0)
    maxantal:=Int(Div(Div(Cash(),s),10))
    minantal:=1
    målantal:=If(skippa,minantal,maxantal)
    innehav:=portfolio(v)
    övermål:=Ge(innehav,målantal)
    antal:=if(övermål,0,SUB(målantal,innehav))
    i1(RetVal(antal,1))

    Comment


    • #3
      Perfekt!

      Då är det ganska enkelt att bygga vidare på resten i min ordermodell.
      I det script som stänger positionen så tar man alltså fram det sparade värdet ungefär så här?

      ursprungsantal:=GetVal(1)

      Comment


      • #4
        För blankningssidan borde det bli nåt sånt här va?
        Hade lite problem med parentesdjupet så jag gjorde minnesref i slutet. Måste ju ta hänsyn till att Nordnet tillåter blankning för 70% av kassan. (tror jag)

        skippa:=Lt(portfolio(v),0)
        maxantal1:=Div(Div(Mult(Cash(),0.7),s),10)
        maxantal2:=Sub(0,Int(maxantal1))
        minantal:=-1
        i1(
        målantal=If(skippa,minantal,maxantal2)
        innehav=portfolio(v)
        övermål=Ge(innehav,målantal)
        antal=If(övermål,Sub(målantal,innehav),0)
        slutantal=Abs(antal)
        RetVal(slutantal,2))

        Comment


        • #5
          Ser ok ut

          Comment


          • #6
            Vidareutveckling:

            Om man bara vill ändra på det sparade värdet i cell 1 om det är högre än noll, kan man göra så här då?

            noll:=Eqv(slutantal,0)
            sparatvärde:=RetVal(If(noll,innehav,slutantal),1)

            Comment


            • #7
              Kanske är lättare att förstå om jag lägger ut hela antalsscriptet.

              va) OMX köpantal

              skippa:=Gt(portfolio(v),0)
              maxantal1:=Mult(Div(Cash(),s),0.8)
              maxantal2:=Int(Div(maxantal1,10))
              målantal:=If(skippa,0,maxantal2)
              innehav:=portfolio(v)
              övermål:=Ge(innehav,målantal)
              slutantal:=if(övermål,0,SUB(målantal,innehav))
              noll:=Eqv(slutantal,0)
              sparatvärde:=RetVal(If(noll,innehav,slutantal),1)
              i1(slutantal)

              Comment


              • #8
                Av någon anledning så har det inte sparats något i minnescellen. Där är värdet noll enligt vad jag kan se.
                Ovanstående script har exekverats igår, kontrakt har köpts.

                Comment


                • #9
                  Dessa saker sparas undan för triggerscripten, inte antalscripten eller kontrollscripten.

                  Det är nog det som är haken.

                  Comment


                  • #10
                    Ajaj....hmmm...då blir det till att tänka om.......det smidiga var att få ett antal från antalsscripten och sen använda det i bevakning och bestämma stopploss-nivåer, vinstkontroll etc....och även om man ska snitta eller ej......

                    Comment


                    • #11
                      Hämta upp värden tror jag funkar, det är bara att det som sparas är bara från triggerscriptet. Så viss dubblering av kod i triggerscriptet skulle funka då, om det just är antalspecifik info du vill spara undan.

                      Comment


                      • #12
                        Ok, bra att veta. Jag klistrar in antalsscriptet i triggerscriptet, kollar så jag inte har några dubbla variabler, så sparas värdet undan.

                        Comment

                        Working...
                        X