Allmänt meddelande

Collapse
No announcement yet.

Nybörjarfråga ordermodeller

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

  • Nybörjarfråga ordermodeller

    Hej,
    Jag skulle vilja förstå hur exekveringen av olika sekvenser i ordermodeller funkar. Jag har läst all dokumentation jag hittat och läst ett antal trådar i forumet men det är ändå ganska oklart för mig.
    Funkar det så att den sekvens som är ”aktiv” exekveras en gång per minut tills den returnerar ”true”?
    Jag skulle vilja ha två olika triggerscript i två olika sekvenser, om båda triggerscripten returnerar ”true” samtidigt (AND), skulle jag vilja kalla på köpscriptet osv. Alltså det första triggerscriptet ligger i den första sekvensen och hoppar till det andra triggerscriptet när det returnerar ”true”. Om det andra scriptet returnerar true ska man gå vidare, annars vänta tills det blir true. När det blir true måste man verifiera att det första scriptet fortfarande returnerar true (antar jag)? Hur kan man göra detta?
    Yondu

  • #2
    Det är nästan korrekt, triggerscriptet i en sekvens exekveras en gång var 5:e sekund och om det blir sant lägger sekvensen sin order och ordermodellen stegar vidare till nästa sekvens (om det finns någon). Annars kan ju sekvensen vara loopad till sig själv och hela ordermodellen börjar om från början och väntar på nästa signaltillfälle.

    Det låter som att du har villkor i två triggerscript som egentligen skulle kunna läggas i ett och samma triggerscript istället? Då skulle ordermodellen bli enklare istället. Annars går det att bygga in logik i xk)-script som måste vara sant för att släppa igenom en order, och även logik i st)-script som kan bestämma vilken sekvens som blir nästa som körs osv.

    Själv brukar jag använda parallella ordermodeller med 1 sekvens i varje, loopad till sig själv.

    Comment


    • #3
      Hej,

      Som gammal utvecklare tycker jag att utvecklingsmiljön för autotrader är hyfsat primitiv, lite -90 tal...
      För att göra min kod någorlunda återanvändbar och underhållsbar skulle jag vilja dela upp kodsnuttarna i olika script så att jag kan återanvända dem i olika modeller.
      Skulle du kunna ge ett exempel på hur man använder xk) och st) -script för att åstadkomma det jag vill?

      En variant skulle väl kunna vara att ha ett första script som bara exekverar en gång som skriver en nolla i en global variabel, sedan när ett script i en sekvens returnerar "true" så kollar man om det står en etta i den globala variabeln om det gör det så går man vidare, om det inte gör det så skriver man en etta där och hoppar till den andra sekvensen (lite svårt att förklara men du kanske fattar?).
      Yondu

      Comment


      • #4
        Det är ju inga problem att ha 10 eller fler triggvillkor i en och samma ordermodell med både AND och OR villkor kopplade. Man kan ha flera ordermodeller kopplade samtidigt och sätta tidsvillkor när man får handla efter föregående sälj osv.
        Jag har ju kört upp till 78 ordermodeller parallellt samtidigt utan problem. (Jag har ett antal hundra ordermodeller till som jag inte använder aktivt.) Tror att jag då även använde runt 500 globala parametrar (har inte räknat ut exakt kan vara fler kan vara färre). Jag räknade ut att om jag skulle printa ut den aktiva koden på papper med normal textstorlek så skulle den bli 15 meter lång.
        Med klipp och klistra kan man ju ha flera ordermodeller som liknar varandra under utvecklingsfasen och välja vilka som man vill testa samtidigt i Analysatorn.

        mvh
        Bertil


        Edit: Har aldrig använt mig av stega script.
        Last edited by Bertil; 2015-04-15, 11:25.

        Comment


        • #5
          Tanken med script som skriver till globala celler är smart, då behöver du bara ansluta ett antal script till instrumentet och låta dessa skriva ner sina "träffar" i celler som andra script och ordermodeller kan läsa av. Tex:

          Script 1, får träff på sitt villkor och skriver ner i cell 100
          Script 2, läser cell 100 och ser att Script 1 gjort sitt jobb, i så fall skriv nytt värde till cell 100 om villkor uppfyllda

          Osv.
          När du fått hela serien av analyser klar kan triggerscriptet i ordermodellen läsa värdet och lägga order.

          Det blir en mycket enklare konstruktion än att bygga med flera sekvenser och stega-script.

          Comment


          • #6
            Rikard:

            Aha, det var ju smartare än jag hade tänkt, att koppla scripten direkt till instrumentet istället för att använda olika sekvenser. Enda nackdelen med det är väl att jag inte hade tänkt exekvera sekvens 2 förrän sekvens 1 var sann och på så sätt spara lite "exekveringskraft". Nu kommer ju båda scripten att köras parallellt hela tiden.

            Om man kopplar script direkt till instrument, körs de också var 5e sekund?

            Rikard & Bertil:
            Finns det något trick hur man får en överblick över vilka script man har kopplat till vilka instrument och vilka ordermodeller som är igång och vilka instrument de är kopplade till?

            Bertil:
            Det var just klipp och klistra som jag ville undvika genom att ha små modulära triggerscript som jag sedan kombinerar ihop
            Yondu

            Comment


            • #7
              Ursprungligen postat av hrudelius Visa inlägg
              ...
              Bertil:
              Det var just klipp och klistra som jag ville undvika genom att ha små modulära triggerscript som jag sedan kombinerar ihop
              Jodå jag har testat med ett gäng modulära triggerscript också. Jag gör scripten som kompletta ordermodeller där triggerscriptet skriver till en global cell och avslutar sedan med:
              And(0,1)
              vilket ju aldrig blir uppfyllt.
              Jag handlar ju terminen och har ofta gjort analys på de 30 underliggande aktierna. Analys på varje aktie sätter ett godhetstal (chans för uppgång eller nedgång) i en global cell. Sedan adderas alla 30 godhetstalen och resultatet sätts i cell 31. I de vanliga ordermodellerna kan man då ta med cell 31 som ett bivillkor dvs för köp så måste cell31 vara större än x och för sälj mindre än -y.
              mvh
              Bertil

              Comment


              • #8
                Jag undviker ju medvetet att sekvenser skall vara uppfyllda. Säg att man har 5 st villkor som indikerar uppgång. Men det är ju inte nödvändigt att alla 5 skall vara uppfyllda samtidigt. Man vill kanske bara att 4 av 5 skall vara uppfyllda eller
                (villkor1 & villkor2 & villkor3) eller (villkor1 & villkor3 & villkor4) eller (villkor3 & villkor5 ) (någon av dessa sammansatta villkor är alltså OK)

                Om man börjar att använda stegascript eller tänker sekvensiellt så målar man logiskt sett in sig i ett hörn.

                mvh
                Bertil


                Edit: till skillnad från "vanlig" programmering där man har en uppgift att utföra och vill nå ett bestämt resultat så är ju NAT programmering mer diffust. Det finns inga bestämda regler för att hitta en edge bara sannolikheter som man fått fram genom att studera historiska data. Därför krävs att man kombinerar många olika idéer på flera olika sätt för att få fram sin edge.
                Last edited by Bertil; 2015-04-15, 14:14.

                Comment

                Working...
                X