Allmänt meddelande

Collapse
No announcement yet.

Köp- och blanksignaler

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

  • #16
    iceage...

    Skilja på helautomatiskt modell för köp och sälj, och den jag beskrev tidigare, där du manuellt gick in i marknaden och kopplade en modell samtidigt för att komma ur enligt t.ex flytande stopp av något slag.

    När du gör en modell med flera sekvenser efter varandra så körs ju aldrig triggerscripten i någon annan sekvens än den som står näst i tur.

    Sekvens

    #1. Köp
    #2. Säljstopp
    #3. Blanka
    #4 Köpstopp

    Detta är ett sätt att göra det.

    Du ansluter modellen och du står då på sekvens #1.

    När den löst ut och köpt, stegas det så attsekvens #2 och det triggerscriptet är det som körs hädanefter. Här tills du stoppat ut dig då.

    osv.

    Comment


    • #17
      Tjena iceage!
      Jag har gjort så här:

      1. Bygg först en ordermodell som sköter köp/stoppa köp.

      Sekvens 9A
      Triggerscript: sl) Köp
      Antal: Enligt önskemål
      Se till att köp sker direkt på säljkurs så att du får avslut direkt, annars funkar inte Fill and Kill.

      Sekvens 9B
      Triggerscript: valfritt flytande stoppscript, ev det vi diskuterade i den andra tråden.
      Antal: Hela innehavet
      Sälj direkt på köpkurs så du blir av med allt på en gång.

      2. Därefter bygger du en modell till, som tar hand om blankning/stoppa ut.

      Sekvens 9A: sl) Blanka
      Antal: Enligt önskemål
      Sälj direkt på köpkurs

      Sekvens 9B
      Triggerscript: flytande stopp för blankat innehav
      Antal: Allt innehav. Här är en viktig detalj!!!

      Det inbyggda scriptet som heter "va) Allt innehav av aktuell aktie"
      funkar, men man får modifiera raden från

      Portfolio(v)

      till

      Abs(Portfolio(v))

      annars postas en order med negativt antal, och det gillar inte Nordnet.
      Efter ändringen returneras alltid ett positivt värde, även vid blankat antal.

      Till sist loopar du sekvens 9B även i den andra ordermodellen.
      Kolla i Preferenser, under fliken Handel så att du har aktiverat "Tillåt multipla ordermodeller per instrument".

      Sen ska alltså båda ordermodellerna anslutas till OMX-terminen.
      I scripten ovan (Köp och Blanka) så kan du ändra raderna
      "exponeradsv...."

      till

      exponerad:=0

      så är spinn-funktionen som jag själv kör med bortkopplad.
      Till det krävs motsvarande i "avsluta"-scripten.

      Det fiffiga är att så länge du tex har ett positivt innehav, så spärras ev signaler från blankscriptet i den andra ordermodellen. Först när depån är nollställd kan triggerscripten lösa ut.

      Hoppas du får det att funka!



      Comment


      • #18
        Kan man ha det bättre!
        2 flygaress kom till undsättning på bara några timmar.
        Menige iceage lägger sig i försvar och räknar med att gå till anfall i gryningen

        Comment


        • #19
          Hej Rickard!
          Jag tänkte backtesta dina skript i helgen manuellt, bara på ett ungefär. Jag tänkte köra dina stoppskript du hjälpte mej med förut

          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)

          sl) stoploss lång

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

          Två fundering på var beräkningarna görs i stopskripten
          #1 Köpstapel 1 =close 665 ?
          räknar stopen från high=675 eller? Och när close skär mov3= sell 672?
          Vinst=672-665= +7p

          #2 sellstapel =close 666
          räknar stoppen flån low 662 och stoppar close över mov3 664
          Vinst 666-664= +2p
          Hoppas nu det fungerade att få med en fil

          Attached Files

          Comment


          • #20
            Hej iceage!
            Ledsen att jag inte kunnat svara förrän nu, men jag har varit bortrest över helgen.

            Jo, det verkar stämma som du tänker. Nånstans runt 672 hade du kommit ur tex.

            Såg att det var olika vinstkrav i scripten, i det ena är villkoret vinst uppfyllt om det är 1 punkt eller mer i vinst, i det andr scriptet är det värdet satt till 2. Kanske bör vara lika.

            Ska bli kul att se om du får nåt bra resultat vid manuell backtestning!

            Comment


            • #21
              Fast nu ser jag ju att det bara var fel i anmärkningarna! Inget att bry sig om, i scripten stämmer det.

              Comment


              • #22
                En fundering kring ett komplext skript

                Den klassiska och oftast vinnande signalen är när kursen efter en sammandragning i bollingerband rusar upp efter övre bandet och bildar en spik på 1st punkt eller nått som high över övre bandet bör en blanknings signal komma . Lika så skall stopskriptet lösa på samma kriterie. Jag tror vi har mycket att hämta här.
                En annan lönsam signal är när kursen går under 200 mov och relativt snabbt vänder tillbaks upp brukar kursen rusa upp. Här gäller lika med stopskriptet som föregående om vi ligger
                Blankade.
                Det kruxet med att 1 ensam ”huvud” indikator signalerar när den inträffar i ett annars bra komplex modell ,HUR löser man det??

                {ideförslag på spik i bollen}
                utbrottbol:=GT(H,BolBands(20,1,u))
                spik:=Gt(H,bolbands(20,2,u))
                i10(mult(And(utbrottbol,spik),15))

                { skriptgalleriet, bautastuds i bollen}
                krossfaktor:=0.8
                b1:=bolbands(20,2,u)
                topp:=sub(h,mult(sub(h,l),krossfaktor))
                i10(mult(gt(topp,b1),55))

                Dessa skript förslag är kanske en början på den indikator som ensamt allena skall agera i huvudskriptet.
                En sak som dessa rader bör kompletteras med för att bli en ”superindikator” är att signal ges först när kursen ligger ”typ0,5p under föregående stapel när den rusar upp, för att inte hoppa av/på för tidigt. Hur skriver vi in det?
                Det skulle vara mycket intressant att se vad detta skulle göra i vinstrapporten.

                Comment


                • #23
                  Hej !
                  En ungefärlig genomgång med stoppkurs på ett ungefär. Det är svårt ibland att sia om man kommer ut innan eller före ett större ras.
                  Jag fick från
                  040512 till den 040611 antal
                  vinstaffärer 12st total 44 punkter 5kontrakt + 22,000kr
                  förlustaffärer 8st total 18 punkter 5kontrakt - 9,000kr
                  vinst ca 1 månad 26 punkter
                  minus kortage 20x500 - 10,000 kr
                  ---------------
                  + 3000kr

                  Är min ekonomiska uträkning rätt uträknad på ett ungefär. Det ser lite dåligt ut ekonomiskt trots hyfsat resultat,??


                  Comment


                  • #24
                    Det jag reagerar på är väl courtaget.
                    Det kostar väl inte 500 kr per affär?

                    Vad jag vet så är det 17kr/kontrakt plus 5:50 i OM-avgifter, och då blir det 2 gånger 112.5=225 kr per affär.

                    20 ggr 225=4500 kr i courtagem, vilket förbättrar resultatet till ca 8500 kr.

                    Eller?

                    Comment


                    • #25
                      Sen kan man ju alltid trimma lite i scripten. Har du sett om det blir bra avslut eller om det tenderar att stänga lite väl fort?

                      Sånt går ju alltid att labba med, fast annars tycker jag väl att med en insats på 5 kontrakt, ca 35000 kr och en avkastning på 8000 kr=22 % NETTO på en månad så är det inte så tokigt! Räkna ut vad det blir på ett år!

                      Comment


                      • #26
                        Signalerna har ju lyckats ramla in ganska trevligt senaste dagarna, i alla fall enligt de senare scripten i denna tråden.



                        Man kan ju oxå prova att kombinera stoppscripten med den variabla reglinjen som jag hade uppe som förslag för ett tag sen. Vitsen med den är att periodlängde ändras med vinsten. Liten vinst=reagerar snabbt om det går åt fel håll.
                        Stor vinst=riktningen på reglinjen ändras inte så enkelt, utan man ligger kvar längre i en lång trend.

                        Återkommer senare med en variant på det.

                        Comment


                        • #27
                          Här är en version på ett stoppscript som löser när den vinstberoende reglinjen vänder åt fel håll. Det här är alltså stoppen för ett blankat innehav.

                          Det går ju att stoppa in valfritt pris för att se var det hade löst ut nånstans. Tanken är att man ligger kvar i en lång "löpa" men tar hem småvinster snabbt.

                          sl) Stäng blanknking
                          {lastsell:=LastTrade(S,P)}
                          lastsell:=685.75
                          mp1:=div(sub(h,l),2)
                          close:=add(l,mp1)
                          kortMAupp:=Lt(HhvBars(Mov(c,4,s),2),1)
                          profit:=Abs(Sub(lastsell,c))
                          faktor1:=Add(Div(Mult(Mult(profit,profit),profit),6),8)
                          i10(
                          faktor2=If(Gt(faktor1,200),200,faktor1)
                          rgln1=Mov(LinReg(close,faktor2:200),6,s)
                          regupp1=Lt(HhvBars(rgln1,2),1)
                          signal=And(regupp1,kortMAupp)
                          )


                          Det här kanske bör kompletteras med vinstkontroll, fler glidande medelvärden, ev en RSI etc.

                          Comment


                          • #28
                            Inget är omöjligt för dej.
                            Jag är mållös över din kreativitet.


                            Comment


                            • #29
                              Tack iceage!

                              Tänkte jag kunde förklara lite närmare hur det hela fungerar.

                              Ju fler punkter vinst man har, desto längre blir alltså periodvärdet i regressionslinjen, vars riktning bestämmer om man ska vara kvar eller inte i positionen.

                              Tänk dig att det är konsolidering, och man får endast 3-4 punkters vinst, då tenderar reglinjen att vända ganska kvickt när kursen börjar vända, och man kommer ur ganska snabbt.

                              Om man däremot har hunnit få kanske 7-8 punkters vinst, då är reglinjen mycket "segare" och vänder inte i första taget. Ofta tycker jag att en lång fin åkning börjar med en ganska brant dipp och sen fortsätter. Med den här metoden så växer periodvärdet hela tiden med vinsten (begränsat till max 200 dock).

                              När man nått 200 så är ligger man troligen kvar i flera dagar i samma position.
                              Skulle det dock vända åt fel håll så justeras ju däremot periodvärdet ner i takt med att vinsten sjunker, och då börjar reglinjen vända mycket snabbare.

                              Det blir nästan som en steglös stoploss.

                              sl) Stäng blanknking
                              {lastsell:=LastTrade(S,P)}
                              lastsell:=685.75
                              mp1:=div(sub(h,l),2)
                              close:=add(l,mp1)
                              kortMAupp:=Lt(HhvBars(Mov(c,4,s),2),1)
                              profit:=Abs(Sub(lastsell,c))
                              faktor1:=Add(Div(Mult(Mult(profit,profit),profit),6),8)
                              i10(
                              faktor2=If(Gt(faktor1,200),200,faktor1)
                              rgln1=Mov(LinReg(close,faktor2:200),6,s)
                              regupp1=Lt(HhvBars(rgln1,2),1)
                              signal=And(regupp1,kortMAupp)
                              )

                              Raden "faktor1:=osv" är själva omvandlingen mellan vinst och periodvärde.

                              Man tar helt enkelt antalet punkter vinst upphöjt till 3, dividerar med 6, lägger till 8. Då växer värdet brant (kubiskt) med vinsten, och når ganska snabbt maxvärde. Det händer redan efter runt 10 punkters vinst. Anledningen att jag adderar 8 är att precis efter blankning är vinsten noll, och periodvärde noll funkar inte så bra.
                              Det kan alltså aldrig bli mindre än 8.

                              Det man troligen måste göra för att köra det här i praktiken är att komplettera med en test att man verkligen har vinst tex. Skulle nog vara bra om man även kollar mot RSI, tex att det verkligen har börjat stiga etc.

                              Om man tycker att 200 är för mycket kan man ju ändra det, eller ännu snyggare, om man hamnar på ovansidan av en ännu längre reglinje, tex 300, så kan man ändra maxbegränsningen till nåt kortare, runt 50 tex. Då kommer man ur fortare EFTER en lång åkning.

                              Finns hur mycket som helst att labba med!

                              Comment


                              • #30
                                Hej Rikard !
                                Det här kan bli riktigt bra. Du har så avancerade idéer och lyckas förverkliga dem. Jag bara längtar efter att vi skall kunna backtesta lättvindigt och korrekt. Resonemanget verkar grymt logiskt och vi är nog många som väntar på det perfekta stoppskriptet.


                                Jag försöker tränga in i dina köp-blanka skript och ser att du tar hänsyn till spik i både övre som undre band,i kombination med Rsi och medelv och Reg lin samt ingen affär före kl10:00. Hur skall jag kraftfullare kunna betona denna spik i dina skript som en trigger för nedgång/uppgång i skripteten. jag ser inte tydligt i diagrammet hur denna ”spik” påverkar när signal kommer.
                                Good work



                                Hur tycker du mitt skript för blankläge efter spik ser ut?
                                tittabakåt:=50
                                okbakåt:=2
                                bkrossh:=GT(H,BolBands(25,2.0,U))
                                bollnyss:=Hhv(bkrossh,okbakåt)
                                closedn:=LT(L,Ref(c,1))
                                bsignal:=And(bollnyss,closedn)
                                bhighnyss:=hhvbars(bsignal,tittabakåt)
                                blowsignal:=BolBands(25,2.0,x)
                                blownyss:=HHvbars(blowsignal,tittabakåt)
                                bdiffsignal:=sub(blownyss,bhighnyss)
                                total:=and(gt(bdiffsignal,0),lt(bdiffsignal,7))
                                mult(total,5)

                                Comment

                                Working...
                                X