Allmänt meddelande

Collapse
No announcement yet.

Ingen signal i larmfönstret

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

  • Ingen signal i larmfönstret

    Hej Rikard,
    Jag har en enkel modell som visar någorlunda bra signaler i diagramet.
    Den hämtar signal från OMX30

    price:=cmpref(C,0,A)
    i60(
    .........
    .........
    GT(M1,M2)
    )

    {@A(60,OMX Stock )}


    Tyvärr har jag ingen signal i larmfönstret (för att vara exakt det finns hela tiden en signal - den ändrar sig aldrig) --> se bild 1)
    Förmodligen problemet är kopplat med "animering". När jag kopplar på animering då larmfönstret stämmer med diagramet. --> se bild 2)

    Vad kan man göra för att få signaler i larmfönstret som stämmer med diagramet från bild 1) ?

    Tack på förhand för all hjälp!
    Attached Files
    //Daniel

  • #2
    Det ser ut som att det är det klassiska fenomenet med signal endast i slutminut av en 60-minutersperiod. Du kan prova minutfiltret som finns på flera ställen på forumet:

    tidnu:=Frac(DATE())
    totalt:=Mult(tidnu,1440)
    rest:=Int(Mod(totalt,60))
    tidsignalx:=Ge(rest,59)

    Det ger sant när man befinner sig i sista minuten på en 60-minutersperiod och kan kopplas ihop som ett extra villkor till ditt script. Då fungerar backtestningen om du har "Animering" påslagen.

    Comment


    • #3
      Hej Rikard

      Tack för info.
      Jag har lagt till dit minutfiltret i skriptet. Se nedan.

      price:=cmpref(C,0,A)

      tidnu:=Frac(DATE())
      totalt:=Mult(tidnu,1440)
      rest:=Int(Mod(totalt,60))
      tidsignalx:=Ge(rest,59)

      i1(

      .........
      .........
      AND(GT(M1,M2) , tidsignalx) )
      )

      {@A(60,OMX Stock )}

      ...och som resultat har jag fått samma (fel) signal varje timme. Se bild 3)
      Rätt signal från skriptet skulle vara: Köp kl 9.00 och Sälj kl 15.00 - se bild 4)

      Jag är tacksam för all hjälp...
      Attached Files
      //Daniel

      Comment


      • #4
        Jo, men om det signalerar köp Bull kl 09:59 så är det ju något annat fel i scriptet. Det bildas ju en signal som larmar, så något i scriptet måste vara sant kl 09:59. Det som minutfiltret gör om det kopplas med AND till resten av scriptet är att bara släppa igenom signal i sista minuten varje timme, vilket verkar fungera.

        Så du behöver kolla köpscriptet i detalj och se varför det larmar hela tiden.

        Comment


        • #5
          Hej Rikard,
          Min tolkning är att "med animering" (se bild 2 i föregående inlägg) man har hela tiden signal köp.
          Så när jag lägger till minutfiltret få jag köp varje timme.
          ...............................................................
          Det ser ut som ett generell problem, oberoende av skriptet.
          Jag har också gjort test på ett enklare skript med eller utan "animering", med samma resultat (se nedan) - Med animering skriptet vill köpa hela tiden...
          =============================
          1) Variant utan filter

          price:=Cmpref(C,0,A)

          p1:=1.5 {opt(1.4,1.6, 0.1)}
          p2:=2 {opt(1.8,2.2,0.1)}

          i60(
          Mx1=MOV(price,p1,E)
          Mx2=MOV(price,p2,E)

          draw(MULT(Mx1,0.21) ,2,gqb)
          draw(MULT(Mx2, 0.21),3,rqb)

          GT(Mx1,Mx2)
          )

          {@A(60,OMX Stock )}

          ============================
          2) Variant med filter

          price:=Cmpref(C,0,A)

          p1:=1.5 {opt(1.4,1.6, 0.1)}
          p2:=2 {opt(1.8,2.2,0.1)}

          tidnu:=Frac(DATE())
          totalt:=Mult(tidnu,1440)
          rest:=Int(Mod(totalt,60))
          tidsignalx:=Ge(rest,59)

          i1(
          Mx1=MOV(price,p1,E)
          Mx2=MOV(price,p2,E)

          draw(MULT(Mx1,0.21) ,2,gqb)
          draw(MULT(Mx2, 0.21),3,rqb)

          AND(GT(M1,M2) , tidsignalx) )

          )

          {@A(60,OMX Stock )}

          //Daniel

          Comment


          • #6
            Hmm, en tanke som slog mig är att variabelnamnet Mx skulle kunna förväxlas med funktionen MX av scriptkompilatorn. Prova att ändra till ett annat variabelnamn som inte är samma som en funktion, det kan vara så enkelt.

            Comment


            • #7
              Tack för tipset. Man måste komma ihåg om sådana detaljer.
              ...jag har ändrad Mx1, Mx2 till MA1, MA2 ..men jag ser ingen påverkan.
              Jag kan göra "live" test imorgon, men förventar mig samma problem...
              ==============================
              Bara att komma ihåg - Det som jag använder nu är Larm --> Autobevakat
              ==============================
              Allt handlar om att se i larmfönstret precis samma signal som i diagramet.
              Om scriptet skapar signalstappel skulle jag vilja ser samma signal i larmfönster...
              ...livet skulle vara då mycket enklare...
              //Daniel

              Comment


              • #8
                Jag har kört skriptet med tidsfilter (se förre inläg - 2) Variant med filter - MA1, MA2 istället av Mx1, Mx2), utan "animering", live.
                Inga signaler alls. Se bifogat bild 5)
                Det är kanske ingen övarraskning då tidsfiltret måste förmodlingen köras med "animering". ...men jag ville bara prova olika konfigurationer...
                ==========================================
                Har någon av er lyckats att få rätt signal i larmfönstret (och samtidig i orderfönstret)? Har ni något enkelt exempel som man kan använda som referens?
                Tack för info!
                Attached Files
                //Daniel

                Comment


                • #9
                  Jag vet inte om det är detta du vill se. Gjorde om scriptet lite. test6 visar köpsingal och test7 säljsignal. Jag brukar rita ut signalerna med gsbF och rsbF.

                  test1:=Cmpref(C,0,A)
                  test2:=1.5
                  test3:=2

                  i60(
                  test4=MOV(test1,test2,E)
                  test5=MOV(test1,test3,E)

                  test6=and(cross(test4,test5),gt(test4,test5))
                  test7=and(cross(test4,test5),lt(test4,test5))
                  draw(MULT(test6,100),2,gsbF)
                  draw(MULT(test7,100),3,rsbF)
                  )

                  {@A(60,OMX Stock )}

                  Comment


                  • #10
                    glömde bifoga fil

                    Jag vet inte om det är detta du vill se. Gjorde om scriptet lite. test6 visar köpsingal och test7 säljsignal. Jag brukar rita ut signalerna med gsbF och rsbF.

                    test1:=Cmpref(C,0,A)
                    test2:=1.5
                    test3:=2

                    i60(
                    test4=MOV(test1,test2,E)
                    test5=MOV(test1,test3,E)

                    test6=and(cross(test4,test5),gt(test4,test5))
                    test7=and(cross(test4,test5),lt(test4,test5))
                    draw(MULT(test6,100),2,gsbF)
                    draw(MULT(test7,100),3,rsbF)
                    )

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

                    Comment


                    • #11
                      Hej Seadragon,

                      När jag tittade i mitt test scriptet igen hittade jag ett fel i sista raden. Det skulle vara självklart GT(MA1,MA2) inte GT(M1,M2).

                      Jag ska provtesta litte imorgon, vi ska se om vi lyckats.

                      Tack för ditt stöd i min kämp med AT8..
                      Säg bara till om jag kan också hjälpa Dig på något sätt..
                      Last edited by dw2002; 2010-06-02, 21:31.
                      //Daniel

                      Comment


                      • #12
                        A. TEST SCRIPT 1

                        1) variant utan filter

                        price:=Cmpref(C,0,A)

                        p1:=1.5 {opt(1.4,1.6, 0.1)}
                        p2:=2 {opt(1.8,2.2,0.1)}

                        i60(
                        MA1=MOV(price,p1,E)
                        MA2=MOV(price,p2,E)

                        draw(MULT(MA1,0.21) ,2,gqb)
                        draw(MULT(MA2, 0.21),3,rqb)

                        GT(MA1,MA2)
                        )

                        {@A(60,OMX Stock )}

                        ============================
                        2-1) Variant med filter

                        price:=Cmpref(C,0,A)

                        p1:=1.5 {opt(1.4,1.6, 0.1)}
                        p2:=2 {opt(1.8,2.2,0.1)}

                        tidnu:=Frac(DATE())
                        totalt:=Mult(tidnu,1440)
                        rest:=Int(Mod(totalt,60))
                        tidsignalx:=Ge(rest,59)

                        i1(
                        MA1=MOV(price,p1,E)
                        MA2=MOV(price,p2,E)

                        draw(MULT(MA1,0.21) ,2,gqb)
                        draw(MULT(MA2, 0.21),3,rqb)

                        AND(GT(MA1,MA2) , tidsignalx) )
                        )

                        {@A(60,OMX Stock )}

                        2-2) Variant med filter
                        ………....

                        AND(AND(CROSS(MA1,MA2) , LE(Aref(MA1,1),Aref(MA2,1)) ) , tidsignalx)
                        ………....

                        Se resultat i bifogade filerna.
                        ==========================================================
                        TEST SCRIPT I 2-2) variant med filter - genererar signaler i larmfönstret

                        Tyvärr problemet finns med en annan script. Se nedan:
                        Attached Files
                        //Daniel

                        Comment


                        • #13
                          SCRIPT B

                          1) variant utan tidsfilter

                          Price:=DIV(ADD(cmpref(H,0,A),cmpref(L,0,A)),2)
                          i60(
                          ……………….
                          ………………
                          GT(MA1,MA2) {för sälj respektiv LT(MA1, MA2) }
                          )

                          {@A(60,OMX Stock )}


                          2) Variant med tidsfilter

                          Price:=DIV(ADD(cmpref(H,0,A),cmpref(L,0,A)),2)

                          tidnu:=Frac(DATE())
                          totalt:=Mult(tidnu,1440)
                          rest:=Int(Mod(totalt,60))
                          tidsignalx:=Ge(rest,59)

                          i60(
                          ……………….
                          ………………
                          AND(GT(MA1,MA2), tidsignalx)
                          {för sälj respektiv AND(LT(MA1,MA2), tidsignalx) }
                          )

                          {@A(60,OMX Stock )}

                          3) Variant med globalavariabler – part 1

                          Price:=DIV(ADD(cmpref(H,0,A),cmpref(L,0,A)),2)

                          i60(
                          ……………….
                          ………………
                          IF ( GT(MA1,MA2) , SetGvarif(1 , 101, 1) , SetGvarif(0 , 101, 1) )
                          ………………
                          )

                          3) Variant med globalavariabler – part 2

                          i10(
                          EQV(GetGvar(101), 1 ) {för sälj respektiv EQV(GetGvar(101), 0 ) }
                          )


                          =============================================
                          Skript B visar bra resultat i diagram fönstret (se bild01).

                          Tyvärr man kan inte få fram korrekt signal i larmfönstret.
                          Om man kör med ”animera dagskurser” påslagen få man hela tiden signal Sälj oberoende vad som händer på diagramet.

                          Jag provade olika konfigurationer:
                          - med animering och tidsfilter (Skript 2)
                          - med globala variabler (Skript 3 - part 1 utan animering & part 2 med animering)

                          …tyvärr utan succe.

                          Skript 2 med animering och tidsfilter visar hela tiden Sälj (i det här faltet varje timme)
                          Skript 3 med Globala variabler visar Köp hela tiden (i det här falet början på dagen kl 9.00) – se bifogat bild02

                          HJÄLP!!!
                          Attached Files
                          //Daniel

                          Comment


                          • #14
                            Enligt min erfarenhet det enda sättet att få fram signaler i larmfönstret (eller i orderfönstret) är att använda globala variabler:
                            1) Ett skript genererar signaler och skickar de till minnescell med ”Setgvarif”.
                            2) Ett annat skript hämtar data från minnescell med ”GetGvar” och genererar signal.
                            //Daniel

                            Comment


                            • #15
                              Vi kan gärna ta en titt via LogMeIn igen och se om vi kan få fram signalerna direkt från scriptet. Det ska fungera.

                              Comment

                              Working...
                              X