Allmänt meddelande

Collapse
No announcement yet.

Nutid

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

  • Nutid

    Jag undrar om någon har en smart idé för att kontrollera om scripten är i s.k. nutid.

    Jag har ett antal script som ligger och snurrar i diverse instrument, med olika dagsupplösning.

    Kommunikationen mellan scripten sker med globala variabler...

    Betr. dagsupplösning så är t.e.x. terminen på 1 dag medans omxs30 har en vy på 40 dagar.

    När jag sedan loggar in på min dator så uppdateras alla digrammen varvid köpsignaler kan erhållas när t.ex. vyn på omxs30 uppdateras eftersom historiska köpsignaler fluktureras om så bara under bråkdelen av en sekund, varvid terminen registrerar dessa och ordermodellen genererar en massa köpsignaler...

    - En viss datumfunktion har jag precis lagt till (test på måndag), men vill hellre styra mot att signal bara kan erhållas om scriptet är på den sista perioden.

    1) Min fråga är om det finns något sätt att ta reda på om scripten är just på den allra sista perioden i diagrammet?

    2) Går det att styra vilket instrument/aktie som ska läsas in först eller uppdateras först (eller blocka instrument under uppdatering) eftersom de verkar som om instrumenten uppdateras sekvensiellt enligt någon slags ordning?

    3) Behöver instrumenten ens vara som synliga på skärmen för att scripten ska fungera och isåfall i vilken upplösning kommer dessa att befinna sig i om de är "osynliga" (OMXS30 kör ganska tunga script och behöver vara 40 dagar långt). Jag ser här en chans att datorn ska kunna gå snabbare...
    Last edited by niclas_gbg; 2010-03-26, 20:54.
    NiclasGBG

  • #2
    Kan detta funka?

    Funkar detta för att veta att scriptet verkligen är på den sista perioden (realtid)?

    ----Script---
    ConvertMinutes:=1400

    i1(
    ScriptTime=Int(Mult(frac(d),ConvertMinutes))
    SystemTime=Int(Mult(frac(Date()),ConvertMinutes))
    RealTime=If(Eqv(ScriptTime,SystemTime),1,0)
    )
    -----End Script----

    Funktion:
    Variabeln "RealTime" är "1" om scriptet är på den sista perioden annars "0"...
    NiclasGBG

    Comment


    • #3
      Det ser ut att fungera, man kan mäta skillnaden genom att använda Date() och konstanten d precis som du gjort. Date() returnerar systemtid "just nu" och d returnerar tid från den punkt i grafen där scripten befinner sig.

      Starkt jobbat!!

      Comment


      • #4
        Några ytterliggare frågor...

        Tack för att du svarade... Annars hade det enda sättet varit att testa ett antal dagar i realtid för att få svar...

        Sen dessutom vilken service att får svar på en lördag

        Du kan ju fundera även på dessa frågor enligt tidigare inlägg, och svara när du får tid...

        2) Går det att styra vilket instrument/aktie som ska läsas in först eller uppdateras först (eller blocka instrument under uppdatering) eftersom de verkar som om instrumenten uppdateras sekvensiellt enligt någon slags ordning?


        3) Behöver instrumenten ens vara som synliga på skärmen för att scripten ska fungera och isåfall i vilken upplösning kommer dessa att befinna sig i om de är "osynliga" (OMXS30 kör ganska tunga script och behöver vara 40 dagar långt). Jag ser här en chans att datorn ska kunna gå snabbare...

        4) En ytterliggare fråga är "Autostock tiden". Det står något om Onlinedata datum och klockslag nederst i vänstra hörnet. Är detta enligt min egen dators systemklocka som kurserna dateras enligt?
        - I såfall är det skapligt viktigt att datorn visar rätt tid...
        Last edited by niclas_gbg; 2010-03-27, 11:56.
        NiclasGBG

        Comment


        • #5
          Ursprungligen postat av niclas_gbg Visa inlägg
          Tack för att du svarade... Annars hade det enda sättet varit att testa ett antal dagar i realtid för att få svar...

          Sen dessutom vilken service att får svar på en lördag

          Du kan ju fundera även på dessa frågor enligt tidigare inlägg, och svara när du får tid...

          2) Går det att styra vilket instrument/aktie som ska läsas in först eller uppdateras först (eller blocka instrument under uppdatering) eftersom de verkar som om instrumenten uppdateras sekvensiellt enligt någon slags ordning?
          Nix, det går inte såvitt jag vet. De scannas i kronologisk ordning har jag för mig. Enda sättet att blockera instrument är att kryssa bort dem i insamlingen.


          3) Behöver instrumenten ens vara som synliga på skärmen för att scripten ska fungera och isåfall i vilken upplösning kommer dessa att befinna sig i om de är "osynliga" (OMXS30 kör ganska tunga script och behöver vara 40 dagar långt). Jag ser här en chans att datorn ska kunna gå snabbare...
          Nej, du behöver inte ha diagram öppna för att köra script. Om scriptet är anslutet till instrumentet kan man stänga fönstret och scriptet fortsätter att köras ändå. Däremot rekommenderar jag att du låser fast upplösningen i scriptet så att det inte är beroende av upplösning i graf.

          4) En ytterliggare fråga är "Autostock tiden". Det står något om Onlinedata datum och klockslag nederst i vänstra hörnet. Är detta enligt min egen dators systemklocka som kurserna dateras enligt?
          - I såfall är det skapligt viktigt att datorn visar rätt tid...
          Japp, det är datorns klocka som tiden tas ifrån, så det är helt klart bra om den går någorlunda rätt. Det finns ju rätt många gratisprogram som håller koll på datortiden och synkar mot atomur etc.

          Jag kan kolla med Lasse om det är något specifikt som är superviktigt

          Comment


          • #6
            Ang. fråga 3

            Tacksam för svaren...

            Den viktigaste frågan var datorklockan och det var bra att veta att tiden måste jag ha stenkoll på...

            Beträffande fråga 3 så behöver jag använda minst 40 dagars vy på instrumentet. Eftersom jag samlar en massa information fr. 40 dagar bakåt, vilket innebär att skriptet måste starta dag 40 och därefter "mölja" igenom dag för dag och samla information (till glob. variab.) fram till nutid och därefter samlar data som vanligt i realtid...

            Om jag stänger grafen och scriptet är anslutet och sedan öppnar samma graf får jag per default 2 dagar (bara 2 dagars vy och därmed 2 dagars info)... Just nu reglerar jag detta enkelt genom att ha 40 dagar vy öppen på omxs30 (jag menade vy inte upplösning i frågan innan)...

            - Konstig fråga kanske men jag vill ha grafen stängd men att scriptet ska fungera som om jag hade en 40 dagars graf öppen (så jag får 40 dagars info), går detta ????

            -----------------------
            "3) Behöver instrumenten ens vara som synliga på skärmen för att scripten ska fungera och isåfall i vilken upplösning kommer dessa att befinna sig i om de är "osynliga" (OMXS30 kör ganska tunga script och behöver vara 40 dagar långt). Jag ser här en chans att datorn ska kunna gå snabbare...

            Svar: Nej, du behöver inte ha diagram öppna för att köra script. Om scriptet är anslutet till instrumentet kan man stänga fönstret och scriptet fortsätter att köras ändå. Däremot rekommenderar jag att du låser fast upplösningen i scriptet så att det inte är beroende av upplösning i graf."
            NiclasGBG

            Comment


            • #7
              Sista Perioden?????

              Tror att jag får problem med följande script för att kontrollera sista perioden, ibland tycks det inte fungera(?):

              {----Check that script is on last period----}
              IntraPeriodTime=Int(Mult(frac(d),1440))
              IntraSystemTime=Int(Mult(frac(Date()),1440))
              DayPeriodTime=Int(d)
              DaySystemTime=Int(Date())
              RealLastPeriod=If(And(Eqv(DayPeriodTime,DaySystemTime),Eqv(IntraPeriodTime,IntraSystemTime)),1,0)

              ----------------------------------------------------------------------
              Finns det något annat sätt att kontrollera om scriptet verkligen är på den sista perioden?????
              Last edited by niclas_gbg; 2010-05-14, 21:22.
              NiclasGBG

              Comment


              • #8
                Sekundscript istället?

                Vad tror du om detta scriptet istället?

                - Jag subtraherar "Date()" och "D" och gör om summan till sekunder.
                Teoretiskt skulle Date kunna vara kl. 09.55:05 och D vara kl. 09.56:55 emellan kursinsamlingarna. Därför ser jag en möjlighet varför signalerna uteblir ibland enl. ovan. I scriptet nedan kan tidsdiffen mellan D & Date vara högst 60 sekunder...

                {####Clock and time####}
                ConvertSec:=86400
                AcceptDiff:=60
                SecDiff:=Mult(Frac(Sub(Date(),D)),ConvertSec)
                DayDiff:=Int(Sub(Date(),D))
                RealLastPeriod:=If(And(Lt(SecDiff,AcceptDiff),Eqv(DayDiff,0)),1,0)

                Detta script ligger i OMXS30 och måste vara true tillsammans med köp/sälj-signal, då skickas signalen vidare till ytterliggare ett triggerscript påklistrat terminen.

                Jag ser hur OMXS30 genererar köp fast ibland inte terminen, uteslutningsmetoden säger mig att originalscriptet (se tidigare inlägg) missar när insamling/systemklocka hamnar på olika minuter... Andra ideér för att kolla sista period är välkommna...
                NiclasGBG

                Comment


                • #9
                  Jag kollade lite med Lasse och han kunde inte riktigt se nyttan av att kolla om man är i sista perioden. Scripten är ju "alltid" i sista perioden. Han menade att det är bättre att använda LastTrade() istället.

                  Sista villkoret behöver ingen IF-sats förresten:

                  {####Clock and time####}
                  ConvertSec:=86400
                  AcceptDiff:=60
                  SecDiff:=Mult(Frac(Sub(Date(),D)),ConvertSec)
                  DayDiff:=Int(Sub(Date(),D))
                  RealLastPeriod:=And(Lt(SecDiff,AcceptDiff),Eqv(DayDiff,0))

                  Comment


                  • #10
                    Sista perioden

                    Nej det stämmer inte riktigt... Detta är inte någon spasm jag lagt till scriptet...
                    Jag har tidigare haft problem med att scriptet gav ifrån sig signaler från tidigare dagar och detta exakt på tidpunkten från föregående dag. Jag har bara sett detta fenomen när jag körde ett script som var "tungt" för datorn...

                    Glöm inte att jag samlar data från tidigare dagar och därför måste jag ha flera dagar som upplösning... Tidigare räckte det att jag loggade in på datorn och graferna ritade om sig för att jag skulle få signal från någon tidigare dag (om jag träffade samma minut)...

                    Dessutom skickar jag signaler från ett triggerscript till ett annat triggerscript via globala variabler och vill inte att dessa ska skicka köp/sälj vid omritning eller vinsttest...

                    Beträffande "LastTrade()" så bygger ju funktionen på att en viss signal har genererats, jag är bara ute efter att kontrollera att scriptet är på sista perioden...

                    Jag måste ha denna funktionallitet... Jag testar envist imorgon
                    Last edited by niclas_gbg; 2010-05-17, 17:31.
                    NiclasGBG

                    Comment


                    • #11
                      Aha, det är alltså betydligt mer komplext än jag trodde från början. Räcker det att kolla att man är på innevarande dag då?

                      Comment

                      Working...
                      X