Allmänt meddelande

Collapse
No announcement yet.

ema8 i extra scriptkolumn

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

  • ema8 i extra scriptkolumn

    Kan någon se vad som är fel i nedanstående script till en extrakolumn i kalkylen Aktuellt Innehav?

    Jag kör strategier i olika tidsupplösningar där några har en ema8-exit.
    Jag har försökt få till en extra scriptkolumn med ema8 i 30min-, 60min resp dagsupplösning men får samma värde på ema8 både i 30min-, 60min- och dagsupplösningen. Värdena stämmer heller inte överens med HKV’s värden…

    Konto 4 = extraobjekt A = 30min
    Konto 5 = extraobjekt B = 60min
    Alla andra konton dagsupplösning = extraobjekt C

    Extraobjekt A-C är definierat med ”anslutet instrument”

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

    emavärde=if(eqv(konto,4),CmpRef(ema8,0,A),if(eqv(konto,5),CmpRef(ema8,0,B),CmpRef(ema8,0,C)))
    add(emavärde,0)

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

  • #2
    cmpref(ema8,0,A) funkar inte eftersom ema8 inte är en dataserie som kan flyttas som extraobjekt. Man får beräkna medelvärdet på Close-kursen i rätt upplösning:

    ema8_30=ema(cmpref(c,0,a),8)
    ema8_60=ema(cmpref(c,0,b),8)
    ema_eod=ema(cmpref(c,0,c),8)

    emavärde=if(eqv(konto,4),ema8_30,if(eqv(konto,5),ema8_60,ema8_eod))

    Comment


    • #3
      Tack för det!

      Comment


      • #4
        ...men jag får samma ema8 värden i 30- och 60min upplösningen? Dagsupplösningen verkar OK.

        Har jag definierat extra objekten fel (se bif fil)?
        Attached Files

        Comment


        • #5
          Ser rätt ut. Hur testar du värdet?

          Comment


          • #6
            scriptet läser ju ut värdet i cellen i kolumnen och jag jämför dom med varandra rent manuellt

            Comment


            • #7
              Hur ser hela scriptet ut?

              Comment


              • #8
                {Visar ema8 i olika tidsupplösningar}


                konto=cash(i)

                ema8_30=ema(cmpref(c,0,a),8)
                ema8_60=ema(cmpref(c,0,b),8)
                ema8_eod=ema(cmpref(c,0,c),8)

                emavärde=if(eqv(konto,4),ema8_30,if(eqv(konto,5),ema8_60,ema8_eod))

                {@A(30,)@B(60,)@C(0,)}

                Comment


                • #9
                  Du kan prova med tre extrakolumner. Sätt värden i själva scripten och inte i scriptet i extrakolumnen. Det blir mer överblickbart. Exakt hur de placeras beror på dina script. Exempel.

                  ……..
                  ema8_30=ema(cmpref(c,0,a),8)
                  ema8_60=ema(cmpref(c,0,b),8)
                  ema8_eod=ema(cmpref(c,0,c),8)
                  SetGvarIf(ema8_30,101,1)
                  SetGvarIf(ema8_60,102,1)
                  SetGvarIf(ema8_eod,103,1)
                  ……….

                  {@A(30,)@B(60,)@C(0,)}


                  Extrakolumn1: GetGvar(101)
                  Extrakolumn2: GetGvar(102)
                  Extrakolumn3: GetGvar(103)

                  obs! skriver direkt på forumet och har inte testat syntaxen.

                  Comment


                  • #10
                    Jag har aldrig lyckats med att utföra beräkningar med olika tidsupplösningar i samma script.
                    Kör man ett script med tex i1) så sker ju alla beräkningar med i1 och värdet på både 30 min cmpref och 60 min cmpref blir ju samma för 8 minuter sedan.
                    Jag skuller gjort 3 st olika ordermodeller
                    en i dagsupplösning
                    en i i30) med cmpref i 30 minutersupplösning och
                    en i i60) med cmpref i 60 minutersupplösning

                    Sedan skulle jag lagt resultaten i var sin globala variabel som jag kunde komma åt från alla övriga ordermodeller.

                    Det är mycket enklare att göra många ordermodeller för då kan man lätt felsöka/kontrollera/verifiera varje ordermodell för sig.

                    mvh
                    Bertil

                    Comment


                    • #11
                      Medelvärden etc fungera bra på extraobjekt(har dock inte provat ema). Andra indikatorer finns för beräkning på extra objekt, tex atrEx(10,b).
                      Man får dock inte blanda upplösningar i beräkningarna.
                      Last edited by Henric; 2018-05-02, 18:00.

                      Comment


                      • #12
                        Ursprungligen postat av Henric Visa inlägg
                        Medelvärden etc fungera bra på extraobjekt(har dock inte provat ema). Andra indikatorer finns för beräkning på extra objekt, tex atrEx(10,b).
                        Menar du att man kan skriva
                        -------------------

                        i1)
                        medeltal_60=mov(cmpref(c,0,a),10)
                        SetGvarIf(medeltal_60,102,1)
                        mult(0,1)
                        )

                        {@A(60,)}
                        -----------------
                        och att man får medelvärdet för close för de 10 senaste timstaplarna?
                        Tveksam till det...
                        mvh
                        Bertil

                        Comment


                        • #13
                          Det ska fungera.

                          Comment


                          • #14
                            Ursprungligen postat av Henric Visa inlägg
                            Det ska fungera.
                            Jag sitter inte vid NATdatorn så JohanB får testa och rapportera resultatet.
                            mvh
                            Bertil

                            Comment


                            • #15
                              Ursprungligen postat av Henric Visa inlägg
                              Det ska fungera.
                              Vad händer om man skulle skriva

                              i1)
                              medeltal_60=mov(add(cmpref(c,1,a),c),10)
                              SetGvarIf(medeltal_60,102,1)
                              mult(0,1)
                              )

                              Då har ju röda c periodtiden 60 min medan gröna c har periodtiden 1 min. Klarar verkligen beräkningarna av det??
                              Min gissning är att medelvärdet görs för 10 minuter och att cmpref(c,1,a) har samma värde under alla dessa 10 minuter.
                              Min andra gissning är att om man skulle skriva
                              i1)
                              medeltal_60=mov(add(cmpref(c,0,a),c),10)
                              SetGvarIf(medeltal_60,102,1)
                              mult(0,1)
                              )
                              {@A(60,)}
                              ---------
                              så skulle detta ge samma resultat (förutsatt att man befinner sig minst 10 min in på en timstapel) som

                              i1)
                              medeltal_60=mov(add(cmpref(c,0,a),c),10)
                              SetGvarIf(medeltal_60,102,1)
                              mult(0,1)
                              )
                              {@A(1,)}

                              mvh
                              Bertil
                              Last edited by Bertil; 2018-05-02, 18:22.

                              Comment

                              Working...
                              X