Allmänt meddelande

Collapse
No announcement yet.

Adaptive Ma

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

  • #16
    Det finns ett sätt som inte är så vackert. Antingen väntar man så länge tills AMA är synkat eller så går det att använda en seed, dvs sätter initialt en global cell till 0. Cellen ändras sedan tillvärde = ingen seed.

    period:=22

    direction:=abs(sub(C,ref(C,period)))
    diff:=abs(sub(C,ref(C,1)))
    volatility:=sum(diff,period)
    ratio:=div(direction,volatility)

    fast:=div(2,add(2,1))
    slow:=div(2,add(30,1))

    i30(
    smoothing= power(add(mult(ratio,sub(fast,slow)),slow),2)
    AMA=add(mult(smoothing,sub(C,getgvar(692))),getgvar(692))
    stiger=gt(ama,GetGvar(692))
    SetGvarIf(AMA,692,gt(GetGvar(693),0))
    SetGvarIf(ratio,692,le(GETgvar(693),0))
    {sätt till ett eller noll=seed}
    SetGvarIf(0,693,1)
    draw(ama,2,yqb)
    draw(mult(stiger,25),5,gsbF)

    add(0,0)
    )

    Comment


    • #17
      Kommer detta verkligen fungera? Utan att ha testat så ser det ut som om variabel 693 aldrig kommer ha något annat värde än 0.

      Comment


      • #18
        Seeden sätts manuellt först till noll och sedan ett. Detta skulle kunna göras automatiskt med tex datum. Det var mest för att visa.

        Comment


        • #19
          Nu sticker jag ut hakan lite och påstår att en lösning med globala celler på det här problemet aldrig kommer att fungera live.

          Vid diagramkörning/ritning däremot fungerar det bra, men det är ju två helt skilda saker.

          Comment


          • #20
            Nja, men varför skulle det inte fungera? Provat?

            Comment


            • #21
              Det beror ju på vad man menar med "inte fungerar"...

              I live körs ju scripten var 5:e sekund varvid en period bakåt där är just 5 sekunder.

              I diagramritningen däremot körs ju scripten en gång per stapel, så en period bakåt där är ju 30 minuter om man kör i den upplösningen. Detta gör att det handlar om två skilda AMA-kurvor i live- och diagramkörningen. Detta problem skulle man ev. kunna lösa med en timer, som gör att live lagrar värdet var 30:e minut.

              Det största problemet dock, är att under livekörningen bildar AMA ingen dataseerie utan där har man två eller högst tre momentana värden att spela med. Detta gör att om man i live använder sig av villkor som pekar flera perioder bakåt på AMA, exempelvis hhv(), roc() m.fl. kommer dessa inte att exekveras rätt.
              I diagramkörningen däremot bildar minnesreferensen AMA en dataserie eftersom hela diagramritnigen körs i ett svep, och där fungerar flerperiodersvillor.

              Flerperiodsvillkor måste naturligtvis fungera annars går AMA inte att använda till något vettigt och det är detta jag menar när jag säger att de globala cellerna inte kommer att fungera live på detta problem.

              Comment


              • #22
                Det vore trevligt om vi fick kunde lägga till den här funktionen till de övriga NAT-funktionerna, den har många fördelar som de andra medelvärdena inte har.

                Comment

                Working...
                X