Allmänt meddelande

Collapse
No announcement yet.

Ny snabb experimentmodell för OMX

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

  • Ny snabb experimentmodell för OMX

    Så var det då dags igen, att prova ett nytt grepp på det här med OMX-handel.

    Har ju hållt på att experimentera med en egen modell som kan handla både snabbt och mer långsiktigt, beroende på marknadens humör.

    Tänkte lägga ut lite ideer för en ny, snabb modell.

    Tanken är att man tar position om röd och blå stochastic är uppåt samtidigt som ett kort medelvärde är uppåt.
    Detta är väl iofs inget konstigt.

    Därefter stänger man positionen så fort röd stoch vänder åt fel håll, under förutsättning att blå stochastic ligger på rätt sida 80- eller 20-linjen. Lång fina åkningar brukar ju innebära att blå stoch ligger över 80 eller under 20 hela vägen och då är det ju onödigt att stänga positionen.

    Nu när man har möjlighet att köra två parallella ordermodeller på ett papper så behöver ju inte detta vara en spinnande historia.
    Däremot tänkte jag att man kan ha kvar spinn och "Fill and Kill" för de tillfällen då orderläggningen av någon anledning misslyckats, och på så sätt få modellerna att "reparera" sig själva.

    Alltså, om en köporder tex har misslyckats så kommer det efterföljande säljscript att känna att det inte finns något på depån och därför lösa ut så att modellen spinner tillbaka till början igen.

    Likadant så måste ju scripten som löser ut för köp eller blankning känna att inte den andra modellen modellen redan har gjort en affär.

    Torstens script för röd och blå stochastic är bra utgångsmaterial.
    Nedanstående är exempel på hur triggerscripten kan se ut.


    sl) Snabb OMX köptrigger

    sper:=15
    mper:=5
    s1:=stoch(sper)
    blå:=mov(röd,mper,e)
    blaupp:=Lt(HhvBars(blå,2),1)
    röd:=Mov(s1,3,s)
    röödupp:=Lt(HhvBars(röd,2),1)
    kursMA1:=Mov(c,5,s)
    MAupp:=Lt(HhvBars(kursMA1,2),1)
    moneyflow:=Mov(Mfi(14),3,s)
    flowplus:=Lt(HhvBars(moneyflow,2),1)
    utanför:=Ge(portfolio(v),0) {blankinnehav spärrar}
    i10(
    köpsignal1=And(And(röödupp,blaupp),MAupp)
    köpsignal2=And(And(köpsignal1,flowplus),utanför)
    köpsignal2)


    sl) Snabb OMX blanktrigger

    sper:=15
    mper:=5
    s1:=stoch(sper)
    blå:=mov(röd,mper,e)
    blaner:=Lt(LlvBars(blå,2),1)
    röd:=Mov(s1,3,s)
    röödner:=Lt(LlvBars(röd,2),1)
    kursMA1:=Mov(c,5,s)
    MAner:=Lt(LlvBars(kursMA1,2),1)
    moneyflow:=Mov(Mfi(14),3,s)
    flowminus:=Lt(LlvBars(moneyflow,2),1)
    utanför:=Le(portfolio(v),0) {Pos innehav spärrar}
    i10(
    blanksignal1=And(And(röödner,blaner),MAner)
    blanksignal2=And(And(blanksignal1,flowminus),utanför)
    blanksignal2)


    Och så här kan scripten som avslutar position se ut:
    (Alltså andra sekvensen i resp modell)


    sl) Snabb OMX avsluta köp

    sper:=15
    mper:=5
    s1:=stoch(sper)
    blå:=mov(röd,mper,e)
    blaner:=Lt(LlvBars(blå,2),1)
    röd:=Mov(s1,3,s)
    röödner:=Lt(LlvBars(röd,2),1)
    stochgräns:=Lt(blå,80)
    tidnu:=frac(DATE())
    totalt:=Mult(tidnu,1440)
    rest:=mod(totalt,10)
    tidsignal:=GT(rest,5) {tillåter signal efter 5:e minuten}
    utanför:=Eqv(portfolio(v),0) {spinner om ej innehav}
    i10(
    säljsignal1=And(röödner,tidsignal)
    säljsignal2=Or(And(säljsignal1,stochgräns),utanför)
    säljsignal2)


    sl) Snabb OMX avsluta blankning


    sper:=15
    mper:=5
    s1:=stoch(sper)
    blå:=mov(röd,mper,e)
    blaupp:=Lt(HhvBars(blå,2),1)
    röd:=Mov(s1,3,s)
    röödupp:=Lt(HhvBars(röd,2),1)
    stochgräns:=Gt(blå,20)
    tidnu:=frac(DATE())
    totalt:=Mult(tidnu,1440)
    rest:=mod(totalt,10)
    tidsignal:=GT(rest,5) {tillåter signal efter 5:e minuten}
    utanför:=Eqv(portfolio(v),0) {Spinner om ej innehav}
    i10(
    köpsignal1=And(röödupp,tidsignal)
    köpsignal2=Or(And(köpsignal1,stochgräns),utanför)
    köpsignal2)


    Man kan ju välja att köra valfritt antal kontrakt i köp-och blanksekvensen, men för "avsluta-sekvenserna" så rekommenderar jag följande för att stänga positionerna:


    va) OMX stäng position

    målantal:=0
    undermål:=LT(innehav,målantal)
    antal:=if(undermål,0,SUB(målantal,innehav))
    i1(ABS(antal))


    va) OMX stäng blankposition

    målantal:=0
    övermål:=GT(innehav,målantal)
    antal:=if(övermål,0,SUB(målantal,innehav))
    i1(antal)


    Som vanligt gäller att använda "Fill and Kill", annars funkar inte spinnfunktionen.

    Ska själv prova det här ett par dagar för att se, tänkte att det kanske kunde vara kul för någon annan oxå att experimentera med!




  • #2
    Hej Rikard.

    Jag testade din modell i simulera-läge igår fram till kl.10, fick dessa meddelanden:

    09:40 ORDER "sl) Snabb OMX köptrigger OMX3H" kurs 572.5000
    09:41 ORDER "sl) Snabb OMX avsluta köp OMX3H" kurs 572.7500
    09:42 ORDER "sl) Snabb OMX köptrigger OMX3H" kurs 572.2500
    09:43 ORDER "sl) Snabb OMX avsluta köp OMX3H" kurs 572.0000
    09:44 ORDER "sl) Snabb OMX köptrigger OMX3H" kurs 572.2500
    09:45 ORDER "sl) Snabb OMX avsluta köp OMX3H" kurs 572.2500
    09:49 ORDER "sl) Snabb OMX köptrigger OMX3H" kurs 573.0000
    09:50 ORDER "sl) Snabb OMX avsluta köp OMX3H" kurs 571.5000
    09:51 ORDER "sl) Snabb OMX köptrigger OMX3H" kurs 571.5000
    09:52 ORDER "sl) Snabb OMX avsluta köp OMX3H" kurs 571.5000
    09:53 ORDER "sl) Snabb OMX köptrigger OMX3H" kurs 570.7500
    09:54 ORDER "sl) Snabb OMX avsluta köp OMX3H" kurs 570.5000
    09:55 ORDER "sl) Snabb OMX köptrigger OMX3H" kurs 570.5000
    09:56 ORDER "sl) Snabb OMX avsluta köp OMX3H" kurs 570.7500
    09:57 ORDER "sl) Snabb OMX köptrigger OMX3H" kurs 571.0000
    09:58 ORDER "sl) Snabb OMX avsluta köp OMX3H" kurs 571.5000
    09:59 ORDER "sl) Snabb OMX köptrigger OMX3H" kurs 572.0000
    10:00 ORDER "sl) Snabb OMX avsluta köp OMX3H" kurs 571.7500

    Det verkar som det mest blir förlustaffärer, har du kommit fram till något annat? Bra initiativ med ny modell, tål att utvecklas.

    Comment


    • #3
      Jag körde inte den innan 10:30, men jag tycker du verkar få lite väl många order. Det är ju inte meningen att man ska handla varje minut.

      Ska kolla vad det kan bero på eller om det är någon bugg i scripten.

      Comment


      • #4
        Aha, det beror på att scripten känner att det inte finns något innehav! Då spinner det runt.

        Istället för "utanför" kan man skriva 0 (noll) på näst sista raden i avsluta-scripten. Då slutar det spinna.

        Om du har något verkligt innehav på depån så kommer även triggerscripten att falsklarma, det går att blockera genom att göra samma sak med dem.

        Tror du får helt andra signaler i så fall....

        Comment


        • #5
          Lite fler ändringar som jag kom att tänka på.

          Om man helt enkelt skippar allt utom 45 periods stödlinjen, blå och röd stoch så blir scipten ännu enklare!


          sl) Twin daytrade OMX köptrigger

          kursMA1:=Mov(c,45,s)
          kursMA2:=Mov(l,5,s)
          sper:=17
          mper:=7
          s1:=stoch(sper)
          blå:=mov(röd,mper,e)
          blaupp:=Lt(HhvBars(blå,2),1)
          röd:=Mov(s1,3,s)
          stödupp:=Or(Lt(HhvBars(kursMA1,2),1),Gt(kursMA2,kursMA1))
          röödupp:=Lt(HhvBars(röd,2),1)
          tidnu:=Frac(DATE())
          totalt:=Mult(tidnu,1440)
          rest:=Mod(totalt,10)
          tidsignal:=Gt(rest,9)
          köpsignal1:=And(röödupp,blaupp)
          köpsignal2:=And(And(köpsignal1,stödupp),tidsignal)
          i10(köpsignal2)



          sl) Twin daytrade OMX avsluta köp

          sper:=17
          mper:=7
          s1:=stoch(sper)
          blå:=mov(röd,mper,e)
          röd:=Mov(s1,3,s)
          röödner:=Lt(LlvBars(röd,2),1)
          tidnu:=Frac(DATE())
          totalt:=Mult(tidnu,1440)
          rest:=Mod(totalt,10)
          tidsignal:=Gt(rest,9)
          säljsignal1:=And(And(röödner,Lt(blå,80)),tidsignal)
          i10(säljsignal1)


          sl) Twin daytrade OMX blanktrigger


          kursMA1:=Mov(c,45,s)
          kursMA2:=Mov(h,5,s)
          sper:=17
          mper:=7
          s1:=stoch(sper)
          blå:=mov(röd,mper,e)
          blaner:=Lt(LlvBars(blå,2),1)
          röd:=Mov(s1,3,s)
          stödner:=Or(Lt(LlvBars(kursMA1,2),1),Lt(kursMA2,kursMA1))
          röödner:=Lt(LlvBars(röd,2),1)
          tidnu:=Frac(DATE())
          totalt:=Mult(tidnu,1440)
          rest:=Mod(totalt,10)
          tidsignal:=Gt(rest,9)
          blanksignal1:=And(röödner,blaner)
          blanksignal2:=And(And(blanksignal1,stödner),tidsignal)
          i10(blanksignal2)


          sl) Twin daytrade OMX avsluta blankning

          sper:=17
          mper:=7
          s1:=stoch(sper)
          blå:=mov(röd,mper,e)
          röd:=Mov(s1,3,s)
          röödupp:=Lt(HhvBars(röd,2),1)
          tidnu:=Frac(DATE())
          totalt:=Mult(tidnu,1440)
          rest:=Mod(totalt,10)
          tidsignal:=Gt(rest,9)
          köpsignal1:=And(And(röödupp,Gt(blå,20)),tidsignal)
          i10(köpsignal1)

          Comment


          • #6
            Twin Daytrade

            Så här blev det i dag.

            Stop lossen är min egen utstoppning.


            Attached Files

            Comment


            • #7
              Det beror på att det inte finns något verkligt innehav. Efter att köptrigger har löst kan inte blanktrigher göra det, för innehavet stoppar det scriptet.
              Ordermodellen väntar tills "Avsluta köp" har löst, därefter ställer den sig i vänteläge och ser vilket triggerscript som löser ut först.

              Så fort ett innehav finns så spärras det andra scriptet.

              Det tråkiga är att man nåstan är tvungen att köra "skarpt" för att se hur det funkar.

              Comment


              • #8
                Om man lägger in rätt antal manuellt efter triggern löst borde det ju funka även i simulera, eller ?

                Har du testat skarpt ?

                Comment


                • #9
                  Japp! Man kan ju ändra lite i scripten när nåt har hänt så ska det funka i sim-läge.

                  Man måste ändra i alla scripten, så att de "vet" vilket innehav som gäller.

                  Jag körde skarpt igår, men idag har jag inte kunnat.
                  Det jag märkte var att det funkar kanonfint tidvis, men gärna vill bli många avslut inom nån punkt när röd stoch är på väg att slå om.
                  Man kan ju naturligtvis göra nån form av vinsttest som kräver att kursen ska ligga mer än tex 1 punkt åt något håll för att man ska få stänga en position.

                  Några förslag på hur man stoppar "tokspinn" i närheten av ett omslag?

                  Comment


                  • #10
                    Har du provat skarpt i dag det hur ju varit mycke upp och ner ?

                    Datorn krånglade så jag hade ingen möjlighet.

                    Comment


                    • #11
                      Nej, jag har kört min ordinarie modell.

                      Men jag ska se om jag kan testa med script var signalerna hamnar och på så sätt få reda på hur det skulle gått. Ser ju onekligen ut som några fina chanser!

                      Comment


                      • #12
                        Lite ändringar har tillkommit. Har tex ändrat "hastigheten" på stochastic-beräkningarna, för att det ska följa med bättre.

                        Idag skulle det tex ha fukat ganska bra om man kört enligt dessa script.

                        Vidare så finns en kontroll att kursen har rört sig mer än 1 punkt sen positionen togs innan den tillåts stängas.
                        Borde sätta stopp för en del oönskat "fladder".

                        sl) Twin daytrade snabb OMX köptrigger


                        kursMA1:=Mov(c,45,s)
                        sper:=15
                        mper:=5
                        s1:=stoch(sper)
                        blå:=mov(röd,mper,e)
                        blaupp:=Lt(HhvBars(blå,2),1)
                        röd:=Mov(s1,3,s)
                        stödupp:=Lt(HhvBars(kursMA1,2),1)
                        röödupp:=Lt(HhvBars(röd,2),1)
                        tidnu:=Frac(DATE())
                        totalt:=Mult(tidnu,1440)
                        rest:=Mod(totalt,10)
                        tidsignal:=Gt(rest,8) {ändra 8 till noll för att se signaler}
                        utanför:=Ge(portfolio(v),0) {ändra om det finns innehav}
                        köpsignal1:=And(And(röödupp,blaupp),Gt(blå,20))
                        köpsignal2:=And(And(köpsignal1,tidsignal),utanför)
                        i10(köpsignal2)



                        sl) Twin daytrade snabb OMX blanktrigger


                        kursMA1:=Mov(c,45,s)
                        sper:=15
                        mper:=5
                        s1:=stoch(sper)
                        blå:=mov(röd,mper,e)
                        blaner:=Lt(LlvBars(blå,2),1)
                        röd:=Mov(s1,3,s)
                        röödner:=Lt(LlvBars(röd,2),1)
                        tidnu:=Frac(DATE())
                        totalt:=Mult(tidnu,1440)
                        rest:=Mod(totalt,10)
                        tidsignal:=Gt(rest,8) {ändra 8 till noll för att se signaler}
                        utanför:=Le(portfolio(v),0) {ändra om det finns innehav}
                        blanksignal1:=And(And(röödner,blaner),Lt(blå,80))
                        blanksignal2:=And(And(blanksignal1,tidsignal),utanför)
                        i10(blanksignal2)


                        sl) Twin daytrade avsluta köp


                        lastbuy:=LastTrade(B,P)
                        diffok:=Or(Gt(c,Add(lastbuy,1)),Lt(c,Sub(lastbuy,1)))
                        sper:=17
                        mper:=5
                        s1:=stoch(sper)
                        blå:=mov(röd,mper,e)
                        röd:=Mov(s1,3,s)
                        röödner:=Lt(LlvBars(röd,2),1)
                        tidnu:=Frac(DATE())
                        totalt:=Mult(tidnu,1440)
                        rest:=Mod(totalt,10)
                        tidsignal:=Gt(rest,8) {ändra 8 till noll för att se signal}
                        säljsignal1:=And(And(And(röödner,Lt(blå,85)),tidsignal),diffok)
                        i10(säljsignal1)



                        sl) Twin daytrade avsluta blankning

                        lastsell:=LastTrade(S,P)
                        diffok:=Or(Gt(c,Add(lastsell,1)),Lt(c,Sub(lastsell,1)))
                        sper:=17
                        mper:=5
                        s1:=stoch(sper)
                        blå:=mov(röd,mper,e)
                        röd:=Mov(s1,3,s)
                        röödupp:=Lt(HhvBars(röd,2),1)
                        tidnu:=Frac(DATE())
                        totalt:=Mult(tidnu,1440)
                        rest:=Mod(totalt,10)
                        tidsignal:=Gt(rest,8) {ändra 8 till noll för att se signaler}
                        köpsignal1:=And(And(And(röödupp,Gt(blå,15)),tidsignal),diffok)
                        i10(köpsignal1)

                        Comment


                        • #13
                          Jag testar from idag i simulering, bra ide att man kan ändra till 0 för att se signalerna i simulera-läge.

                          10:40 ORDER "sl) Twin daytrade snabb OMX blanktrigger OMX3H" kurs 594.0000

                          kom idag, nu ligger kursen på 593 mellan 20/80-nivån på stochastic, fungerar hittills. Vi får se vad som händer under dagen.

                          Comment


                          • #14
                            Japp! Ska bli spännande att se hur det går!

                            Tänk på att om du simulerar och har ett annat verkligt innehav i depån så är det vettigt att sätta variabeln "utanför" ur spel genom att ersätta den med en nolla på näst sista raden i både köp- och blanktriggern.

                            Annars kommer den ena av dem att spärras pga ditt innehav.

                            Comment


                            • #15
                              Oops, sorry, ska ersättas med en "etta", inte nolla!!

                              Comment

                              Working...
                              X