Allmänt meddelande

Collapse
No announcement yet.

Bestämma om det varit MACD2-cross eller inte?

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

  • Bestämma om det varit MACD2-cross eller inte?

    Utan att använda globala variabler skulle jag vilja veta om den senaste cross-overn på MACD2 var MACD2(S) eller MACD2(B)

    Kollade på två alternativ som gav samma resultat.

    Funkar detta? Varför stämmer det inte i visa fall. Kollade på Kinnevik och där verkar det inte stämma. Grafen var också inställd på 60 m

    Alternativ1
    i60(
    m1=ema(c,12)
    m2=ema(c,26)

    mcd_diff=sub(m1,m2)
    mcdtrig=ema(mcd_diff,9)
    macd=if(gt(mcd_diff,mcdtrig),1,-1)
    )

    Alternativ 2
    i60(
    MACDBdate=Find(MACD2(B),500,d,1)
    MACDSdate=Find(MACD2(S),500,d,1)

    MACDCROSS=if(gt(MACDBdate,MACDSdate),1,if(gt(MACDSdate,MACDBdate),-1,0))
    )
    Last edited by HenrikSyst; 2017-01-07, 20:35.

  • #2
    Vet ej om det är lämpligt att använda macd som minnesref.

    Annars stämmer det nästan alltid. Dock skiljer det ibland. Kan det vara hur den inbyggda beräknar macd2 eller d i find?
    Last edited by Henric; 2017-01-08, 06:59.

    Comment


    • #3
      Generellt ska man inte använda namn på minnesrefar eller variabler som är exakt likadana som funktioner. Vi kommer bygga ut syntaxkollen med check så att den larmar för det eftersom det kan påverka hur scriptkompilatorn exekverar.



      PS: Annars är väl en enkel check följande:

      gt(macd2(n),macd2(t))

      Comment


      • #4
        Visst det fungerar, men det är inte frågan. Ändrars namnet så uppstår ändå skillnader ibland. Ser ut som den inbyggda ritar fel. Se tidigare fråga mitt inlägg ovan. Man vill kanske ändra perioder för mer flexibilitet.

        Comment


        • #5
          Får kolla närmare när jag är tillbaka igen i veckan.

          Comment


          • #6
            Vore bra om vi senare reder ut sklillnaden. Chilla!!!

            Comment


            • #7
              Detta borde väl ge mig om det har varit eller inte varit signal? Det är egentligen bara det jag vill ha svar på i denna fråga.

              i60(
              m1=ema(c,12)
              m2=ema(c,26)

              mcd_diff=sub(m1,m2)
              mcdtrig=ema(mcd_diff,9)
              macd=if(gt(mcd_diff,mcdtrig),1,-1)
              )

              Comment


              • #8
                Det fungerar, men sista villkoret blir alltid sant som det är skrivet nu. Jag tror det är find i tidigare inlägg som gör att det ibland inte stämmer. Jag skulle inte använda macd som är ett delnamn av en funktion även om det skulle fungera i detta fall.

                Comment


                • #9
                  Tack. Hur menar du att det är alltid sant?

                  Jag tänkte att antingen har det varit MACD B och då är det =1 eller så är det inte det och då har det varit MACD S. Tänker jag fel?

                  Comment


                  • #10
                    Alla värden utom 0 är sant.

                    Comment


                    • #11
                      Ok förstår. Tänkte använda det för att ha en pusselbit i att ange riktning för position och då vill jag ha det 1 eller -1 men egentligen kan jag vara mitt i ett cross-over och då är det noll.

                      Comment

                      Working...
                      X