Allmänt meddelande

Collapse
No announcement yet.

Cmpref innehåller fel värden jämfört med kursdata

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

  • Cmpref innehåller fel värden jämfört med kursdata

    Hej,

    Håller på att skriva kod så att köpscriptet inte köper under första timmen vid gap upp alt enbart vid vissa villkor.

    Jag har hittills skrivit kod som bör hindra köp inom första timmen, men sedan när jag testkör den i analysbänken och visar värden från cmpref i extrainformation-fälten så visar de helt andra värden än de verkliga (som visas i grafen och i Hitta Kursvinnare).

    Den 29/7 så är öppningskursen runt 1596 men dayO0 nedan visar 1587. Stängningskursen den 28/7 var runt 1588 men dayC1 nedan visar 1586

    Det konstiga är att grafiskt så visas isGap nedan korrekt - den markerar i diagrammet de dagar då gap har skett i öppningen, men värdemässigt i koden blir det helt fel. Vad göra?

    Jag använder även andra värden via cmpref i scripten och nu blir jag orolig att även dessa inte är helt korrekta

    -----------------

    GAP:=0.005
    EARLIEST:=60

    minsAfterMarketOpen=mult(1440,sub(frac(date()),market(o)))

    dayC1=cmpref(C,1,A)
    dayO0=cmpref(O,0,A)
    gapOpen=div(sub(dayO0,dayC1),dayC1)
    isGap=gt(gapOpen,GAP)
    okTimeToBuy=ge(minsAfterMarketOpen,EARLIEST)

    i15(
    ...
    buySignalX=or(not(isGap), and(isGap,okTimeToBuy))
    ...

    )

    {@A(0,OMX Stock )}


    Tack på förhand för svar!

    Hälsar Susanne

  • #2
    Några fel, du har minnesreferenser utanför intradayprefixet, vilket inte är tillåtet.
    Och GAP är delnamn av isGap.


    Jag är inte riktigt med på raden buySignalX=or(not(isGap), and(isGap,okTimeToBuy))

    den blir sann om det inte är gap, eller om det är gap och tiden är korrekt.

    Comment


    • #3
      Jag testade med följande bara för att se att gaps hamnar rätt, och det ser ut att funka.

      GAPlevel:=0.005
      EARLIEST:=60
      i15(
      minsAfterMarketOpen=mult(1440,sub(frac(date()),market(o)))
      dayC1=cmpref(C,1,A)
      dayO0=cmpref(O,0,A)
      gapOpen=div(sub(dayO0,dayC1),dayC1)
      isGap=gt(gapOpen,GAPlevel)
      okTimeToBuy=ge(minsAfterMarketOpen,EARLIEST)
      buySignalX=or(not(isGap),and(isGap,{okTimeToBuy}1))
      mult(isGap,10)
      )

      {@A(0,OMX Stock )}
      Attached Files

      Comment


      • #4
        Tack för snabbt svar och tips. Min egentliga fråga var dock runt värdena på dayC1 och dayO0 som blir fel oavsett var i scriptet de ligger (innanför eller utanför i15)

        När jag lägger med dayC1 och dayO0 i analysbänkens kolumner så får jag fel värden jämfört vad de ska vara (se ovan i första inlägget)

        buySignalX är rätt tolkad :-)

        /Susanne

        Comment


        • #5
          Ok, men kolumnerna visar värdet vid senaste affär, vet inte om det kan bli förra affären beroende på hur scripten exekveras. Om signalerna hamnar rätt även i bänken så stämmer ju värden från cmpref. Och om de ritar rätt i diagrammet tex.

          Comment


          • #6
            Susanne!
            Hur ser scriptet ut som du använder för att lägga i extrakolumnen?
            undrar
            Bertil

            Comment


            • #7
              Jag lägger värdena i globala variabler i slutet av scriptet som jag sedan plockar upp i extrakolumnerna via getgvar(nr).
              buySignal3 är slutsignalen för köp, så om den är sann så sätts bl a de globala variablerna för dayO0 och dayC1.

              DBG3:=500 osv

              i15(
              ...
              ....
              setgvarif(gapOpen,DBG3,buySignal3)
              setgvarif(dayO0,DBG4,buySignal3)
              setgvarif(dayC1,DBG5,buySignal3)
              )

              Jag förstår inte riktigt texten "men kolumnerna visar värdet vid senaste affär". Jag hämtar ju aktuell data via extraobjektet och sparar ner i globala variabler. Ska inte ha något med värdet vid senaste affär att göra...eller? :-)

              /S

              Comment


              • #8
                Värdena visas rätt i grafen enligt kod ifrån scriptet där jag förutom ovanstående kod gör en
                draw(mult(isGap,40),3,gsbf)

                Bifogar dag med gap upp över 0,5% där jag försöker få till att inga köp får göras första timmen (15min per period). Men extraobjektet visar som sagt fel data i analysbänken men grafen visar rätt, dvs att OMXS30 har gjort ett gap upp på mer än 0,5%. Värdet enligt cmpref blir bara 0.07% och isGap blir 0 och därför görs köpet ändå inom första timmen
                Attached Files

                Comment


                • #9
                  Ok, har inte exakt koll just nu om triggerscriptet körs först i bänken och därefter scripten som läser upp värden i extra kolumner. Så borde det ju rimligen vara.

                  Koden som bestämmer tidpunkten använder då alltså gap-testet? Hur ser den raden ut?

                  Comment


                  • #10
                    Du kan prova att ersätta cmpref(o,0,A) med att spara första insamlingen på dagen i en cell(dvs endast engång, kräver även en cell för tid/datumstämpel). Sedan kan du jämföra med diagrammet och samt med cmpref(o,0,A) i en extrakolumn.

                    Comment


                    • #11
                      Vad händer om du lägger cmpref direkt i extra scriptkolumnerna istället för att gå via en global cell?

                      Comment


                      • #12
                        Jag har provat tidigare. Samma värde. Det är kanske samma problem som vi diskuterade en tid tillbaka. Jag vill inte röra till det, men kolla cmpref(o,0,A) den 29/6 då det skiljer rejält med diagrammet.

                        Edit: Kör inte bara en dag för då stämmer det. Det är övergången till ny dag i simulatorn.
                        Last edited by Henric; 2015-08-27, 20:20.

                        Comment


                        • #13
                          Jag gjorde ett g) script och la in som extra kolumn

                          i1(
                          dayO0=cmpref(O,0,A)
                          )

                          {@A(0,OMX Stock )}

                          Jag får öppningskursen 29/7 till 1596.53 vilket är korrekt.

                          Med vänlig hälsning
                          Bertil

                          Comment


                          • #14
                            kolla öppningskursen dagsstaplar i diagrammet.

                            Edit: Sorry Bertil. Jag syftade på 29/6(kör en koll). Den 29/7 stämmer.
                            Last edited by Henric; 2015-08-27, 20:49.

                            Comment


                            • #15
                              Susanne,
                              Blir öppningskursen fel alla dagar i din extrakolumn eller bara 29/7 ?
                              undrar
                              Bertil

                              Comment

                              Working...
                              X