Allmänt meddelande

Collapse
No announcement yet.

Standardmodell med MFI

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

  • #16
    Ursprungligen postat av zed Visa inlägg
    Hej
    Om jag struntar struntar i sorteringen och bara använder scriptet tom köp1 (köp1=and(and(botten,ej_innehav),and(öppet,kl1720)) funkar det fint. Vad kan jag ha missat denna gång?
    Vilken version kör du på?
    Du måste köra på den senaste, eftersom crcid() är en ny funktion som inte fanns tidigare.

    Comment


    • #17
      Nja det går faktiskt med tidigare också.

      Comment


      • #18
        Liten ändring där en ny kandidat inte rankas om innehav redan finns eftersom det medför att ingen köpsignal triggas, och då kommer man inte heller vidare till nästa kandidat.

        Köp:
        mval=mov(mfi(3),3,e)
        ma50=mov(c,50,s)
        upptrend=llv(gt(c,ma50),5)
        styrka=and(upptrend,gt(macd2(n),macd2(t)))
        mfgräns=if(styrka,10,1)
        rating1=getgvar(830)
        rating2=getgvar(831)
        rating3=getgvar(832)
        rating4=getgvar(833)
        crc1=getgvar(835)
        crc2=getgvar(836)
        crc3=getgvar(837)
        crc4=getgvar(838)
        rate1=div(hhv(h,10),llv(l,10))
        rate2=topbars(lt(c,ma50),100,1)
        rate3=mult(mult(3,rate1),rate2)
        kl1720=le(mult(1440,sub(market(c),frac(date()))),8)
        kl1719=and(le(mult(1440,sub(market(c),frac(date()))),9),not(kl1720))
        ej_innehav=le(portfolio(v),0)
        botten=and(aref(lt(mval,mfgräns),1),gt(mval,aref(mval,1)))
        högre_rate=gt(mult(and(ej_innehav,botten),rate3),rating1)
        skriv_rate=and(högre_rate,kl1719)
        setgvarif(rate3,830,skriv_rate)
        setgvarif(rating1,831,skriv_rate)
        setgvarif(rating2,832,skriv_rate)
        setgvarif(rating3,833,skriv_rate)
        setgvarif(rating4,834,skriv_rate)
        setgvarif(crcid(),835,skriv_rate)
        setgvarif(crc1,836,skriv_rate)
        setgvarif(crc2,837,skriv_rate)
        setgvarif(crc3,838,skriv_rate)
        setgvarif(crc4,839,skriv_rate)
        öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
        draw(mval,2,dcsvw)
        draw(ma50,3,dgqb)
        nolltid=lt(frac(date()),0.377)
        nollställ0=setgvarif(0,830,nolltid)
        nollställ1=setgvarif(0,831,nolltid)
        nollställ2=setgvarif(0,832,nolltid)
        nollställ3=setgvarif(0,833,nolltid)
        nollställ4=setgvarif(0,834,nolltid)
        nollställ5=setgvarif(0,835,nolltid)
        aktie1=getgvar(835)
        aktie2=getgvar(836)
        aktie3=getgvar(837)
        aktie4=getgvar(838)
        aktie5=getgvar(839)
        kandidat_a=if(gt(aktie1,0),aktie1,aktie2)
        kandidat_b=if(gt(kandidat_a,0),kandidat_a,aktie3)
        kandidat_c=if(gt(kandidat_b,0),kandidat_b,aktie4)
        kandidat_d=if(gt(kandidat_c,0),kandidat_c,aktie5)
        köp1=and(and(botten,ej_innehav),and(öppet,kl1720))
        köp2=and(and(köp1,eqv(crcid(),kandidat_d)),gt(kandidat_d,0))
        setgvarif(0,835,or(nolltid,and(eqv(crcid(),aktie1),köp2)))
        setgvarif(0,836,or(nolltid,and(eqv(crcid(),aktie2),köp2)))
        setgvarif(0,837,or(nolltid,and(eqv(crcid(),aktie3),köp2)))
        setgvarif(0,838,or(nolltid,and(eqv(crcid(),aktie4),köp2)))
        setgvarif(0,839,or(nolltid,and(eqv(crcid(),aktie5),köp2)))
        mult(köp2,10)

        Comment


        • #19
          Mycket intressant!
          Jag har fått det att funka i bänken. Dock så får jag mycket färre trades än vad du har, undrar vad det beror på. Hur ser ditt antalscript ut? Räcker det med att säga att den ska köpa för tex 100 000 och vid sälj, sälja hela innehavet?

          som sagt, kul modell med stor utvecklingspotential.

          Comment


          • #20
            Nu får jag det att funka i bänken och vi verkar har samma trades vid samma tid . En sak som slog mig. Om man vill ta bort marknadsrisken då man tror att dessa aktier är köpvärde då de varit "för svaga" så skulle man ju bygga in att modellen tex köper XACT BEAR för lika mycket som man ligger lång för. Då är det bara den relativa avkastningen mot index som ger avkastning. Som sagt, mycket intressant modell.

            Comment


            • #21
              Att hedga med någon Bear är ju klart intressant! Trist bara om index stiger och aktierna inte gör det. Man man kan ju alltid lägga en parallell algo som handlar Bear.

              XACT är kanske den sista jag skulle välja iofs......haha

              Comment


              • #22
                Ja du Rikard, det här ser väldigt intressant ut ska försöka begripa mig på hur det funkar
                Berra

                Comment


                • #23
                  Idag blev det köpsignal på ABB och BOL. De tidigare köpen SHB-A, ELUX-B och GETI ligger alla på plus så här långt

                  Comment


                  • #24
                    Lite kommentarer för att göra det lite lättare att följa hur det fungerar:

                    { definiera MFI-kurva }
                    mval=mov(mfi(3),3,e)
                    ma50=mov(c,50,s)

                    { testa om priset varit över MA50 i minst 5 dagar }
                    upptrend=llv(gt(c,ma50),5)

                    { avgör om gräns för att trigga signal på MFI ska vara 1 eller 10 }
                    styrka=and(upptrend,gt(macd2(n),macd2(t)))
                    mfgräns=if(styrka,10,1)


                    { läs av aktuell rating från celler 830-834}
                    rating1=getgvar(830)
                    rating2=getgvar(831)
                    rating3=getgvar(832)
                    rating4=getgvar(833)

                    { läs av aktiellt ID för kandidater }
                    crc1=getgvar(835)
                    crc2=getgvar(836)
                    crc3=getgvar(837)
                    crc4=getgvar(838)

                    { räkna ut aktuell rating för den aktie scriptet exekveras på just nu }
                    rate1=div(hhv(h,10),llv(l,10))
                    rate2=topbars(lt(c,ma50),100,1)
                    rate3=mult(mult(3,rate1),rate2)

                    { definiera klockslag då rating testas och skrivs till celler följt av själva handeln minuten efter}
                    kl1720=le(mult(1440,sub(market(c),frac(date()))),8)
                    kl1719=and(le(mult(1440,sub(market(c),frac(date()))),9),not(kl1720))
                    ej_innehav=le(portfolio(v),0)

                    { köpsignal definieras som att MFI igår ska vara under gräns 1 eller 10, och högre idag0}
                    botten=and(aref(lt(mval,mfgräns),1),gt(mval,aref(mval,1)))
                    högre_rate=gt(mult(and(ej_innehav,botten),rate3),rating1)

                    { testa om aktuell aktie har köpsignal och högre rating än den högsta lagrade värdet och skriv i så fall det nya högsta värdet till call830 samt flytta de tidigare värderna en cell bakåt så att bästa kandidaten alltid finns i cell 830 - skriv samtidigt ID i motsvarande celler 835 - 839}
                    skriv_rate=and(högre_rate,kl1719)
                    setgvarif(rate3,830,skriv_rate)
                    setgvarif(rating1,831,skriv_rate)
                    setgvarif(rating2,832,skriv_rate)
                    setgvarif(rating3,833,skriv_rate)
                    setgvarif(rating4,834,skriv_rate)
                    setgvarif(crcid(),835,skriv_rate)
                    setgvarif(crc1,836,skriv_rate)
                    setgvarif(crc2,837,skriv_rate)
                    setgvarif(crc3,838,skriv_rate)
                    setgvarif(crc4,839,skriv_rate)


                    öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
                    draw(mval,2,dcsvw)
                    draw(ma50,3,dgqb)

                    {klockslag då alla celler nollställs direkt efter öppning}
                    nolltid=lt(frac(date()),0.377)
                    nollställ0=setgvarif(0,830,nolltid)
                    nollställ1=setgvarif(0,831,nolltid)
                    nollställ2=setgvarif(0,832,nolltid)
                    nollställ3=setgvarif(0,833,nolltid)
                    nollställ4=setgvarif(0,834,nolltid)
                    nollställ5=setgvarif(0,835,nolltid)

                    {läs av ID för sparade köpkandidater och jämför med CRC ID för den aktie scriptet exekveras på just nu}
                    aktie1=getgvar(835)
                    aktie2=getgvar(836)
                    aktie3=getgvar(837)
                    aktie4=getgvar(838)
                    aktie5=getgvar(839)
                    kandidat_a=if(gt(aktie1,0),aktie1,aktie2)
                    kandidat_b=if(gt(kandidat_a,0),kandidat_a,aktie3)
                    kandidat_c=if(gt(kandidat_b,0),kandidat_b,aktie4)
                    kandidat_d=if(gt(kandidat_c,0),kandidat_c,aktie5)

                    { koppla ihop logiska villkor och testa om CRC ID är lika med sparad kandidat. Köp i så fall och nollställ cellen så att nästa scriptkörningscykel läser nästa sparade kandidat}
                    köp1=and(and(botten,ej_innehav),and(öppet,kl1720))
                    köp2=and(and(köp1,eqv(crcid(),kandidat_d)),gt(kandidat_d,0))
                    setgvarif(0,835,or(nolltid,and(eqv(crcid(),aktie1),köp2)))
                    setgvarif(0,836,or(nolltid,and(eqv(crcid(),aktie2),köp2)))
                    setgvarif(0,837,or(nolltid,and(eqv(crcid(),aktie3),köp2)))
                    setgvarif(0,838,or(nolltid,and(eqv(crcid(),aktie4),köp2)))
                    setgvarif(0,839,or(nolltid,and(eqv(crcid(),aktie5),köp2)))
                    mult(köp2,10)

                    Comment


                    • #25
                      Idag blev det köp på LUPE, medan ELUX-B såldes på 177:50, köpt på 176:60 den 29:e


                      Comment


                      • #26
                        Hej,

                        Strategin, går den att backtesta eller blir det begränsning med ett instrument eller något sådant, så bara går att live testa?

                        Följer också tråden med intresse..

                        Comment


                        • #27
                          Det går att simulera på alla aktier samtidigt, den väljer ut de bästa enligt rankingen.

                          Nedan en bild på equitykurvan för alla aktierna i OMXS30, även om det ritas på TLSN i det här fallet.

                          Attached Files

                          Comment


                          • #28
                            Idag fick jag:

                            sälj ABB på 146:40 > +2,16%
                            sälj SHB på 286:40 > +0,63%
                            sälj SWED på 153:70 > +2,33%
                            sälj GETI på 231:40 > +1,4%

                            Comment


                            • #29
                              Hur kopplar man dessa för att fungera i bänken? Jag har försökt att göra två modeller en köp och en sälj, och markerat alla largecap aktier och kört på en minut. Men jag får det inte att fungera bänken säger att det troligen är diskfel???
                              Berra

                              Comment


                              • #30
                                De finns som standardmodeller nu om du uppdaterar via Hjälpmenyn.

                                Comment

                                Working...
                                X