Allmänt meddelande

Collapse
No announcement yet.

stoppa ut/ta maxvinst

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

  • #46
    Det ser ut som en riktig ändring för raderna 'vinst' och 'flytandestoploss0'.

    Ta med dessa raderna plus 'vinstmarginal' till det andra scriptet du har, så är du hemma.

    Utgå från och gör ändringar i det kompletta köpstoppscriptet istället. Resten här är ju säljstoppen och inte modifierad.

    Comment


    • #47
      Efter att studerat era sista skript förslag har jag lite frågor som förbryllar mej.

      #1 innehav0:=GT(portfolio(V),0) När man testar verkar det inte ha någon betydelse om jag sätter ”Le eller Ge” vilket är rätt?

      #2 flytandeStoploss0:=if(vinst,2,4) stoppar den ut på 4p vinst Oavsätt att det rasar ?sätter jag 4an till en 7 så ger den inte signal alls varför?


      #3 stoplevel0:= i det skriptet du hjälpte mej med skall det vara addera i stället för ”sub”för såld omx termin men inte här vad jag förstår, varför?

      #4 vinstmarginal:=2 Här förändras inte signalen hur jag än ändrar?


      #5 En förbättring av skriptet som Rickard var inne på skulle lösa vinsthemtagnings problemet.
      En parameter skulle in som säger att skriptet inte får lösa ut på sin signal , som den skulle gett på detta skriptet , förän close går över mov5.
      Vad sägs om det förslaget?




      {För såld OMX-termin }
      eftersälj:=ge(d,Date(20040602.5))
      säljkurs:=675
      innehav0:=GT(portfolio(V),0)
      bakåt1:=300
      vinstmarginal:=2
      vinst:=lt(c,sub(köpkurs,vinstmarginal))
      absolutStoploss0:=2
      flytandeStoploss0:=if(vinst,2,6)
      jfrlevel0:=if(eftersälj,h,0)
      max0:=hhv(jfrlevel0,bakåt1)
      stoplevel0:=mx(sub(köpkurs,absolutStoploss0),sub(max0,flytandeStoploss0))
      stabiltfall0:=2
      i10(
      stoploss0=llv(lt(l,stoplevel0),stabiltfall0)
      xx=and(1,stoploss0)
      s1=sum(xx,5)
      test1=eqv(s1,1)
      mult(And(xx,test1),10)
      )

      Comment


      • #48
        1. innehav0:=GT(portfolio(V),0)

        innehav0 är sant om innehavet är noll eller större.
        Ändrar du till LE(portfolio(V),0) bir det ju samma sak om innehavet för tillfället är noll.
        Det är alltså sant om innehavet är noll eller lägre (blankat).

        2. flytandeStoploss0:=if(vinst,2,4)

        Om villkortet "vinst" är sant så gäller gränsen 2 punkter, annars 4 punkter.

        3. Har jag inte kollat så noga

        4. vinstmarginal:=2

        är hur många punkter vinst som krävs innan det räknas som vinst.

        5. Enkelt att lägga till villkoret:

        closeupp:=Gt(c,(Mov(c,5,s))

        Det blir sant om close ligger över kurvan.

        Comment


        • #49
          Du har angett 'säljkurs' som en definition. Men du använder bara 'köpkurs' på ett antal ställen. Scriptet är inte komplett och agerar säkert inte alls som tänkt.

          #1. Innehav0 används ingenstans och ger därför ingen effekt.

          #2. Marginalen man tillåter det svänga snävas upp från 4 till 2 punkter om 'vinst' är sant dvs uppfyllt.

          Höjer du till 7 kanske det aldrig blir 7 punkters rörelse från en topp. Men scriptet är som sagt inte komplett så det är ovisst vad som görs och inte.

          #3. Du pratar om två script som är varandras spegelbilder kan man säga. Köpstopp letar efter en botten och sedan en marginal upp från den botten innan stoppen löser. Då skall du addera marginalen till bottenvärdet. Säljstoppen är tvärtom att man letar efter en topp, och skall ha en marginal nedåt i kurs, dvs subtrahera marginalen.

          Sedan för säljstoppen plockar man det snävaste av de två stoppmarginalerna genom MX()-funktionen som helst enkelt tar det största av de två värdena från absolutstopp eller flytandestopp.

          Köpstoppen är tvärtom där använder man MN() för att ta det minsta av de två värdena för att få det snävaste av två mot den botten man har som referens.

          #4. Detta styra av 'vinst' om det är sant eller inte.

          Sedan är villkoren fel. Om du vid innehav skall kolla att du haft vinstmarginal på 2 punkter, så skall ju dessa adderas till inköpspriset du haft. Sedan har du fått hem dina 2 punkter, börjar du bli nöjd, och snävar upp stoppen till bara 2 punkter från topp, istället för 4 punkter från topp.

          Så här bör raden se ut för säljstoppen.
          vinst:=Gt(c,add(köpkurs,vinstmarginal))

          #5. Varianten som används här är istället att ge systemet tröghet genom att ange antal perioder det skall vara uppfyllt villkor innan man reagerar.

          'stabiltfall0' anger antal period det skall vara sant på raken för att lösa ut.

          Comment


          • #50
            Hejåhå!
            Jag har försökt få i hopp ett skript som plockar de ack så viktiga sista punkterna och samtidigt inte pinnar på så mycket upp igen. Jag försöker lösa det med att när signal ges av ”slut” raden så skall inte signal ske förän kursen skär mov5.
            En tanke med det som jag har är att plocka bort ”stabiltfall0” som kommer att sabba om kursen plötsligt dyker och vänder upp lika fort . Där finns många punkter att hämta.
            Syntaxen ger ok men det blir lixom ingen finfin signal.
            Jag har försökt plocka bort ”stabiltfall0” som kanske spökar, men får inte skriptet att funka då.
            Att sätta för stora värden på ”flytandeStoploss” är ju väldigt riskabelt för då löser den ju inte alls.
            Lasse du får säga till om strängen börjar bli för lång. Vi håller ju oss till samma ämne i alla fall. Hoppas det inte bara jag som tycker det här är väldigt intresant.Stoploss skriptet är ju det viktigaste skriptet vi har.!!


            {För såld OMX-termin }
            eftersälj:=ge(d,Date(20040602.5))
            säljkurs:=675
            innehav0:=GT(portfolio(V),0)
            bakåt1:=300
            vinstmarginal:=2
            vinst:=Gt(c,add(säljkurs,vinstmarginal))
            absolutStoploss0:=2
            flytandeStoploss0:=if(vinst,2,4)
            jfrlevel0:=if(eftersälj,h,0)
            max0:=hhv(jfrlevel0,bakåt1)
            stoplevel0:=mx(sub(säljkurs,absolutStoploss0),sub(max0,flytandeStoploss0))
            stabiltfall0:=2
            i10(
            stoploss0=llv(lt(l,stoplevel0),stabiltfall0)
            slut=and(1,stoploss0)
            closeupp=Gt(c,(Mov(c,5,s)))
            And(Hhv(slut,15),closeupp)
            )

            Comment


            • #51
              Sätt

              stabiltfall0:=1

              så är den borta. Då krävs bara brott av low i en period.


              Skall det tas bort ur koden

              stoploss0=lt(l,stoplevel0)

              ersätt med denna raden.

              Men om jag skall vara ärligt förstår jag inte vitsen med denna medelvärdestesten.

              Du har en fallande tendens från en topp. Du kommer under en viss nivå så stoppen löser, men du vill spärra att du får det sålt tills Close bryter igenom medelvärdet uppåt

              Mig icke förstå.

              Close ligger sannolikt under medelvärdet redan när stoppen löser pga nedåtgående tendens. Stoppen skall skydda att du inte följer med ned från toppen igen, utan kommer ur och tar hem vinsten.

              Och då skall man vänta att komma ur till close bryter upp genom medelvärdet.

              Har herrn tänkt igenom detta?

              Det jag sett förut från Rikard är ungefär att vänta tills ett medelvärde går igenom stoppnivån, istället för Close ensamt.

              Typ

              stoploss0=lt(mov(c,5,s),stoplevel0)

              Du kan se om du får renare lagom trög signal av det.

              Comment


              • #52
                Lasse, jag tror iceage menar i blankningsläge, då vill han att kursen skär ett kort medelvärde uppåt för att det ska lösa ut.

                Det är en variant, men jag tror (som du nämnde Lasse) att det är bättre att göra tvärtom, att ett kort medelvärde skär gränsen.

                Då tolereras tillfälliga avsluta "utanför" och när det hänt tillräckligt länge så löser scriptet.

                Typ:

                medvskär:=Gt(Mov(c,3,s),gräns)

                Comment


                • #53
                  För att gå tillbaka lite så är den funktionen lätt att lägga till i mitt scriptförslag:

                  sl) Stoploss kort

                  lastsell:=LastTrade(s,p)
                  vinst:=Le(c,Sub(lastsell,2)) {vinst=2 punkter eller mer}
                  start:=if(ge(d,LastTrade(s,d)),l,9999)
                  minhittills:=Llv(start,300)
                  flytnivå:=If(vinst,2,4) {om vinst 2 punkter från lägsta, annars 4}
                  gräns:=Add(minhittills,flytnivå)
                  signal:=Gt(Mov(c,3,s),gräns) {kort medv skär gräns}
                  i10(signal)


                  Detta borde funka ganska bra tycker jag. Omedelbart efter en blankning är stoppgränsen 4 punkter, om kursen sjunker lite och man får vinst (alltså mer än 2 punkter) så sätts gränsen till 2 punkter. Kanske kan man tom köra med 1.5 punkter för man har ju viss fördröjning i medelvärdet nu.

                  Comment


                  • #54
                    För att förtydliga med ett exempel:

                    Anta att en blankning sker på 680 punkter.

                    Nu är stoppgränsen 4 punkter högre, 684.
                    Om kursen tenderar att gå högre löser scriptet.

                    Enstaka avslut gör inget, för det korta medelvärdet är fortfarande lägre.

                    Om kursen sjunker till tex 675 så har stoppgränsen ändrats till 2 punkter eftersom villkoret "vinst" är uppfyllt.

                    Om nu kursen börjar stiga igen så kommer scriptet att lösa ut när det korta medelvärdet har passerat 675 + 2 = 677 punkter.
                    Troligen får man väl ett avslut på 677.25 eller 677.5.

                    Vill man så kan man ju ändra det snäva värdet till 1.25-1.5 istället, så kommer man ur lite tidigare.

                    Är det inte nåt sånt här du vill ha iceage?

                    Comment


                    • #55
                      Gt()-varianten var inlagd i säljstopp-scriptet direkt ovan, så någon info har inte gått fram.

                      Sedan tycker jag Per Wahlins mall för scriptet är rätt trevlig då du kan välja en annan snävare absolut stopp om du vill. Jag tolererar t.ex inte mer än 1 punkt åt fel håll efter inköp och då anger jag det.

                      Sedan är vinstomptimerande delen i din variant trevlig. Flytande stoppen kan vara två andra marginaler beroende på om vi har fått vinst eller inte. Att slippa gå med ner 4 punkter från en topp, utan t.ex bara 2 är ju trevlig extra vinst.

                      Så kombinationsscriptet tycker jag har det bästa av många världar.

                      Inget är ju periodkänsligt heller egentligen så att köra 5-minuter går lika bra. 300 perioder räcker för innhav som varar 3 dagar vilket borde vara tillräckligt. Och då använda tröghetsmomentet med t.ex 2 perioder uppfyllt annars ingen signal är också bra variant. Det ger kanske ett snittfördröjning på 7 minuter eller så från första passage av tröskelnivån.

                      Sedan kan utfallet bli lite olika beroende på om du använder Close eller Low i testen(i Pers variant stabiltfall0). Low är ju definitivt att kursen varit under bara någon gång för båda perioderna. Close visar lite mer på en stadig trend ner om båda perioderna signalerar och ligger under.

                      Ja, ja, det finns hur mycket som helst att experimentera med.

                      Comment


                      • #56
                        Rickard!

                        Det ser alldeles förträffligt ut tycker jag . Rak och effektiv vinsthemtagning med en garanterad förlustnivå. GREAT
                        En fråga # är det oklokt att stoppa in ett agera inte på 2 första staplarna i ett stop skript. Är det bättre att ta det via xk)skript?

                        Är detta OK?
                        sl) Stoploss lång

                        lastbuy:=LastTrade(b,p)
                        vinst:=Ge(c,Add(lastbuy,2)) {vinst=2 punkter eller mer}
                        start:=if(ge(d,LastTrade(b,d)),h,0)
                        maxhittills:=hhv(start,300)
                        flytnivå:=If(vinst,2,4) {om vinst 2 punkter från högsta, annars 4}
                        gräns:=Sub(maxhittills,flytnivå)
                        signal:=Lt(Mov(c,3,s),gräns) {kort medv skär gräns}
                        i10(signal)

                        Comment


                        • #57
                          Lasse!

                          ## Gt()-varianten var inlagd i säljstopp-scriptet direkt ovan, så någon info har inte gått fram.
                          innehav0:=GT(portfolio(V),0)
                          Lt??
                          Är det detta du syftar på Lasse?
                          Det blir lätt felaktigheter i skriptandet när man inte förstår allt trots ett jätte bra support stöd. Jag måste grunna på vad i skriptet som gör att jag inte tycker det fungerar.
                          Det stoppar ju ut mitt i nedgången.

                          Comment


                          • #58
                            Om du vill ha en sån funktion (agera inte på 2 första staplarna) så kan man lägga den var som helst. Själv föredrar jag att ha så mycket som möjlig i ett och samma script, det blir enklare att hantera ordermodellen då.
                            Fast jag vet inte vad den ska göra för nytta ärligt talat.

                            Tror att scriptet funkar bra som det är. Det skulle knappast stoppa ut mitt i en nergång om det inte är en ordentlig rekyl upp i så fall.

                            Själv skulle jag kanske ändra något i värdena till nåt sånt här:

                            sl) Stoploss kort

                            lastsell:=LastTrade(s,p)
                            vinst:=Le(c,Sub(lastsell,1)) {vinst=1 punkter eller mer}
                            start:=if(ge(d,LastTrade(s,d)),l,9999)
                            minhittills:=Llv(start,300)
                            flytnivå:=If(vinst,1,2.5) {om vinst 1 punkter från lägsta, annars 2.5}
                            gräns:=Add(minhittills,flytnivå)
                            signal:=Gt(Mov(c,3,s),gräns) {kort medv skär gräns}
                            i5(signal)

                            Comment


                            • #59
                              iceage...

                              Naj, det var denna raden jag syftade på

                              closeupp=Gt(c,(Mov(c,5,s)))

                              Att fördröja försäljningen tills Close vänder upp genom medelvärdet. Det får jag inte att gå ihop med en säljstopp som i ditt script tidigare.

                              Det kan ju medföra att om kursen fortsätter att sjunka så ligger ju close under medel hela vägen, och du följer med ända ner och blir inte av med grejerna. Raka motsatsen mot idén med säljstoppen.

                              När det vänder ner skall du ur. Det skall vara goda skäl att ligga kvar om det vänder ner. Sedan att definiera att det vänder ner kan variera lite.

                              Använda ett krav på uppfyllt villkor två perioder i rad, är ett sätt för att sannolikheten är stor att nedgången inte är tillfällig. Alltså läge att komma ur.

                              Annat villkor kan vara att låta ett medelvärde skära brytnivån. Då blir det en något fördröjd signal som kan låta ett enstaka close-värde genom brottnivån passera utan åtgärd.

                              Titta noga på de exempel på stoppar som finns på Scriptgalleriet och tänk dig vilka andra tilläggsvillkor du ev. önskar.

                              Annat sida med tydliga bilder är:

                              http://www.meravkastning.nu/stoploss.html

                              Comment


                              • #60
                                Hej Lasse!
                                Mitt försök att skapa ett visuellt köpstopp skript på en blankning för att se var blanknings affären skulle avslutas går inte så bra.
                                Skulle du vilja vara snäll och titta på var felen ligger .


                                {köpstop skript För såld OMX-termin ” FELAKTIG”}

                                eftersälj:=ge(d,Date(20040526.5))
                                säljkurs:=672
                                innehav0:=LT(portfolio(V),0)
                                bakåt1:=300
                                vinstmarginal:=2
                                vinst:=lt(c,sub(säljkurs,vinstmarginal))
                                absolutStoploss0:=2
                                flytandeStoploss0:=if(vinst,2,4)
                                jfrlevel0:=if(eftersälj,h,0)
                                max0:=hhv(jfrlevel0,bakåt1)
                                stoplevel0:=mn(add(säljkurs,absolutStoploss0),add(max0,flytandeStoploss0))
                                stabiltfall0:=2
                                i10(
                                stoploss0=llv(lt(l,stoplevel0),stabiltfall0)
                                xx=and(1,stoploss0)
                                s1=sum(xx,5)
                                test1=eqv(s1,1)
                                mult(And(xx,test1),30)
                                )

                                Comment

                                Working...
                                X