Allmänt meddelande

Collapse
No announcement yet.

Kombinera flera ordermodeller med specifika exit

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

  • Kombinera flera ordermodeller med specifika exit

    Hur kan man kombinera Ordermodell A och ordermodell B i samma analysbänk?

    Problemet som jag har är att hur kan jag få EXit A att sälja just när köp är gjort av ordermodell A?? och respektive när ordermodellen B köper så skall bara exit B sälja.

    Kan nån hjälpa mig??

    // Fredrik

  • #2
    Om det är så att du tillåter att både ordermodell A och ordermodell B får köpa innan någon försäljning sker så blir det lite trixigare, så för enkelhets skulle så tillåter vi bara att en ordermodell för köpa (först till kvarn).

    Då får du i slutet av respektive ordermodell skriva i en global cell. Säg alltså att ordermodell A skriver en etta i en global cell då den triggat, medan ordermodell B skriver en 2:a i samma cell. Sedan får säljordermodellen läsa av den globala cellen för att avgöra vilken ordermodell som köpt och om aktuell säljordermodell då får sälja.


    mvh
    Bertil
    Last edited by Bertil; 2020-08-24, 20:32.

    Comment


    • #3
      Är det två olika köpmodeller och två olika säljmodeller?

      Det finns lite olika sätt att konfigga det på.

      Exempel 1:

      Två köpmodeller innehåller olika köpvillkor, och man vill kanske att olika säljvillkor används beroende på vilken köpmodell som slog till. Man kan skriva ner ett värde i en lokal cell som sparas i Loggade lokala ordertransaktioner, tex för köpmodell 1:

      retval(1,4)

      där 1 säger att det var köpmodell 1 som köpt och värdet sparas i cell 4.


      Säljmodellen kan då läsa av köptransaktionen med

      lasttrade(b,4)

      där B står för Buy-transaktion och 4 är cellen. Värdet 1 kommer returneras och då kan man villkora det med rätt exit-villkor tex.
      Fördelen med den här tekniken är att cellerna blir instrumentunika, tex om du kör en hel aktieportfölj med samma ordermodeller. Cell 4 för ABB är unik från cell 4 för ERIC B osv. Det blir enkelt för modellen att hålla reda på olika aktier.


      Exempel 2:

      Använda globala celler för att spara status.

      Setgvarif(1,14)

      skriver ner värdet 1 i cell 14, och det kan läsas av med

      Getgvar(14)

      Globala celler är just globala, dvs de är inte instrumentunika och man kan därmed skicka info mellan script kopplade till olika instrument. Det kan ju vara en fördel i vissa lägen och en nackdel i andra. Kör man ett större antal aktier med samma modeller blir det snabbt ett problem att administrera unika globala celler för varje aktie osv. Då är metod 1 enklare. Men för en modell som bara ska handla 1 eller 2 instrument kan det här vara smidigt. Tex Alpha Shark använder globala celler för att skicka info mellan de olika modellerna.

      Nackdelar med globala celler:

      1. Det blir snabbt rörigt att använda många celler, och om man inte vet exakt vad man gör är risken stor att man får oväntade effekter med skrivning till samma cell från flera script samtidigt osv, det kan vara svårt att felsöka.

      2. Globala celler lagras i minnet tills buffring sker mot disk, och det gör att innehållet kan tappas i händelse av programkrasch, omstart osv.


      Comment


      • #4
        Oavsett metod finns det lite saker att tänka på. Om flera modeller simuleras tillsammans behöver de även köras skarpt på samma konto. Annars kan resultaten avvika en del mot simuleringen.Olika parametrar av lasttrade kommer att delas mellan modellerna. Det beror även på om modellerna konkurrerar om signalerna eller ej. Utan att gå in på överkurs så går det även köra modellerna oberoende av varandra på samma konto.

        Comment


        • #5
          Nu finakr det som jag vill

          Tack för hjälpen nu funkar det som jag har tänkt mig i analysbänken.

          Comment


          • #6
            Alla ordermodellerna kommer gå på samma konto live

            Jag har som tanke att alla strategierna är aktiva på samma konto och den strategien som signalerar köp först går först i kön och då är det viktigt att rätt exit används annars blir det fel..

            Men med tidigare info i denna tråden så verkar iden funka fint i analysbänken med att ge ett värde i en globalcell beroende på köpsignal och sedan nolla den när den säljer.

            //Fredrik

            Comment


            • #7
              Kör du global cell med SetGVarIf() och GetGVar() ?

              Tänk på att dessa riskerar att tappa värden i händelse av programkrasch osv, så om det går skulle jag hellre valt att spara ner koden för köp-edge med retval() i Loggade lokala ordertransaktioner. Den försvinner inte vid krasch.

              Man läser ut värdet med tex lasttrade(b,x) där x är cellen.

              Comment


              • #8
                Jo just för tillfället så använder jag mig av globalcell men inom kort kommer jag koda om scriptet så jag går på ditt förslag med lasttrade.

                // Fredrik

                Comment


                • #9
                  Nice, ska väl inte vara några problem om det funkar med global cell nu då. En fördel till är att samma script kan köras på flera instrument samtidigt om du kör med Loggade lokala ordertransar istället, cellerna är instrumentunika.

                  Comment

                  Working...
                  X