Allmänt meddelande

Collapse
No announcement yet.

Globala celler/variabler strular

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

  • #16
    Finns det något scriptexempel där ett ev fenomen visar sig? Lasse kan inte hitta något vid en snabbtitt.

    Comment


    • #17
      Hej Rikard,
      Jag har skickat dig ett mail till info@autostock.se med lite exempel.

      Comment


      • #18
        Fint! Jag tittar på det!

        Comment


        • #19
          Är detta samma problem som beskrivs i tråden ?

          Jag testar med dessa enkla script att kommunicera via globala variabler som jag tidigare gjort i AT8, om man ändrar värdet 1060 och sparar ritas det inte om i diagrammet förrän man antingen trycker "spara" i sl) test globala eller gör något som ritar om diagrammet, typ byter upplösning på det.

          Har suttit några kvällar nu och inte fattat varför det inte funkar, har för mig att det inte var så i AT8 nämligen utan att det slog igenom direkt när man sparade ner värdet.

          Verkar ju som om det funkar men inte ritar som det skall, kanske det ritar när man är live ? men då har jag inte tid att labba...
          ********************************

          sl) konfigureringsscript globalt

          test:=1060

          i1(
          setgvarif(test,100,1)
          )

          ********************************

          sl) test globala

          draw(getgvar(100),1,mqb)

          ********************************

          Comment


          • #20
            BRB_67:

            Jag har haft samma funderingar tidigare, men nu kommit till klarhet tror jag.

            När marknaden, för det instrumentet som scriptet är anslutit till, har stängt, då körs scriptet endast 1 gång när det sparas.

            När marknaden är öppen och det kommer in data, körs det var 5 sekund ungefär.

            Comment


            • #21
              Kom på en sak om SetGVarIf(), det finns ju en parameter L för Later, vilket kanske kan användas för att bara skriva till cellen om tidstämpeln för datat är senare än den som redan ligger i cellen. Dvs, ritning i diagram blir ju en tidigare tidstämpel vilket då blockerar skrivning. All "live"-körning får ju automatiskt tidstämpel som är senare och då skrivs det som vanligt. Kanske värt att testa?

              Comment


              • #22
                Lite förtydligande:

                Värde:=xxx
                Setgvarif(värde,45,L)

                Skriver "värde" till cell 45 endast om tidstämpeln är senare än det senast skrivna. Data från diagram är alltid " tidigare" vilket då blockeras.

                Comment


                • #23
                  Lysande. Det är väl bara i diagram detta kan bli problem? Annars borde tidpunkt alltid vara senare än tidigare. Behövs det inget komma eller går det inte att blanda L med annat villkor? Är SetGvarIf(c,155,L) = SetGvarIf(c,155,and(1,1),L) eller SetGvarIf(c,155,and(and(1,1),L))

                  Comment


                  • #24
                    Nja, jag har inte hunnit prova själv, men det borde bara vara diagramritning som får betydelse. Tror inte det går att kombinera med andra parametrar, så om man vill ha parameter T som i True får man skriva det med någon extra rad kod istället. Men om det funkar att isolera bort "falska" signaler från diagramritning är det ju ett bra steg framåt.

                    Om någon provar och får oväntade resultat får vi konsultera Lasse lite närmare.

                    Comment


                    • #25
                      Ja, det är ju bara att tex köra en if som stoppar in gamla värdet från GetGvar om falskt. Jag har alltid ett diagram med nivår öppet och provar.

                      Comment


                      • #26
                        Rikard ska jag tolka det du skriver som att diagrammen alltid skriver i alla globala celler som scriptet har, om scriptet är kopplat till ett diagram?

                        Comment


                        • #27
                          Japp, helt korrekt.

                          Comment


                          • #28
                            Ursprungligen postat av Henric Visa inlägg
                            Lysande. Det är väl bara i diagram detta kan bli problem? Annars borde tidpunkt alltid vara senare än tidigare. Behövs det inget komma eller går det inte att blanda L med annat villkor? Är SetGvarIf(c,155,L) = SetGvarIf(c,155,and(1,1),L) eller SetGvarIf(c,155,and(and(1,1),L))
                            Rikard, hur ska man skriva någon extra rad kod om man vill ha ett villkor för att styra skrivningen som Henric vill, för Henrics fråga är ju det intressanta. Kan man skriva:

                            dummy=If(mitt_villkor,SetGvarIf(c,155,and(and(1,1),L)),0)

                            Mvh

                            Comment


                            • #29
                              Det verkar som att det inte går att kombinera L med andra villkor.

                              dummy=if(mitt_villkor,c,GetGvar(155))
                              SetGvarIf(dummy,155,L)

                              Detta kanske också går?
                              dummy=if(mitt_villkor,SetGvarIf(c,155,L),GetGvar(155))

                              Comment


                              • #30
                                Ursprungligen postat av NickoTrader Visa inlägg
                                Rikard, hur ska man skriva någon extra rad kod om man vill ha ett villkor för att styra skrivningen som Henric vill, för Henrics fråga är ju det intressanta. Kan man skriva:

                                dummy=If(mitt_villkor,SetGvarIf(c,155,and(and(1,1),L)),0)

                                Mvh
                                Jag skrev ju lite fel, villkoret skulle inte vara med i SetGVarIf:

                                dummy=If(mitt_villkor,SetGvarIf(c,155,L),0).... Jag är osäker på om resultatet av if måste returneras till något, därav dummyn.


                                Henric, du har nog helt rätt och om man kombinerar dina två rader:

                                dummy=if(mitt_villkor,c,GetGvar(155))
                                SetGvarIf(dummy,155,L)

                                till

                                SetGvarIf(if(mitt_villkor,c,GetGvar(155)),155,L)

                                så skrivs c endast in i global cell 155 om mitt_villkor är sant OCH det är senare, annars skrivs 155:an värde in igen, om det är senare. Ditt skrivsätt på två rader blir nog tydligare

                                Mvh

                                Comment

                                Working...
                                X