Allmänt meddelande

Collapse
No announcement yet.

Fusion MultiStrategy

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

  • Gick från 50% Long till 100% Long igår:

    17:22 ORDER "sl) Fusion OMX index buy OMXS30" kurs 1418.91.

    Comment


    • Ursprungligen postat av Christer Visa inlägg
      Här kommer mina egenhändigt byggda Fusion slavscript. Utöver de fyra slavscripten har jag även behövt bygga om de fyra antalscripten. Notera att det kanske inte är den allra mest tjusiga kodningen, men den verkar fungera. OBS, jag tar inget ansvar för kodens funktion och om ni väljer att använda denna kod så gör ni det på egen risk!

      Mina mål med slavscripten för följande:
      1. Jag vill styra positionens gearing genom att sätta ett värde (målgearingen) i en Scrpar.
      2. Jag vill kunna göra manuella justeringar i positionen utan att riskera att modellen återställer positionen automatiskt.
      3. Då den sammanlagda signalen ändras, dvs. värdet i cell 857 ändras, ska hela innehavet "resettas" till ny beräknad position (baserad på portföljvärde och målgearing)

      Hej,
      några kommentarer, har inte direkt någon åsikt om hur det implementeras, men om det t.ex. går att implementera på enklare sett så brukar jag föredra det, ser att det är en del globala celler i bruk för att uppnå målen.

      mål 1
      Jag tänkte man kunde hushålla med Scrpar och antar antar att gearing 1 är det samma som att handla index för hela portföljen utan hävstång. Så med en logikändring att dela index med minifuture pris, Så skulle man kunna använda den befintliga Scrpar inputten, där man anger "-" för att representera portföljen i procent så borde man uppnå samma sak. Vill man ha gearing 3, så blir det -300 dvs 300% exponering av portföljen. Dom som vill fortsätta handla fast belopp kan göra det utan "-". Dom som idag hanlar med % av portfölj borde uppskatta hävstångsanpassningen.

      Mål 2
      Absolut en bra sak/trygghet att kunna sälja av / ändra position om nöden kräver.

      Mål 3
      Vad är syftet med reset? är det beräkning, optimering, ränta på ränta eller något sådant?


      Last edited by jimmy; 2016-09-27, 18:55.

      Comment


      • Bra tänkt med mål 1 om det går att implementera.

        Mål 3 innebär ju helt enkelt att då signalen ändras görs en ny beräkning av målposition samt att den implementeras. Ett exempel, om man ligger 100% Long, men så känns det fel och man säljer av t.ex. 75% av innehavet. Om sedan signalen ändras till t.ex. 50% Long så köps en del av Long-instrumenten tillbaka så att man uppnår exakt 50% Long med vald gearing baserat på det aktuella portföljvärdet.

        Comment


        • Fungerar dina modeller bra är det nog ingen mening att ändra. Jag moddade lite för att få ner antalet celler till två. Tror den uppfyller samma villkor som din. Förutsätter att bara Fusion handlas på depån och att varje ny signal tas. Va) scripten handlar till målantal i cell 859. Tog bara med Bull och Bear fungerar på liknande sätt.

          Édit: Kanske var lite snabb. Såg att säljmodellen max får sätta signal till 0(exit) så att eventuell blankning kan ske. Markerat med blått.

          KÖP BULL
          ======

          i1(

          {handelstider mm }
          lt1=LastTrade(b,d)
          MinSedanTrans=mult(sub(date(),lt1),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)
          samma_dag=eqv(int(date()),int(d))
          släpp_order=and(and(and(TidSpärr,trade_time),öppet),samma_dag)

          { Läs in signal och kontrollera om ändring }
          hämtasignal=div(getgvar(857),2)
          köpsignal1=and(and(gt(hämtasignal,0),lt(GetGvar(858),hämtasignal)),släpp_order)
          köpsignal2=and(köpsignal1,or(eqv(cash(a),0),gt(portfolio(v),0)))

          { Beräkna målantal }
          index=cmpref(c,0,A)
          målgearing=scrpar(29)
          gearinginstrument=div(index,s)
          andel1=div(målgearing,gearinginstrument)
          andel2=if(gt(andel1,0.90),0.90,andel1)
          kapital=add(cash(t),mult(portfolio(v),b))
          antalmax=div(mult(andel2,kapital),s)
          målantal=int(mult(if(gt(hämtasignal,0),hämtasignal,0),antalmax))

          {ordervillkor och skrivning}
          SetGvarIf(hämtasignal,858,köpsignal2)
          SetGvarIf(målantal,859,köpsignal2)
          and(and(gt(hämtasignal,0),lt(portfolio(v),GetGvar(859))),släpp_order)

          )

          {@A(0,OMX Stock )}


          SÄLJ BULL
          =======

          i1(

          {handelstider mm }
          lt1=LastTrade(s,d)
          MinSedanTrans=mult(sub(date(),lt1),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)
          samma_dag=eqv(int(date()),int(d))
          släpp_order=and(and(and(TidSpärr,trade_time),öppet),samma_dag)

          { Läs in signal och kontrollera om ändring }
          hämtasignal=div(getgvar(857),2)
          säljsignal=and(gt(GetGvar(858),hämtasignal),släpp_order)

          { Beräkna målantal }
          index=cmpref(c,0,A)
          målgearing=scrpar(29)
          gearinginstrument=div(index,s)
          andel1=div(målgearing,gearinginstrument)
          andel2=if(gt(andel1,0.90),0.90,andel1)
          kapital=add(cash(t),mult(portfolio(v),b))
          antalmax=div(mult(andel2,kapital),s)
          målantal=int(mult(if(gt(hämtasignal,0),hämtasignal,0),antalmax))

          {ordervillkor och skrivning}
          SetGvarIf(if(lt(hämtasignal,0),0,hämtasignal),858,säljsignal)
          SetGvarIf(målantal,859,säljsignal)
          and(gt(portfolio(v),GetGvar(859)),släpp_order)

          )


          {@A(0,OMX Stock )}
          Last edited by Henric; 2016-09-27, 22:20.

          Comment


          • Får du med hela värdet i portföljen med nedanstående?
            kapital=add(cash(t),mult(portfolio(v),b))

            Vad händer om du har ett innehav i motsatt riktning, dvs du ligger Short men position ska tas i Long (annat instrument)?

            Comment


            • Det krävs att cash(a) är noll vid byte av riktning.

              Comment


              • Hendrik
                Du skrev "Förutsätter att bara Fusion handlas på depån och att varje ny signal tas."

                Jag kanske tolkat fel, men det låter som en väldig begränsning,
                Jag tror många kan ha andra positioner än Fusion på depån, det borde vara ett krav att man kan ha ialla fall (Mål), menar du att det inte går?
                Lika så kan man ju missa signal. Då kan man väll handla manuellt eller vänta på nästa..

                Comment


                • Så vad tycker ni är nästa steg?
                  Är det möjligt att ha?

                  Mål 4 - andra position kan vara öppna förutom Fusion?

                  Comment


                  • Upptäckte att AutoTrade var avslagen 10-15 minuter och har ett litet glapp. Ser dock vid analysen att Fusion ligger fortfarande 100%. Skulle uppskatta ifall någon kunde posta hur Fusion agerar lite närmare stängning

                    Comment


                    • Ursprungligen postat av jimmy Visa inlägg
                      Så vad tycker ni är nästa steg?
                      Är det möjligt att ha?

                      Mål 4 - andra position kan vara öppna förutom Fusion?

                      Det går med min kod (även om det inte är definierat som ett mål).

                      Comment


                      • Ursprungligen postat av Hookie Visa inlägg
                        Upptäckte att AutoTrade var avslagen 10-15 minuter och har ett litet glapp. Ser dock vid analysen att Fusion ligger fortfarande 100%. Skulle uppskatta ifall någon kunde posta hur Fusion agerar lite närmare stängning
                        Får också 100% Long, om du missat lite intradaydata påverkar det inte Fusion så länge dagsstapelns utseende inte ändrats, dvs High, Low, Open och Close strax innan stängning är det som avgör vad som händer.

                        Comment


                        • Ursprungligen postat av Rikard Autostock Visa inlägg
                          Får också 100% Long, om du missat lite intradaydata påverkar det inte Fusion så länge dagsstapelns utseende inte ändrats, dvs High, Low, Open och Close strax innan stängning är det som avgör vad som händer.

                          Tack så mycket :-)

                          Uppdaterar kurserna ikväll så att ordningen blir återställd.

                          Comment


                          • Ursprungligen postat av jimmy Visa inlägg
                            Så vad tycker ni är nästa steg?
                            Är det möjligt att ha?

                            Mål 4 - andra position kan vara öppna förutom Fusion?


                            Ursprungligen postat av Christer Visa inlägg
                            Det går med min kod (även om det inte är definierat som ett mål).
                            Det är lite olika om man kör en strategi per depå eller mixar.
                            Jag har justerat min så att den kan handla även om flera instrument finnas på depån. Christer, det kan fungera för dig. Problem kan dock uppstå med din beräkning av kapital. Egetkapital måste beräknas enligt den vanliga formeln. Om minifuture för strategin utgör en stor andel och inte handlas ofta måste cash(a) justeras. Tex add(sub(cash(a),mult(portfolio(v),c)),mult(portfolio(v),b)). Eventuellt kan man handla i två steg. Först en liten andel för att för att få fram marknadsvärdet. Om strategin utgör en mindre andel av depån kommer återinvesteringen bero på hela depån. Då kan man nästa handla belopp och justera med hävstång.

                            Comment


                            • Hej,

                              har tittat på antalskriptet i tidigare inlägg och justerat baserat på återanvändande av Scrpar21 så den hävstångsanpassas (-xxx% av portfölj). enligt min kommentar till Mål 1.

                              i1(
                              signal=div(getgvar(857),2)
                              insats1=div(abs(scrpar(21)),100)
                              { beräkna på depåvärde: positioner+tillgängligt-utnyttjad kredit}
                              insats2=mult(sub(add(cash(a),cash(t)),cash(u)),insats1)
                              Index=cmpref(c,0,A)
                              hävstång=div(Index,s)
                              insats3=div(insats2,hävstång)
                              { om beräknat belopp överstigger tillgängligt att handla, använd tillgängligt belopp istället}
                              insats4=if(ge(insats3,cash(t)),cash(t),insats3)

                              {handla för fast belopp eller hävstångsanpassad % av depån}

                              insats5=if(gt(scrpar(21),0),scrpar(21),insats4)
                              maxantal=Int(Div(insats5,s))
                              målantal=mult(if(gt(signal,0),signal,0),maxantal)
                              innehav=Portfolio(v)
                              övermål=Ge(innehav,målantal)
                              slutantal1=If(övermål,0,SUB(målantal,innehav))
                              add(0,slutantal1)
                              )
                              {@A(0,OMX Stock )}

                              Last edited by jimmy; 2016-09-28, 22:14.

                              Comment


                              • Var det bara min Fusion som sålde hälften i går? Alltså från 100% long till 50% long.

                                Comment

                                Working...
                                X