Allmänt meddelande

Collapse
No announcement yet.

Rikoschett

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

  • #61
    Exit

    Ok. Nu börjar vi närma oss

    Finns exit-koden för 5-dagars alt. vinst att tillgå utan att man skaffar programmet? Tänker försöka göra klart så mkt som möjligt av scriptet innan jag börjar utvärdera det i programmet.

    Finns det även färdiga skript i programmet för prisvillkor när man väl fått köpsignal eller är det också något man får programmera själv?

    Comment


    • #62


      Här är koden för standardmodellens triggerscript som säljer efter 5 dagar alternativt om man har vinst:


      { Sälj efter 5 dagar }
      { 140304 }
      minuter:=7
      dagar:=5
      account_ok=not(eqv(cash(d),0))
      inpådagen=gt(frac(date()),0.376)
      köpdag=lasttrade(b,d)
      stängning=le(mult(1440,sub(market(c),frac(date()))),minuter)
      innehav=gt(portfolio(v),0)
      vinst=gt(b,portfolio(p))
      1days=ge(cmpref(d,2,a),köpdag)
      xdays=ge(cmpref(d,dagar,a),köpdag)
      sälj1=and(and(and(or(and(vinst,1days),xdays),innehav),stängning),inpådagen)
      sälj2=and(sälj1,account_ok)
      mult(sälj2,10)

      {@A(0,)}



      Om det är prisscriptet du menar så finns några färdiga varianter, tex sälj på aktuell köpkurs, eller sälj på aktuell köpkurs -0,25% och liknande. Man kan också räkna prisintervall från köp- eller säljkurs (eller Close om man vill det).

      Comment


      • #63
        Orderscript!

        Hej igen!
        Nu har jag kommit så långt att jag skrivit både köp och säljscripten och har output "köpsignal" respektive "säljsignal". Det jag nu vill göra är att skriva respektive ordervillkor.

        Antar att det finns något sådant klart redan i programmet som man kan använda direkt?

        Hur gör användarna generellt för att en order ska gå igenom? T.ex. på SEB-life när man handlar manuellt så väljer man "marknadspris" så går ordern alltid igenom. Förslag?

        Mvh Erik

        Comment


        • #64
          Härligt! Då återstår att stoppa in scripten i ett par ordermodeller, en för köp och en för sälj. När du bygger sekvensen i ordermodellen kan du välja färdiga script för antal och pris, tex brukar nog de flesta köpa på säljkurs och sälja på köpkurs så går ordrarna i princip alltid igenom på första försöket.

          Lite mer info hur man byggerordermodeller:

          http://www.autostock.se/NATmanual/Re...rmodeller.html


          och för mer utförlig info:

          http://www.autostock.se/NATscriptref/

          Klicka på Lektion 12.

          Comment


          • #65
            orderscript

            Ok. Så det fixar man när man har programmet igång och inget man programmerar själv?

            Har en sak till som jag ska försöka fixa innan och det är ifall jag får en signal då jag redan är i marknaden vill jag att säljscriptet ska "nollställas", dvs. börja räkna om som att man köpt den dagen trots att man i själva verket ligger kvar.

            Tack för alla snabba svar.

            Comment


            • #66
              Ja, det ligger i ordermodellens sekvens-inställningar. Det finns ett script som bestämmer antal som ska köpas, och ett annat script som bestämmer pris. Man kan välja fasta värden alternativt script (finns färdiga också) för att göra det så dynamiskt man vill. Bifogar ett bildexempel där sekvensen i ordermodellen Fear/Greed redigeras och man kan se inställningarna. Scriptet som syns är prisscriptet, där man i princip bara returnerar aktuellt säljpris så postas köpordern på det priset för att få avslut direkt.

              Det går att bygga en modell i princip hur man vill, du kan mycket väl köpa i omgångar och därefter låta sekvensen som säljer avgöra om hela innehavet ska säljas på en gång, eller om det ska "skalas ut". Det finns olika sätt att skapa logiken för det, så det kan vi ju titta närmare på när vi vet lite mer hur din modell fungerar.



              PS. Lägger dit en bild till från Analyzern i Pro där man kan se hur Viper köper SEB två gånger och alltså skalar in positionen.
              Attached Files

              Comment


              • #67
                Vi har fått en del frågor på den här strategin igen, så det är kanske läge att damma av tråden och gå vidare lite. Jag gjorde ett enkelt test med ABB-aktien med följande script:

                Köp:

                range=sub(h,l)
                10procent=mult(range,0.1)
                köp1=lt(c,add(l,10procent))
                kl1720=gt(frac(d),0.7222221)
                kl1723=lt(frac(d),0.7243055)
                ej_innehav=le(portfolio(v),0)
                köp2=and(kl1720,kl1723)
                köp3=and(llv(köp1,1),köp2)
                köp4=and(köp3,ej_innehav)
                mult(köp4,10)



                Sälj:
                { Sälj efter 5 dagar alt vinst }
                { 140304 }
                minuter:=7
                dagar:=5
                account_ok=not(eqv(cash(d),0))
                inpådagen=gt(frac(date()),0.376)
                köpdag=lasttrade(b,d)
                stängning=le(mult(1440,sub(market(c),frac(date()))),minuter)
                innehav=gt(portfolio(v),0)
                vinst=gt(b,portfolio(p))
                1days=ge(cmpref(d,2,a),köpdag)
                xdays=ge(cmpref(d,dagar,a),köpdag)
                sälj1=and(and(and(or(and(vinst,1days),xdays),innehav),stängning),inpådagen)
                sälj2=and(sälj1,account_ok)
                mult(sälj2,10)

                {@A(0,)}



                Som säljsida valde jag Standardmodell sälj efter 5 dagar alt vinst. Den modellen finns som standard och fungerar likadant som Dstat Exit (som egentligen är en gammal amerikansk standardlogik för sälj.

                En detalj som skiljer vår standardstrategi är att den i nuläget inte säljer redan dagen efter köp, men det går enkelt att ändra så att det tillåts med följande rad:

                1days=ge(cmpref(d,1,a),köpdag)
                Alltså ändra 2:an i Cmpref-satsen till en 1:a så tillåts sälj redan dagen efter om det är vinst.

                Man får ganska dåliga resultat med den här strategin så fort man kopplar på courtage och slippage, och det är egentligen köpsidans edge det är fel på. Den tar ingen hänsyn till underliggande trend, och handlar därför gladeligen i tokfallande marknad. Det går ju enkelt att lägga till filter för sådan, kanske en koll att aktien ligger över sitt 200-dagars medel osv.

                Vill man ändra köpsidan så att den räknar "dubbel Rikoschett" ligger det i raden:


                köp3=and(llv(köp1,1),köp2)

                som kan ändras till

                köp3=and(llv(köp1,2),köp2)

                så måste köpvillkor "köp1" vara sant två dagar i rad för att köp ska ske.


                Kort beskrivning för att rigga upp det i simulatorn:

                1. Börja med att skapa en ordermodell för köpsidan:

                a. Inställningar > Arbeta med ordermodeller > Ny
                b. Sätt namn på modellen, tex Rikoschett köp
                c. Lägg till en sekvens, sätt valfritt namn
                d. Markera sekvensen och högerklicka på den, välj Avancerat > Loopa till första sekvensen
                e. Högerklicka igen och välj Typ av sekvens = Autoorder
                f. Markera sekvensen och klicka Redigera så kan triggerscriptet skapas
                g. Klicka på Nytt och skriv namn på triggerscriptet, tex sl) Rikoschett köp
                h. Klistra in scriptkoden ovan och Spara
                i. Klicka på Nästa så kan du välja antal och prisscript, här finns färdiga script att välja in
                j. Välj tex va) 100 000 kr enligt aktuell säljkurs i fältet Antal
                k. Välj vl) Aktuell säljkurs i fältet Limit

                2. Spara sekvensen och glöm inte spara hela ordermodellen innan du stänger dialogen.

                3. Gå till Starta > Analysbänken
                4. Klicka på kalkylatorknappen så att redigeringsläget öppnas
                5. Skapa nytt projekt och sätt namn på det
                6. Skapa eller välj Simulerakonto, tex 200 000 kr inkl courtage, och fyll i det courtage du vill använda i simuleringen.
                7. Välj Alternativ = Flera parallella singelsekvens ordermodeller
                8. Välj köpsida, klicka på fliken Ordermodeller och leta upp Rikoschett köp som du just skapade.
                9. Välj säljsida, tex Standardmodell Sälj efter 5 dagar alt vinst
                10. Stäng dialogen och välj Strategi = Styrs helt av valda ordermodeller
                11. Välj startdatum och slutdatum för simulering
                12. Klicka på fliken Analys tillämpas på och kryssa för en eller flera aktier
                13. Klicka på Förnya uppdatera från systemet och därefter Spara
                14. Nu kan du starta körningen om du har laddat hem intradaydata för hela perioden du tänkt simulera.

                Comment


                • #68
                  Här är lite mer körning, och försök till att vässa edgen i Rikoschett. Det som är tillagt är test om aktien befinner sig ovanför sitt 200-dagars glidande medelvärde, samt att villkoret med stängning i nedre 10% av dagsrangen måste vara sant två dagar i följd.

                  På säljsidan är vinsttesten ändrad så att det behövs minst 1% nettovinst för att räknas som vinst. Det verkar hjälpa till att öka genomsnittsavkastningen.

                  Scripten ser då ut som följer:

                  Köp:

                  range=sub(h,l)
                  10procent=mult(range,0.1)
                  köp1=lt(c,add(l,10procent))
                  kl1720=gt(frac(d),0.7222221)
                  kl1723=lt(frac(d),0.7243055)
                  ej_innehav=le(portfolio(v),0)
                  köp2=and(kl1720,kl1723)
                  köp3=and(llv(köp1,2),köp2)
                  köp4=and(and(köp3,ej_innehav),gt(c,mov(c,200,s)))
                  mult(köp4,10)


                  Sälj:

                  { Sälj efter 5 dagar alt vinst }
                  { 140304 }
                  minuter:=7
                  dagar:=5
                  account_ok=not(eqv(cash(d),0))
                  inpådagen=gt(frac(date()),0.376)
                  köpdag=lasttrade(b,d)
                  stängning=le(mult(1440,sub(market(c),frac(date()))),minuter)
                  innehav=gt(portfolio(v),0)
                  vinst=gt(b,mult(portfolio(p),1.01))
                  1days=ge(cmpref(d,1,a),köpdag)
                  xdays=ge(cmpref(d,dagar,a),köpdag)
                  sälj1=and(and(and(or(and(vinst,1days),xdays),innehav),stängning),inpådagen)
                  sälj2=and(sälj1,account_ok)
                  mult(sälj2,10)

                  {@A(0,)}


                  Bifogar screenshot på simulering från 2010 till nu med OMXS30-aktierna. Notera att trendfilter hjälper till att undvika drawdown 2011 när börsen rasade 30% på 6 veckor.

                  Attached Files

                  Comment


                  • #69
                    Sorry men väcker lite liv i denna tråd igen (bra o träna på att skapa modeller o script)

                    #67 (inlägg)
                    1. Börja med att skapa en ordermodell för köpsidan:
                    Ska man göra så med Sälj oxå under "Arbeta med ordermodeller" tex Rikoschett sälj?

                    Förslag på hur man namnger Sekvenserna?


                    Funderar på om man kan få ut en lista på Aktier som uppfyller en del kriterier för tex MA200,MA100 från flera listor och detta körs varje dag och läggs automatiskt i en lista eller DB som Ordermodellen ovan kan arbeta med och med ny data varje dag.

                    Finna information om när ett bolag kom med rapport (datum) man kan trigga på?


                    Testade att analysera men får fel:
                    Initiering analys misslyckades. Troligtvis saknad eller felaktiga diskfiler.
                    Körde år 2015 och jag har 800 dagar bakåt nerladdade.

                    //M
                    Last edited by trexen; 2016-03-23, 12:20.

                    Comment


                    • #70
                      Det är ingen mening att skapa en listor dynamiskt med kriterier. Om villkoret är uppfyllt måste instrumentet ändå ha data, dvs det räcker att villkoren finns i ordermodellerna som är kopplade till de instrument som du vill ska ingå.

                      Det finns ingen företagsinformation som tex rapporter, etc

                      Att initieringen misslyckades beror främst på två saker. Fel i script eller ordermodeller. Alternativt har projektet blivit stort för windows. Prova en aktie och får du fel är det nog något med scripten eller ordermodellerna. Om projektet har blivit för stort får man minska körperioden och/eller antalet instrument. Dessutom kan man prova att simulerar med 1minuts animering istället för 5sek.

                      Comment


                      • #71
                        Prova först med 1 minutsanimering, 5 sek blir troligen "overkill" för den här strategin. Precis som Henric säger, minska antal dagar till några få och se om det fungerar, öka därefter gradvis. Det kan också vara någon aktie som saknar data för hela perioden. En vanlig miss är att ta med SCV-A och B som inte längre är noterad osv.

                        Comment


                        • #72
                          Detta fel är vanligast för de orsaker jag beskrev. Saknas det data brukar det bli ett meddelande som poppar upp. Detta meddelande kommer inne i simulatorn. Att jag vet detta beror på att jag simulerar 200 amerikanska aktier samtidigt och gått den hårda vägen.

                          Comment


                          • #73
                            Kör man Rikoschett med standardscriptet att sälja på 3 dagar så blir utfallet högre har jag märkt. Har dock ännu inte kört med alla OMXS30 aktierna.

                            Comment


                            • #74
                              Ursprungligen postat av Bari Visa inlägg
                              Kör man Rikoschett med standardscriptet att sälja på 3 dagar så blir utfallet högre har jag märkt. Har dock ännu inte kört med alla OMXS30 aktierna.
                              Testa även med DStat5-exiten, det borde bli ännu bättre.

                              Comment

                              Working...
                              X