Allmänt meddelande

Collapse
No announcement yet.

Double 7

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

  • Double 7

    En mycket enkel strategi som ser ut att kunna fungera fint på aktier (och kanske även index) är Double 7 från Larry Connors bok om trading.

    Köpvillkor:
    1. Kurs över 200 dagars medel
    2. Köp vid stängning om lägsta Close på 7 dagar

    Säljvillkor:
    1. Sälj om kurs vid stängning når högsta Close på 7 dagar
    2. Alternativt, om kurs faller under MA200

    Vi gjorde en liten twist på strategin och kollar om köpvillkoret var sant igår, i så fall köper vi idag om intradaykursen når under gårdagens Close - x procent. (i vårt fall 1,5%)



    Simulerat på


    ABB
    ALFA
    ALIV
    ASSA
    ATCO
    BILL
    BOL
    ELUX
    ERIC
    HM

    blev avkastningsgrafen enligt bild. Ser lovande ut. Kanske material för en ny standardmodell.





    Totalt Avkastning 234010.22 kr 234.12% på 203 affärer under 1336:11:06 timmar
    Av dessa blankat 0 st med avkastning 0.00 kr 0.00%
    Innehav 138 st med vinst 483846.63 kr 484.17%
    Innehav 65 st med förlust -249836.41 kr -250.05%


    Köp:
    intra_proc:=0.985
    {}
    7low=llv(aref(c,1),6)
    lägre=lt(c,7low)
    close_igår=aref(c,1)
    ma200=mov(c,200,s)
    över=gt(c,ma200)
    ej_innehav=le(portfolio(v),0)
    öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
    stängning=le(mult(1440,sub(market(c),frac(date()))),7)
    köp1=and(aref(lägre,1),över)
    köp2=and(and(lt(c,mult(close_igår,intra_proc)),köp1),ej_innehav)
    köp3=and(köp2,and({stängning}1,öppet))
    mult(köp3,10)



    Sälj:
    7high=hhv(aref(c,1),6)
    högre=gt(c,7high)
    ma200=mov(c,200,s)
    under=lt(c,ma200)
    innehav=gt(portfolio(v),0)
    öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
    stängning=le(mult(1440,sub(market(c),frac(date()))),7)
    sälj1=and(and(or(under,högre),innehav),and(stängning,öppet))
    mult(sälj1,10)
    Attached Files

  • #2
    Ursprungligen postat av Rikard Nilsson Visa inlägg
    köp3=and(köp2,and({stängning}1,öppet))
    syntax fel?

    Comment


    • #3
      Nu har Double 7 fått möjlighet att para ihop en aktie som analyseras med en minifuture som handlas. Det är fält 6 i Indata script som används för att ange en unik cell för både aktien och minin. Ladda hem via Hjälp > uppdatera aktiemodeller

      Mer info i manualen:

      http://www.autostock.se/NATmanual/KopSaljDouble7.html




      PS. Om det fungerar fint bygger vi ut resten av aktiemodellerna med samma möjligheter.

      Comment


      • #4
        Hej
        Är det någon som får detta att funka?

        Comment


        • #5
          Här är en liten preview på D7 för blankning, eller köp av minishrt. Alltså inga Long-affärer i denna.

          Jag har simulerat med blankning av ett 20-tal aktier i bänken och bifogar en avkastningsgraf.

          Man ser tydligt hur den skapar vinst vid börsrasen men tappar något i börsuppgång. Men där har man ju den vanliga Double 7-versionen som gör rejäl vinst istället.

          Attached Files

          Comment


          • #6
            Det ser intressant ut, har du lust att lägga ut scriptet? De kommande åren blir det viktigt med bra bear strategier.

            Comment


            • #7
              Jo det är min gissning också. Här är koden så långt jag kommit nu.

              Blank:

              { Standardmodell Double 7 shrt }
              { 140801}
              {}
              intra_proc:=1.01
              dgr:=22
              {$opt(hi_1,4,8,1)}
              hi_1:=7


              retval(hhvbars(lt(d,sub(const(date()),365)),300),0)
              år2=roc(aref(c,sub(getval(0),dgr):300),dgr,%)

              retval(hhvbars(lt(d,sub(const(date()),730)),600),0)

              år3=roc(aref(c,sub(mx(getval(0),504),dgr):600),dgr,%)


              retval(hhvbars(lt(d,sub(const(date()),1096)),800),0)

              år4=roc(aref(c,sub(mx(getval(0),746),dgr):800),dgr,%)


              retval(hhvbars(lt(d,sub(const(date()),1461)),1100),0)

              år5=roc(aref(c,sub(mx(getval(0),1008),dgr):1100),dgr,%)


              mv12a=add(år2,add(år3,add(år4,år5))
              )
              pred=div(mv12a,4)

              { Reservera trading power som inte handlas för - ange belopp i kronor }
              reserv=getgvar(838)

              { Läs in cellnr för matchad minifuture }
              minifuture=scrpar(4)

              {läs av kontovärde och testa om det finns pengar}
              depåvärde=sub(cash(t),cash(a))
              belåning=sub(depåvärde,cash(a))
              insatsproc=div(abs(getgvar(837)),100)
              insatsbelopp=mult(depåvärde,insatsproc)
              pengarfinns=lt(add(reserv,insatsbelopp),belåning)
              {}
              datum1=ge(dayofmonth(),10)
              7high=hhv(aref(c,1),hi_1)
              högre=gt(c,7high)
              close_igår=aref(c,1)
              ma50=mov(c,50,s)
              ma200=mov(c,200,s)
              under=and(lt(c,ma200),and(lt(c,ma50),lt(pred,0)))
              ej_innehav=ge(portfolio(v),0)
              ej_samma_dag=gt(int(d),lasttrade(b,d))
              öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
              short1=and(högre,under)
              short2=and(and(gt(c,mult(close_igår,intra_proc)),short1),ej_innehav)
              short3=and(and(and(short2,and(datum1,öppet)),pengarfinns),ej_samma_dag)
              setgvarif(minifuture,minifuture,short3)
              short4=and(short3,not(minifuture))
              retval(3,0)
              mult(short4,10)


              Cover:

              { Standardmodell Double 7 cover }
              { 140801 }
              {$opt(lo_1,3,7,1)}
              lo_1:=3
              7low=llv(aref(c,1),lo_1)
              lägre=lt(c,7low)
              innehav=lt(portfolio(v),0)


              { Testa om innehav är köpt med Double 7-modell }
              köpkod_ok=or(eqv(lasttrade(s,0),3),eqv(köpkod,0))

              { Läs in cellnr för matchad minifuture }
              minifuture=scrpar(6)

              öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
              stängning=le(mult(1440,sub(market(c),frac(date()))),7)
              cover1=and(lägre,and(stängning,öppet))
              setgvarif(sub(0,minifuture),minifuture,cover1)
              cover2=and(and(cover1,köpkod_ok),innehav)
              mult(cover2,10)



              OBS, det simulerar endast på aktier än så länge, har inte funderat ut riktigt hur vi ska implementera minishrts på ett så enkelt sätt som möjligt. Man vill ju behålla möjligheten att handla minilong istället för aktier också. Kanske kan man skicka positiva värden för köp och negativa för sälj, så kan man använda samma unika nummer för både aktien, minilong och minishrt.

              Comment


              • #8
                Jag har anslutit till aktier, men lyckas inte få signal...?

                Comment


                • #9
                  Insatsscriptet är viktigt, jag kör med det som används i Double 7. Måste finnas en insatsprocent i cell 837 som det är skrivet ovan. Men du kan ju alltid ersätta "pengarfinns" med en etta längre ned så ska det handlas i vilket fall.

                  Comment


                  • #10
                    Hej,

                    i cover scriptet hittade inte variabel "köpkod" definierad.
                    köpkod_ok=or(eqv(lasttrade(s,0),3),eqv(köpkod,0))

                    Comment


                    • #11
                      Hej,

                      är det meningen att short och cover har olika input-fält?
                      är det menings att valda fält (insats, SL Multi..) används?
                      minifuture=scrpar(4) (short skript) - "Aktieportfölj insats%"
                      minifuture=scrpar(6) (cover skript) - "SL Multi scenario"

                      Comment


                      • #12
                        Rikard såg de två tidigare inläggen?
                        Undrar om det är rätt (jag inte försår) eller fel?

                        Comment


                        • #13
                          Såg ditt inlägg Jimmy och visst är det fel, det är den gamla hederliga namn-fällan.

                          Det ska vara:

                          köpkod_ok=or(eqv(lasttrade(s,0),3),eqv(lasttrade(s,0),0))

                          Dvs, det blir sant om koden som lagrats med transaktionen är antingen 0 eller 3. Inga andra koder ska tillåtas eftersom det betyder att positionen köpts av någon annan modell.

                          Fältet som används i Indata är inte spikat ännu mer än att Long-versionen av Double 7 använder fält 6. Det blir nog så att vi använder olika fält för Long/Short-versionen så har man möjligheten att låta modellen handla aktier för uppgång och minifutures för nedgång. Orderläggning för aktier stängs av om ett värde skiljt från noll finns i fält 6 som det är skrivet nu.

                          Comment


                          • #14
                            Ursprungligen postat av Rikard Nilsson Visa inlägg
                            Såg ditt inlägg Jimmy och visst är det fel, det är den gamla hederliga namn-fällan.

                            Det ska vara:

                            köpkod_ok=or(eqv(lasttrade(s,0),3),eqv(lasttrade(s,0),0))

                            Dvs, det blir sant om koden som lagrats med transaktionen är antingen 0 eller 3. Inga andra koder ska tillåtas eftersom det betyder att positionen köpts av någon annan modell.

                            Fältet som används i Indata är inte spikat ännu mer än att Long-versionen av Double 7 använder fält 6. Det blir nog så att vi använder olika fält för Long/Short-versionen så har man möjligheten att låta modellen handla aktier för uppgång och minifutures för nedgång. Orderläggning för aktier stängs av om ett värde skiljt från noll finns i fält 6 som det är skrivet nu.

                            hej,

                            vore kul om du kan uppdatera hela skriptet eller till och med lägga upp "beta-Short Double 7" under standard modeller för nedladdning, dvs komplett för testning. Jag brukar alltid fastna på någon typo när jag kopierar skripts, modeller och roddar runt

                            ...men bara om det inte blir problem med att automatiskt ta bort senare eller byta namn när ingen beta längre eller om den skrotas, jag vet inte hur lätt det funkar...
                            Såg när jag uppgraderade AT att uppdatering av modeller är kategoriserade nu . skulle kunna ha en kategori för beta modeller som de som vill kan välja att dra ned och labba med..


                            Comment


                            • #15
                              Riktigt bra ide faktiskt! Det är ju lätt att lägga upp en kategori med beta-modeller som kan laddas ner via Hjälp-menyn. Det är enkelt för oss att uppdatera dessa med namn och nya script osv.

                              Ska se om jag hinner få upp det imorgon.

                              Comment

                              Working...
                              X