Allmänt meddelande

Collapse
No announcement yet.

Komplett experimentmodell

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

  • Komplett experimentmodell

    För de som vill prova den kompletta ordermodellen i sitt nuvarande skick så finns scripten här.

    OBS! Det här är inget för räddhågade!

    Här är spinn aktiverat oxå, så det är viktigt att köra med dessa antalsscript.

    OBS! Det här går ännu inte att backtesta, för det bygger både på LastTrade och DATE() osv, så det blir till att backtesta manuellt i så fall.
    Dessutom syns bara signalerna när tidsfiltret är sant.
    Man kan ju givetvis göra en kopia av entryscripten där man "kopplat förbi" innehav och tidsignal för att ständigt kunna se var flaggorna hamnar.

    Entryscriptens antal bestäms av kassan, och om man vill så kan man sätta maxantal2 ( köpsidan) till valfritt antal, och maxantal4 (blanksidan) till valfritt antal, negativt då.

    Annars är det begränsat till plus/minus 10 kontrakt.

    Lycka till!



    Ordermodell 1:

    sl ) Köp

    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)
    stängning:=le(sub(Market(c),frac(date())),15)
    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)
    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))
    signal3=And(signal2,Not(stängning))
    )



    va) Köpantal

    skippa:=Gt(portfolio(v),0)
    maxantal1:=Mult(0.9,Div(Cash(),s))
    i1(
    maxantal2=Mn(Int(Div(maxantal1,10)),10)
    maxantal3=If(Eqv(maxantal2,0),1,maxantal2)
    målantal=If(skippa,0,maxantal3)
    innehav=Portfolio(v)
    övermål=Ge(innehav,målantal)
    slutantal1=If(övermål,0,SUB(målantal,innehav))
    slutantal1)


    vl) Köppris

    i1(Add(S,0.5))


    Exitscript:

    sl) Stäng lång position

    lastbuy:=LastTrade(B,P)
    level:=Add(0.5,Div(1.5,innehav))
    vinst:=Gt(c,Add(lastbuy,level))
    fredag:=Eqv(DayOfWeek(),5)
    stängning:=le(sub(Market(c),frac(date())),15)
    säkra:=And(vinst,And(fredag,stängning))
    rgln1:=Mov(LinReg(c,16),3,e)
    ma1:=Mov(c,5,e)
    slowrsi:=Mov(LinReg(Rsi(25),4),10,e)
    rsifaller:=Lt(LlvBars(slowrsi,2),1)
    regner:=Lt(LlvBars(rgln1,2),1)
    stochastic:=Lt(Stoc(LinReg(c,15),3),40)
    tidnu:=Frac(DATE())
    totalt:=Mult(tidnu,1440)
    rest:=Int(Mod(totalt,30))
    tidsignal:=Gt(rest,28)
    {tidsignal:=1}
    i30(
    signal1=And(Lt(ma1,rgln1),And(tidsignal,And(stochastic,And(regner,rsifaller))))
    signal2=And(And(signal1,Gt(slowrsi,-45)),Not(stängning))
    signal3=Or(signal2,Or(säkra,oexponerad))
    )


    va) Stäng antal

    innehav:=Portfolio(v)
    i1(
    antal1=If(Le(innehav,0),0,innehav)
    antal1)


    vl) Säljpris

    i1(Sub(B,0.5))

    LOOP


    Ordermodell 2:

    sl) Blanka
    rgln1:=Mov(LinReg(c,16),3,e)
    ma1:=Mov(c,5,e)
    slowrsi:=Mov(LinReg(Rsi(25),4),10,e)
    rsifaller:=Lt(LlvBars(slowrsi,2),1)
    regner:=Lt(LlvBars(rgln1,2),1)
    stochastic:=Lt(Stoc(LinReg(c,15),3),40)
    stängning:=le(sub(Market(c),frac(date())),15)
    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)
    lastbuy:=LastTrade(B,P)
    i30(
    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))))
    signal2=And(Or(felexponerad,signal1),Gt(slowrsi,-45))
    signal3=And(signal2,Not(stängning))
    )


    va) Blankantal

    skippa:=Lt(portfolio(v),0)
    maxantal1:=Div(Div(Cash(),s),10)
    maxantal2:=If(Gt(Portfolio(v),0),Mult(maxantal1,0.75),maxantal1)
    i1(
    maxantal3=Sub(0,Mn(Int(maxantal2),10))
    maxantal4=If(Eqv(maxantal3,0),-1,maxantal3)
    målantal=If(skippa,0,maxantal4)
    innehav=Portfolio(v)
    undermål=Le(innehav,målantal)
    slutantal=Abs(If(undermål,0,Sub(målantal,innehav)))
    slutantal)


    vl) säljpris

    i1(Sub(B,0.5))


    sl) Stäng kort position

    lastsell:=LastTrade(S,P)
    level:=Add(0.5,Div(-1.5,innehav))
    vinst:=Lt(c,Sub(lastsell,level))
    fredag:=Eqv(DayOfWeek(),5)
    stängning:=le(sub(Market(c),frac(date())),15)
    säkra:=And(vinst,And(fredag,stängning))
    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)
    mt1:=Mult(Sub(market(c),Frac(d)),1440)
    mt2:=Ge(mt1,12)
    tidnu:=Frac(DATE())
    totalt:=Mult(tidnu,1440)
    rest:=Int(Mod(totalt,30))
    tidsignal:=Gt(rest,28)
    {tidsignal:=1}
    i30(
    signal1=And(Gt(ma1,rgln1),And(tidsignal,And(stochastic,And(regupp,rsistiger))))
    signal2=And(And(signal1,Lt(slowrsi,45)),Not(stängning))
    signal3=Or(signal2,Or(säkra,oexponerad))
    )


    va) Stäng kort antal

    innehav:=Portfolio(v)
    i1(
    antal1=If(Ge(innehav,0),0,Abs(innehav))
    antal1)


    vl) Köppris

    i1(Add(S,0.5))

    LOOP

  • #2
    Kom på en situation som skulle kunna innebära problem, nämligen om nåt av entryscripten och motsatta exitscriptet postar order exakt samtidigt. Tror inte det händer så mycket mer än att den ena kasseras, men om man vill vara på säkra sidan så kan man byta ut raden som börjar med

    tidsignal3=osv... mot följande i båda entryscripten:

    tidsignal3=And(Or(And(Or(Eqv(innehav,0),vinst),tidsignal1),tidsignal2),Le(rest,28))

    Då spärras sista 3 minuterna i entryscripten, och endast exitscripten kan posta order just då.

    Comment


    • #3
      Två översta raderna föll bort när jag klippte och klistrade i exitscripten:


      sl) Stäng lång position

      innehav:=Portfolio(v)
      oexponerad:=Le(innehav,0)
      lastbuy:=LastTrade(B,P)
      level:=Add(0.5,Div(1.5,innehav))
      vinst:=And(Not(oexponerad),Gt(c,Add(lastbuy,level)))
      fredag:=Eqv(DayOfWeek(),5)
      stängning:=le(sub(Market(c),frac(date())),15)
      säkra:=And(vinst,And(fredag,stängning))
      rgln1:=Mov(LinReg(c,16),3,e)
      ma1:=Mov(c,5,e)
      slowrsi:=Mov(LinReg(Rsi(25),4),10,e)
      rsifaller:=Lt(LlvBars(slowrsi,2),1)
      regner:=Lt(LlvBars(rgln1,2),1)
      stochastic:=Lt(Stoc(LinReg(c,15),3),40)
      tidnu:=Frac(DATE())
      totalt:=Mult(tidnu,1440)
      rest:=Int(Mod(totalt,30))
      tidsignal:=Gt(rest,28)
      {tidsignal:=1}
      i30(
      signal1=And(Lt(ma1,rgln1),And(tidsignal,And(stochastic,And(regner,rsifaller))))
      signal2=And(And(signal1,Gt(slowrsi,-45)),Not(stängning))
      signal3=Or(signal2,Or(säkra,oexponerad))
      )



      sl) Stäng kort pos

      innehav:=Portfolio(v)
      oexponerad:=Ge(innehav,0)
      lastsell:=LastTrade(S,P)
      level:=Add(0.5,Div(-1.5,innehav))
      vinst:=And(Not(oexponerad),Lt(c,Sub(lastsell,level)))
      fredag:=Eqv(DayOfWeek(),5)
      stängning:=Le(sub(Market(c),frac(date())),15)
      säkra:=And(vinst,And(fredag,stängning))
      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)
      mt1:=Mult(Sub(market(c),Frac(d)),1440)
      mt2:=Ge(mt1,12)
      tidnu:=Frac(DATE())
      totalt:=Mult(tidnu,1440)
      rest:=Int(Mod(totalt,30))
      tidsignal:=Gt(rest,28)
      {tidsignal:=1}
      i30(
      signal1=And(Gt(ma1,rgln1),And(tidsignal,And(stochastic,And(regupp,rsistiger))))
      signal2=And(And(signal1,Lt(slowrsi,45)),Not(stängning))
      signal3=Or(signal2,Or(säkra,oexponerad))
      )

      Comment


      • #4
        Sådär, då är buggen med "stängning" fixad, så nu släpps signalerna igenom som de ska.
        Köpsignal släpptes annars runt kl 13:40 idag.

        Lika bra att lägga ut samtliga script igen så är det lättare att klistra in.


        Ordermodell 1:

        sl ) Köp

        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)
        stängning:=le(mult(1440,sub(market(c),frac(date()))),12)
        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)
        lastsell:=LastTrade(S,P)
        i30(
        level=Add(0.5,Div(-1.5,innehav))
        vinst=Lt(c,Sub(lastsell,level))
        tidsignal3=And(Or(And(Or(Eqv(innehav,0),vinst),tidsignal1),tidsignal2),Le(rest,28))
        signal1=And(Gt(ma1,rgln1),And(tidsignal3,And(stochastic,And(regupp,rsistiger))))
        signal2=And(Or(felexponerad,signal1),Lt(slowrsi,45))
        signal3=And(signal2,Not(stängning))
        )


        va) Köpantal

        skippa:=Gt(portfolio(v),0)
        maxantal1:=Mult(0.9,Div(Cash(),s))
        i1(
        maxantal2=Mn(Int(Div(maxantal1,10)),10)
        maxantal3=If(Eqv(maxantal2,0),1,maxantal2)
        målantal=If(skippa,0,maxantal3)
        innehav=Portfolio(v)
        övermål=Ge(innehav,målantal)
        slutantal1=If(övermål,0,SUB(målantal,innehav))
        slutantal1)


        vl) Köppris

        i1(Add(S,0.5))


        Exitscript:

        sl) Stäng lång position

        innehav:=Portfolio(v)
        oexponerad:=Le(innehav,0)
        lastbuy:=LastTrade(B,P)
        level:=Add(0.5,Div(1.5,innehav))
        vinst:=And(Not(oexponerad),Gt(c,Add(lastbuy,level)))
        fredag:=Eqv(DayOfWeek(),5)
        stängning:=le(mult(1440,sub(market(c),frac(date()))),12)
        säkra:=And(vinst,And(fredag,stängning))
        rgln1:=Mov(LinReg(c,16),3,e)
        ma1:=Mov(c,5,e)
        slowrsi:=Mov(LinReg(Rsi(25),4),10,e)
        rsifaller:=Lt(LlvBars(slowrsi,2),1)
        regner:=Lt(LlvBars(rgln1,2),1)
        stochastic:=Lt(Stoc(LinReg(c,15),3),40)
        tidnu:=Frac(DATE())
        totalt:=Mult(tidnu,1440)
        rest:=Int(Mod(totalt,30))
        tidsignal:=Gt(rest,28)
        {tidsignal:=1}
        i30(
        signal1=And(Lt(ma1,rgln1),And(tidsignal,And(stochastic,And(regner,rsifaller))))
        signal2=And(And(signal1,Gt(slowrsi,-45)),Not(stängning))
        signal3=Or(signal2,Or(säkra,oexponerad))
        signal3)


        va) Stäng antal

        innehav:=Portfolio(v)
        i1(
        antal1=If(Le(innehav,0),0,innehav)
        antal1)


        vl) Säljpris

        i1(Sub(B,0.5))

        LOOP


        Ordermodell 2:

        sl) Blanka

        rgln1:=Mov(LinReg(c,16),3,e)
        ma1:=Mov(c,5,e)
        slowrsi:=Mov(LinReg(Rsi(25),4),10,e)
        rsifaller:=Lt(LlvBars(slowrsi,2),1)
        regner:=Lt(LlvBars(rgln1,2),1)
        stochastic:=Lt(Stoc(LinReg(c,15),3),40)
        stängning:=le(mult(1440,sub(market(c),frac(date()))),12)
        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)
        lastbuy:=LastTrade(B,P)
        i30(
        level=Add(0.5,Div(1.5,innehav))
        vinst=Gt(c,Add(lastbuy,level))
        tidsignal3=And(Or(And(Or(Eqv(innehav,0),vinst),tidsignal1),tidsignal2),Le(rest,28))
        signal1=And(Lt(ma1,rgln1),And(tidsignal3,And(stochastic,And(regner,rsifaller))))
        signal2=And(Or(felexponerad,signal1),Gt(slowrsi,-45))
        signal3=And(signal2,Not(stängning))
        )


        va) Blankantal

        skippa:=Lt(portfolio(v),0)
        maxantal1:=Div(Div(Cash(),s),10)
        maxantal2:=If(Gt(Portfolio(v),0),Mult(maxantal1,0.75),maxantal1)
        i1(
        maxantal3=Sub(0,Mn(Int(maxantal2),10))
        maxantal4=If(Eqv(maxantal3,0),-1,maxantal3)
        målantal=If(skippa,0,maxantal4)
        innehav=Portfolio(v)
        undermål=Le(innehav,målantal)
        slutantal=Abs(If(undermål,0,Sub(målantal,innehav)))
        slutantal)


        vl) säljpris

        i1(Sub(B,0.5))


        sl) Stäng kort position

        innehav:=Portfolio(v)
        oexponerad:=Ge(innehav,0)
        lastsell:=LastTrade(S,P)
        level:=Add(0.5,Div(-1.5,innehav))
        vinst:=And(Not(oexponerad),Lt(c,Sub(lastsell,level)))
        fredag:=Eqv(DayOfWeek(),5)
        stängning:=le(mult(1440,sub(market(c),frac(date()))),12)
        säkra:=And(vinst,And(fredag,stängning))
        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)
        mt1:=Mult(Sub(market(c),Frac(d)),1440)
        mt2:=Ge(mt1,12)
        tidnu:=Frac(DATE())
        totalt:=Mult(tidnu,1440)
        rest:=Int(Mod(totalt,30))
        tidsignal:=Gt(rest,28)
        {tidsignal:=1}
        i30(
        signal1=And(Gt(ma1,rgln1),And(tidsignal,And(stochastic,And(regupp,rsistiger))))
        signal2=And(And(signal1,Lt(slowrsi,45)),Not(stängning))
        signal3=Or(signal2,Or(säkra,oexponerad))
        )

        va) Stäng kort antal

        innehav:=Portfolio(v)
        i1(
        antal1=If(Ge(innehav,0),0,Abs(innehav))
        antal1)


        vl) Köppris

        i1(Add(S,0.5))

        LOOP

        Comment


        • #5
          Hej Rikard.
          Jag har labbat med antalscripten och det jag får att stämma med mitt innehav
          + 5 kont. är det här.

          Det köps 0 och säljs 10.

          va) Köpantal

          skippa:=Gt(portfolio(v),0)
          maxantal1:=Mult(0.9,Div(Cash(),s))
          i1(
          maxantal2=Mn(Int(Div(maxantal1,5)),5)
          maxantal3=If(Eqv(maxantal2,0),1,maxantal2)
          målantal=If(skippa,0,maxantal3)
          innehav=Portfolio(v)
          övermål=Ge(innehav,målantal)
          slutantal1=If(övermål,0,SUB(målantal,innehav))
          slutantal1)



          va) Blankantal

          skippa:=Lt(portfolio(v),0)
          maxantal1:=Div(Div(Cash(),s),10)
          maxantal2:=If(Gt(Portfolio(v),0),Mult(maxantal1,0.75),maxantal1)
          i1(
          maxantal3=Sub(0,Mn(Int(maxantal2),5))
          maxantal4=If(Eqv(maxantal3,0),-1,maxantal3)
          målantal=If(skippa,0,maxantal4)
          innehav=Portfolio(v)
          undermål=Le(innehav,målantal)
          slutantal=Abs(If(undermål,0,Sub(målantal,innehav)))
          slutantal)

          Hur gör man för att inte blanda in kassan, det skulle jag nog inte våga köra automatiskt på ?

          Comment


          • #6
            Det stämmer som du säger att det köps 0 och säljs 10 om du har 5 kontrakt just nu. För att komma till 5 (som du redan har) så behövs det köpas noll kontrakt, och för att komma till -5 behövs det säljas 10 kontrakt.
            Du kan ju begränsa maxantalet till vad du vill som du gjort, 5 i det här fallet. Då kommer det ju att bli 5 kontrakt lång och 5 kontrakt kort såvida inte kassan blir lägre, för då trimmas antalet ner oxå.

            Vill du inte blanda in kassan alls så kan du ersätta den delen med ett fast värde enligt nedan:

            va) Köpantal

            skippa:=Gt(portfolio(v),0)
            maxantal1:=Mult(0.9,Div(Cash(),s))
            i1(
            maxantal2=Mn(Int(Div(maxantal1,5)),5)
            maxantal3=If(Eqv(maxantal2,0),1,maxantal2)
            {målantal=If(skippa,0,maxantal3)}
            målantal=If(skippa,0,5) {här bestäms fast antal 5)
            innehav=Portfolio(v)
            övermål=Ge(innehav,målantal)
            slutantal1=If(övermål,0,SUB(målantal,innehav))
            slutantal1)



            va) Blankantal

            skippa:=Lt(portfolio(v),0)
            maxantal1:=Div(Div(Cash(),s),10)
            maxantal2:=If(Gt(Portfolio(v),0),Mult(maxantal1,0.75),maxantal1)
            i1(
            maxantal3=Sub(0,Mn(Int(maxantal2),5))
            maxantal4=If(Eqv(maxantal3,0),-1,maxantal3)
            {målantal=If(skippa,0,maxantal4)}
            målantal=If(skippa,0,-5) {Här bestäms fast antal -5}
            innehav=Portfolio(v)
            undermål=Le(innehav,målantal)
            slutantal=Abs(If(undermål,0,Sub(målantal,innehav)))
            slutantal)

            Comment


            • #7
              Hej Rikard.

              Har jag gjort något fel eller kan det bli så här, se bild ?

              Jag har 0 kont. på depån och den skickar sälj 5 och köp 0 med 1 min. imellan.

              Attached Files

              Comment


              • #8
                Kör du i simuleringsläge?
                Det funkar inte i så fall.

                Och kör du med "rätt" antalsscript? De som jag lade ut tillsammans med de andra scripten?

                Annars får du kolla i Lokala Ordertransar om det verkligen posas nåt mot Nordnet.

                Comment


                • #9
                  Ja jag kör simulering och antalscriptena är rätt men spärrade till max 5 Kont.

                  Ordermodellen stängde Sälj kl 17:19 i går därför försöker den kanske komma in igen.

                  Comment


                  • #10
                    Den postar blankorder tills det finns något blankat på depån, eller blanksignalerna inte finns längre.

                    Jag lägger ut lite till senare idag om jag hinner, med en extra sekvens som skickar vidare rätt värde för att LastTrade ska funka.

                    Delsäkringsscripten väntar jag med tills jag testa allt själv. Är lite osäker på om RetVal och GetVal kommer att funka som jag tror.

                    Comment


                    • #11
                      Hej Rikard.
                      Är det någon vinsthemtagning inbyggd i dina entryscript ?

                      Köp i dag kl 09:27 733.75
                      Stäng köp kl 17:17 738.50

                      Bara nyfiken.

                      Comment


                      • #12
                        Hej Ali!
                        Inte i entryscripten, men det kommer att bli i exitscripten, och en extra ordermodell som delsäkrar tex halva innehavet under vissa förutsättningar.
                        Jag har testkört en del idag och allt verkar faktiskt funka!

                        Har byggt om lite och numera är det 6 parallella ordermodeller, med ett script i varje. Det låter komplicerat men är mycket enklare egentligen.

                        Ska finslipa lite på vinsthemtag och delsäkring så lägger jag ut det hela under helgen.

                        Det enda jag inte lyckats få till ännu (eller haft tid med egentligen) är att få exitscripten att räkna ut hur många kontrakt som köptes/blankades från början, så jag har valt att beräkna det med hjälp av kassan, alltså hur mycket utrymme det finns tillgängligt.

                        Lasse har ju en hel del godis "gömt" i 7:an som jag inte hunnit sätta mig in i än så länge.

                        Comment

                        Working...
                        X