Allmänt meddelande

Collapse
No announcement yet.

Begränsa antal köpta tillgångar i en model

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

  • Begränsa antal köpta tillgångar i en model

    Om jag har en model som jag har anslutit säg 10 olika tillgångar till, men jag vill bara vara investerad i max 3 tillgångar (som kan handla för hela portföljvärdet), finns det någon enkel metod för det?

    Anledningen är att jag testar mina modeller för att skala in insattsen, men när modellen väl har börjat handla vill jag att modellen ska kunna investera fullt ut utan att pengarna tar slut så att säga. De 7 andra tillgångarna får stå på sidan och vänta tills en tillgång har blivit såld öppnar plats...

    Har ni någon metod, ge gärna exempel i skript :-)
    AlgoPal - Emotionless Trading - Hyr ut våra trading algoritmer for Autostock via algopal.com

  • #2
    Om man kör endast Long-positioner är det enkelt att mäta mängden kapital i öppna positioner med cash(a) och jämföra med kontot:

    max_häv:=3
    positioner=cash(a)
    konto=sub(add(cash(a),cash(t)),mult(2,abs(cash(s))))

    ok_häv=lt(positioner,mult(konto,max_häv))

    Om man blandar in Short-positioner också blir det betydligt krångligare, enklast i det läget är nog att köra dessa på ett eget testkonto och vikta ihop till netto med PC Link.

    Comment


    • #3
      Jag har använt den här.

      { Hävstångs kontrol }
      värde_positioner=sub(cash(a),cash(s))
      depåvärde=sub(add(cash(a),cash(t)),mult(2,abs(cash(s))))
      hävstång_nu=div(värde_positioner,depåvärde)
      hävstång_ok=lt(hävstång_nu,4)


      Men jag ser att jag tappar lite edge om de påbörjade modellerna inte får köpa fullt ut vilket händer om man begränsar alla possitioner istället för stoppa några.
      AlgoPal - Emotionless Trading - Hyr ut våra trading algoritmer for Autostock via algopal.com

      Comment


      • #4
        Intressant observation. Jag vet ej hur den aktuella modellen ser ut. Det kan ju vara så att edgen tex är mean reversion. Ju mer det går ner och fler skalningar dessto bättre edge. Om alla får trigga kanske det sker på en grundare nivå. Bara lite funderingar. Annars skulle det inte spelar någon roll vilket instrument som triggar. Risken med att begränsa är att den genomsnittliga exponeringen kan bli lägre och lägre avkastning som följd. Ett annat sätt är att villkoren blir striktare ju fler instrument som konkurrerar om positioner.

        Ditt problem skulle ganska enkelt gå att lösa med globala celler. Kräver dock att scriptet inte är krypterat. Alternativ med lite omvägar tex i ett kontrollscript.

        Comment


        • #5
          Ursprungligen postat av Henric Visa inlägg
          Intressant observation. Jag vet ej hur den aktuella modellen ser ut. Det kan ju vara så att edgen tex är mean reversion. Ju mer det går ner och fler skalningar dessto bättre edge. Om alla får trigga kanske det sker på en grundare nivå.
          Ja precis det är en inskalning modell för översålda situationer. Får klura på hur man får till det med globala celler, allt är så enkelt när man vet hur man gör
          AlgoPal - Emotionless Trading - Hyr ut våra trading algoritmer for Autostock via algopal.com

          Comment


          • #6
            Bara ett koncept. Sedan beror det på modell. Har ej testat.

            {exempel long only med max tre innehav}
            Signal=..................
            Finns=if(eqv(crcid(),GetGvar(101)),101,if(eqv(crcid(),GetGvar(102)),102,if(eqv(crcid(),GetGvar(103)),103,0)))
            Delay=ge(mult(sub(frac(date()),mx(lasttrade(b,d),lasttrade(s,d))),1440),1)
            Reset=and(and(Finns,eqv(portfolio(v),0)),Delay)
            SetGvarIf(0,Finns,Reset)
            Ledig=if(eqv(0,GetGvar(101)),101,if(eqv(0,GetGvar(102)),102,if(eqv(0,GetGvar(103)),103,0)))
            Köp=and(and(and(Signal,Delay),not(Reset)),or(Finns,Ledig))
            väljCell=if(Finns,Finns,Ledig)
            SetGvarIf(crcid(),väljCell,Köp)
            AND(KÖP,1)

            Comment


            • #7
              Tack. Hummm, fungerade inte, gjorde affärer med tre papper sen stoppade allt.

              Men jag har en grund att fortsätta på :-)
              AlgoPal - Emotionless Trading - Hyr ut våra trading algoritmer for Autostock via algopal.com

              Comment


              • #8
                Sorry. Jag höll på med frac(date()) i ett annat script och av någon anledning kom det med i villkoret Delay. Ska vara:

                Delay=ge(mult(sub(date(),mx(lasttrade(b,d),lasttrade(s,d))),1440),1)

                I testsyfte fungerar det för mig med fem skalningar och exit efter x-dagar.

                Annars skulle det även gå att ranka signalerna. I ditt falla kanske djupare signal ger högre rank eller liknande?

                Comment


                • #9
                  Supert! Det fungerade fint. Trodde dock att jag skulle få ännu bättre resultat, så något sorts rankningsskript kanske får bli nästa steg.


                  Resultat med 9 index var av max 3 investeras i samtidigt.
                  --------------
                  Max Result Drawdown 12.5955 %
                  Sharpekvot 0.9006 (månadsresultat) (pre 1994 0.9006)
                  -5.8719 (årsomräknat) (pre 1994 -5.8719)
                  Effektivt Resultat: 1172.2121% - Slutsaldo kontot: 12688568.01

                  Avkastning 11722120.54 kr 0.88% på 1073 affärer under 3120:05:19 tim
                  Av dessa blankat 0 st med avkastning 0.00 kr 0.00%
                  Innehav 903 st med vinst 15749082.00 kr 1.51%
                  Innehav 170 st med förlust -4026961.50 kr -1.52%
                  Blankning 0 st med vinst 0.00 kr 0.00%
                  Blankning 0 st med förlust 0.00 kr 0.00%

                  Courtage 0.01% Min 0.00
                  -------------



                  Test med alla index, alla kan investeras i samtidigt.
                  -------------
                  Max Result Drawdown 15.6957 %
                  Sharpekvot 0.8205 (månadsresultat) (pre 1994 0.8205)
                  -5.6270 (årsomräknat) (pre 1994 -5.6270)
                  Effektivt Resultat: 1248.7896% - Slutsaldo kontot: 13432924.37

                  Avkastning 12487895.64 kr 0.68% på 1596 affärer under 4919:23:59 tim
                  Av dessa blankat 0 st med avkastning 0.00 kr 0.00%
                  Innehav 1285 st med vinst 19065252.00 kr 1.43%
                  Innehav 311 st med förlust -6577356.50 kr -1.46%
                  Blankning 0 st med vinst 0.00 kr 0.00%
                  Blankning 0 st med förlust 0.00 kr 0.00%

                  Courtage 0.01% Min 0.00

                  ----------------------


                  Test med de historskt sett tre bäst presterande idexen.
                  ----------------------
                  Max Result Drawdown 6.6895 %
                  Sharpekvot 1.0915 (månadsresultat) (pre 1994 1.0915)
                  -5.4603 (årsomräknat) (pre 1994 -5.4603)
                  Effektivt Resultat: 926.9451% - Slutsaldo kontot: 10249521.72

                  Avkastning 9269450.82 kr 1.15% på 695 affärer under 5764:21:18 tim
                  Av dessa blankat 0 st med avkastning 0.00 kr 0.00%
                  Innehav 595 st med vinst 11048463.00 kr 1.81%
                  Innehav 100 st med förlust -1779012.13 kr -0.95%
                  Blankning 0 st med vinst 0.00 kr 0.00%
                  Blankning 0 st med förlust 0.00 kr 0.00%

                  Courtage 0.01% Min 0.00




                  Max hävstång 4 på portföljen i samtliga test.
                  AlgoPal - Emotionless Trading - Hyr ut våra trading algoritmer for Autostock via algopal.com

                  Comment


                  • #10
                    Testa aldrig med historisk bästa instrumenten utan att mäta löpande i modellen med data som i verkligheten fanns vid varje tidpunkt. Annars får du köpa en tidsmaskin.

                    Jämför den riskjusterade avkastningen och du behöver inte 200% per år( om du inte världsmästare). Har du över x-% och bra risk-reward skulle JAG välja den med lägre risk.

                    Comment


                    • #11
                      Absolut. Grunden till att ta med de tre bästa instrumenten var att visa att modellen fungerade bättre än det bästa tänkta utvalda scenariot (som att om att jag hade en tidsmaskin).
                      AlgoPal - Emotionless Trading - Hyr ut våra trading algoritmer for Autostock via algopal.com

                      Comment


                      • #12
                        ah,
                        jag trodde du tittade på draw down, vinst/trade eller något.

                        Edit: Resultatet kanske blir lägre bara för att antal positioner / totalexponeringen är lägre. Annars ser det sämre ut, men jag förstår hur du tänker.
                        Last edited by Henric; 2020-02-02, 17:44.

                        Comment

                        Working...
                        X