Allmänt meddelande

Collapse
No announcement yet.

Ännu en nybörjare!

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

  • Ännu en nybörjare!

    Hej alla!

    Här har ni en rykande färsk autostock-kund! Läser med nöje genom diverse forumtrådar. Skön stämning och kul med så många engagerade medlemmar

    Jag har själv en bakgrund som utvecklare (C#.NET / SQL) men har ändå lite trubbel med skriptsyntaxen. Här kommer därför några nybörjarfrågor angående några av de första raderna ur fusion-strategin:

    ## FUSION ##################################
    { Fusion OMX index long 160501 }

    $par1:=10 {0-30}
    dagar:=20
    advance:=5
    pred1=find(lt(d,sub(const(d),30)),25,c,1) <--- Fråga 1
    pred2=find(lt(d,sub(const(d),60)),50,c,1)
    pred3=find(lt(d,sub(const(d),90)),75,c,1)
    pred4=find(lt(d,sub(const(d),120)),100,c,1)
    pred5=find(lt(d,sub(const(d),150)),125,c,1)

    steg=sub(23,mx(mn(advance,22),1)) <--- Fråga 2
    #########################################


    ## Fråga 1 #################################
    Vad betyder denna rad egentligen? Jag tolkar det enligt:

    1. sub(const(d),30) --> Dra bort 30 dagar från dagens datum.
    2. lt(d,sub(const(d),30) --> Kolla om dagens datum är mindre än värdet i steg 1..??
    3. find(lt(d,sub(const(d),30)),25,c,1) --> Hitta stängningspriset på från första datumet där steg 2 är TRUE?
    #########################################

    ## Fråga 2 #################################
    Borde inte denna rad alltid returnera 17 med tanke på att "advance" är satt till 5? Varför krångla till det i så fall?
    #########################################

    Tack på förhand.

  • #2
    Härligt, välkommen!

    Och svaren på dina frågor:

    Fråga 1:
    1. Ja, precis så.
    2. Ja, testa om databastid är före antalet dagar som räknades fram i 1.
    3. Find() hittar villkor bakåt i tiden och returnerar valfri dataserie från den tiden, så i det här fallet returneras C förskjutet med det antal dagar som räknades fram i 2.

    Fråga 2:
    Nja, finessen med const(d) och uträkningen är att man prickar kalenderdatum bättre. Men man skulle komma bra nära även med bara aref(c,17)

    Comment


    • #3
      Tack! Angående Fråga 2 så gällde den följande rad:

      steg=sub(23,mx(mn(advance,22),1))

      ...hur spelar "const(d)" in på den uträkningen?

      Jag kanske bör nämna att jag inte har kommit igång rent praktiskt än på grund av strul med Nordnet. Så det kanske klarnar för mig när jag får lite labba lite..

      Ett par funderingar till:
      - Går det att ställa inte vilken upplösning skriptet kör i från själva skriptet? Har sett att man kan specificera när skriptet ska agera i intraday, men hur gör man med exempelvis veckoupplösning?
      - Hur ofta exekveras triggerskripten? Om man exempelvis endast vill handla kring börsstängning så vill man ju avgränsa så att ordrar inte far iväg under resten av dagen.

      Tack på förhand.

      Comment


      • #4
        Kolla in http://www.autostock.se/nat-scriptre...d1db77f17f3764 och sidan 42 där står en del om tid och perioder.

        30min perioder = tex 2st 30min perioder på en timma.
        i30(
        mov(c,20,s)
        )

        Comment


        • #5
          const() gör om en variabel till konstant så att man kan ta värdet från "nutid" och använda bakåt. Det behövs för att få ett konstant antal perioder i beräkningen av predictive average-dataserierna.

          Comment


          • #6
            Tack för svaren. Det uppskattas. Men jag har fortfarande svårt att se vad denna rad gör:

            steg=sub(23,mx(mn(advance,22),1))

            Borde inte denna alltid returnera 17 med tanke på att "advance" sätts till 5 längre upp i skriptet?

            Comment


            • #7
              Jo, det blir alltid 17, tanken är att man enkelt ska kunna justera hela predictive-kurvan genom att ändra parametern överst i scriptet. Lägger man den som en snabbknapp i indikatorfältet kan man högerklicka och ändra värdet.

              Comment


              • #8
                Bra, då kanske jag inte är helt dum i huvudet trots allt.. Trodde jag missade nåt uppenbart haha

                Tack.

                En annan fråga: Kan du/någon förklara skillnaden på dessa två rader?

                test1=find(lt(d,sub(const(d),30)),25,c,1)
                test2=aref(c,30)

                Comment


                • #9
                  Den första räknar ut vilken som är närmaste börsdag 30 kalenderdagar bakåt och den andra returnerar senast betalt 30 börsdagar bakåt.

                  Comment

                  Working...
                  X