Allmänt meddelande

Collapse
No announcement yet.

Hur går era affärer ?

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

  • Hej Rikard,

    Jag har egentligen bara kopierat MFI-modellen och sedan bytt ut triggern till en egen.

    Här är hela mitt script fast med ett vanligt RSI som trigger, det har som sagt fungerat i simulatorn. I kalkylforskaren har jag bara triggern, ingen rank.

    { Buy Low (5st)}

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


    Indikator=RSIW(5)
    Värde=mov(Indikator,3,s)
    draw(Värde,2,bsa)
    draw(25,3,dgsa)

    { 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 }
    OS=and(lt(Värde,25),lt(c,aref(c,1)))
    rate3=sub(100,Värde)

    { 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)


    högre_rate=gt(mult(and(ej_innehav,OS),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)


    {läs av kontovärde och testa om det finns pengar}
    depåvärde=sub(add(cash(a),cash(t)),cash(u))
    belåning=sub(depåvärde,cash(a))
    insatsproc=div(abs(getgvar(841)),100)
    insatsbelopp=mult(depåvärde,insatsproc)
    pengarfinns=lt(add(reserv,insatsbelopp),belåning)

    {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(and(ej_innehav,öppet),kl1720),pengarfinns)
    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)))
    retval(2,0)
    mult(köp2,10)


    Mvh Calle

    Comment


    • 09:51 ORDER "sl) Mitt Bol6 köp OMXS305C" kurs 1658.00
      10:09 ORDER "sl) Mitt BolVol3 sälj vänd OMXS305C" kurs 1644.25 -13.25
      11:09 ORDER "sl) Mitt Bol6 köp vänd OMXS305C" kurs 1646.00 -1.75
      17:03 ORDER "sl) Egen DAX2 TP lång index OMXS305D" kurs 1657.25 +11.25

      Ackumulerad vinst D-terminen: +4.35 punkter
      YTD skarpt utan courtage med syltfingrar: +62.45 punkter
      1 jan- nu, simulering med de modifierade scripten utan courtage: +222.45 punkter

      Förtydligande:
      Bruttovinst idag skarp handel: -4.25 punkter
      Bruttovinst simulerat idag: -4.25 punkter

      mvh
      Bertil
      Last edited by Bertil; 2015-03-26, 23:54.

      Comment


      • 09:21 ORDER "sl) Berra balnk mcd stoc volp OMXS305D" kurs 1650.75
        12:34 ORDER "sl) Berra long mcd stoc volp OMXS305D" kurs 1645.50 +5,25
        17:14 ORDER "Berra Stäng köp innan börsstängning OMXS305D" kurs 1656.75 +11,25


        Ackumulerad vinst D-terminen: +14,75 punkter
        Last edited by Berra; 2015-03-27, 09:38. Anledning: avslut igår
        Berra

        Comment


        • Ursprungligen postat av Holfve22 Visa inlägg
          Hej Rikard,

          Jag har egentligen bara kopierat MFI-modellen och sedan bytt ut triggern till en egen.

          Här är hela mitt script fast med ett vanligt RSI som trigger, det har som sagt fungerat i simulatorn. I kalkylforskaren har jag bara triggern, ingen rank.

          { Buy Low (5st)}

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


          Indikator=RSIW(5)
          Värde=mov(Indikator,3,s)
          draw(Värde,2,bsa)
          draw(25,3,dgsa)

          { 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 }
          OS=and(lt(Värde,25),lt(c,aref(c,1)))
          rate3=sub(100,Värde)

          { 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)


          högre_rate=gt(mult(and(ej_innehav,OS),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)


          {läs av kontovärde och testa om det finns pengar}
          depåvärde=sub(add(cash(a),cash(t)),cash(u))
          belåning=sub(depåvärde,cash(a))
          insatsproc=div(abs(getgvar(841)),100)
          insatsbelopp=mult(depåvärde,insatsproc)
          pengarfinns=lt(add(reserv,insatsbelopp),belåning)

          {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(and(ej_innehav,öppet),kl1720),pengarfinns)
          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)))
          retval(2,0)
          mult(köp2,10)


          Mvh Calle
          Om det fungerar i bänken borde det fungera live(nästan alltid, men vet aldrig). Först skulle jag kolla reserv och insatsprocenten i cellerna 841 och 842. Sedan kolla att inte samma celler används i någon annan modell som du kör live. Cellerna blir indirekt lokala vid simulering. Live är de globala för hela programmet. Om det har gjorts några ändringar av strukturen i ordermodellen(tex bytt va-script) under resans gång skulle jag koppla av och på ordermodellen. Jag sitter inte tillgänglig för att själv testa. Vill du debugga live på ett testkonto går det ändra handelstiderna och eventuell trigger för att tvinga fram signaler.

          Comment


          • Det är viktigt att programmet varit igång sedan öppning. Nollställningssekvensen körs bara första minuten på dagen, missar man den ligger gårdagens värden kvar i cellerna osv.

            Comment


            • Allt ligger på VPSen och den går ju dygnet runt. De modeller som jag har anslutna live har inga globala celler alls. Va) scriptet är

              { 140625 }
              insatsproc:=20
              reservationsbelopp:=0
              {}
              insatspr1:=div(insatsproc,100)
              insatsbelopp=mult(sub(add(cash(a),cash(t)),cash(u)),insatspr1)
              signalkod=lasttrade(b,0)
              setgvarif(reservationsbelopp,842,1)
              setgvarif(insatsproc,841,1)
              antal=int(div(insatsbelopp,s))
              add(antal,0)

              Vilket jag inte kan hitta några kostigheter med? Kan det ha något med signalkoden att göra eftersom den bara köper 1 aktie? Kan ju ta bort den egentligen eftersom jag inte har länkat någon säljsignal.

              Av en slump ser jag nu att mina modeller ligger under "stega" som val i andra modeller? bifogar print screen.

              Mvh Calle
              Attached Files

              Comment


              • Inga celler alls? Men hur fungerar rankingen då?

                Stega-script kan man använda, men du kanske har högerklickat på sekvensen och valt Loop-alternativet där istället?

                Comment


                • Live på riktiga konton*, kanske va lite otydligt. "Buy Low" med globala celler ligger ansluten på demo.

                  Ja på "Buy Low" så är den "loopad" men sl) "Buy Low" finns med som stega-alternativ på andra modeller också, bilden var på en standardmodell? Tänkte om det har blivit något konstigt med ID-nummret på scriptet?

                  Mvh Calle

                  Comment


                  • Idag skedde en urblåsning av marknaden på 22 punkter på ca 30 minuter.
                    Mina ordermodeller kan inte riktigt hantera så snabba rörelser då jag har vissa medelvärden som måste gå i rätt riktning. Jag har därför adderat ett nytt script för att hantera detta. Man kan kalla det curvefitting men jag kallar det komplettering av ordermodellerna för att hantera snabba kursfall. Ordermodellen ser ut så här:

                    { Mitt Bol7 sälj vänd }
                    { 150326 }
                    innehav:=Portfolio(v)
                    ok_att_handla:=Gt(innehav,0)

                    tidspärr1:=1
                    tidspärr2:=1
                    Lastbuy:=LastTrade(B,P)
                    lt1:=LastTrade(B,D)
                    lt2:=Portfolio(D)
                    minSedanKöp:=Mult(Sub(Date(),lt1),1440)
                    minSedanTrans:=Mult(Sub(Date(),lt2),1440)
                    delay_ok:=gt(minSedanKöp,tidspärr1)
                    trans_ok:=gt(minSedanTrans,tidspärr2)

                    i1(
                    tid1=gt(int(mult(frac(d),1440)),580)
                    { före kl 17.00 }
                    tid2=lt(int(mult(frac(d),1440)),1020)

                    stor=HHV(MX(H,s),3)

                    Draw(stor,2,dgqb0)
                    villkor01=Gt(Sub(stor,c),4)
                    villkor02=Gt(Sub(cmpref(L,1,a),c),10)
                    sälja=And(villkor01,villkor02)
                    villkor80=And(And(Ge(s,sub(c,0.25)),Le(b,add(c,0.25))),Not(eqv(b,s)))
                    ditt_säljscript=And(And(And(And(And(sälja,tid1),tid2),delay_ok),trans_ok),villkor80)
                    säljsignal=And(And(ditt_säljscript,sälja),ok_att_handla)
                    Mult(säljsignal,10)
                    )

                    {@A(0,)}

                    ----------------
                    Villkoren för sälj är alltså att det droppar minst 4 punkter på 3 minuter och att vi ligger minst 10 punkter under gårdagens lägstanivå. Vidare så blankas endast om innehav finns, ej från 0. Ingen trigg före 09:40 då kurserna allmänt är för volatila direkt på morgonen.
                    Jag har simulerat sedan 1 jan i år och ordermodellen triggar endast idag.
                    Dagens resultat kommer då att öka från -4.25 punkter till +9 punkter.

                    Jag bedömer att kurserna i framtiden kommer att bli mycket mer volatila och att därför denna ordermodell kommer att få göra rätt för sig i framtiden.

                    Med vänlig hälsning
                    Bertil
                    Last edited by Bertil; 2015-03-27, 15:18. Anledning: Justerat säljvillkoret efter påpekande från Henric.

                    Comment


                    • 09:04 ORDER "sl) Berra long mcd stoc volp OMXS305D" kurs 1665.50
                      10:54 ORDER "sl) Berra blank mcd stoc volp OMXS305D" kurs 1663.00 -2,50
                      12:19 ORDER "sl) Berra long mcd stoc volp OMXS305D" kurs 1667.50 -4.50
                      Jaha det är en sådan dag idag
                      13:39 ORDER "sl) Berra blank mcd stoc volp OMXS305D" kurs 1664.25 -3,25

                      Ackumulerad vinst D-terminen: +4,50 punkter
                      Last edited by Berra; 2015-03-27, 13:47. Anledning: jaha
                      Berra

                      Comment


                      • Ursprungligen postat av Bertil Visa inlägg
                        Idag skedde en urblåsning av marknaden på 22 punkter på ca 30 minuter.
                        Mina ordermodeller kan inte riktigt hantera så snabba rörelser då jag har vissa medelvärden som måste gå i rätt riktning. Jag har därför adderat ett nytt script för att hantera detta. Man kan kalla det curvefitting men jag kallar det komplettering av ordermodellerna för att hantera snabba kursfall. Ordermodellen ser ut så här:

                        { Mitt Bol7 sälj vänd }
                        { 150326 }
                        innehav:=Portfolio(v)
                        ok_att_handla:=Gt(innehav,0)

                        tidspärr1:=1
                        tidspärr2:=1
                        Lastbuy:=LastTrade(B,P)
                        lt1:=LastTrade(B,D)
                        lt2:=Portfolio(D)
                        minSedanKöp:=Mult(Sub(Date(),lt1),1440)
                        minSedanTrans:=Mult(Sub(Date(),lt2),1440)
                        delay_ok:=gt(minSedanKöp,tidspärr1)
                        trans_ok:=gt(minSedanTrans,tidspärr2)

                        i1(
                        tid1=gt(int(mult(frac(d),1440)),580)
                        { före kl 17.00 }
                        tid2=lt(int(mult(frac(d),1440)),1020)

                        stor=HHV(MX(H,s),3)

                        Draw(stor,2,dgqb0)
                        villkor01=Gt(Sub(stor,c),4)
                        villkor02=Gt(Sub(cmpref(L,1,a),c),10)
                        sälja=And(villkor01,villkor01)
                        villkor80=And(And(Ge(s,sub(c,0.25)),Le(b,add(c,0.25))),Not(eqv(b,s)))
                        ditt_säljscript=And(And(And(And(And(sälja,tid1),tid2),delay_ok),trans_ok),villkor80)
                        säljsignal=And(And(ditt_säljscript,sälja),ok_att_handla)
                        Mult(säljsignal,10)
                        )

                        {@A(0,)}

                        ----------------
                        Villkoren för sälj är alltså att det droppar minst 4 punkter på 3 minuter och att vi ligger minst 10 punkter under gårdagens lägstanivå. Vidare så blankas endast om innehav finns, ej från 0. Ingen trigg före 09:40 då kurserna allmänt är för volatila direkt på morgonen.
                        Jag har simulerat sedan 1 jan i år och ordermodellen triggar endast idag.
                        Dagens resultat kommer då att öka från -4.25 punkter till +9 punkter.

                        Jag bedömer att kurserna i framtiden kommer att bli mycket mer volatila och att därför denna ordermodell kommer att få göra rätt för sig i framtiden.

                        Med vänlig hälsning
                        Bertil
                        Är villkoret för sälja rätt?
                        Annars är det väl inte så intressant att enskilda dagar jämföra simulerat med sista ändringar och din mixade handel. Det enda sättet för dig att utvärdera är att över tid logga ackumulerat simulerat resultat framåt efter löpande ändringar.

                        Comment


                        • Ursprungligen postat av Henric Visa inlägg
                          Är villkoret för sälja rätt?
                          Annars är det väl inte så intressant att enskilda dagar jämföra simulerat med sista ändringar och din mixade handel. Det enda sättet för dig att utvärdera är att över tid logga ackumulerat simulerat resultat framåt efter löpande ändringar.
                          Du har rätt. Det skall vara
                          sälja=And(villkor01,villkor02)

                          I och med att jag litar mer på mina ordermodeller kommer jag att minimera min manuella handel. Då blir den skarpa summan lika med simulering av aktuella ordermodeller.

                          Då man justerar sina ordermodeller och simulerar bakåt så blir det ju per definition lika med curvefitting. I sig är det kanske ointressant att redovisa, men Berra gör ju på liknande sätt så då blir det en tävling vem som kan göra bäst curvefitting!

                          Jag tar ju fram mina ordermodeller för att kunna hantera geometriska (och volymetriska?) fenomen. Jag sitter ju inte och går igenom gamla terminer minut för minut utan detta görs ju bäst i realtid då man råkar sitta vid datorn.
                          Om jag då ser ett fenomen som jag tycker att mina ordermodeller borde fångat upp men inte lyckas med så kompletterar jag mina ordermodeller. Då en komplettering genomförts så kör jag en simulering från 1 jan och kvittensen på att lägga till den nya ordermodellen live är att simuleringsresultatet blir bättre än tidigare.
                          Detta är mitt sätt att jobba med framtagning av ordermodeller och så har jag jobbat i över två år på ont och gott.

                          mvh
                          Bertil
                          Last edited by Bertil; 2015-03-27, 15:19.

                          Comment


                          • Jag förstår hur du i realtid anpassar modellen. Det positiva är att ju längre backtest desto svårare blir det att anpassa modellen till kurvan och cf minskar. Det förutsätter att du inte helt plötsligt gör något helt annat, dvs i praktiken kör en annan modell. Då börjar problematiken om igen. Du har ju något på gång och det skulle hjälpa dig mycket att löpande logga bara på hittills gjorda ändringar(behöver inte vara på forumet, tex med testkonto eller behålla ackumulerat resultat när simulerade ändringar sjösätts). Lycka till.

                            Comment


                            • Det är ju snart helg och då är alla välkomna att posta i tråden Trading-filosofi!
                              Det är ju kul att veta hur ni andra tar fram en strategi med ordermodeller. Man kan ju göra på många olika sätt. Antingen bestämmer man först ett instrument (aktie,termin,derivat) och skräddarsyr en strategi för det eller så tar man fram en strategi och ser vilken aktie som den passar in på.
                              I det här forumets tusentals inlägg är det sällan som någon redogör för sin väg från ax till limpa.
                              mvh
                              Bertil

                              Comment


                              • Index har ju skvalpat omkring lite idag utan tydliga tecken på break out, så jag har inte fått någon trigg.

                                Ackumulerad vinst D-terminen: +4.35 punkter
                                YTD skarpt utan courtage med syltfingrar: +62.45 punkter
                                1 jan- nu, simulering med de modifierade scripten utan courtage: +235.70 punkter

                                Förtydligande:
                                Bruttovinst idag skarp handel: - punkter
                                Bruttovinst simulerat idag: - punkter

                                mvh
                                Bertil

                                Comment

                                Working...
                                X