Allmänt meddelande

Collapse
No announcement yet.

Simulera SL med 2 abs nivåer

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

  • Simulera SL med 2 abs nivåer

    Nu när simulerande av Stoploss är på tapeten i en annan tråd tänkte jag passa på att återomma till ett gammalt projekt. Här finns tidigare info om stoppen...

    Scriptet för att simulera i analysbänken ser ut enligt nedan:

    bakåt1:=300
    {perioder bakåt som används för att kolla var köpet skedde}

    flytfaktorstd:=5
    {punkter under högsta toppen sedan köp, innan vinst2 är uppfyllt}
    flytfaktorvinst:=8
    {punkter under högsta toppen sedan köp om vinst2 är uppfyllt}
    absfaktorförlust:=3
    {fast stoppnivå under köpkurs om terminen sjunker}
    absfaktorvinst:=1
    {fast stoppnivå över köpkurs som aktiveras om vinst1 är sant}
    vinstfaktor1:=3.5
    {vinstpunkter gräns för när absfaktorvinst kopplas in}
    vinstfaktor2:=15
    {vinstpunkter gräns för när flytfaktorvinst kopplas in}

    vinst1:=ge(highlevel,add(köpkurs,vinstfaktor1))
    {sant om högsta värdet efter inköp är större än/lika med köpkursen+vinstfaktor1, aktiverar absfaktorvinst}
    vinst2:=ge(highlevel,add(köpkurs,vinstfaktor2))
    {sant om högsta värdet efter inköp är större än/lika med köpkursen+vinstfaktor2, aktiverar flytfaktorvinst}


    Köpentry:=
    {lägg in eget köpscript, samma som på köpsidan i optimeringsbänken}

    lasttradek=Retval(if(And(köpentry,or(ge(getval(4),getval(3)),eqv(getval(4),0))),D,Getval(3)),3)
    efterinköp=if(ge(d,getval(3)),h,0)
    highlevel=hhv(efterinköp,bakåt1)
    {högsta värdet på kursen efter köp}
    stoppok=gt(getval(3),getval(4))
    {innehav finns?}
    köpkurs=find(And(ge(d,getval(3)),lt(ref(d,1),getval(3))),bakåt1,c,1)

    flytnivå=if(vinst2,flytfaktorvinst,flytfaktorstd)
    {Om vinst2 är uppnådd använd flytfaktorvinst, annars flytfaktorstd}

    absnivåer=if(vinst1,add(köpkurs,absfaktorvinst),sub(köpkurs,absfaktorförlust))
    {om vinst1 är sant använd absfaktorvinst, annars absfaktorförlust}

    stoppkurva=mx(sub(highlevel,flytnivå),absnivåer)
    {värdet av det som är störst, flytnivå eller absnivå}

    stoppsälj=lt(l,stoppkurva)
    {stoppok är sant och lägsta är mindre än stoppkurvan}

    lasttrades=Retval(if(And(stoppsälj,gt(getval(3),getval(4))),D,Getval(4)),4)

    draw(if(stoppok,stoppkurva,0),2,rqb)

    and(stoppok,stoppsälj)

    ---------
    Har stoppat in mitt köpscript i stoplossen och kört motsvarande på köpsidan i analysbänken. Nånting stämmer tydligen inte... Har kört med samma parametrar som ovan men t.ex så verkar inte den absoluta stoppen 3 punkter under köp fungera. Verkar ligga i köpt position tills det blir en ny köp...? Vad är fel?

    2008-11-13 17:01:00 OMXS308L K 642,25 Innehav
    2008-11-18 15:40:00 OMXS308L S 628,25 -14,00 -2,24 24:09:00
    2008-11-18 15:41:00 OMXS308L K 630,00 Innehav
    2008-11-18 16:18:00 OMXS308L S 627,75 -2,25 -0,42 00:37:00
    2008-11-18 16:18:00 OMXS308L K 627,75 Innehav
    2008-11-21 10:07:00 OMXS308L S 591,75 -36,00 -5,79 19:19:00
    2008-11-21 10:07:00 OMXS308L K 593,00 Innehav
    2008-11-21 11:00:00 OMXS308L S 590,25 -2,75 -0,52 00:53:00
    2008-11-21 11:01:00 OMXS308L K 591,75 Innehav

    Mvh Emil

  • #2
    Det här är en komplex stopp, jag skulle nog börja med att kolla hur den uppför sig "live" eller vid simulerat innehav. Bästa sättet är att skicka en order till Nordnet utanför spread, makulera den och därefter sätta Antal i Grunddata till tex 1 kontrakt/akte och studera hur stoppkurvan ritas. Om det verkar stämma kan vi gå vidare med simulering sedan.

    Comment


    • #3
      Jag testade din stopp genom att köra med enklast tänkbara entry för köp, Macd(b). Det ser ut att fungera, men det som jag tror kan förvilla lite är om man kör stoppen i för låg upplösning. Då stämmer köppriset inte lika bra med verkligheten, och det kan bli problem med 3-punktersstoppen som löser vid någon eller ett par punkter högre värde. Tipset är att köra i så hög upplösning som möjligt, helst i1() så blir det ganska exakt.

      Comment


      • #4
        Tack för ditt svar Rikard!

        Jag har använt mig av ett script i 60 minuters upplösning, att det kunde påverka noggrannheten, trots animering påslagen, hade jag ingen aning om.

        Enligt redovisningen av affärerna nedan så verkar inte problemet vara "3-punktersstoppen som löser vid någon eller ett par punkter högre värde". Snarare verkar problemet vara att varken absoluta eller flytande stoppen löser ut? Verkar inte sälja förrän i samma minut som det blir en ny köp.

        Om det nu inte skulle vara nåt fel på scriptet, hur kommer jag då vidare? Är det då att försöka göra "samma" köpscript fast i i1() upplösning? Går det ens?

        Mvh Emil

        Comment


        • #5
          Vi skulle nog behöva ett konkret exempel för att kunna ringa in det. Det lilla jag testade med en enkel Macd(b) som köpsignal fungerade perfekt, men det kan ju uppstå situationer just ihop med ditt script. Men om du inte vill avslöja hur det ser ut kan du ju se om det går att få fram "felet" med nåt annat enkelt script som köpsignal.

          :

          Comment


          • #6
            Här har jag kört ett test i60() med macd(b) som köpsignal.
            T.ex affären 18-23 förstår jag inte m.fl... Beror det på upplösningen?

            Mvh Emil

            2008-12-17 14:04:00 OMXS309A K 667,00 Innehav
            2008-12-17 14:18:00 OMXS309A S 663,00 -4,00 -0,66 00:14:00
            2008-12-17 17:28:00 OMXS309A K 670,25 Innehav
            2008-12-18 09:01:00 OMXS309A S 670,50 0,25 -0,02 00:03:00
            2008-12-18 09:02:00 OMXS309A K 671,75 Innehav
            2008-12-23 09:01:00 OMXS309A S 652,50 -19,25 -2,93 25:29:00
            2008-12-23 11:26:00 OMXS309A K 655,50 Innehav
            2008-12-23 14:30:00 OMXS309A S 657,00 1,50 0,17 03:04:00
            2008-12-30 09:09:00 OMXS309A K 668,00 Innehav
            2008-12-30 09:09:00 OMXS309A S 667,00 -1,00 -0,21 00:00:00
            2008-12-30 09:10:00 OMXS309A K 667,50 Innehav
            2008-12-30 11:52:00 OMXS309A S 663,25 -4,25 -0,70 02:42:00
            2009-01-02 09:01:00 OMXS309A K 670,50 Innehav
            2009-01-02 09:01:00 OMXS309A S 670,25 -0,25 -0,10 00:00:00
            2009-01-02 09:02:00 OMXS309A K 670,50

            Comment


            • #7
              Affären 18-23 blir en förlust eftersom stoplossen slår till vid gapöppningen dagen efter. Kan inte riktigt se problemet?

              Comment


              • #8
                Jag kanske är ute och cyklar, men detta är min tolkning...

                2008-12-18 09:02:00 OMXS309A K 671,75 Innehav
                2008-12-23 09:01:00 OMXS309A S 652,50 -19,25 -2,93 25:29:00

                Samma dag som köpet i i60() stapeln kl 13.00 bildas en Low på 668,50. Köpkursen minus absfaktorförlust (671,75-3) = 668,75

                Om nu detta inte riktigt "bet" så kommer nästa chans stapeln kl 15.00 med en Low på 667,25.

                Om nu inte den heller tog så passerar stapeln kl 17.00 675,25, vilket aktiverar absfaktorvinst 1 punkt ovanför köpkursen = 672,75. I samma stapel bildas en High på 678,50 vilket innebär att det nu är flytfaktorstd som sätter säljgränsen vid 673,50 (678,5-5). Vid öppning dagen efter borde den lösa ut...

                Det jag menar är att denna affär inte skulle kunna hänga kvar till 2008-12-23 och en förlust ner till 652,50.

                Mvh Emil

                Comment


                • #9
                  Aha, då är jag med. Ska kolla lite närmare!

                  Comment


                  • #10
                    Vilka inställningar körde du på stoppen?

                    Comment


                    • #11
                      Jag körde enligt de parametrar jag har i första inlägget.

                      Mvh Emil

                      Comment


                      • #12
                        Har kört lite tester och det verkar som att det ändå har med upplösningen att göra. Kör man stoppen i högre upplösning fungerar det mer exakt. I skarp drift är det ju inget problem, men för simulering är det nog bäst att försöka göra entryscripten i bättre upplösning. Det hinner hända för mycket på 60 minuter.

                        Comment

                        Working...
                        X