Allmänt meddelande

Collapse
No announcement yet.

Add

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

  • Add

    Rikard,
    jag har flaggor som signalerar ex köp emellanåt i 30 min script.

    Ibland kommer köp-signal i scripten varje 30min stapel, ibland görs det upphåll några 30 min staplar.

    Jag vill agera när signal kommer dvs köpa varje gång vilket kan innebära några köp per dag och även några sälj vid signal.

    Så här är det byggt nu
    sekvens 01 - köp
    sekvens 02 - script som kör add 1 dvs alltid sant, agerar i 29:e minuten mha ett tids-villkor. Loopflagga på.

    Det går att köra på ovanstående sätt, dock blir det några extra köp-signaler i den 29:e minuten som dock loopar runt och det blir ej sänd nollorder.

    Har du något annat sätt för att slippa de extra nollorderna i 29:e minuten?
    Last edited by jorgeng; 2009-12-09, 12:24.

  • #2
    Hmm, menar du att scriptet bara ska kunna köpa i 29:e minuten? Jag förstår inte hur du byggt med Add 1. Går det inte att lägga det hela i parallella modeller istället?

    Comment


    • #3
      Ursprungligen postat av Rikard Nilsson Visa inlägg
      Hmm, menar du att scriptet bara ska kunna köpa i 29:e minuten? Jag förstår inte hur du byggt med Add 1. Går det inte att lägga det hela i parallella modeller istället?
      Sekvens01 scriptet kan köpa när som helst under 30 minuter.
      Sekvens02-scriptet ska bara agera i 29:e minuten för att ställa sig i sekvens01 inför nästa 30 min period mha loopflagga.
      Add 1 gör att villkoret blir sant + ett tidsvillkor att agera i 29:e minuten.

      Om jag har parallella ordermodeller så blir det ju extra nollorder också.

      Jag är rädd för att dessa nollorder kraschar Autostock Trader då de kommer i täta intervall. Kanske är krascherna löst i senaste uppdateringen?
      Hann Lasse kolla över om långa script-namn kunde få AT att krascha?

      Comment


      • #4
        Så du vill kunna köpa när som helst i innevarande 30-stapel en gång, men inte en gång till förrän man kommit in i nästa stapel?

        Det borde i så fall gå att lösa med en enda loopad sekvens så slipper man nollorder helt.

        Comment


        • #5
          Ursprungligen postat av Rikard Nilsson Visa inlägg
          Så du vill kunna köpa när som helst i innevarande 30-stapel en gång, men inte en gång till förrän man kommit in i nästa stapel?

          Det borde i så fall gå att lösa med en enda loopad sekvens så slipper man nollorder helt.
          Hmm, om man bygger den loopad så kan det bli 3 signaler per minut * 30 minuter, inte så bra, då kraschar väl AT definitivt.
          Har du någon ide hur man efter trade kan få stopp tills nästa 30 min intervall?

          Comment


          • #6
            Nja, det behöver inte bli signal oftare bara för att man kör 1 loopad sekvens. Det beror ju på hur man skriver scriptet, man kan tex lagra tidstämpeln vid signal och kräva att man ska passera över till nästa period innan ny signal tillåts. Man behöver inte gå via någon extra sekvens med nollorder.

            Ett sätt kan vara att använda SetGVarIf() vid signal, och därefter nollställa värdet i aktuell cell första minuten i nästa period.

            Comment


            • #7
              Ursprungligen postat av Rikard Nilsson Visa inlägg
              Nja, det behöver inte bli signal oftare bara för att man kör 1 loopad sekvens. Det beror ju på hur man skriver scriptet, man kan tex lagra tidstämpeln vid signal och kräva att man ska passera över till nästa period innan ny signal tillåts. Man behöver inte gå via någon extra sekvens med nollorder.

              Ett sätt kan vara att använda SetGVarIf() vid signal, och därefter nollställa värdet i aktuell cell första minuten i nästa period.

              Hmm,
              kan du ge ett kod-exempel hur du menar.

              Om jag har ett script som gör köp när kursen överskrids sker ju detta kontinuerligt. Ex köp-signal kommer i 14:e minuten, sedan blir det nollorder i 15:e minuten osv tom 30:e minuten när köp-signalerna avstannar.

              Om jag i samma script ska läsa av klockan kommer ju inte köp-signalerna att stanna för det för att villkoret är uppfyllt, eller?

              Comment


              • #8
                Säg att köpsignalen består av att Close överstiger någon gräns. Om det sker får vi larm. Det larmet kan samtidigt användas för att blockera efterkommande signaler, tills man tex hamnat i en ny period. På så vis behöver man aldrig skicka nollorder


                din_köpsignal:=Gt(c,gräns)

                kan vi utgå ifrån. Denna blir sann när C befinner sig ovanför "gräns". Det kan ske precis när som helst.

                Om vi lägger till ett krav att värdet i cell 450 ska vara 1 för att det ska få ske:


                din_köpsignal:=And(Gt(c,gräns),Eqv(GetGVar(450,1)))


                nästa steg är att samtidigt blockera efterföljande signal när den första löser ut:

                enable:=Eqv(GetGVar(450,1))
                din_köpsignal:=And(Gt(c,gräns),enable)
                SetGVarIf(0,450,din_köpsignal)

                Så fort köpsignalen blir sann stoppas värdet 0 in i cell 450 och nästa läsning är signalen blockerad. Ett sätt att "låsa upp" för nya signaler kan ju tex vara att sätta tillbaka värdet 1 i cellen i första minuten varje 30-minutersperiod:



                {Minutfilter}
                tidnu:=Frac(DATE())
                totalt:=Mult(tidnu,1440)
                rest:=Int(Mod(totalt,30))
                unblock:=Eqv(rest,0)
                SetGVarIf(1,450,unblock)



                All kod kan läggas i samma script, med SetGVarIf()-satserna som minnesreferenser. Dessutom kan det vara läge att lägga till en spärr som alltid blockerar köpsignal i första minuten när nollställning sker, annars skulle det kunna bli skurar av signaler under just den minuten. Om det inte är tillräckligt kan man lagra tidstämpeln i en minnescell och kräva att det ska gå minst en minut för att tillåta signal igen.

                Obs, jag har inte testkört detta skarpt, det är bara en ide men det går ju att prova.





                {Minutfilter}
                tidnu:=Frac(DATE())
                totalt:=Mult(tidnu,1440)
                rest:=Int(Mod(totalt,30))
                unblock:=Eqv(rest,0)
                enable:=Eqv(GetGVar(450,1))
                din_köpsignal:=And(And(Gt(c,gräns),enable),Not(unblock))
                i30(
                SetGVarIf(1,450,unblock)
                SetGVarIf(0,450,din_köpsignal)
                Mult(din_köpsignal,10)
                )

                Comment


                • #9
                  Rikard,
                  jag har provat, men det blir inga flaggor för köp.
                  Köp-villkoret är nu uppfyllt.

                  I cell 150 ligger just nu värdet 957,50 och kursen har varit uppe i 958 och vänt för omxs309l så det verkar som inte scriptet fungerar, för inga flaggor visas.

                  gräns:=GetGvar(150)
                  {----------------------------------
                  {Minutfilter}
                  tidnu:=Frac(DATE())
                  totalt:=Mult(tidnu,1440)
                  rest:=Int(Mod(totalt,30))
                  unblock:=Eqv(rest,0)
                  enable:=Eqv(GetGVar(450,1))
                  din_köpsignal:=And(And(Gt(c,gräns),enable),Not(unblock))
                  i30(
                  SetGVarIf(1,450,unblock)
                  SetGVarIf(0,450,din_köpsignal)
                  Mult(din_köpsignal,10)
                  )

                  Comment


                  • #10
                    Värdet i cell 450 är 1 i Kalkylforskaren, som det ska vara inför trade.
                    Kursen är nu uppe i 958.75, dvs över 957,50 i cell 150.

                    Comment


                    • #11
                      Nja, hittade en bugg i raden:

                      enable:=Eqv(GetGVar(450,1))

                      som ska vara:

                      enable:=Eqv(GetGVar(450),1)


                      Comment


                      • #12
                        Ok, har ändrat, får se om det fungerar imorgon.

                        Inga flaggor syns nu för sälj, dock.

                        Comment


                        • #13
                          Rikard,
                          nu på morgonen innan någon trade skett kl.09.20 är värdet i cell 450 - 0, borde det inte vara 1?

                          Comment


                          • #14
                            Rikard,
                            dagens första trade skulle ha skett enligt mina flaggor,
                            men ingen reaktion från scriptet.

                            Cell 450 har nu fått värde 0 igen.

                            Det verkar som inte detta fungerar, någon tankevurpa är det....

                            Comment


                            • #15
                              Jag kopplar upp det och provkör scripten själv.

                              Comment

                              Working...
                              X