Allmänt meddelande

Collapse
No announcement yet.

Nybörjarhjälp till script

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

  • #16
    Det är inte så bökigt:


    low1:=Lt(LlvBars(L,5),1)

    lowL:=Find(low1,10,L,1)


    raden lowL tar fram L från den period då villkoret low1 var sant första gången tillbaka inom 10 perioder. Eller saxat från Scriptreferensen:

    Exempel: Find(cross(stoch(5),50),100,L,2) Letar upp 2a stället där stochastic korsar 50-nivån, inom 100 perioder, och returnerar Low från samma period.



    Om man lägger in det här i ditt script kan det se ut som:


    low1:=Lt(LlvBars(L,3),1) {testa ny low - minst 3 staplar med fallande Low}
    lowL:=Find(low1,10,L,1)
    lagra1:=Hhv(low1,10) {lagra i 10 perioder}

    rekyl:=Llv(Gt(l,Aref(l,1)),2) {kolla så att L är stigande minst 2 senaste perioderna}
    lagra2:=Hhv(rekyl,8) {lagra i 8 perioder}

    low2:=Lt(L,lowL) {testa ny low jämfört med förra gången low1 var sant}

    signal:=And(And(lagra1,lagra2),low2)
    Mult(signal,20)


    Här är det viktigt att labba med hur många perioder olika saker ska lagras för att få det resultat man vill. Man kan också tänka sig att ändra ettan i villkoret för Find så att man testar nivån för andra tillfället bakåt som villkoret senast var sant.

    Comment


    • #17
      Något måste vara fel...

      Även om jag klistrar in exakt det du skrivit får jag aldrig någon signal. Det är low2 som aldrig verkar bli sann. Har hittat tillfällen då det skulle blivit sann men där det inte funkat.

      Kommer ingen vart i mitt felsökande...
      "Nothing noble is done without risk." - André Gide

      Comment


      • #18
        Prova att ändra raden

        lowL:=Find(low1,10,L,1)


        till

        lowL:=Find(low1,10,L,2)

        så testas nivån för andra tillfället bakåt när low1 var sant. Det kan ju vara så att low1 blir sant i "nuvarande" period och då är det ju L från andra gången tillbaka som ska användas.

        Men om vi kan sätta upp regler för hur många perioder bakåt som rekylen tex får vara uppfylld och hur många perioder man "har på sig" att uppfylla nivåerna blir det enklare.

        Det kan mycket väl vara så att den första varianten är bättre i det här läget.

        Comment


        • #19
          Ok!
          1. ny 20-perioders lägsta
          2. rekyl upp 4 perioder
          3. ny low under 1
          "Nothing noble is done without risk." - André Gide

          Comment


          • #20
            1. ny 20-perioders lägsta - enkelt
            2. rekyl upp 4 perioder - ska det alltid vara exakt 4 perioder eller max4? min4?
            3. ny low under 1 - nivån från punk 1 som jag tolkat det

            Comment


            • #21
              2. minst 4
              3. exakt, nu bryter den igenom den low som sattes i punkt 1
              "Nothing noble is done without risk." - André Gide

              Comment


              • #22
                Då ska vi se:

                low1:=Lt(LlvBars(L,20),1)
                lowL:=Find(low1,10,L,2)
                { low1 tar fram lägsta L på 20 perioder och lowL tar fram nivån på lägsta L }

                rekyl:=Hhv(Gt(HhvBars(low1,10),4),2)
                { rekyl blir sant om ingen L är lägre än low1 under minst 4 perioder }

                lägre:=Lt(l,lowL)
                signal:=And(And(low1,rekyl),lägre)
                Mult(signal,20)


                Notera HHv-satsen på raden rekyl. Den behövs för att komma ihåg att villkoret varit sant. Precis när L skär igenom low1-nivån blir ju rekyl-villkoret osant, men Hhv-satsen kommer ihåg att det var sant förra perioden, och det kan användas som test.

                Attached Files

                Comment

                Working...
                X