Allmänt meddelande

Collapse
No announcement yet.

Ordermodellen funkar inte?

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

  • Ordermodellen funkar inte?

    Allt görs utanför Autostock och det enda jag gör är att låna lite kursinformation via DDE.

    Sedan emulerar jag excel och har 2 fiktiva värdepapper i AutoStock, som Autostock Excel-importerar utan problem. Värdepappren heter "CurrLong" & "CurrShort".

    Om close-kursen för "CurrLong" är 1 så ska den köpa terminen. När den blir 0 så ska den sälja. Samma sätt gäller för "CurrShort" fast att man säljer (1) och köper tillbaka vid 0.

    Detta fungerar på de fiktiva aktierna och close blir 1 vid köp resp. 0 vid sälj (eller 0 om ingen aktivitet ska göras).

    Jag har gjort 4 olika skript (med stega skript) för att användas i 4 olika ordermodeller för simulering. Dessa modeller är kopplade mot augusti-terminen. (1=Köp Long. 2=Sälj Long. 3=Köp Short. 4=Sälj Short.

    Problemet är att inget köp av terminen görs och så här ser de olika scripten ut. Jag använder den gamla versionen:


    {Buy Long}
    nGlobalLongBuy:=501
    nGlobalShortBuy:=503
    nLongBuy:=CmpRef(C,0,A)
    nShortBuy:=CmpRef(C,0,B)

    i1(
    nAllZero=And(Eqv(GetGvar(nGlobalLongBuy),0),Eqv(GetGvar(nGlobalShortBuy),0))
    nLongFlag=if(And(And(Eqv(nLongBuy,1),Eqv(nShortBuy,0)),nAllZero),1,0)
    nShortFlag=if(And(And(Eqv(nShortBuy,1),Eqv(nLongBuy,0)),nAllZero),1,0)
    nGlobStore501=SetGvarIf(1,nGlobalLongBuy,nLongFlag)
    Add(nLongFlag,0)
    )



    {@A(1,CurrLong )@B(1,CurrShort )}
    ---------------------------------------
    {Buy Short}
    nGlobalLongBuy:=501
    nGlobalShortBuy:=503
    nLongBuy:=CmpRef(C,0,A)
    nShortBuy:=CmpRef(C,0,B)

    i1(
    nAllZero=And(Eqv(GetGvar(nGlobalLongBuy),0),Eqv(GetGvar(nGlobalShortBuy),0))
    nLongFlag=if(And(And(Eqv(nLongBuy,1),Eqv(nShortBuy,0)),nAllZero),1,0)
    nShortFlag=if(And(And(Eqv(nShortBuy,1),Eqv(nLongBuy,0)),nAllZero),1,0)
    nGlobStore503=SetGvarIf(1,nGlobalShortBuy,nShortFlag)
    Add(nShortFlag,0)
    )



    {@A(1,CurrLong )@B(1,CurrShort )}
    ---------------------------------------
    {Sell Long}
    nGlobalLongBuy:=501
    nGlobalShortBuy:=503
    nLongSell:=CmpRef(C,0,A)
    nShortSell:=CmpRef(C,0,B)

    i1(
    nLongFlag=And(Eqv(GetGvar(nGlobalLongBuy),1),Eqv(nLongSell,0))
    nShortFlag=And(Eqv(GetGvar(nGlobalShortBuy),1),Eqv(nShortSell,0))
    nGlobStore501=SetGvarIf(0,nGlobalLongBuy,nLongFlag)
    Add(nLongFlag,0)
    )



    {@A(1,CurrLong )@B(1,CurrShort )}
    ---------------------------------------
    {Sell Short}
    nGlobalLongBuy:=501
    nGlobalShortBuy:=503
    nLongSell:=CmpRef(C,0,A)
    nShortSell:=CmpRef(C,0,B)
    nLongFlag:=if(And(Eqv(nLongBuy,1),Eqv(nShortBuy,0)),1,0)
    nShortFlag:=if(And(Eqv(nShortBuy,1),Eqv(nLongBuy,0)),1,0)

    i1(
    nLongFlag=And(Eqv(GetGvar(nGlobalLongBuy),1),Eqv(nLongSell,0))
    nShortFlag=And(Eqv(GetGvar(nGlobalShortBuy),1),Eqv(nShortSell,0))
    nGlobStore503=SetGvarIf(0,nGlobalShortBuy,nShortFlag)
    Add(nShortFlag,0)
    )



    {@A(1,CurrLong )@B(1,CurrShort )}
    ---------------------------------------

    Mitt externa program funkar (till 100%) och importen av de både värdepappren i realtid... Inget köp eller sälj registreras i lokala ordertransar eller skickar mail, trots att 2 gånger tog min algorithm position i mitt externa program och skickade in värdena i Autostock så att "CurrLong" blev 1 för close. Har även kontrollerat mot Kalkylforskaren att ingen av globalerna redan är 1. Vad är fel?
    Last edited by niclas_gbg; 2011-07-08, 17:37.
    NiclasGBG

  • #2
    Det ser ju ut att vara korrekt vid en snabbtitt, men jag skulle prova att stoppa in värden direkt i minnescellerna från ett annat script och se om triggerscripten larmar lokalt innan jag kopplar skarpa modeller. Någonstans "försvinner" ju signalen, och det bör gå att ringa in det lite.

    Ett par saker:

    nGlobeStore503 behövs inte, det går att skriva SetGVarIf() direkt som en rad bland minnesreferenserna.

    Prova gärna med Kalkylforskaren samtidigt som du har "signal på" så att värdet verkligen finns i minnescellerna.

    mvh Rikard

    Comment


    • #3
      Intradayprefixet?

      Kan det vara intradayprefixet som strular till det i ordermodellen?

      i1(
      blahblah...
      )

      Jag har inte dessa script kopplade till något papper mer än i ordermodellen...

      Jag ska prova på måndag att "skjuta" in ett värde från mitt externa program och kolla i Kalkylforskaren...

      Skulle detta gå utan intraday prefix t.ex.?


      {Sell Short}
      nGlobalLongBuy:=501
      nGlobalLongSell:=502
      nGlobalShortBuy:=503
      nGlobalShortSell:=504
      nLongSell:=CmpRef(C,0,A)
      nShortSell:=CmpRef(C,0,B)
      nLongFlag:=if(And(Eqv(nLongBuy,1),Eqv(nShortBuy,0)),1,0)
      nShortFlag:=if(And(Eqv(nShortBuy,1),Eqv(nLongBuy,0)),1,0)
      nLongFlag:=And(Eqv(GetGvar(nGlobalLongBuy),1),Eqv(nLongSell,0))
      nShortFlag:=And(Eqv(GetGvar(nGlobalShortBuy),1),Eqv(nShortSell,0))
      nGlobStore503:=SetGvarIf(0,nGlobalShortBuy,nShortFlag)
      nShortFlag



      {@A(1,CurrLong )@B(1,CurrShort )}


      Du får gärna komma med mer förslag, för jag behöver komma igång...
      NiclasGBG

      Comment


      • #4
        Nja, upplösningen borde inte ha någon betydelse i det här fallet eftersom det bara är ett cellvärde som ska läsas av och order som ska läggas. Men allt är värt att prova om man har problem, så visst är det ide att testa både med och utan intraday-prefix. Jag kan inte hitta någon variabelkonflikt heller. Men testa gärna att köra med cellvärden direkt i SetGVarIf() och GetGVar() istället för via variabler, tror inte det har någon betydelse men man vet aldrig innan man provat. Kalkylforskaren tror jag blir räddningen faktiskt, då ser man åtminstone om värdena finns som tänkt i cellerna.

        Comment

        Working...
        X