Allmänt meddelande

Collapse
No announcement yet.

CmpRef med olika perioder o signalskur

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

  • CmpRef med olika perioder o signalskur

    Jag vill låta min ordermodell arbeta i 30 min upplösning samt även ta in signaler via extra objekt i annan tidsupplösning. Dessutom vill jag bara handla på första signalen i en ev orderskur så att jag inte får ett snabbt köp igen om jag blivit utstoppad.

    Spärr orderskur and(r3,not(aref(r3,1)))

    Men när jag kör med spärr för orderskur funkar inte det med Cmpref och olika tidsperioder att spärra orderskurar på det här sättet utan IBLAND får jag flera signaler på raken
    Har satt ihop ett enkelt script för att visa vad jag menar.
    Nu är det här med CmpRef lite svårt att få grepp om till 100% så, kan vara att jag missuppfattat något så jag hoppas att ngn kan tala om vad problemet ligger eller rätt mitt script.

    Testscript Cmpref o orderskur

    m1=Mov(cmpref(c,0,a),8,e)
    m2=Mov(cmpref(c,0,a),13,e)

    m3=Mov(cmpref(c,0,b),8,e)
    m4=Mov(cmpref(c,0,b),13,e)

    m5=Mov(c,8,e)
    m6=Mov(c,13,e)

    i30(r3=and(and(gt(m1,m2),gt(m3,m4)),gt(m5,m6))

    and(r3,not(aref(r3,1))))

    {@A(120,)@B(60,)}

  • #2
    Nja, du har ett grundläggande fel i scriptet ovan och det är att alla minnesrefar måste ligga innanför intraday-prefixet. Det kan nog ge en del oväntade effekter. Rättat:

    Testscript Cmpref o orderskur

    m1:=Mov(cmpref(c,0,a),8,e)
    m2:=Mov(cmpref(c,0,a),13,e)

    m3:=Mov(cmpref(c,0,b),8,e)
    m4:=Mov(cmpref(c,0,b),13,e)

    m5:=Mov(c,8,e)
    m6:=Mov(c,13,e)

    i30(
    r3=and(and(gt(m1,m2),gt(m3,m4)),gt(m5,m6))
    and(r3,not(aref(r3,1)))
    )

    {@A(120,)@B(60,)}

    Comment


    • #3
      Det här problemet har varit uppe tidigare utan lösning, se början på winning trading tråden. Jag lyckades inte heller få bort orderskurarna när jag blandade in index som extra-objekt i scripten.

      Comment


      • #4
        Orderskurar måste fixas i huvudscriptet, det har egentligen inget med extra objekt att göra. Det vanligaste och ett av de effektivaste sätten är att låta huvudscriptet signalera endast på fullbordade staplar, tex:

        utsignal:=aref(köpsignal,1)

        Comment


        • #5
          Det var det jag gjorde, men när index kom in som extra objekt i annan upplösning slutade filtret fungera.

          Så här såg det ut i slutet på mitt script

          { GRUPP 90 SUMMERING,FILTRERING }
          tr_90=and(and(ok_10,ok_50),ok_60)
          ok_90=and(tr_90,not(aref(tr_90,1)))

          mult(ok_90,10)
          )

          {@A(15,OMX Stock )}

          Comment


          • #6
            Nu har jag bara NAT på kontoret men när jag testar i AT8 och Volvo B 30 min
            10 dagar så får jag fortfarande orderskurar?
            Kan det vara skillnad eller är detta ett litet Autostockmysterie?

            Om man kör med utsignal:=aref(köpsignal,1) skjuts signalen fram till början av nästa period, det är ju inte alltid man vill det!
            Last edited by Hong Kong Ola; 2012-03-20, 18:58.

            Comment


            • #7
              Det är inget mysterium, det är ju beroende av när de olika villkoren löser ut osv. Man kan alltid lägga till Draw()-satser för att studera när olika villkor är sanna resp falska.

              Ett annat sätt att få bort skurar av signaler är ju att spara första signalen i en stapel med tex:

              Retval(signal1,1)

              och låta scriptets output vara:

              signal2=getval(1)

              så låter man cell 1 komma ihåg signalen resten av stapeln.

              Comment


              • #8
                Ursprungligen postat av Rikard Nilsson Visa inlägg
                Det är inget mysterium, det är ju beroende av när de olika villkoren löser ut osv. Man kan alltid lägga till Draw()-satser för att studera när olika villkor är sanna resp falska.

                Ett annat sätt att få bort skurar av signaler är ju att spara första signalen i en stapel med tex:

                Retval(signal1,1)

                och låta scriptets output vara:

                signal2=getval(1)

                så låter man cell 1 komma ihåg signalen resten av stapeln.

                Nu är jag inte riktigt med på vad du menar med ¨beroende av när de olika villkoren o.s.v. ¨.
                Raden tittar ju tillbaka på föregående period och kollar om alla 3 villkoren är uppfyllda. Ska ju bara vara sant eller falsk. Skulle behöva ett förtydligande här.
                Menar du att MA räknar om sig och uppfyller villkoren i efterhand när skurkollen redan är gjord, beroende på hur kommande kurser är? Det som brukar kallas repainting tror jag?

                Om jag ska använda Retval, måste jag då nollställa cellen när skuren är slut eller sker det av sig självt. Du får gärna visa upp hur det skulle se ut helt o hållet med Set- o Getval för att få iväg en order, där har jag lite dålig koll.

                Litet mysterium känns det som ändå men man tänker nog i för raka banor ibland. En indikator går ju att se som en form av mätserie och statistik där svaret är inte alltid exakt detsamma, beroende på vem som tolkar underlaget.

                x
                Last edited by Hong Kong Ola; 2012-03-24, 10:14.

                Comment


                • #9
                  Ursprungligen postat av Hong Kong Ola Visa inlägg
                  Nu är jag inte riktigt med på vad du menar med ¨beroende av när de olika villkoren o.s.v. ¨.
                  Raden tittar ju tillbaka på föregående period och kollar om alla 3 villkoren är uppfyllda. Ska ju bara vara sant eller falsk. Skulle behöva ett förtydligande här.
                  Menar du att MA räknar om sig och uppfyller villkoren i efterhand när skurkollen redan är gjord, beroende på hur kommande kurser är? Det som brukar kallas repainting tror jag?

                  Om jag ska använda Retval, måste jag då nollställa cellen när skuren är slut eller sker det av sig självt. Du får gärna visa upp hur det skulle se ut helt o hållet med Set- o Getval för att få iväg en order, där har jag lite dålig koll.

                  Litet mysterium känns det som ändå men man tänker nog i för raka banor ibland. En indikator går ju att se som en form av mätserie och statistik där svaret är inte alltid exakt detsamma, beroende på vem som tolkar underlaget.

                  x
                  Skulle nog behöva en förklaring här då jag som sagt inte förstår.

                  Kör jag 30 min+60min+90 min kan jag väl bara få signal om alla 3 tiderna är sanna samtidigt?

                  När signalerar t.ex 90 min sant, kan det vara under hela perioden eller kollar den enbart efter varje 90 min o säger sant eller falskt just då .

                  Kan villkor bli sanna i efterhand och är det därför släcka orderskurar med AREF inte funkar?

                  Vore snällt om ngn kunde utgå från ett enkelt script t.ex
                  signal1:=gt(c,mov(c,5,s))
                  och visar en komplett modell enligt Rikards förslag hur man använder Retval o Getval för att lösa orderskurar. Jag är inte riktigt med på hur man lagrar signalen, hur man hämtar den(är det en egen sl) där det sker) o hur man ev nollställer eller inte
                  Last edited by Hong Kong Ola; 2012-03-26, 08:50.

                  Comment


                  • #10
                    Provar igen med mitt orderskurproblem.
                    Är det ngn som kan visa hur jag får bort orderskurar i scriptet nedan på ett smidigt sätt. Är jag tvungen att läsa in värde m1....m6 till varsin cell med Retval? För att sedan göra GT kollen innanför prefixet.
                    Eller kan jag läsa in sant eller falskt med Retval?
                    Känns som om jag annars kommer förbruka hela parantesdjupet direkt.

                    m1:=Mov(cmpref(c,0,a),8,e)
                    m2:=Mov(cmpref(c,0,a),13,e)

                    m3:=Mov(cmpref(c,0,b),8,e)
                    m4:=Mov(cmpref(c,0,b),13,e)

                    m5:=Mov(c,8,e)
                    m6:=Mov(c,13,e)

                    i30(
                    r3=and(and(gt(m1,m2),gt(m3,m4)),gt(m5,m6))
                    and(r3,not(aref(r3,1)))
                    )

                    {@A(120,)@B(60,)}

                    Comment


                    • #11
                      Jag vet inte exakt vad du menar med orderskurar. Kan det vara så enkelt att r3 i nuvarande stapel blir falskt tex ett par minuter för att sedan bli sant, samtidigt som r3 var falskt vid utången av förra stapeln. Då kan det bli flera signaler i nuvrande period. Om ditt problem är mer komplicerat kan du förbigå detta inlägg.

                      Comment

                      Working...
                      X