Allmänt meddelande

Collapse
No announcement yet.

ROC and Roll

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

  • #76
    Har testat på OMX S30 aktier, perioden 2019 1 Feb - 2020 18 feb
    Har lite egenjusterade inställningar jämfört med original ROC,
    syftet med uppgifterna är inte att kunna få samma resultat som mig i jämförande test utan att påvisa hur stor skillanden det blir som mönster av att koppla bort nollställ.
    Och om möjligt föra dialog för varför denna förbättrade avkastning uppstår, ifall det kan vara något att använda i strategin.


    avkastning ggr jämfört med sämsta kombination 2.53 ggr, jämfört med original 1.73 ggr

    nollställ=mult(0,1) och {ny_mån}1
    Resulat: 74 141 kr, 82 signaler

    nollställ=mult(0,1) och ny_mån
    Resultat: 74 141 kr, 82 signaler. Ger samma resultat i kr och signaler som ovanför kombination. EDIT: Ger olika positioner. t.ex. hålls några trendande aktier längre med bättre resultat t.ex. SWMA och GETI


    nollställ=and(or(2_tim_innan,eqv(xtime(date(),h),15)),1) och {ny_mån}1
    Resultat: 42 726 kr, 172 signaler


    nollställ=and(or(2_tim_innan,eqv(xtime(date(),h),15)),1) och ny_mån
    Resultat: 29 309 Kr 162 signaler



    *ny_mån=not(eqv(aref(monthnumber(),1),monthnumber()))



    EDIT: resultatet för de två första två testerna ser lika ut i kr och signaler, men skiljer sig åt innehavsmässigt. Har börjat jämföra grafer och jag tror att varianten som skriver vid ny månad håller positioner bättre.
    Så om strategin för ROC är att vara trendande momentum strategi och hålla kvar i vinnare, anser jag baserat på mina tester att skripten med nollställ och {nymån}1 uppfyller det sämre.
    Skulle nu vara kul att höra motargument eller dialog kring andra konsekvenser som jag missat.
    Last edited by jimmy; 2020-05-24, 15:34.

    Comment


    • #77
      Jag har en egen modell som använder ranking och vet hur känsligt det kan bli.

      Jag valde slumpmässigt 4 år och alla bolag på large cap som faktiskt var med just det året(knapp 100st). Körde utan nollställ. Det blir lite bättre att inte ha med nollställa. En del av förklaringen är nog att antal affärer minska och därmed courtage och slipp. Sedan måste nog någon form av nollställning vara med. Annars kan aktier fastna och rankingen slutar att fungera.

      Trendföljande eller inte tycker jag att risk/reward-profilen under längre tid får avgöra.
      Fler affärer innebär större statiskt underlag. Sedan är det enkelt att själv labba så modellen fungerar som man vill.

      Comment


      • #78
        Ursprungligen postat av Rikard Autostock Visa inlägg
        Nollställningen behövs för att inte gamla värden ska ligga kvar i cellerna när ny rankingsekvens körs. Annars kommer tidigare "topplista" att påverka utfallet på den nya. Det blir nog slumpmässigt hur den kommer se ut gissar jag.

        Ett sätt att få bättre koll på värdeutvecklingen över tid är att lägga ett script i egen kolumn vid simulering som mäter kontovärdet, så blir det enkelt att lägga över tex i Excel:

        kontovärde=add(cash(a),cash(t))

        Nu har jag inte studerat skriptet så noga, men om jag vill testa att ta med en del av tidigare rankningsvärden, vad är bästa metoden?
        AlgoPal - Emotionless Trading - Hyr ut våra trading algoritmer for Autostock via algopal.com

        Comment


        • #79
          Tack Henrik
          behövde någon att bolla med och höra lite åsikter/erfarenheter.

          Jag labbar vidare.

          Kan nämna att jag kombinerar två strategier som jag arbetar med att integrera bättre och tagit fram flera justeringar och modeller för skalning.
          1. Trendande momentum - en ROC variant - vars avsikt är att ta trades i de starkaste aktierna där det inte uppstår tydliga köptillfällen och där det oftast lönar sig mycket att bara glida med. Därför vill jag ha så få signaler/brus som möjligt.

          2. swing strategi som får handla i aktieurvalet som inte är upptagna i Trendande momentum, dvs inte sälja innehav för trendande momentum och där det oftare uppstår tydliga köpsignaler.

          Kombinerar ovan handel baserat på ett aktieurval som tas utifrån fundamental bolagsdata och momentumananalys. Det blir därför till stor del diskretionär förvaltning, då jag justerar löpande aktieurval.

          Last edited by jimmy; 2020-05-24, 18:12.

          Comment


          • #80
            Om man inte nollställer rankingmotorn innan ny ranking blir det omöjligt att reproducera live, allt beror då på när man startar osv. Det är inte så rankingmotorn är designad.

            Comment


            • #81
              Ursprungligen postat av Rikard Autostock Visa inlägg
              Om man inte nollställer rankingmotorn innan ny ranking blir det omöjligt att reproducera live, allt beror då på när man startar osv. Det är inte så rankingmotorn är designad.

              Tack för bra förklaring av konsekvensen. Jag ska labba mera och se. Kanske i mitt fall att jag ska nollställa manuellt eller i vissa situationer.
              Det jag inte vill är att positioner som går bra säljs av för att strax därefter köpas tillbaka osv. Kan vara så att jag även ska labba med ROC perioderna och viktningen.

              Comment


              • #82
                Ursprungligen postat av Rikard Autostock Visa inlägg
                Det går ganska enkelt att fixa, tex köra daglig dummy-affär på ABB och disabla ABB från rankingen.

                Jag labbade nu med att lägga in rank gvar och crid som extra script i analysbänken. Nu ser jag skillnaden för varje affär vad som händer med och utan nollställning och rank över tid Detta bör underlätta för att finjustera saker. måste också ge kred för debuggern. Har inte sett den tidigare men är ju otroligt bra när man ska analysera, förstå och felsöka.

                Comment


                • #83
                  Rankning kan göras på många sätt och du behöver inte använda samma script som ROC. Om det är trend kan tex entry göras med någon ranking och att exit tas med villkor anpassade för trend utan ranking eller stopp.

                  Comment


                  • #84
                    Hej,

                    I uppdateringen av ROC Investor beskrivs ett volla filter (i nyhetsbrevet).

                    Kan ni förklara lite hur ändringen är tänkt att fungera?

                    Vad jag kan se används inte längre vissa inparametrar och justerar man ROC tidsintervall ser det ut att bara vara rc_y som faktiskt används.

                    Om man vill ändra tidsperiod som rankingen utgår ifrån, vilka hårdkodade parametrar värden ska man ändra, och vilka förhållanden bör man ha relativt vad man önskar för period för år, kvartal och månad?

                    { ROC and Roll Investor buy ver 1.2 200909 }



                    weight_q:=2 {2}
                    weight_y:=1 {1}
                    weight_m:=-1 {-1}
                    hysteres1:=1.02
                    hysteres2:=0.98
                    min_avg_daily_oms:=200000
                    hävstång:=1

                    { VAP }
                    vol_la=sub(1,div(aref(c,1),c))
                    ma50=mov(vol_la,50,s)
                    bbl2k=sub(ma50,mult(2.5,stdev(vol_la,1000)))
                    bbl50=sub(ma50,mult(2,stdev(vol_la,50)))

                    rå=sub(bbl50,bbl2k)
                    rating1=mult(1,sum(gt(rå,aref(rå,1)),50))
                    rating2=mult(50,sub(1,div(abs(rå),bbl2k)))
                    vap=div(mx(0,mn(100,mult(sub(add(rating1,rating2),70),2))),100)



                    rc_y=sub(roc(c,252,%),1)
                    rc_q=sub(roc(c,63,%),1)
                    rc_m=sub(roc(c,21,%),1)


                    volla=hhv(div(bolbands(20,2,u),bolbands(20,2,l)),250)
                    ma_50=ema(c,50)
                    fall=lt(ma_50,aref(ma_50,1))
                    uppdagar=hhvbars(fall,250)


                    datesame=eqv(int(d),int(ref(d,1)))
                    dagar_data=sum(not(datesame),250)

                    no_split=llv(lt(div(abs(sub(c,ref(c,1))),c),0.3),250)
                    samma_dag=ge(int(d),sub(int(date()),2))
                    avg_oms_daily=div(sum(mult(c,v),250),250)
                    data_ok=and(and(and(gt(avg_oms_daily,min_avg_daily_oms),samma_dag),no_split),gt(dagar_data,240))


                    tot=add(add(mult(weight_q,rc_q),mult(weight_m,rc_m)),mult(weight_y,rc_y))
                    poäng_tt=mult(vap,mult(div(add(uppdagar,rc_y),volla),data_ok))

                    Jag använder sedan tidigare andra parametrar och ROC-perioder och vet inte om skriptet blivit bättre eller sämre ur anpassningsperspektiv.

                    Last edited by jimmy; 2020-09-12, 00:39.

                    Comment


                    • #85
                      Det stämmer, när vollan viktades in kunde de övriga tidsperspektiven uteslutas, men inget hindrar ju att man kopplar in dem och simulerar med sitt favoriturval av aktier. Ersätt i så fall "rc_y" med "tot" på raden som börjar med "poäng_tt", så blir ROC-komponenten precis som tidigare.

                      VAP_delen fungerar precis som VAP-kurvan bakom snabbknappen i Pro. Samma formel används.

                      Comment


                      • #86
                        Hur stor är skillnaden i det analyserade resultatet med den uppdaterade versionen jämfört med den gamla versionen?
                        CAGR på 38% är ortoligt bra. Mid cap under samma period har haft en CAGR på ca 20% och bättre än någon svensk småbolags fond under samma tidsperiod.
                        AlgoPal - Emotionless Trading - Hyr ut våra trading algoritmer for Autostock via algopal.com

                        Comment


                        • #87
                          Gamla versionen ligger fortfarande i Portfolio Mixer, men vi uppdaterar den inom några dagar för alla strategier.

                          Comment


                          • #88
                            1. rc_y=sub(roc(c,252,%),1)
                            2. bbl2k=sub(ma50,mult(2.5,stdev(vol_la,1000)))

                            1. Varför sub(x,1)
                            2a. Vollatiliteten 4 år tillbaka. Vad händer om det saknas data. Antingen 4 år innan simuleringen startar eller att instrumentet är listad efter simuleringsstart.
                            2b. Behöver alla instrument samma längd på historiken för att jämföras(se 2a)

                            Comment


                            • #89
                              1. För att ta bort 1:an i procentdelen, spelar nog iofs ingen roll i och med rankingen jämför med andra likadana värden.
                              2b Det görs en test längre ner att data finns minst 250 dagar, vilket ändå ger något värde på VAP. Men i princip kan man ändra till att testa data för 1000 dagar.
                              2c Minst 1000 dagar (EOD räcker)

                              Comment


                              • #90
                                1. Tar bot 1:an? Värdet är väl redan omvandlat till procent. Det kommer nog ändå inte att påverka.
                                2. Då kan startpunkten för simuleringen bli avgörande. Så länge de flesta instrumenten ungefär har samma längt på historiken upp till 4 år borde det inte påverka så mycket.

                                Comment

                                Working...
                                X