Allmänt meddelande

Collapse
No announcement yet.

Problem med skaling och ritning vid multipla draw kommandon

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

  • Problem med skaling och ritning vid multipla draw kommandon

    Hej,

    Jag har precis börjat lära mig koda med scriptspråket och har fastnat lite på hur funktionen draw fungerar.
    Det jag vill göra är att jämföra hur ATR(14) ser ut mot ATR(100) samt lägga ett bollingerband på en standardavvikelse runt ATR(100). Men jag fastnar på mer grundläggande problem.

    Varför får jag två helt olika grafer med de här olika scriptsnuttarna?
    Kod:
    kort=MULT(DIV(ATR(14),c),100)
    lång=MULT(DIV(ATR(100),c),100)
    dev=MULT(DIV(STDEV(Aref(c,1),100),c),100)
    
    Draw(dev,5,yqa2)
    Draw(lång, 1, bqa)
    Draw(kort,2, rqa)
    Kod:
    kort=MULT(DIV(ATR(14),c),100)
    lång=MULT(DIV(ATR(100),c),100)
    dev=MULT(DIV(STDEV(Aref(c,1),100),c),100)
    
    Draw(lång, 1, bqa)
    Draw(kort,2, rqa)
    Draw(dev,5,yqa2)
    Jag förväntar mig att alla tre linjerna ska ritas ut men antingen ritas bara dev ut elle så ritas kort och lång ut. Har det bara med att göra vilka värden det sista drawkommandot har för värden på sin y-axel? Hur löser man det?
    Under egenskaperna till skriptet har jag att det ska visas i analysområde 1 och att skalingen ska vara automatisk.

    Tidigare försökte jag mig på att använda automatisk skalning emn det verkar bara betyda att y-axeln visar värden från det första "draw" kommandot och att de senare drawkommandona bara ritas ut i analysområdet utan hänsyn till y-axeln. Är det fel eller rätt observerat?

  • #2
    Härligt!

    Nu vet jag inte om det är hela scriptet vi ser, men det måste avslutas korrekt med ett returvärde från en funktion. Tex:

    add(0,dev)

    eller liknande.

    Scriptets "output" är det som bestämmer skalning i scriptdialogen om du väljer ett alternativ där, tex Automatisk.

    Draw-satserna ritar helt oberoende av denna skalning. Men man kan låta första Draw i scriptet rita automatiskt, alltså parameter A istället för Q. Efterföljande Draw kan använda parameter P för Previous, så kör de samma skalning som den första kom fram till.

    Om det två helt olika skalningar du är ute efter är det bättre att dela upp det på två script som ritar i varsitt analysområde.

    Comment


    • #3
      Tasck för svaret.

      Det är inte hela scriptet, det var ungefär så långt jag hann innan jag kom fram till att det var något jag inte förstod. Jag rensade dock upp det för läsbarhetens skull.

      Nu när jag har läst ditt svar och jag har provat en hel del till är det här mer liknande det jag vill åt:
      Kod:
      kort=MULT(DIV(ATR(14),c),100)
      lång=MULT(DIV(ATR(100),c),100)
      dev=STDEV(lång,100)
      
      övre=ADD(lång,dev)
      undre=SUB(lång,dev)
      
      Draw(kort,2, rpa)
      Draw(lång, 1, bpa)
      Draw(övre,3, cpa2)
      Draw(undre,4, ypa2)
      
      add(0,kort)
      Det jag skulle vill ha är en skallning som går mellan den lägsta punkten på alla linjer och den högsta på alla linjer som ritas ut. Nu är den automatisk mellan lägsta och högsta punkt av "output". Nu verkar det fungera ganska bra eftersom variabeln kort är dominerande i volatillitet men om de andra drawkommandona hamnar utanför det intervallet så syns de inte.

      Det hade varit fint att kunna bestämma intervallet på y-axeln själv eller att kunna zooma ut/in även på analysområdet.

      Hur svårt ska det vara att göra en dataserie som output som går mellan (min - 20%) och (max + 20%) av de fyra linjer jag vill rita ut? Skälet till +-20% är för att få lite luft.

      Comment


      • #4
        Du kan alltid multiplicera output från scriptet med 1.2 så blir skalorna 20% större, men rita utan multiplikation inne i scriptet med Draw.

        Comment

        Working...
        X