Allmänt meddelande

Collapse
No announcement yet.

Fusion MultiStrategy

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

  • Mitt script enligt tidigare diskussioner för hantering av egna positioner i Fusion och allokering av Fusion i en depå. Grundupplägget är att det går att sätta modellens exponering/andel av hela depåvärdet. Dessutom går det att ändra önskad hävstång oberoende av hävstången för minifuture som är kopplad. Om inte minifuture handlas eller att man vill använda den inbyggda hävstången sätts värdet till noll och endast exponering används.

    Det finns två sätt att hantera antalet. Detta för att det ska bli enkelt att justera allokeringen i depån med flera strategier och/eller innehav. Givetvis går det att köra enbart Fusion. Samtidigt går det att sätta hävstången efter strategin och/eller vad man tycker är lämpligt för tillfället.

    Egna positioner kan tas tills en ny signal genereras av indexmodellen då den handlar till målantalet enligt riktiga signalen. Vill man samtidigt som egen position tas även tilta mot long eller short går det att göra genom att ändra sidans hävstång eller exponering mot hela depån.

    En global cell används. En position som eventuellt finns i instrumentet för Fusion inkluderar över- eller undervärde jämfört med senast ställda kurs. Andra positioner än Fusion kan hållas. Dock uppdateras marknadsvärdet endast för instrument kopplade till Fusion. Även mina antalscript har justerats för ändringarna.

    Motsvarande script för Bull nedan finns för Bear.

    BULL KÖP
    ======

    { handelstider, transtider, mm }
    SenasteTrans=if(gt(LastTrade(b,d),lastTrade(s,d)),lasttrade(b,d),lasttrade(s,d))
    MinSedanTrans=mult(sub(date(),senasteTrans),1440)
    TidSpärr=gt(MinSedanTrans,0.2)
    trade_time=le(mult(1440,sub(market(c),frac(date()))),5.5)
    öppet=ge(mult(1440,sub(market(c),frac(date()))),4)
    spreadOK=and(gt(s,0),gt(b,0))
    släpp_order=and(and(and(TidSpärr,trade_time),öppet),spreadOK)

    { Läs in signal och kontrollera om ändring }
    hämtaSignal=div(getGvar(857),2)
    regSignal=div(GetGvar(858),2)
    köpSignal=and(and(and(gt(hämtaSignal,regSignal),ge(regSignal,0)),gt(hämtaSignal,0)),släpp_order)

    { Beräkna målantal }
    index=cmpref(c,0,A)
    andelportfölj=scrpar(30)
    andelLong=if(or(gt(andelportfölj,1),le(andelportfölj,0)),1,andelportfölj)
    posFus=mult(sub(b,c),portfolio(v))
    kapital=mult(add(sub(add(cash(t),cash(a)),cash(u)),posFus),andelLong)
    målgearing=scrpar(29)
    gearinginstrument=div(index,s)
    justGearing1=div(målgearing,gearinginstrument)
    justGearing2=if(or(le(målgearing,0),gt(justGearing1,1)),1,justGearing1)
    antalmax=div(mult(justGearing2,kapital),s)
    antalposition=int(add(mult(if(gt(hämtaSignal,0),hämtaSignal,0),antalmax),0.5))
    överskrida=gt(mult(sub(antalposition,portfolio(v)),mult(s,1.0025)),cash(t))
    målantal=if(överskrida,add(portfolio(v),int(div(cash(t),mult(s,1.0025)))),antalposition)


    { ordervillkor, skrivning, exekvering}
    order_klar=and(köpSignal,ge(portfolio(v),mult(målantal,0.95)))
    SetGvarIf(mult(hämtaSignal,2),858,order_klar)
    and(and(and(köpSignal,lt(portfolio(v),målantal)),not(order_klar)),gt(cash(t),0))

    {@A(0,OMX Stock )}

    BULL SÄLJ
    =======

    { handelstider mm }
    SenasteTrans=if(gt(LastTrade(s,d),LastTrade(b,d)),lasttrade(s,d),lasttrade(b,d))
    MinSedanTrans=mult(sub(date(),senasteTrans),1440)
    TidSpärr=gt(MinSedanTrans,0.2)
    trade_time=le(mult(1440,sub(market(c),frac(date()))),5.5)
    öppet=ge(mult(1440,sub(market(c),frac(date()))),4)
    spreadOK=and(gt(s,0),gt(b,0))
    släpp_order=and(and(and(TidSpärr,trade_time),öppet),spreadOK)

    { Läs in signal och kontrollera om ändring }
    regSignal=div(GetGvar(858),2)
    hämtaSignal=div(GetGvar(857),2)
    målSignal=if(lt(hämtaSignal,0),0,hämtaSignal)
    säljSignal=and(and(lt(målSignal,regSignal),gt(regSignal,0)),släpp_order)

    { Beräkna målantal }
    index=cmpref(c,0,A)
    andelportfölj=scrpar(30)
    andelLong=if(or(gt(andelportfölj,1),le(andelportfölj,0)),1,andelportfölj)
    posFus=mult(sub(s,c),portfolio(v))
    kapital=mult(add(sub(add(cash(t),cash(a)),cash(u)),posFus),andelLong)
    målgearing=scrpar(29)
    gearinginstrument=div(index,s)
    justGearing1=div(målgearing,gearinginstrument)
    justGearing2=if(or(le(målgearing,0),gt(justGearing1,1)),1,justGearing1)
    antalmax=div(mult(justGearing2,kapital),s)
    målantal=int(add(mult(if(gt(målSignal,0),målSignal,0),antalmax),0.5))

    { ordervillkor, skrivning och exekvering}
    order_klar=and(säljSignal,le(portfolio(v),if(eqv(målantal,0),0,mult(målantal,1.05))))
    SetGvarIf(mult(målSignal,2),858,order_klar)
    and(and(SäljSignal,gt(portfolio(v),målantal)),not(order_klar))

    {@A(0,OMX Stock )}
    Last edited by Henric; 2016-10-06, 10:49.

    Comment


    • Hej Henrik,

      Det verkar ju fantastiskt, alla behov uppfyllda.
      Kan vi göra denna till standard?
      låter som bara fördelar, ser någon någon nackdel eller invändning?

      Comment


      • Med tidigare script i Fusion och Legato har jag haft problem ett par gånger med att tillgängligt kapital beräknats felaktigt. Jag tror att det beror på att då en position vänds från t.ex. Short till Long så har frigjort kapital inte dykt upp på kontot efter försäljningen av Short innan beräkningen av kapitalet för Long-positionen beräknats. Kanske kan det bero på en liten fördröjning hos Nordndet. Finns det risk för att detta uppstår i din kod, Henric?

        Comment


        • Nej, den byter alltid riktning genom att först gå till exit.

          Comment


          • Det behövs en enkel instruktion hur det hela fungerar och vad man ställer in, annars får vi tonvis med support på det här.

            Comment


            • Exit från 50% Long idag:

              17:22 ORDER "sl) Fusion OMX index sell OMXS30" kurs 1451.44.
              Last edited by Christer; 2016-10-10, 11:20.

              Comment


              • Ja. Gick ur 50% long o ligger likvid nu.

                Comment


                • Japp, den gick ur. Undrar vad nästa drag är?

                  Comment


                  • Jag provade att simulera Fusion index-scripten och enligt den så gjordes exit torsdags (och inte i fredags som IRL). Var det någon som fick se sitt Long 50%-innehav säljas av redan i torsdags?

                    Comment


                    • Ursprungligen postat av Christer Visa inlägg
                      Jag provade att simulera Fusion index-scripten och enligt den så gjordes exit torsdags (och inte i fredags som IRL). Var det någon som fick se sitt Long 50%-innehav säljas av redan i torsdags?
                      Min handlade i fredags. Simulering tog exit samma dag. Efter att ha laddat ner data med ersätt så tog simulering exit i torsdags. Kan vara något gränsläge. Har inte kollat.

                      Comment


                      • Ursprungligen postat av Henric Visa inlägg
                        Min handlade i fredags. Simulering tog exit samma dag. Efter att ha laddat ner data med ersätt så tog simulering exit i torsdags. Kan vara något gränsläge. Har inte kollat.
                        Ja, antagligen. Jag uppdaterade för 100 dgr bakåt innan jag simulerade. Tack!

                        Comment


                        • Ursprungligen postat av Henric Visa inlägg
                          andelportfölj=scrpar(30)
                          målgearing=scrpar(29)
                          Hej,
                          En fundering med syfte / mervärde av att ha två scrpar; en för gearing och en andel portfölj?

                          EDIT:
                          Jag jämför med att bara ha en scrpar utryckt i % av portfölj där gearing uppstår när man anger >100% i kombination med instrumentets hävstång.
                          Jag antar det blir samma resultat och man kan hushålla med en scrpar när det bara finns 32, men jag kanske missat en fördel...

                          Last edited by jimmy; 2016-10-10, 22:55.

                          Comment


                          • Det går bra att använda en. För min del blir det mer överskådligt om man tex lägger till en strategi, tar bort en eller bara vill ändra hävstång för en strategi. Jag använder nästan aldrig scrpar så för mig blir det inga problem.

                            Comment


                            • Long 50 idag här.

                              Comment


                              • 50% Long idag (Legato-delen):

                                17:22 ORDER "sl) Fusion OMX index buy OMXS30" kurs 1455.64.
                                Last edited by Christer; 2016-10-11, 22:28.

                                Comment

                                Working...
                                X