Allmänt meddelande

Collapse
No announcement yet.

Backtest flere strategier til samma instrument?

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

  • Backtest flere strategier til samma instrument?

    Er det mulig? Og få en portfolio-resultat?

  • #2
    Jo, det går fint att köra flera strategier samtidigt på samma aktier. Om man vill att de ska kunna hålla reda på sina egna positioner så kan man lägga med ett unikt värde per strategi i Loggade lokala ordertransaktioner som kan "hämtas" av säljsidan, så att varje strategi bara säljer sina egna köp och låter de andra strategiernas positioner vara.

    I slutet av köpscriptet kan man tex lägga:

    retval(22,4)

    där 22 är unik kod för Strategi A, som lagras i cell 4.


    I säljscriptet kan man testa om det är Strategi A som köpt en position:

    StrategiA=eqv(lasttrade(b,4),22)

    så hämtas värdet för cell 4 från senaste köpaffär. Om det är 22 blir villkoret sant.

    Comment


    • #3
      Ursprungligen postat av Rikard Autostock Visa inlägg
      Jo, det går fint att köra flera strategier samtidigt på samma aktier. Om man vill att de ska kunna hålla reda på sina egna positioner så kan man lägga med ett unikt värde per strategi i Loggade lokala ordertransaktioner som kan "hämtas" av säljsidan, så att varje strategi bara säljer sina egna köp och låter de andra strategiernas positioner vara.

      I slutet av köpscriptet kan man tex lägga:

      retval(22,4)

      där 22 är unik kod för Strategi A, som lagras i cell 4.


      I säljscriptet kan man testa om det är Strategi A som köpt en position:

      StrategiA=eqv(lasttrade(b,4),22)

      så hämtas värdet för cell 4 från senaste köpaffär. Om det är 22 blir villkoret sant.

      Precis vad jag letade efter!

      Kompletterande fråga:
      Men hur scriptar man om man vill få fram vilken strategi som ger signal först?
      Säg att man har 3 strategier i samma triggerscript där man tar position om det blir signal i en, två eller alla tre strategier samma dag?
      Strategierna klustrar och jag vill alltså bara ta en position och inte riskera att sitta med tredubbla positioner och tänkte då använda retval för att skriva vilken av strategierna som gav signal först.
      Har provat med xTime med får inte riktigt till det, blir lite krångligt med if-satser etc så jag tänker/hoppas att det finns ett enklare sätt?
      Min syntax testar iofs OK, men jag får inte in några värden i cellen.
      Last edited by JohanB; 2018-02-18, 15:07.

      Comment


      • #4
        Om första edgen som triggar köp också skapar ett innehav är det bara att läsa av med Lasttrade enligt ovan så vet du vilken edge det var. Villkorar du innehav mot köp så blir det ju inga fler köp heller förrän positionen sålts.

        Comment


        • #5
          OK, kanske dum fråga, men fungerar det även om man har "or" som köpvillkor?
          --> or(or(strategi1,strategi2),strategi3)

          Comment


          • #6
            Ja, om du villkorar alltsammans med att det inte finns innehav.

            Verkligen ingen dum fråga, tvärtom. Det viktiga är kanske också att man skriver ner kod beroende på vilket villkor som är sant.

            tex:

            kod1=1
            kod2=2
            kod3=4
            slutkod=add(add(kod1,kod2),kod3)
            retval(slutkod,2)

            så skrivs slutkoden ner i cell 2. Finessen med olika vikt på resp kod är att man då vet vilka villkor som varit sanna när signalen triggades. Tex blir summan 3 om kod1 och kod2 var sanna. Om alla var sanna blir summan 7. Om kod 1 och kod3 var sanna men inte kod 2 blir summan 1+4 = 5

            Last edited by Rikard Autostock; 2018-02-18, 18:01.

            Comment


            • #7
              Ursprungligen postat av Rikard Autostock Visa inlägg
              Ja, om du villkorar alltsammans med att det inte finns innehav.

              Verkligen ingen dum fråga, tvärtom. Det viktiga är kanske också att man skriver ner kod beroende på vilket villkor som är sant.

              tex:

              kod1=1
              kod2=2
              kod3=4
              slutkod=add(add(kod1,kod2),kod3)
              retval(slutkod,2)

              så skrivs slutkoden ner i cell 2. Finessen med olika vikt på resp kod är att man då vet vilka villkor som varit sanna när signalen triggades. Tex blir summan 3 om kod1 och kod2 var sanna. Om alla var sanna blir summan 7. Om kod 1 och kod3 var sanna men inte kod 2 blir summan 1+4 = 5


              Toppen, tack!

              Det går ju verkligen att förenkla saker och ting med det här scriptet!
              Man ska ju bara kunna "se" det också...

              Jag måste bara fortsätta en liten bit till ...om jag vill veta vilken strategi som signalerade först av de tre..?

              Comment


              • #8
                Hm, men först - jag förstår inte riktigt vad du menar. Den första tar ju affären. Och då är det den som syns via Lasttrade().

                Comment


                • #9
                  Jag tror att jag kanske blandar ihop getval och lastTrade, men jag förstår inte hur lastTrade kan veta vilken strategi som tog affären?

                  Om retval skriver ner summan 7 i cell 2 i ditt exempel ovan så innebär ju det att alla strategierna har gett signal.
                  Var får lastTrade informationen ifrån om vilken strategi som köpte?

                  Comment


                  • #10
                    Om det blev 7 köpte alla, men sannolikt blir det bara en av dem som larmar och då vet ju lasttrade det eftersom värdet på ”slutkod” lagrades i orderögonblicket.

                    Comment


                    • #11
                      Ok, men med klustrande strategier så blir svaret antagligen nej då, antar jag?
                      Jag tänker t ex på om man vill ha olika exitstrategier beroende på vilken strategi som köpte.

                      Comment


                      • #12
                        Men det ser du med lösningen ovan. Med all sannolikhet slår ju någon av edgarna till först. Dess kod skrivs då ned med köptransaktionen. Det läses av på tex säljsidan med lasttrade och värdet du får ut kan då användas för att bestämma vilken exit som ska användas. Eller är det ofta som de olika edgarna slår till exakt samtidigt?

                        Comment


                        • #13
                          Det är nog jag som fortfarande inte är helt inne i scriptningen ännu.

                          Nä, det kan nog inträffa, men som regel kommer nog inte signalerna exakt samtidigt.

                          Comment


                          • #14
                            Om de inte kommer samtidigt blir det den första av dem som köper, och då också skrivs ner som kod.

                            Comment


                            • #15
                              Fundering: förändrar det resonemanget ovan när man lägger till ett tidsvillkor så att man endast köper strax före stängning?
                              Då kan ju alla tre strategierna ha gett signal under dagen.
                              Vad händer då?

                              Comment

                              Working...
                              X