Allmänt meddelande

Collapse
No announcement yet.

"Spinnande" ordermodell!

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

  • "Spinnande" ordermodell!

    Det är ganska tyst på den här delen av forumet! Tänkte kasta in en helt annan boll och se vilka reaktioner det blir!
    Jag och Torsten har jobbat en längre tid på en ordermodell för OMX-handel. Den är så avancerad att vi knappt själva förstår hur den funkar.
    De problem vi stött på är många och lösningarna inte alltid solklara. Därför tänkte jag kolla om det finns intresse för en annan lite enklare modell här på forumet.

    En helt ny approach skulle man kunna säga, nämligen att flytta i princip all intelligens till antalsscripten!

    Själva kärnan, alltså triggerscripten, skulle egentligen bara ha till uppgift att posta en köporder varannan timme, och en säljorder varannan.
    Sen överlåter man till antalsscripten att bestämma hur mycket som ska finnas på depån, och om det ska vara blankning eller postitivt innehav, eller om man ska stå utanför marknaden.

    Detta innebär ju att det kommer att postas en massa ordrar med noll i antal, och lägger man dem enligt villkoret "Fill and Kill" så försvinner de omedelbart hos Nordnet.

    Ev får vi skit från Nordnet för detta, men jag slår vad om att Lasse kan filtrera bort nollorder så att dessa endast postas lokalt.

    Ett av problemen som jag och Torsten har brottats med är att när man stängt en position och ordermodellen har stegat fram till nästa triggerscript, kanske en sälj, så kanske marknaden går åt andra hållet, och då sitter man där och kan bara se på när tåget går. Visst, det blir inga föluster, men inte heller nån vinst....
    Torsten hade en plan på att köra mot två depåer, en som endast tar hand om köpaffärer, och den andra om blankning.
    Det hade ju funkat fint, men vi provade att köra två kopior av programmet på samma dator och det gick inget vidare.

    Förmodligen krockar div dll-filer osv.

    Då är en relativt snabbt "spinnande" ordermodell en lösning!
    Den roterar varannan timme, skulle markaden gå åt fel håll, så tar det ju inte så lång tid innan ordermodellen vänt och står på rätt köl!
    Anta att man börjar med en köp, antalsscriptet tycker det är läge att gå in lång.
    Målantalet sätts till tex 1 kontrakt.
    Köporder postas och man är i marknaden.
    Nästa timme postas en säljorder, men eftersom det antalsscriptet oxå tycker man ska ligga lång så posta bara en nollorder.
    Alltså händer inget på depån.

    Nu har modellen loopat och man är tillbaks på köporder. Målantalet är fortfarande 1 kontrakt, och då det redan finns på depån så postas ytterligare nollorder.

    På detta sätt är man alltid med åt rätt håll i marknaden!

    När trenden vänder så kommer antalsscripten att fatta galoppen och stänga positionen och sträva efter det nya målantalet, tex -1 kontrakt.

    Och så där håller det på.

    Vi kan ju börja med att göra en enkel variant som kollar mot ett glidande MA. Nästa steg kan ju vara att som Torsten och jag kolla stochastics, MACD och delar av en fishnet-analys....

    Möjligheterna är oändliga.

    Vad sägs?
    Är det för elakt mot Nordnet att göra så här? Eller är det enkelt för dig Lasse att sortera bort nollorder?

    Det blir ju lite annat sätt att tänka på när logiken placeras i antalsdelen men det ska väl gå!

    Synpunkter?

    Rikard

  • #2
    Det verkar som om det är några stycken som läst detta i alla fall, så jag fortsätter för skojs skull att utveckla lite till!

    Här är "motorn" till modellen!

    Det enda detta script gör ör att skicka en signal varje kvart som i sin tur postar en order, med noll eller annat antal baserat på antalsscripten. Återkommer med dessa.

    sl) Spinning OMX-trigger

    tidnu:=frac(DATE())
    totalt:=Mult(tidnu,1440)
    rest:=mod(totalt,15)
    timeout:=GT(rest,14)
    i15(timeout)

    Denna enkla historia skall alltså användas som triggerscript både i köp och säljsidan.

    Återkommer lite senare!

    Comment


    • #3
      Hej!

      Så här i sportlovstider kanske inte så många läser, så därför tänkte jag bidra med följande glada utrop: Jag tyckte det var både fyndigt och bra, så jag ser med tillförsikt fram emot herrarnas experimenterande!

      Ingemar Bergdahl

      Comment


      • #4
        Antalsscrip!

        Kul att så många har varit inne och titta på den här modellen! Eller blivande modellen kanske jag ska säga. Nu är i alla fall ett förslag på antalsscript färdigt. Dessa kollar om stochastic är över 70. I så fall tas en position.
        När stochastic har fallit under 70 tolkas detta som att upptrenden tillfälligt är slut och konsolidering råder. Då sätts målantalet till noll och man kliver ur marknaden.

        För blanksidan gäller det omvända, stochastic ska vara under 30.

        va) OMX köp

        köpantal:=1
        sper:=17
        s1:=stoch(sper)
        röd:=Mov(s1,3,s)
        upptrend:=Gt(röd,70)
        målantal=If(upptrend,köpantal,0)
        innehav=portfolio(v)
        övermål=GT(innehav,målantal)
        antal=if(övermål,0,SUB(målantal,innehav))
        i15(antal)

        va) OMX sälj

        säljantal:=-1
        sper:=17
        s1:=stoch(sper)
        röd:=Mov(s1,3,s)
        nertrend:=Lt(röd,30)
        målantal=If(nertrend,säljantal,0)
        innehav=portfolio(v)
        undermål=LT(innehav,målantal)
        antal=if(undermål,0,SUB(målantal,innehav))
        i15(Abs(antal))


        Sekvens 1: Triggerscript "Spinning omx-trigger"
        Ordertyp: "köp" och "Fill and Kill"
        Antalsscript: "OMX köp"

        Sekvens 2: Triggerscript: "Spinning omx-trigger"
        Ordertyp: "sälj" och "Fill and Kill"
        Antalsscript: "OMX sälj"

        Därefter loop.
        Nu kommer det hela att posta en order varje kvart.
        Är det upptrend, kommer depån att innehålla 1 kontrakt, eller antal enligt första raden i antalsscriptet.
        Konsolideras marknaden står man utanför.
        Är det nertrend blankas valfritt antal kontrakt.

        Det hela följer alltid marknaden, skulle det gå åt fel håll tar det max 30 minuter innan ordermodellen kommit tillbaks och ställt sig på rätt köl.

        Nån som vågar prova live?

        Comment


        • #5
          Uppdatering

          Hej allihop!
          En annan variant på antalsscripten, tänkt för er som föredrar en något lugnare handel.
          Detta går ut på att man bara kan blanka om kursen ligger under en 50-periods motståndslinje, och köpa om kursen ligger över. dessutom måste 10 periods MA vara riktat åt "rätt" håll. Annars står modellen utanför tills läge åt något håll uppstår.

          Triggerscriptet är precis samma för övrigt.


          va) Forum OMX köp version 2

          köpantal:=1
          stöd:=Mov(c,50,s)
          kortMA:=Lt(HhvBars(Mov(c,10,s),2),1)
          upptrend:=And(Gt(c,stöd),kortMA)
          målantal=If(upptrend,köpantal,0)
          innehav=portfolio(v)
          övermål=GT(innehav,målantal)
          antal=if(övermål,0,SUB(målantal,innehav))
          i15(antal)


          va) Forum OMX blank version 2

          säljantal:=-1
          motstånd:=Mov(c,50,s)
          kortMA:=Lt(LlvBars(Mov(c,10,s),2),1)
          nertrend:=And(Lt(c,motstånd),kortMA)
          målantal=If(nertrend,säljantal,0)
          innehav=portfolio(v)
          undermål=LT(innehav,målantal)
          antal=if(undermål,0,SUB(målantal,innehav))
          i15(Abs(antal))


          Det här tycker jag verkar funka riktigt bra faktiskt!
          Vore kul om nån annan vågar prova så man får lite feedback.

          Nya friska tag på måndag! Ny termin!

          Rikard

          Comment


          • #6
            Uppföljning

            Hej! Är det ingen som vågar köra spinnande??
            Version 2 som jag postade häromdagen har redan gjort ca 50 punkter vinst på OMX3C sedan 030221 !
            Tycker det är ganska bra!

            Det enda man kan önska är väl att Lasse "trollar" bort nollorder mot Nordnet.

            Comment


            • #7
              Det där är ju onekligen argument som biter bra och det är ett bra resultat. Jag har fått ett bra resultat under den här perioden genom att handla på medelvärden, men då har börsen också trendat bra. Problemet är som alltid konsolideringarna, men ni skriver att ni plockat bort dem så att ni ligger ur då.

              Det är intressant.

              Förstår jag rätt om det helt enkelt är så att alla värden på 17-perioders Stochastics mellan 70 och 30 betraktas som konsolidering? Över 70 så köper ni (=går långa) och under 30 så säljer ni (=går kort)?

              Hur har ni kommit fram till just 17?

              Jag använder idag bollingerband för att identifiera konsolideringarna via okularbesiktning, men metoden att använda stochastics tyckte jag var lite fräck, så utveckla gärna hur ni tänkt.
              Ingemar Bergdahl

              Comment


              • #8
                Buggfix!

                Tjena!
                Har fixat en nog så viktig grej! Nu ska det nog funka lite bättre med konsolidering och att tömma depån.

                Och Ingemar, det där med just 17 i stochastics är Torstens verk. Jag vet inte hur han fick fram det, men det verkar funka bra.

                Fast det är ju i den första versionen. Det är den andra versionen som jag backtestade igår. Och det är den jag postar buggfixen till nu.
                Den är egentligen ännu enklare och bygger på att manska vara på rätt sida om stödet, samt glidande MA åt rätt håll. Enkelt men effektivt!

                Här är nya antalsscript:

                va) Forum OMX köp version 2

                köpantal:=1
                stöd:=Mov(c,50,s)
                kortMAupp:=Lt(HhvBars(Mov(c,10,s),2),1)
                kortMAner:=Lt(LlvBars(Mov(c,10,s),2),1)
                nertrend:=And(Lt(c,stöd),kortMAner)
                upptrend:=And(Gt(c,stöd),kortMAupp)
                konsolidering:=And(Not(nertrend),Not(upptrend))
                innehav=portfolio(v)
                målantal1:=If(upptrend,köpantal,innehav)
                målantal2:=If(konsolidering,0,målantal1)
                övermål=GT(innehav,målantal2)
                antal=if(övermål,0,SUB(målantal2,innehav))
                i15(antal)

                va) Forum OMX sälj version 2

                säljantal:=-1
                motstånd:=Mov(c,50,s)
                kortMAner:=Lt(LlvBars(Mov(c,10,s),2),1)
                kortMAupp:=Lt(HhvBars(Mov(c,10,s),2),1)
                nertrend:=And(Lt(c,motstånd),kortMAner)
                upptrend:=And(Gt(c,motstånd),kortMAupp)
                konsolidering:=And(Not(nertrend),Not(upptrend))
                innehav=portfolio(v)
                målantal1:=If(nertrend,säljantal,innehav)
                målantal2:=If(konsolidering,0,målantal1)
                undermål=LT(innehav,målantal2)
                antal=if(undermål,0,SUB(målantal2,innehav))
                i15(Abs(antal))

                Comment


                • #9
                  "Spinnande" ordermodell!

                  Hej Rikard.
                  Jag har provat din "spinnand ordermodell" lite från och till men bara som bekräfta order och har en fråga till dig om hur det fungerar.

                  Måsste all orderläggning ske med modellen för att det skall bli rätt?

                  I dag låg jag 3 kontrakt kort, mannuellt sålda men skriptet ville ändå sälja 3 till, är detta rätt?

                  Jag använder din "version 2" och det verkar funka fint förutan ovanstående.

                  Comment


                  • #10
                    Hej Ali!
                    Roligt att du provar!
                    Men det låter lite konstigt att den vill blanka 3 kontrakt till! Det kan ju vara att det blir så när man har blankat manuellt, men det har jag faktiskt svårt att tänka mig!

                    Och jag kan inte hitta nån bugg i scriptet. Målantalet bestäms ju till tex -3 vid nertrend, borde funka! Ska kolla med Torsten om han kan klura ut nåt!

                    Comment


                    • #11
                      Ali, kontrollera följande.

                      1. Om du trycker Enter på pappret i diagram eller lista, så se ifall innehavet i Min Portfölj-avdelningen stämmer med verkligheten.

                      Det skall kännas av oavsett om du lägger order via Friendly eller på annat sätt.

                      Det är Nordnet Classic avdelningen och det som visas där vad gäller innehav som läses.

                      (Hur lång tid ev. order via wintrade tar att nå Classic får NN svara på).

                      2. Och kontrollera att du har förkryssat bland det olika insamlingsjobben att allt vad gäller depån är förkryssat(allt utom kassatransar behövs).

                      Comment


                      • #12
                        Jo, minsann! Ser faktiskt en bugg! Raden som börjar med "innehav:=portfolio....",
                        ta bort kolonet! Obs, gäller även köpsidan.

                        Har nog blivit fel när jag klistrat in det på forumet.

                        Rikard

                        Comment


                        • #13
                          Några typfel är rättade i sista scriptet. Samma sak behöver modifieras i första också.

                          va) Forum OMX sälj version 2

                          säljantal:=-1
                          motstånd:=Mov(c,50,s)
                          kortMAner:=Lt(LlvBars(Mov(c,10,s),2),1)
                          kortMAupp:=Lt(HhvBars(Mov(c,10,s),2),1)
                          nertrend:=And(Lt(c,motstånd),kortMAner)
                          upptrend:=And(Gt(c,motstånd),kortMAupp)
                          konsolidering:=And(Not(nertrend),Not(upptrend))
                          innehav:=portfolio(v)
                          målantal1:=If(nertrend,säljantal,innehav)
                          målantal2:=If(konsolidering,0,målantal1)
                          i15(
                          undermål=LT(innehav,målantal2)
                          antal=if(undermål,0,SUB(målantal2,innehav))
                          Abs(antal)
                          )


                          Kommentarer:

                          1. Efter första raden med minnereferenser(alltså enbart likhetstecken) så får man ej placera tilldelade namn(kolon likamed).

                          2. Intradayprefixet måste omsluta första till sista raden som är minnesreferens.

                          3. Sätt in ett kolon vid portfolio alltså.

                          Comment


                          • #14
                            Tack för dom snabba svaren men nu ökar förvirringen något.

                            Är Lasses skript rättat och är detta orsaken?

                            Om det är rättat så snälla ni publisera även köpskriptet annars blir det garanterat fel detta är samma som Grekiska för mig.

                            Comment


                            • #15
                              Modifierat köpscript antal.

                              va) Forum OMX köp version 2

                              köpantal:=1
                              stöd:=Mov(c,50,s)
                              kortMAupp:=Lt(HhvBars(Mov(c,10,s),2),1)
                              kortMAner:=Lt(LlvBars(Mov(c,10,s),2),1)
                              nertrend:=And(Lt(c,stöd),kortMAner)
                              upptrend:=And(Gt(c,stöd),kortMAupp)
                              konsolidering:=And(Not(nertrend),Not(upptrend))
                              innehav:=portfolio(v)
                              målantal1:=If(upptrend,köpantal,innehav)
                              målantal2:=If(konsolidering,0,målantal1)
                              i15(
                              övermål=GT(innehav,målantal2)
                              antal=if(övermål,0,SUB(målantal2,innehav))
                              antal)

                              Comment

                              Working...
                              X