Allmänt meddelande

Collapse
No announcement yet.

Variabler, parantesdjup och Draw

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

  • Variabler, parantesdjup och Draw

    Hej,
    Jag börjar få kläm på scriptningen i NAT, men har några funderingar kring variabler och parantesdjup.

    Då man mycket snabbt kommer upp i det maximala 10 i parantesdjup har jag försökt plöja forumet på vägar runt detta. (Varför ens ha en gräns förresten, en modern dator borde klara mycket mer?)

    Ett sätt som jag har förstått funkar är att i stället för att använda ":="-operatorn vid tilldelning så används endast "="-operatorn (s.k. minnesreferenser).

    Dock så vägrar DRAW att fungera vid användning av minnesreferenser. Tex:
    ***********************
    EMA5=MOV(C,5,E)
    Draw(EMA5,2,rqb) {Funkar inte}
    ***********************

    Om jag nu har gjort ett script som ger triggersignaler så måste jag ju på något sätt backtesta detta. Det enda sätt jag känner till är att titta på flaggor/rita kurvor med DRAW.

    Så min fråga är alltså: Hur kan jag se att mitt script fungerar som det ska, utan att komma upp i max parantesdjup?
    Ungefär såhär:

    ok1:=scriptDel1
    ok2:=AND(scriptDel2,ok1)
    .
    .
    .
    ok_42:=AND(scriptDel42,ok_41)
    DRAW(ok_42,1,gaa) {Rita att min triggersignal är okej}

  • #2
    Kul att du börjar komma in i det!

    Man kan se i syntaxkontrollen hur mycket parentesdjup som används. Om det slår i taket får man flytta ner någon eller några tilldelade namn (alltså := ) till den punkt där minnesreferenserna börjar användas. (endast = )

    När man väl börjat använda minnesrefar i ett script måste man fortsätta på alla raderna nedåt.

    Min gissning varför Draw inte funkar är att du kanske inte har några tilldelade namn ovanför alls? Eller hur ser scriptet ut i sin helhet?

    Om man vill använda Draw att rita flaggor kan man göra enligt följande:

    ok_42:=AND(scriptDel42,ok_41)
    Draw(mult(op_42,20),2,gsaF)

    så ritas flaggor med 20% höjd i området Analys 1. Tips: använd inte cell 0 och 1 till Draw eftersom dessa är reserverade för backtester.



    /Rikard

    Comment


    • #3
      Cash

      En annan fråga, helt frikopplad från min förra är:
      Funktionen Cash(N) verkar bara ge noll (Eller Cash() eller Cash(T)). Jag ser mitt saldo uppe i vänstra hörnet rätt, men funktionen verkar inte göra vad jag tror. Gör jag fel, eller hur ser jag mitt nuvarande saldo på nordnet-kontot?
      Jag vill givetvis använda detta i mitt Antal-script.

      Comment


      • #4
        Cash(N) returnerar värdet motsvarande Tillgängligt att handla för, dvs inkl ev krediter osv.

        Om du får noll gissar jag att scriptet du använder är anslutet till fel konto? Det visas vilket konto det är kopplat på om du klickar upp scriptdialogen. Om det är fel kan du koppla bort scriptet, byta aktivt konto i droplisten i verktygsfältet överst och ansluta scriptet igen.

        Comment


        • #5
          Cash

          Jag fick minnesreferenserna att funka nu. Det var nog problemet med variabelnamn som gjorde att scriptet inte gjorde riktigt vad jag trodde. Draw() är inte speciellt förlåtande utan det visar ingenting alls om där är minsta fel.

          När det kommer till Cash(n) så kanske det returnerar något värde, utan att jag kan se det? Det går inte att plotta med Draw (blir inte ens en noll-linje), och om jag skriver Cash(n) i en kolumn i kalkylutforskaren så visar den 0.00. Det har kanske något att göra med att det f.n. är efter stängningstid?

          Vad menar du för övrigt med scriptdialogen? Antar att det är "scriptdatabasen" och den rutan jag får upp du menar, eller finns det fler hemliga funktioner jag hittills har missat?

          Comment

          Working...
          X