Allmänt meddelande

Collapse
No announcement yet.

Indikator på index handlar termin

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

  • #16
    Hej Rikard!

    Jag fick just en idé,

    På träffen ni hade hos nordnet innan sommaren som jag var på, fick jag intrycket att det var svårt att koppla flera olika strategier parallellt i en depå, då programmet kollar mot innehavet i depån och inte den enskilda strategins "innehav", och att dom då inte skulle fungera korrekt...

    Jag tror mig ha kommit på en lösning på det problemet.

    Ponera att jag vill köra ett enkelt script som ger kort/lång signal.
    men istället för att det triggar en signal direkt så adderar/subtraherar den signalen till en global variabel.
    sen har man ett triggerscript som känner av om innehavet och den globala variabeln är lika, är den ej det så triggas köp/sälj, och då räknar antalscriptet ut hur många som behövs för att Gvar och innehav ska bli lika.
    Då kan man ju koppla på hur många olika script som helst till den variabeln,
    det bökiga blir ju att man måste göra en kopia på alla signalscript för varje papper man vill handla där man byter ut Gvaren...
    men om man bara handlar på terminen är det ju inget problem...

    Comment


    • #17
      Jo, det är en lösning som funkar. Det är ganska enkelt att bygga två ordermodeller, en som köper och en som säljer för att nå till "målantalet" i den globala cellen.

      Comment


      • #18
        Ett enkelt exempel:

        sl)
        m1=mov(c,50,s)
        m2=mov(c,200,s)

        korsö=and(Lt(aref(m1,1),aref(m2,1)),cross(m1,m2))
        korsu=and(Gt(aref(m1,1),aref(m2,1)),cross(m1,m2))

        antal=add(add(körsö,korsu),getGvar(300))

        SetGvar(antal,300,1)


        Sen kör man triggerscriptet i ordermodellen för köp
        (det här kopplar man på till ett papper en gång, vill man köra på ett annat papper också får man göra en kopia på scriptet ovan och sen ändra Gvaren där det behövs)

        i1(
        signal=not(eqv(GetGvar(300),portfolio(v)))
        signal
        )

        antalscriptet räknar ut antal som ska köpas:

        köpantal=GetGvar(300)
        innehav=portfolio(v)
        i1(
        övermål=Ge(innehav,övermål)
        slutantal1=if(övermål,0,sub(köpantal,innehav)
        slutantal1
        )


        Min ambition är att kunna köra en strategi i tre olika tidsperspektiv;

        Lång, med 4st kontrakt
        Medel, med 3st kontrakt
        Kort, med 2st kontrakt

        Då kan man ligga -9st, -5st, -3st, -1st, 1st, 3st, 5st, 9st beroende på hur terminen beter sig...
        Det verkar iaf. som en bra idé

        Ha det bra och tack för all hjälp
        /nyrn2k
        Last edited by nyrn2k; 2011-10-26, 07:38.

        Comment


        • #19
          Snyggt jobbat! Du har fattat det hela galant!

          Comment


          • #20
            förresten,
            har du någon bra idé hur jag kan uppskatta utvecklingen historiskt?

            jag tänkte att man kanske kan göra någon sorts loop,


            mult(sub(c,aref(c,1)),aref(antal,1))

            är ju utvecklingen för senaste stapeln,
            men hur kan jag ackumulera de tidigare staplarnas utveckling?

            Comment


            • #21
              Var har jag gjort fel?
              detta är scriptet för att gå lång som är kopplat till index:
              (jag behåller gärna signalens funktion för mig själv, därav xx... men allt funkar som det ska och ger en flagga när m5 blir 1 )
              scriptet för att gå kort är samma, förutom i raden m5=... lt är där gt
              och globala variabeln är 667

              i40(
              range1=xx
              range2=xx

              m1=xx
              m2=xx

              m3=xx
              m4=xx

              m5=and(lt(aref(m3,1),m4),cross(m3,m4))

              SetGvarIf(0,666,1)
              SetGvarIf(1,666,m5)

              mult(m5,5)
              )


              sen har jag triggerscriptet i min ordermodell kopplat till terminen:

              i1(
              signal:=GetGVar(666)
              ej_innehav:=le(portfolio(v),0)
              köp=and(signal,ej_innehav)
              köp
              )

              igår eftermiddag kom en säljsignal, men det såldes inget...
              var ligger felet? jag fattar ingenting...

              Comment


              • #22
                En sak som jag är lite osäker på men som jag misstänker kan vara problemet. Lägg tilldelade namn ovanför intradayprefixet istället så att det bara finns minnesreferenser "innanför" prefixet.

                Villkoret le(portfolio(v),0) betyder att signal bara tillåts om innehavet är noll eller blankat. Om du redan hade ett positivt innehav när signalen kom så blockeras villkoret.

                Kan det stämma?

                Comment

                Working...
                X