Allmänt meddelande

Collapse
No announcement yet.

Sälja kl 17:00 med script?

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

  • Sälja kl 17:00 med script?

    Hej! Här är något att bita i kanske:
    Om man vill sälja sitt innehav kl 17:00 varje dag om inte redan säljscriptet har gjort det, hur gör man då? Jag gissar att det är något man får baka in i säljscriptet med en OR-sats nånstans. Skulle inte förvåna mig om Torsten blir först med att lösa det, så jag lägger ut nuvarande säljscript så har ni nåt att leka med.

    Säljscript:

    flytnivå:=0.94
    {dvs 6 % ner från högsta}
    bakåt1:=300
    start:=if(ge(d,LastTrade(b,d)),h,0)
    max:=hhv(start,bakåt1)
    gräns:=mult(max,flytnivå)
    medv:=mov(C,3,s)
    steg1:=LE(medv,gräns)
    {signaler bara vid innehav}
    innehav:=GT(portfolio(V),0)
    bevlinj:=Mult(innehav,steg1)
    ag11:=Rsi(14)
    ag12:=Lt(ag11,-45)
    ag13:=Hhv(ag12,3)
    ag21:=Lt(LlvBars(Mov(C,30,s),2),1)
    ag23:=Hhv(ag21,2)
    ag31:=BolBands(25,1.7,x)
    ag33:=Hhv(ag31,25)
    del1:=And(ag13,And(ag21,ag33))
    del2:=AND(del1,ag33)
    sälj:=OR(del2,bevlinj)
    i10(sälj)

  • #2
    Script för tidstester mot stängning för dagen

    Javisst går det.

    mt1:=mult(sub(market(c),frac(d)),1440)
    mt2:=le(mt1,60)

    'mt2' här blir SANT när man inom 60 minuter från stängning.

    'mt1' har antal minuter från stängning och testen görs i 'mt2'.

    Market(c) ger ju stängningstiden i form av ett flyttal som anger hur långt in på dygnet man är.

    Frac(d) tar tidstämpeln för innevarande period. Det filtrerar bort datumet genom Frac()-anropet.

    En enkel subtraktion får fram tiden som ett flyttal

    Mutliplikation med 1440 ger denna tidsrymd i minuter eftersom ett dygn är 1440 minuter.

    Bara att OR():a ihop med övriga scriptet och välja tid från stängning.

    Comment


    • #3
      Att notera:

      Per intraday anger 'D' tidstämpeln för början på en period.

      Så kör du 60-minuters perioder, så hoppar alltid det värdet 60 minuter också.

      Vill du ha systemtiden använder du anropet Date() istället för D.

      Nackdelen med Date() är att du kan inte backtesta med den, eftersom den alltid ger systemtid just nu.

      Så konstruera gärna för backtesting om det går, dvs använd 'D' hellre än Date().

      Comment


      • #4
        Man tackar! Genialt måste jag säga!

        Comment


        • #5
          Jag har nog gjort något fel för jag fick ingen säljorder i eftermiddags. Är det nåt med OR-satsen eller nåt med D ?
          Lägger ut scriptet som det ser ut nu:

          Önskar alltså sälj 27 minuter innan stängning.

          flytnivå:=0.97
          {dvs 3 % ner från högsta}
          bakåt1:=300
          start:=if(ge(d,LastTrade(b,d)),h,0)
          max:=hhv(start,bakåt1)
          gräns:=mult(max,flytnivå)
          medv:=mov(C,4,s)
          {elastisk stopp 4 perioder}
          steg1:=LE(medv,gräns)
          {signaler bara vid innehav}
          innehav:=GT(portfolio(V),0)
          bevlinj:=Mult(innehav,steg1)
          ag11:=Rsi(14)
          ag12:=Lt(ag11,-45)
          ag13:=Hhv(ag12,3)
          ag21:=Lt(LlvBars(Mov(C,30,s),2),1)
          ag23:=Hhv(ag21,2)
          ag31:=BolBands(25,1.7,x)
          ag33:=Hhv(ag31,25)
          del1:=And(ag13,And(ag21,ag33))
          del2:=AND(del1,ag33)
          säljsignal:=OR(del2,bevlinj)
          mt1:=mult(sub(market(c),frac(d)),1440)
          mt2:=le(mt1,27)
          {tid från stängning i minuter}
          sälj:=OR(mt2,säljsignal)
          i10(sälj)

          Comment


          • #6
            Aha...skrev 17 minuter innan idag, men det verkar vara för sent. Ändrade till 33 minuter, då syns det i diagrammet. Problemet löst!

            Comment


            • #7
              Som du skrivit den fick jag den att slå in de två sista perioderna för varje dag.

              Jag kopierade scriptet rakt av bara. Det jobbar ju per 10-minuters i vilket fall.

              Skall du se precis samma stapel den löser ut vid, så kör intradaygrafen också i 10-minuters period.

              Comment


              • #8
                Per 10 minuter blir det ju tidstämplar:

                17.00
                17.10
                17.20

                17.20 är sista perioden för dagen. Startar 17.20 och räcker till 17.29.59.

                Du avrundar till hela minuter här och stängning är 17.29 då.

                Minus 27 minuter blir 17.02 eller senare.

                Korrekt period blir då 17.10 först som det blir sant.

                Comment


                • #9
                  Och sätter du 33 som du gjorde så löser det ut 17.00.

                  Comment

                  Working...
                  X