Allmänt meddelande

Collapse
No announcement yet.

Slingrande MACD

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

  • Slingrande MACD

    Sista tiden har inte MACD köp/sälj signalen fungerat speciellt bra på OMX när den slingrat sig runt sig själv. Nån som har en bra idé hur man undviker detta. Ska man välja att inte agera om MACD redan korsat inom ett visst antal perioder eller kan man göra nåt med avståndet mellan kurvorna? Kom med förslag/script!
    Mvh Emil

  • #2
    Spärra täta signalområden

    En teknik för att spärra långa serier med signaler kan vara följande.

    md1:=macd(b)
    s1:=sum(md1,5)
    eqv(s1,1)


    's1' summerar hur många utlösta signaler som levereras av 'md1' 5 perioder bakåt.(Här är det köpsignal på MACD, men kan bytes mot vilket script som helst).

    Sista raden testar att antalet utlösta är en stycken.

    Resultatet blir att om kurvorna i MACD slingrar sig om varandra så är avståndet minst 5 perioder tills förra köpsignalen.

    Samma teknik på säljsidan skulle se till att det inte levererar onödigt mycket affärer inom kort tidsrymd.

    Comment


    • #3
      Man borde ju också kunna angripa själva roten till det onda - nämligen att börsen inte trendar åt något håll.

      Alla tekniska analysmetoder råkar ju ut för att man får osäkra signaler vid tillfällen när någon tydlig trend saknas. Istället får man en myriad av småaffärer som i bästa fall går plus/minus noll, i sämsta fall ger en massa småförluster.

      Istället borde man kunna kolla via någon trendindikator, t ex ADX eller glidande medelvärde n, att aktien är på väg någonstans och inte bara ligger med hjärtflimmer i diket och kippar efter andan.

      Det kanske är lättare att göra detta via okularbesiktning än via script. Jag har gått en del kurser som Johnny Torsell (som skrivit Boken om trading) har hållit.

      Hans standardmetod för att filtrera bort dåliga affärer är att kräva att 20- och 50-dagars glidande medelvärde är positiva (eller tvärtom för blankning) alternativt att trendstyrkeindikatorn ADX är över ett visst värde, oklart vilket i skrivande stund.
      Ingemar Bergdahl

      Comment


      • #4
        Lasse: Tack för hjälpen. Om jag byter ut macd(b) mot macd(x), gäller det då för alla korsningar, köp och sälj?
        Om jag använder ditt script rakt av så flaggar det ju 5 perioder efter senast macd signal. För att stoppa mitt köpscript från att köpa under denna period så måste jag väl skriva:
        AND(mittköp,NOT(eqv(s1,1))) eller?
        inber: Jag har också läst hans böcker och testat ut hans metoder i Friendly. På det flesta script som jag testat så minskar vinsten totalt om jag har som krav att 20 dagars medelvärde ska vara stigande. Men jag får färre affärer och ett större antal av affärerna är vinstgivande i förhållande till förlustaffärer. Jag stirrar blint på totalsumman
        Problemet tycker jag är att man vet att man är i en stillastående fas först när den existerat ett tag, t.ex när man kan se den med blotta ögat i diagrammet. Man vet ju aldrig när man kommer in i den fasen!
        Mvh Emil

        Comment


        • #5
          Ja, du kan köra med 'x' som parameter för att få den att plocka både köp coh sälj-signal.

          Själva scriptet innehåller en spärr att det är RENT 5 perioder före och du ANDar alltså direkt istället.

          Utöka testen med att det är endast senaste perioden som är SANN.


          md1:=macd(b)
          s1:=sum(md1,5)
          test1:=eqv(s1,1)
          and(test1,md1)

          då vet du att det är rent 5 perioder innan, och att det är signal just nu.

          Kommer det sedan nya signaler inom 5 perioder så undertrycks dessa.

          Så denna sista raden kan du ANDa ihop med ditt övriga script.

          Comment


          • #6
            Vad bli resultatet/effekten av att jag satte NOT, resultatet blev bra! Blir det så att det bara kan bli köp inom 5 perioder efter en macd signal?

            Jag förstår inte vad det utökade scriptet gör för något?
            "endast senaste perioden som är SANN"
            "vet du att det är rent 5 perioder innan, och att det är signal just nu. Kommer det sedan nya signaler inom 5 perioder så undertrycks dessa."
            Vad menas med att den är sann, jämfört me ddet tidigare scriptet? Kollar det andra scriptet inte också bakåt 5 perioder och undertrycker?

            Mvh Emil

            Comment


            • #7
              Jag utgick nog från att denna 'grenen' av scriptet skulle ge signal också, inte bara spärra. Men det fungerar att göra som du föreslog.

              Ditt förslag:
              Då blir '5' i perioder den sträcka som skall vara rent, dvs ingen signal denna perioden eller fyra perioder bakåt.

              Den verkliga signalen från MACD() behöver då bakas in i 'mittscript'-delen som det skrev det. Annars levereras ju SANT alltid så länge MACD ej har signal.

              Det fungerar utmärkt.

              Min variant:

              Du får signal om MACD löser ut denna perioden och den är rent från MACD-signaler fyra perioder bakåt.

              En nyansskillnad bara.

              I ditt förslag måste bara MACD-signalen bakas in i det övriga scriptet. Och det är 100% OK.

              Comment


              • #8
                Tack Lasse, nu är jag med på nästan allt...
                Det som jag inte greppar är "Den verkliga signalen från MACD() behöver då bakas in i 'mittscript'-delen som det skrev det. Annars levereras ju SANT alltid så länge MACD ej har signal." I köpscriptet används macd(b) som en variabel av många, men i säljscriptet ingår inte macd alls. Säljscriptet fungerade dock bättre efter jag lagt till and(mittsälj,eqv(s1,1)). Måste jag lägga till macd nån mer stans eller har jag uppnått önskad effekt? Eller gäller det bara om jag änvänder NOT enligt tidigare?
                Det känns som hjärncellerna blivit alldeles yra...
                Kan man säga att
                md1:=macd(b)
                s1:=sum(md1,5)
                eqv(s1,1)
                är samma sak som
                md1:=macd(b)
                s1:=sum(md1,6) (OBS 6:an)
                test1:=eqv(s1,1)
                and(test1,md1)
                om man bara lägger till de med AND funktionen? NOT behövs inte?
                Detta är samma sak som
                md1:=macd(b)
                s1:=sum(md1,5)
                eqv(s1,1)
                AND(mittscript,NOT(eqv(s1,1)))
                om jag lägger in macd i mittscript på nåt sätt?

                "Annars levereras ju SANT alltid så länge MACD ej har signal." Det ska väl levereras sant alltid om det inte finns en macd signal inom t.ex 5 perioder?

                Hoppas du kan reda ut min förvirring Lasse! Mvh Emil

                Comment


                • #9
                  Om inte MACD skall ingå i testet så kan likaväl göra som du själv kom fram till.

                  Frågeställningen har ändrats på vägen, därför blir det förvirrande. Din fråga från början var hur man skall attackera problemet med slingrande MACD.

                  Ditt antagande och livärdighet i scriptet med 5 och 6 perioder stämmer nästan, men det innehåller ju en test för signal också i det sista. Det spärrar samma antal perioder bakåt, men det sista innehåller ju villkor att det är signal nu.

                  Nedan tog jag bort en överflödig rad eqv(s1,1) som hängde kvar från tidigare.

                  md1:=macd(b)
                  s1:=sum(md1,5)
                  AND(mittscript,NOT(eqv(s1,1)))

                  Comment

                  Working...
                  X