Allmänt meddelande

Collapse
No announcement yet.

Felaktiga signaler vid simulering.

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

  • #61
    Två dagar som jag testar mot är 2014-10-16 och 2015-01-15, sänker jag kraven för en hammer så blir det signal lite andra dagar, en del korrekta, en del helt felaktiga. Kan det vara kursdatan/avslut som blir felaktigt för vissa dagar när man kör simulatorn men som visas rätt i grafen? Isåfall är det ju svårt att lita på simuleringarna.

    Comment


    • #62
      Det intressanta är att se hur dessa två dagar ser ut vid den tidpunkt då du testar villkoren för hammer. Om det är runt 17:24 så är det ju 6 minuter kvar tills index har fullbordat dagsstapeln, och då är det inte längre lika säkert att du har en hammer. Det är lätt att låta sig luras av dagsstaplarnas utseende i efterhand. Men kolla intradaydatat för den dagen och se om det verkligen är en hammer vid tiden du testar.

      Comment


      • #63
        Jo, bägge dessa dagar är hammers när jag testar. Har nu för typ 5e gången raderat min kursdatabas och satt på nedladdning 3000dgr bakåt.

        Menar du på allvar Rikard att man kan lita på O,L,H på dagens stapel i dagsupplösning? Vilket tror du fungerar bäst? Ett script utan intradagsprefix som helt enkelt hämtar t.ex. O eller att använda sig av extraobjekt i dagsupplösning och hämta via cmpref(O,0,A)?
        Jag känner att jag får väldigt konstiga resultat när jag gör på bägge sätten. Därför försöker jag själv via globala lagra denna informationen. Men det fungerar inte riktigt bra det heller. Kan det vara kursdatan som ställer till det?

        Kan inte någon testa den uträkningen av hammer jag la ut och se om ni får signal på ovanstående datum, och dessutom INTE signal på dagar som inte är hammers.

        Nu är det inte bara för hammers jag använder mig av dessa, men jag använder mig av hammern för att kontrollera så att värdena fungerar, annars är de ju fel i andra sammanhang där de används också.

        /Erik

        Comment


        • #64
          Har nu hämtat hem ny kursdata. Om man däremot kollar på 2015-01-15 så ser den ganska kass ut på slutet av dagen. Kan det vara det som gör att mina script inte ger signal? Det är ju egentligen ganska tråkigt att man inte kan lita på simuleringarna. Man får ju starta en modell nästan i blindo och hoppas det fungerar live. När man då kör lite längre modeller så kan det ju ta åratal innan man vet om det fungerar eller inte. /Erik

          Comment


          • #65
            Det kan ju vara knas med datat den dagen helt enkelt. I så fall förklarar det ju varför dina script inte ger signal.

            Comment


            • #66
              Ursprungligen postat av Rikard Nilsson Visa inlägg
              Det kan ju vara knas med datat den dagen helt enkelt. I så fall förklarar det ju varför dina script inte ger signal.
              Jo, fast t.ex. 16/10-14 ser helt ok ut i grafen men ger heller ingen signal. Dessutom kommer signal vissa dagar där det stigit hela dagen och därmed inte kvalificerar för att vara en Hammer, jag har dock tyckt mig kunna se att dessa dagarna har det öppnat ganska mycket nedåt. Det gör ju isåfall om dagens open får gårdagens Close som värde så blir det ju en hammer. Jag läser ju av open-kursen vid 17:23 så det borde inte ha att göra med att jag läser av den för tidigt på dagen heller. Däremot vill jag gärna kunna läsa av den direkt efter öppning också.

              Kan inte du testa med den koden jag bifogade för några meddelande sedan att göra en enkel ordermodell som köper vid stängning på hammer och sedan säljer typ efter 20p uppgång eller något bara så att den kommer ur, sedan simulerar du några år bakåt och se hur signalerna kommer. Eventuellt kanske du vill skriva en egen hammerberäknare så som du anser att det borde fungera.

              /Erik

              Comment


              • #67
                Du kan logga kursen som används genom att skriva ett litet script som returnerar värdet i cellen du lagrar open i, och välja in det scriptet som dn egen kolumn i Analyzern. Då får du upp den kolumnen i resultatlistan och kan se vilken kurs det är vid varje signaltillfälle.

                Comment


                • #68
                  Du kan logga som Rikard skriver. Det är bara då du vet exakt vad som händer. Cellerna som skriver till hi och low kanske också behöver en synktest? Generellt kan det bli strul då den nya dagen ännu inte fått någon insamling och close by default får gårdagenskurs.

                  Comment


                  • #69
                    Jag har också en modell som jag körde ett tag och sedan avbröt då kurserna inte blir synkade. Tänkte ta tag i detta. Jag har modifierat scriptet i tidigare inlägg. Jag har inte gjort några tester. E-rik, du kan kolla om det fungerar för dig.



                    hammer_längdkrav:=1.5
                    hammer_öppn:=2.7
                    hammer_stäng:=2.7

                    i1(
                    {Hämtar öppningskursen och skriver i Gvar129}
                    intra_igår=find(gt(frac(date()),0.5),200,c,1)
                    öpp_dagsstapel1=and(not(eqv(cmpref(o,0,A),intra_igår)),eqv(int(d),int(date())))
                    öpp_dagsstapel2=and(öpp_dagsstapel1,gt(int(d),int(GetGvar(130))))
                    SetGvarIf(d,130,öpp_dagsstapel2) {används för att bara ge ett värde}
                    SetGvarIf(c,129,öpp_dagsstapel2)

                    Sättvärden=and(eqv(int(d),int(GetGvar(130))),eqv(int(d),int(date())))

                    {Beräknar dagshögsta}
                    dagshögsta=or(öpp_dagsstapel2,and(Sättvärden,gt(c,GetGvar(137))))
                    SetGvarIf(c,137,dagshögsta)

                    {Beräknar dagslägsta}
                    dagslägsta=or(öpp_dagsstapel2,and(Sättvärden,lt(c,GetGvar(138))))
                    SetGvarIf(c,138,dagslägsta)

                    {Beräknar ifall vi har en hammer-formation}
                    hammer_higho=gt(GETGvar(129),sub(dagshögsta,div(sub(dagshögsta,dagslägsta),hammer_öppn)))
                    hammer_highc=gt(cmpref(c,0,a),sub(dagshögsta,div(sub(dagshögsta,dagslägsta),hammer_stäng)))
                    hammer_ok=and(hammer_higho,and(hammer_highc,gt(div(sub(dagshögsta,dagslägsta),dagshögsta),div(hammer_längdkrav,100))))


                    SetGvarIf(if(Sättvärden,hammer_ok,0),147,1)

                    add(0,0)
                    )

                    {@A(0,OMX Stock )}

                    Edit: Såg att det kan bli strul om inte feeden kommit igång förrän efter lunch. Vet ej om det hänt och får i så fall hantera det senare.
                    Last edited by Henric; 2015-11-03, 15:54.

                    Comment


                    • #70
                      Ursprungligen postat av Henric Visa inlägg
                      Jag har också en modell som jag körde ett tag och sedan avbröt då kurserna inte blir synkade. Tänkte ta tag i detta. Jag har modifierat scriptet i tidigare inlägg. Jag har inte gjort några tester. E-rik, du kan kolla om det fungerar för dig.



                      hammer_längdkrav:=1.5
                      hammer_öppn:=2.7
                      hammer_stäng:=2.7

                      i1(
                      {Hämtar öppningskursen och skriver i Gvar129}
                      intra_igår=find(gt(frac(date()),0.5),200,c,1)
                      öpp_dagsstapel1=and(not(eqv(cmpref(o,0,A),intra_igår)),eqv(int(d),int(date())))
                      öpp_dagsstapel2=and(öpp_dagsstapel1,gt(int(d),int(GetGvar(130))))
                      SetGvarIf(d,130,öpp_dagsstapel2) {används för att bara ge ett värde}
                      SetGvarIf(c,129,öpp_dagsstapel2)

                      Sättvärden=and(eqv(int(d),int(GetGvar(130))),eqv(int(d),int(date())))

                      {Beräknar dagshögsta}
                      dagshögsta=or(öpp_dagsstapel2,and(Sättvärden,gt(c,GetGvar(137))))
                      SetGvarIf(c,137,dagshögsta)

                      {Beräknar dagslägsta}
                      dagslägsta=or(öpp_dagsstapel2,and(Sättvärden,lt(c,GetGvar(138))))
                      SetGvarIf(c,138,dagslägsta)

                      {Beräknar ifall vi har en hammer-formation}
                      hammer_higho=gt(GETGvar(129),sub(dagshögsta,div(sub(dagshögsta,dagslägsta),hammer_öppn)))
                      hammer_highc=gt(cmpref(c,0,a),sub(dagshögsta,div(sub(dagshögsta,dagslägsta),hammer_stäng)))
                      hammer_ok=and(hammer_higho,and(hammer_highc,gt(div(sub(dagshögsta,dagslägsta),dagshögsta),div(hammer_längdkrav,100))))


                      SetGvarIf(if(Sättvärden,hammer_ok,0),147,1)

                      add(0,0)
                      )

                      {@A(0,OMX Stock )}

                      Edit: Såg att det kan bli strul om inte feeden kommit igång förrän efter lunch. Vet ej om det hänt och får i så fall hantera det senare.
                      Har testat att göra dina ändringar nu men får det inte riktigt att fungera. Nu blir signalerna helkonstiga. Inga signaler på de hammerformationer som finns och en mängd felaktiga signaler på konstiga dagar.
                      Jag tror iof att vi även måste ändra i hammeruträkningen eftersom vi där använder variablerna dagshögsta och dagslägsta. På "ditt sätt" måste vi nog ändra till getgvar(137) och getgvar(138).

                      Den koden jag kört med nu ett tag fungerar hyffsat. Får med de flesta och ger enbart ett fåtal felaktiga signaler - kan dock ha med kursdatan att göra så det kanske fungerar skarpt, känns bara lite lurt att köra skarpt med något som "kanske" fungerar.
                      Hammerformationen är ju inte det enda jag använder H,L,O,C till utan en mängd formationer och även för att kolla hur dagen utvecklat sig, om det tillexempel är en svag eller stark stängning osv. Så det blir ju mycket fel om värdena inte är korrekta. /Erik
                      Last edited by e-Rik; 2015-11-07, 12:44.

                      Comment


                      • #71
                        Har nu gjort den ändringen jag tänkte på och nu fungerar det riktigt bra

                        hammer_higho=gt(GETGvar(129),sub(GetGvar(137),div(sub(GetGvar(137),GetGvar(138)),hammer_öppn)))
                        hammer_highc=gt(cmpref(c,0,a),sub(GetGvar(137),div(sub(GetGvar(137),GetGvar(138)),hammer_stäng)))
                        hammer_ok=and(hammer_higho,and(hammer_highc,gt(div(sub(GetGvar(137),GetGvar(138)),GetGvar(137)),div(hammer_längdkrav,100))))

                        /Erik

                        Comment


                        • #72
                          Håller med. Vid skarp körning så kommer det in data eller ej. Det fungerar inte alltid korrekt vid simulering och kan få helt avgörande betydelse. Det gäller särskilt stapelformationer i dagsupplösning som absolut inte går att köra med o,l,h rakt av.
                          Att inte o,l,h inte fungerar som tänkt i simulering beror förmodligen på att data är en lång serie utan uppehåll och när data sakna fylls luckorna på med senaste insamlad data. En lösning skulle vara att fylla på luckorna med färskare data från andra hållet. Det skulle förmodligen rent praktiskt vara komplicerat.

                          Jag ändrade bara beräkningarna av h och l i cellerna. Tittade ej på dina stapelformationer.

                          Comment


                          • #73
                            Man kan åtminstone kolla närmare på diagrammen i intradayupplösning de dagar då simuleringen blir fel, mest för att verifiera att det är något med datat kanske. Då kan man utesluta dessa dagar ur simuleringen på något sätt. Och en felkälla är ju alltid att det är lurigt att titta på en dagsstapel i efterhand och simulera med animering och signal strax innan stängning etc. Det är inte säkert att dagsstapeln ser likadan ut några minuter innan stängning som den gör efter stängning.

                            Comment


                            • #74
                              Absolut, stapeln förändras kontinuerligt under dagen.

                              Det kan vara svårt att identifiera dagar med problem. Inte sällan räcker det att feeden kommit igång någon minut efter öppningen för att staplen ska hämta data från gårdagen. Det påverkar främst öppningskursen, men påverkar även l och h som Erik upplevt.

                              Edit: Det blir ett hästjobb att behöva kolla varje dag i simulering. Kör man skarp och verifierar med simulering så är det ok.
                              Last edited by Henric; 2015-11-07, 13:33.

                              Comment


                              • #75
                                Ursprungligen postat av Rikard Nilsson Visa inlägg
                                Man kan åtminstone kolla närmare på diagrammen i intradayupplösning de dagar då simuleringen blir fel, mest för att verifiera att det är något med datat kanske. Då kan man utesluta dessa dagar ur simuleringen på något sätt. Och en felkälla är ju alltid att det är lurigt att titta på en dagsstapel i efterhand och simulera med animering och signal strax innan stängning etc. Det är inte säkert att dagsstapeln ser likadan ut några minuter innan stängning som den gör efter stängning.

                                Du har sagt detta tidigare men som jag ser även i realtidsupplösning så verkar det bli felaktiga värden ändå även om staplarna säger annorlunda. Jag tror det finns ett annat fel i programmet som uppstår vid simulering. Sedan om det beter sig likadant "live" vet jag tyvärr inte. /Erik

                                Comment

                                Working...
                                X