Allmänt meddelande

Collapse
No announcement yet.

Tidsvillkor med Retval

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

  • Tidsvillkor med Retval

    EXIT KÖP SCRIPT
    ===========

    Jag triggar exitscriptet var 15:e minut. Därutöver vill jag kunna göra en exit exakt 2 minuter innan stängning och senare ska jag simulera köp- och exitscript med en fast stopp som bestäms med sub(c,x) vid signal för köpscriptet. Stoppen ska kunna trigga när som helst. Därför har jag bytt i(15) til i(1) och sedan lagt till ett tidsvillkor för exitsignal. Jag får error och undrar om det är Retval som spökar och hur ska man lösa detta. Live går det att lägga tidsvillkoret i en SetGvarIf.

    Exitscript med i(15):

    mclose:=le(mult(1440,sub(market(c),frac(d))),12)
    köp1:={lägg in villkor}
    köp2:=or(mclose,köp1),

    i(15
    köp2=köp1
    draw(mult(köp3,20),3,rsbF)
    )


    Exitscript med i(1):

    tidin:=mult(frac(d),1440)
    tidsvillkor:=Retval(if(or(lt(tidin,550),ge(tidin,1038)),0,Getval(6))

    mclose:=le(mult(1440,sub(market(c),frac(d))),2)
    köp1:={lägg in villkor}
    läggtill:=add(tidin,15)
    tidstrigger:=Retval(if(ge(tidin,tidsvillkor),läggtill,tidsvillkor),6)
    köp2:=or(and(köp1,ge(tidin,tidsvillkor)),mclose)

    i1(
    köp3=köp2
    draw(mult(köp3,20),3,rsbF)
    )

  • #2
    Utan att ha tittat igenom funktionen i scriptet så hittade jag ett syntaxfel:

    köp2:=or(mclose,köp1),

    Ett kommatecken för mycket i slutet....det räcker för att få kompilatorn att protestera.

    Comment


    • #3
      Slarvade i ordbehandlaren, första fungerar i AT

      Exit script med i15:

      mclose:=le(mult(1440,sub(market(c),frac(d))),15)
      sälj1:={lägg in villkor}
      sälj2:=or(mclose,köp1)

      i15(
      sälj3=sälj2
      draw(mult(sälj3,20),3,rsbF)
      )


      Exit script med i1:

      tidin:=mult(frac(d),1440)
      tidsvillkor:=Retval(if(or(lt(tidin,550),ge(tidin,1038)),0,Getval(6))

      mclose:=le(mult(1440,sub(market(c),frac(d))),2)
      sälj1:={lägg till villkor}
      läggtill:=add(tidin,15)
      tidstrigger:=Retval(if(ge(tidin,tidsvillkor),läggtill,tidsvillkor),6)
      sälj2:=or(and(köp1,ge(tidin,tidsvillkor)),mclose)

      i1(
      sälj3=sälj2
      draw(mult(sälj3,20),3,rsbF)
      )

      Comment


      • #4
        litet slarv igen, för många saker samtidigt

        Exit script med i15:

        mclose:=le(mult(1440,sub(market(c),frac(d))),15)
        sälj1:={lägg in villkor}
        sälj2:=or(mclose,köp1)

        i15(
        sälj3=sälj2
        draw(mult(sälj3,20),3,rsbF)
        )


        Exit script med i1:

        tidin:=mult(frac(d),1440)
        tidsvillkor:=Retval(if(or(lt(tidin,550),ge(tidin,1038)),0,Getval(6))

        mclose:=le(mult(1440,sub(market(c),frac(d))),2)
        sälj1:={lägg till villkor}
        läggtill:=add(tidin,15)
        tidstrigger:=Retval(if(ge(tidin,tidsvillkor),läggtill,tidsvillkor),6)
        sälj2:=or(and(sälj1,ge(tidin,tidsvillkor)),mclose)

        i1(
        sälj3=sälj2
        draw(mult(sälj3,20),3,rsbF)
        )

        Comment


        • #5
          När man skriver minnesreferenser bör man alltid se till så att ett datanamn blir tilldelat resultatet av en funktion:

          sälj3=sälj2

          bör allstå skrivas som tex:

          sälj3=And(sälj2,1)

          Detta för att kompilatorn ska verkställa det säkert.

          Comment


          • #6
            scriptet fungerar ändå inte

            Är det något annat med scriptet.

            Varför inte skriva and(sälj2,1) istället för sälj3=and(sälj2,1)

            Comment


            • #7
              Ser korrekt ut såvitt jag kan se men jag har inte hunnit testa det själv. Det stämmer också att man lika gärna kan skriva

              and(sälj2,1)

              Comment


              • #8
                Om jag först läser in med Retval och sedan tar ut värdet med Getval i en annan variablel som används i villkor fungerar scriptet utan error. Vet dock inte om resultatet blir rätt.




                Exit script med i1:

                tidin:=mult(frac(d),1440)
                tidsvillkor:=Retval(if(or(lt(tidin,550),ge(tidin,1038)),0,Getval(6))

                mclose:=le(mult(1440,sub(market(c),frac(d))),2)
                sälj1:=gt(c,0)
                läggtill:=add(tidin,15)
                nytid:=Getval(6)
                tidstrigger:=Retval(if(ge(tidin,nytid),läggtill,tidsvillkor),6)
                sälj2:=or(and(sälj1,ge(tidin,nytid)),mclose)

                i1(
                sälj3=sälj2
                draw(mult(sälj3,20),3,rsbF)
                )

                Comment


                • #9
                  Det ser ut att stämma, men jag har inte hunnit provköra själv. Verkar det inte fungera?

                  Comment


                  • #10
                    du är bäst rickard

                    Jag slarvade mig igenom detta och skulle ha kommit på det själv. Vill bara säga att du är suverän. Mästare på at och kundsupport.

                    Comment


                    • #11
                      Ähum...vet inte om jag hjälpt dig speciellt mycket! Men det är ju bra att du kommit på det själv.

                      Comment

                      Working...
                      X