Allmänt meddelande

Collapse
No announcement yet.

Intradagsranking

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

  • #31
    Vill du absolut använda öppningskursen är nog en egen databas med celler det enda alternativet. Annars blir det stor risk öppningskursen blir helt fel vid större nyheter, rapporter, mm. Det skulle inte alls bli så komplicerat, men beror på antalet instrument som ingår. Man registrerar första kursen för dagen som inte är den samma som gårdagens sista intra. Däremot ska man nog inte försöka handla direkt vid ny öppningskurs(vilket du inte försöker). Har provat och för mig avvek det i verkligheten för mycket. Se upp för system som triggar kvällen innan och handlar på nästa dags öppningskurs.

    Comment


    • #32
      Jag snickrade ihop en demo med grundkonceptet. Ingen debugging. För skarp handel kanske den ska vara med dynamisk radering av inaktuella aktier upp till max antal aktier.

      { Köpmodell med rankingfunktion }
      { exempel max 3 aktier }
      i1(
      öppet=ge(mult(1440,sub(market(c),frac(date()))),7)
      tid_morg=and(eqv(xtime(date(),h),9),and(ge(xtime(date(),m),4),le(xtime(date(),m),5)))
      tid_eft=and(eqv(xtime(date(),h),13),and(ge(xtime(date(),m),14),le(xtime(date(),m),15)))
      intraIgår=find(gt(int(d),aref(int(d),1)),520,aref(c,1),1)

      finns1=if(eqv(crcid(),GetGvar(601)),601,0)
      finns2=if(eqv(crcid(),GetGvar(602)),602,finns1)
      finns3=if(eqv(crcid(),GetGvar(603)),603,finns2)
      ledig1=if(and(eqv(finns3,0),eqv(GetGvar(601),0)),601,0)
      ledig2=if(and(eqv(finns3,0),eqv(GetGvar(602),0)),602,ledig1)
      ledig3=if(and(eqv(finns3,0),eqv(GetGvar(603),0)),603,ledig2)
      instr=if(finns3,finns3,ledig3)

      nyÖppK=and(and(instr,gt(int(date()),int(GetGvar(add(instr,100))))),not(eqv(c,intraIgår)))
      SetGvarIf(crcid(),instr,nyÖppK)
      SetGvarIf(date(),add(instr,100),nyÖppK)
      SetGvarIf(c,add(instr,200),nyÖppK)

      rankVärde=div(c,GetGvar(add(instr,200)))

      skriv1=and(instr,eqv(int(date()),int(GetGvar(add(instr,100)))))
      skriv2=and(skriv1,or(gt(int(date()),int(GetGvar(597))),gt(rankVärde,GetGvar(598))))
      skriv3=or(skriv2,and(eqv(int(date()),int(GetGvar(597))),eqv(crcid(),GetGvar(599))))
      skriv4=and(skriv3,not(or(tid_morg,tid_eft)))
      SetGvarIf(crcid(),599,skriv4)
      SetGvarIf(rankVärde,598,skriv4)
      SetGvarIf(date(),597,skriv4)

      AndraVillkor=and(1,1)

      Handla1=and(and(eqv(crcid(),GetGvar(599)),or(tid_morg,tid_eft)),eqv(int(date()),int(GetGvar(597))))
      Handla2=and(and(Handla1,AndraVillkor),le(portfolio(v),0))
      and(Handla2,1)

      )

      Comment

      Working...
      X