Allmänt meddelande

Collapse
No announcement yet.

Får inte flytande stoploss att fungera

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

  • Får inte flytande stoploss att fungera

    Jag försöker få till en stoploss som "nollställs" vid varje nytt köp.
    Trodde det skulle vara ganska enkelt, men lättare sagt än gjort.

    Då jag tittar mot kurser i OMXS30 samtidigt som jag har skriptet kopplat mot bull/bear så tror jag mig iaf behöva använda mig av minnesceller.

    Problemet jag har är inte att få till själva linjen. Den har jag baserat på följande kod (bear)

    minnesvärde1=GetGvar(102)
    SetGvarIf(omxs30wma,102,lt(omxs30wma,minnesvärde1))
    minnesvärde2=GetGvar(102)
    stoploss2=mult(minnesvärde2,1.005)
    Draw(stoploss2,5,gqb)

    Problemet blir ju nu att jag hela tiden får en ökande(bull) kurva. Eller att värdet inte ritas ut alls (bear)
    Anledningen till att kurvan inte skrivs ut är ju för att minnesvärdet börjar på 0. Jag kan inte få omx kursen att vara lägre.

    Jag tänkte då att jag slår två flugor i en smäll. Jag sätter värdet från omx när jag får köpsignal utan innehav.

    Det gör jag genom följande kod

    SetGvarIf(omxs30,102,or(test,and(korsningned,innehav)))

    Här är test och korsningned två olika signaler som kan trigga köp. Innehav markerar att det inte får finnas innehav för att slå igenom. (ligger redan inbyggt tidigare i test)

    Men denna kod så får jag en stoploss som stiger (bull) alt sjunker (bear)
    Problemet är att jag inte får nytt värde att sättas vid köpsignal så kurvan vill inte hoppa tillbaka till rätt värde när den ska.

    Hoppas ni förstår hur jag tänker

    Jag kanske tänker helt fel i hur man kan bygga en stoploss?

    Tacksam för lite feedback

  • #2
    Inte helt med. Menar du detta(bara exempel)?
    Om du inte använder minutupplösning får d för 1-minutstapel sparas vid affär.

    i1(
    ……...
    Rita=if(and(gt(portfolio(v),0),ge(d,lasttrade(b,d))),stoploss,0)
    draw(Rita,3,rqb)
    ……..
    )

    Comment


    • #3
      Nja, nu kanske jag tänker helt åt skogen, men i det du skriver så returneras väl stoploss om värdena är korrekta, dvs man har innehav och senaste är köp, annars returneras 0?!

      Det är iofs ett enkelt sätt att returnera ett värde på, enklare än det jag gjort. Men problemet är inte returneringen av värden, utan det är att få den att nolla värdet i cellen och att det ligger kvar där köpet var.

      Nu är det strax lunch, kanske påverkar mina tankebanor något

      Comment


      • #4
        Jag förstår inte varför du kör olika stoppar för Bull och Bear? Eller har jag kanske missuppfattat. Båda är ju instrument man köper, så behövs inga "fallande" stoppkurvor.

        Annars är ju ett sätt att sätta cellen till ett skyhögt värde när innehav saknas.

        Alternativ två, gör analysen på index och replikera med ETP Link. Då kan man nog utgå från koden i Stoploss Mini etc.

        Comment


        • #5
          Jag tror han handlar Bull/Bear, men använder index som extraobjekt. Dvs även flytstoppen ska baseras index. Annars inte helt med vad hans problem är. Det går väl inte att köra ETP-link när ETF:er eller Certifakat används rakt av. Kursen på index har väl ingen relation till värdet/hävstången på instrumenten.

          Comment


          • #6
            Det stämmer Henrik, jag handlar med bull/bear och deras värde har inget som helst samband med värdet på index, som jag tittar på, därav mitt problem.

            Som jag sa innan, jag kanske är helt ute o cyklar i mina tankar på hur jag ska bygga stoplossen?
            Jag är ju fortfarande hyfsat ny på detta så jag lär mig varje dag om nya infallsvinklar osv

            Comment


            • #7
              Det scriptet som jag har gjort och som jag klistrade in i första texten, den fungerar faktiskt, om jag inte ändrar något visuellt i grafen, tex ändrar antal dagar att se, perioder eller dyl. Så fort jag ändrar detta så verkar det som att den läser in allt på nytt och att värdena skrivs över?!
              Med tanke på att köp o säljsignaler visas historiskt så måste den ju köra scripten genom allt man har i synfältet. Detta ställer till det.

              Hade jag kunnat säga att rita enbart från detta klockslaget, då hade problemet kunnat lösas enkelt.

              Förstår ni vad jag menar?

              Comment


              • #8
                Analyserar index som extraobjekt och handlar Bull/Bear. Tre saker behövs sparas vid affär. Tid, pris och signalstatus. Oavsett metod behövs dessa tre på något sätt. Tex Köp bull och exit.

                {köp trigger}
                trigger=xxxxxx
                SetGvarIf(cmpref(c,0,a),41,trigger)
                SetGvarIf(date(),42,trigger)
                SetGvarIf(1,43,trigger)
                and(trigger,1)

                {@A(1,OMX Stock )}
                ====================================

                {exit}
                trigger=xxxx
                SetGvarIf(0,43,trigger)
                and(trigger,1)

                {@A(1,OMX Stock )}
                =====================

                {Rita flytstopp long, visas på index}
                i1(
                flyt1=if(and(ge(d,GetGvar(42)),gt(GetGvar(43),0)),c,GetGvar(41))
                flyt2=mult(hhv(flyt1,500),0.995)
                flyt3=if(ge(d,GetGvar(42)),flyt2,0)
                draw(flyt3,3,rqb)
                add(0,0)
                )



                Hoppas jag fick till allt. Skrev direkt på forumet utan att testa.

                Comment


                • #9
                  Ursprungligen postat av Henric Visa inlägg
                  Jag tror han handlar Bull/Bear, men använder index som extraobjekt. Dvs även flytstoppen ska baseras index. Annars inte helt med vad hans problem är. Det går väl inte att köra ETP-link när ETF:er eller Certifakat används rakt av. Kursen på index har väl ingen relation till värdet/hävstången på instrumenten.
                  Man kan köra fast belopp i fältet Standardmodell insats så fungerar ETP Link så långt att den handlar för beloppet. Dvs replikeringen kopplas bort.

                  Comment


                  • #10
                    Absolut, men då måste väl detta värde kontinuerligt ändras.

                    Edit: Enklast i detta fall är kanske att köra index på testkontot. Sedan spara signalstatus vid affär.
                    Tex SetGvarIf(1,40,long)
                    SetGvarIf(0,40,exit)
                    SetGvarIf(-1,40,short)
                    SetGvarIf(0,40,cover)

                    Då behöver man bara några rader för att exekverar efter signalstatus på det skarpa och kanske en procentuell allokering av kontot.
                    Last edited by Henric; 2019-05-03, 13:37.

                    Comment


                    • #11
                      Msn kan köra - framför så tolkas det som procent av kontot, tex -80 blir 80%

                      Comment


                      • #12
                        Det verkar nice.

                        Comment


                        • #13
                          Jag har nu provat den som du gav mig genom stoploss som finns redan i systemet.
                          Dvs, för bull

                          start=if(ge(d,lasttrade(b,d)),mult(h,1.003),0)
                          minhittills=hhv(start,200)
                          stoploss2=gt(h,minhittills)

                          samt för bear

                          start=if(ge(d,lasttrade(b,d)),mult(h,1.003),99999)
                          minhittills=llv(start,200)
                          stoploss2=gt(h,minhittills)

                          Problemet är att den inte börjar om från värdet jag skickar med.
                          Det jag menar med det är att om period 50 är lägsta (bear) och jag har köp period 1 så går den efter period 50. Hur får jag den att gå från den perioden när köpet görs?

                          Comment


                          • #14
                            Raden tittar på senaste köptrans:

                            start=if(ge(d,lasttrade(b,d)),mult(h,1.003),99999

                            Ändra B till S i lasttrade så tittar den på senaste sälj istället.

                            Comment


                            • #15
                              Då undrar jag varför den ska titta på säljtrans? Det är väl köptransen som är den viktiga? Det är ju värdet när köpet körs som jag vill använda till stoplossen.

                              Vad gör att jag tänker fel här?

                              Comment

                              Working...
                              X