Allmänt meddelande

Collapse
No announcement yet.

Fladderfilter samt blockning av kontinuerlig signal.

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

  • #16
    Ursprungligen postat av LillWicke Visa inlägg
    Jag har uppdaterat första inlägget med nya komentarer i "EDIT2"

    Man tackar och bockar. Både lärorikt och användbart.

    Comment


    • #17
      Varför får jag inte detta att fungera, har letat fel men ser antagligen inte skogen för stora trän.


      villkor script
      Bla, Bla

      öppet:=gt(mult(1440,sub(market(c),frac(date()))),20)

      { säkerställa att inga positioner tas innan start_delay passerats }
      start_delay:=29
      minut_nu:=mult(frac(date()),1440)

      inpådagen:=gt(minut_nu,add(540,start_delay)) { 540 är kl 9.00 }

      datum_ok:=eqv(int(d),int(date()))

      { Fladdervariabler }
      signal_delay:=5
      signal_lock:=3

      { Säkerställer blockering av cellskrivning under diagramkörningen }
      block_diag_skriv:=and(datum_ok,eqv(cum(1),1))


      timelock:=30
      lt1:=LastTrade(B,D)
      lt2:=LastTrade(S,D)
      minSedanKöp:=mult(sub(date(),lt1),1440)
      minSedanSälj:=mult(sub(date(),lt2),1440)
      innehav_ok:=Le(Portfolio(v),0)
      i60(
      orderdelay_ok=and(gt(minSedanKöp,timelock),gt(minSedanSälj,timelock))

      signal1=Bla, Bla
      signal2=Bla, Bla
      signal3=And(and(signal2,öppet),orderdelay_ok)
      buy5=and(and(signal3,datum_ok),inpådagen)


      setgvarif(0,204,1)
      antal=if(buy6,GetGVar(61))
      SetGvarIf(antal,204,1)

      { Tidslucka innan första positionen tas efter öppning}
      innan_position=and(ge(minut_nu,540),le(minut_nu,add(540,start_delay)))
      nollvillkor1=and(innan_position,gt(Getgvar(501,N),0))
      SetGvarIf(0,501,and(nollvillkor1,block_diag_skriv),T) { Nollställer cell 501 innan handeln börjar }

      { Skriv tid i cell }
      nysignal=and(buy5,eqv(GetGvar(501,N),0))
      SetGvarIf(minut_nu,501,and(nysignal,block_diag_skriv),T)

      minsedan_signal=if(gt(GetGvar(501,N),0),sub(minut_nu,GetGvar(501,N)),0)
      tid_ok=if(and(ge(minsedan_signal,signal_delay),le(minsedan_signal,add(signal_delay,signal_lock))),1,0) { tiden är inom intervallet }

      buy6=and(and(buy5,tid_ok),innehav_ok)

      { Nolla cell }
      nollvillkor2=and(not(buy5),gt(GetGvar(501,N),0))
      SetGvarIf(0,501,and(nollvillkor2,block_diag_skriv),T) { nollställer cell 501 om ej signal }

      mult(buy6,10)
      )

      Comment


      • #18
        Ursprungligen postat av ali Visa inlägg
        Varför får jag inte detta att fungera, har letat fel men ser antagligen inte skogen för stora trän.
        Vad är det som inte fungerar?

        Vad gäller "fladderfiltret" som du lagt in, kan jag inte upptäcka några fel.

        "Felet" måste ligga någon annan stans i scriptet.
        I nedanstående finns några konstigheter.
        1) signal1 förekommer den i signal2?
        2) buy5 är satt som ingående signal i fladderfiltret, men du har buy6 i antal.
        3) Utelämna helst inte den fjärde parametern i setgvarif(), speciellt inte om scriptet körs i ett diagram.
        ----------------------------
        signal1=Bla, Bla
        signal2=Bla, Bla
        signal3=And(and(signal2,öppet),orderdelay_ok)
        buy5=and(and(signal3,datum_ok),inpådagen)


        setgvarif(0,204,1,T)
        antal=if(buy6,GetGVar(61,N))
        SetGvarIf(antal,204,1,T)
        -----------------------------------

        Comment


        • #19
          Ursprungligen postat av LillWicke Visa inlägg
          Vad är det som inte fungerar?

          Vad gäller "fladderfiltret" som du lagt in, kan jag inte upptäcka några fel.

          "Felet" måste ligga någon annan stans i scriptet.
          I nedanstående finns några konstigheter.
          1) signal1 förekommer den i signal2? Ja
          2) buy5 är satt som ingående signal i fladderfiltret, men du har buy6 i antal.
          3) Utelämna helst inte den fjärde parametern i setgvarif(), speciellt inte om scriptet körs i ett diagram.
          ----------------------------
          parameter
          signal1=villkor script
          signal2=and(signal1,parameter)
          signal3=And(and(signal2,öppet),orderdelay_ok)
          buy5=and(and(signal3,datum_ok),inpådagen)


          setgvarif(0,204,1,T)
          antal=if(buy5,GetGVar(61,N))
          SetGvarIf(antal,204,1,T)
          -----------------------------------
          Får 977,98 i cell 501

          Jag får ingen signal, något blockar.
          Det jag mest är ute efter är ju " blockering av cellskrivning under diagramkörningen " annars fungerar ju inte att köra flera modeller mot en depå.
          Om fladderfiltret fungerar som jag tror är det något jag saknat hela tiden, hur många bra affärer har inte förstörts av den lilla felaktiga signalen.

          Comment


          • #20
            Syntaxfel, något komma eller någon punkt på fel ställe, utelämnad andra kommentarparentes eller något liknande.

            Edit: såg just att du exempelvis utelämnat tredje parametern i if-satsen. Det kanske finns på fler ställen?
            antal=if(buy5,GetGVar(61,N),??)

            Last edited by LillWicke; 2012-08-26, 23:29.

            Comment


            • #21
              Får inget syntaxfel vid test, har kopierat in mina parametrar i ditt skript tidigare i tråden.
              Är mycket tacksam för din hjälp.

              Comment


              • #22
                Ursprungligen postat av ali Visa inlägg
                Får inget syntaxfel vid test, har kopierat in mina parametrar i ditt skript tidigare i tråden.
                Är mycket tacksam för din hjälp.
                Hur testar du då??
                Om du använder NAT-editorn utelämnar den de flesta syntaxfel.

                Comment


                • #23
                  Kör skripten när börsen är öppen, finns det någon annan metod ?

                  Comment


                  • #24
                    Ursprungligen postat av ali Visa inlägg
                    Kör skripten när börsen är öppen, finns det någon annan metod ?
                    Ja, använd en bättre editor.

                    Scripten körs även om det finns syntaxfel i dem, och därmed kan resultaten kan bli helt knasiga.

                    Comment


                    • #25
                      Använder din version av Notpad, hur ser jag vad som är fel.

                      Comment


                      • #26
                        Ursprungligen postat av ali Visa inlägg
                        Använder din version av Notpad, hur ser jag vad som är fel.
                        Notpad++ är en bra editor.
                        Du ser om du stavat en funktion fel, eller skrivit punkt istället för komma som parameteravskiljare, eller om du använt komma istället för punkt i ett tal, eller om du utelämnat en parentes genom att klicka på parenteserna en efter en.

                        MEN du ser inte om du utelämnat en parameter i en funktion, funktionens syntax måste du ha aktuell när du skriver den. Läste du min EDIT i inlägg #20?

                        Comment


                        • #27
                          Ja men det är ju parameter att sätta antal i säljskriptet som handlar med flera modeller i samma depå.
                          Kopierat här. http://www.autostock.se/vbulletin/sh...flera+dep%E5er
                          sl) trend1
                          medel1:=mov(c,GetGvar(101),s)
                          medel2:=mov(c,GetGvar(102),s)
                          antal:=if(gt(medel1,medel2),1,-1)
                          SetGvarIf(antal,201,1)

                          Comment


                          • #28
                            Javisst, i orginalscriptet står det:
                            antal:=if(gt(medel1,medel2),1,-1)
                            Dvs. TRE parametrar i if()-satsen

                            MEN i din variant står det:
                            antal=if(buy5,GetGVar(61,N),??)
                            Dvs. du har utelämnat tredje parametern i If()-satsen.

                            Comment


                            • #29
                              Ändrade till detta och då fungerar det i mitt nakna skript, men ingen signal när jag lägger in dina parametrar, mystiskt.
                              setgvarif(0,204,1,T)
                              setgvarif(0,204,1,T)
                              SetGvarIf(GetGVar(61),204,signal4)

                              Comment


                              • #30
                                Har värde 0 i cell 501.

                                Comment

                                Working...
                                X