Allmänt meddelande

Collapse
No announcement yet.

Två upplösningar ett script

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

  • Två upplösningar ett script

    Hej,

    Jag försöker implementera "key reversal day" från den gamla boken "Boken om Trading". De flesta av kriterierna appliceras i dagsupplösning men jag vill kunna köpa i intradagsupplösning om det sista kriteriet uppfylls. Jag försöker lösa det med en i1() parentes och ett externt objekt i dagsupplösning (som är samma objekt). Jag tror att jag kanske har fått det att fungera men det är svårt att verifiera. När jag la till i1() parentesen försvann "debuggutskrifterna" i a-grafen. Finns det något sätt att få tillbaka dessa? Skulle det fungera om jag gjorde en ordermodell med två script där det andra anropas om det första returnerar true?

    /hrudelius

    { Key Reversal Day }

    {Kursen måste ha rekylerat åtminstone en stapel}
    rekyl=GT(REF(C,1),C)
    draw(rekyl,4,baa)

    {Stängingen i key reversal-stapeln måste lämnas antingen över}
    {20- och 50-dagars glidande medeltal eller med ett ADX över 30 samt}
    { +DI större än -DI. }
    del1=AND(GT(C,MOV(REF(C,1),50,S)),GT(C,MOV(REF(C,1),50,S)))
    adx1=MOV(DX(13),13,e)
    del2=AND(GT(adx1,30),GT(PDI(13),MDI(13)))
    krit2=OR(del1,del2)
    draw(krit2,5,raa)
    del3=AND(rekyl,krit2)

    draw(del3,6,caa)

    {Köp sker dagen efter om den högsta nivån i key reversal-stapeln passeras}
    i1(
    köp=GT(C,CMPREF(H,1,A))
    )

    draw(köp,7,yaa)
    AND(del3,köp)

    {@A(0,SAND )}
    Yondu

  • #2
    Några saker att tänka på:

    1. Även om scriptet är i dagsupplösning så går det att handla intraday. Det som händer är att hittills inkommen information används. För att handla tex i slutet av dagen kan tidsvillkor användas eller om man vill handla dagen efter kan aref användas.
    2. Används ett intradayprefix ska det inte finnas något efter sista parentesen. UNDANTAG för extraobjekt som ska ligga sist.
    3.Så fort man börjar använda minnesreferenser så måste man fortstätta med det i resten av scriptet. För att undvika fel är en bra vana att använda tilldelade namn före intradayprefixet och minnesreferenser innanför.

    var1:=xxx
    var2:=xxx
    i15(
    var3=xxx
    mult(var3,10)
    )

    Comment


    • #3
      Tack för svar Henric, vet inte om jag förklarade frågan tillräckligt tydligt. Hur kan man visa flaggor i diagrammet för kriterier på dagsupplösning när scriptet samtidigt jobbar med intraday?

      Till ditt svar: "om man vill handla dagen efter kan aref användas" - kan du visa ett exempel på hur detta skulle kunna se ut?

      "3.Så fort man börjar använda minnesreferenser så måste man fortstätta med det i resten av scriptet. För att undvika fel är en bra vana att använda tilldelade namn före intradayprefixet och minnesreferenser innanför."

      Ser inte att jag hade brutit mot den regeln, finns det något som hindrar att man använder minnesreferenser hela tiden (förutom vid ren tilldelning av variabler)?
      Yondu

      Comment


      • #4
        i1(
        dagskurs=cmpref(c,0,A)
        test1=cross(mov(dagskurs,3,s),mov(dagskurs,10,s))
        draw(mov(dagskurs,3,s),3,rqb)
        draw(mov(dagskurs,10,s),4,gqb)
        draw(mult(test1,15),5,ysbF)
        mult(aref(test1,1),10) {handla dagen efter}
        )

        {@A(0,)}


        Minnesreferenser: Det var bara ett generellt råd. Det går bra att använda minnesreferenser hela tiden förutom ren tilldelning av värden, tex var1:=10
        Last edited by Henric; 2015-03-10, 18:43.

        Comment


        • #5
          Det är bara bra att använda minnesreferenser så mycket som möjligt, det går snabbare att exekvera samt blir enklare att göra till rutin kanske. Enda gången man måste använda := är när man tilldelar numeriska värden. Viktigt att komma ihåg dock är att intradayprefix måste omsluta samtliga minnesreferenser.

          Scriptet körs i en upplösning som intradayprefixet bestämmer, men extra objekt körs i den upplösning de definierats med. Denna måste vara samma eller lägre (alltså "sämre") än scriptets egenupplösning. Det går alltså fint att köra script i 5-min upplösning och använda extra objekt i dagsupplösning, och kanske något i 60-min osv. Du kan ha upp till tre extra objekt, alla i samma eller olika upplösning/instrument. Det gör att man har tillgång till fyra olika upplösningar i ett och samma script.

          Comment


          • #6
            Ok, jag tror jag fattar. Men jag lyckas fortfarande inte få programmet att rita grafer i dagsupplösning. Jag provade koden som Henric postade men den ritar inga grafer i dagsupplösning, bara intraday, kanske jag klickar fel boxar i scriptdialogen?

            Däremot lyckades jag krascha autotrader en massa gånger genom att zooma ut och in i diagrammet
            Yondu

            Comment


            • #7
              Ursprungligen postat av hrudelius Visa inlägg
              Ok, jag tror jag fattar. Men jag lyckas fortfarande inte få programmet att rita grafer i dagsupplösning. Jag provade koden som Henric postade men den ritar inga grafer i dagsupplösning, bara intraday, kanske jag klickar fel boxar i scriptdialogen?

              Däremot lyckades jag krascha autotrader en massa gånger genom att zooma ut och in i diagrammet
              Om scriptet är intraday ska vål diagrammet också vara intrady.

              Ursprungligen postat av Rikard Nilsson Visa inlägg
              Denna måste vara samma eller lägre (alltså "sämre") än scriptets egenupplösning. Det går alltså fint att köra script i 5-min upplösning och använda extra objekt i dagsupplösning, och kanske något i 60-min osv. Du kan ha upp till tre extra objekt, alla i samma eller olika upplösning/instrument. Det gör att man har tillgång till fyra olika upplösningar i ett och samma script.
              Jag har också följt detta. I bland kanske man vill ta in högre upplösning(lägre prefix) som extraobjekt. Gäller det generellt eller bara i diagram? Jag provade i simulatorn och det verkar fungera?

              Comment


              • #8
                Det finns ett kryssalternativ för ritning i dagsdiagram och ett annat för ritning i intraday. Kolla så att båda är bockade (om du vill att scriptet ska rita i båda varianterna).

                Om det kraschar när du zoomar in och ut misstänker jag att det saknas intradaydata för hela perioden du zoomade? Den ska iofs inte krascha ändå, men om det är en ohanterad exception som händer i det läget tror jag det har med kursdatat att göra.

                Det här med finare upplösning i extra objekt än scriptets egenupplösning är kanske ändrat? Mer än jag är säker på i så fall, det har alltid varit så tidigare att man måste ha "bäst upplösning" i scriptet. Men vi ändrade ju så att det fungerar i Kalkylforskaren att köra extra objekt i intradayupplösning så det kanske fungerar även generellt nu i så fall. Får jag kolla.

                Comment


                • #9
                  Båda kryssalternativen är bockade men det är först när jag ställer in diagrammet på 5 eller 1 minut som jag ser moving-average-kurvorna (jag kör med Henrics kod ovan).

                  /hrudelius
                  Yondu

                  Comment


                  • #10
                    Ah, jag ser vad du menar, provade scriptet själv och får samma fenomen. Det är en prestanda-historia där ritningen blankar ut tidigare dagar i EOD-upplösning. Den rutinen verkar vara lite väl restriktivt inställd, vi noterar det och undersöker om vi kan lösa det.

                    Comment

                    Working...
                    X