Allmänt meddelande

Collapse
No announcement yet.

skript frossa

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

  • skript frossa

    Hej alla frends!
    Som nybliven ägare av fbat är man ju sugen på att komma i gång med sina ideer.
    Vi hade nog inte köpt det här programmet om vi nöjde oss med vad andra knopat ihop.
    Här börjar mina problem, att få ned mina tankar på skript.
    Jag har i första vändan norpat ett av torstens skript för att på det viset få grepp om tekniken.
    Men jag tror det fattas i logiken för det går inte att överföra tekniken rakt av.
    Jag hade tänkt att denna min sträng kanske ska bli en vägledning för nya frends som ställs inför samma frågor. Personligen kommer jag aldrig ge upp förän jag kan skriva skript i sömnen och med bakbundna händer.

    Torstens skript

    kortmedelv:=mov(c,5)
    långtmedv:=mov(c,15,s)
    korsar:=cross(kortmedelv,långtmedv)
    uppåt:=gt(c,långtmedv)
    köp:=and(korsar,uppåt)
    { }
    flagga:=mult(köp,9)
    i45(flagga)


    Mitt skript som är baserat på stochastic som jag tycker är skrivet på samma vis ,men error är vad jag får.
    Jag har skrivit lite komentarer hur jag tolkar skriptet,rätta mej i vad jag gör för fel.

    Stoch1:= MOV(STOCH(17),7,s) {blå}
    Medelv:=mov(STOCH(17),20,e) {grön}
    Korsar:=cross(stoch1,medelv) {stoch1 korsar medelvärde}
    Uppåt:=gt(stoch1,medelv) {stoch1 är högre än medelv}
    Köp:=and(korsar,uppåt) {och korsar uppåt}
    flagga:=mult(köp,9)
    i45(flagga)

    OK,jag har mer ideer på lager,men för att det inte ska bli för rörigt för mej måste jag få grepp på hur jag tänker fel och varför jag får error på mitt skript.
    En fråga om skript #1 förstår skript om man vänt på stock1 och medelv så att det tillexempel är omöjligt att det ska bli sant, får man error då,hur smart är logiken i ett skript?

  • #2
    Ända felet är att ett tilldelat namn börjar med ett blanktecken(1:a raden). Varje rad läses bara fram till blanktecken och då saknas många nödvändiga saker.

    Detta funkar:

    Stoch1:=MOV(STOCH(17),7,s) {blå}
    Medelv:=mov(STOCH(17),20,e) {grön}
    Korsar:=cross(stoch1,medelv) {stoch1 korsar medelvärde}
    Uppåt:=gt(stoch1,medelv) {stoch1 är högre än medelv}
    Köp:=and(korsar,uppåt) {och korsar uppåt}
    flagga:=mult(köp,9)
    i45(flagga)

    Om syntaxkontrollen så är den ganska simpel. En gammal klyscha säger att datorer gör bara vad man säger till dem. Så det är vi tvåbenta som får stå för förståndet.

    Så inga logiska fel tolkas av syntaxkontrollen. Det gäller samtliga programmeringsspråk egentligen även om det finns specialprodukter för att analysera en del vanliga missar programmerare gör.

    Kör hårt och fråga på bara. Det är välkommet för många.

    Comment


    • #3
      Hej och tack för ditt svar!
      Vad lärde jag mej av det:=Att vara oerhört noga när jag klipper och klistrar/att inte blanda stora och små bokstäver som i skriptet. Man tappar lätt överskådligheten.

      Om jag nu vill kontrollera utfallet av köp och sälj termin i analysrapport.Jag vill ju ha med mina vinstrika säljaffärer i rapporten,hur går det till?
      Kan man ladda hem kurser på föregående månaders omxtermin ?

      Comment


      • #4
        Ja, det ligger alla terminer från Februari i år på nätets kundservice.

        Du kan manuellt skapa grunduppgift som heter typ

        OMX3E
        OMX3F

        osv

        Och markera att de är med i Masterfiltret.

        Sedan är det bara att hämta från kundservice.

        TIPS! Använd temporät urval med enbart dessa du vill läsa längre bakåt, så slipper du mecka om i Masterfiltret något.

        Comment


        • #5
          tackar!
          Men det går över min förmåga att klura ut hur jag manuellt skapar grunduppgifter för terminerna.Är det under definition av egna listfönster som svaret döljer sig?

          Ett formelproblem jag stött på(jag blir så iriterad när jag inte kan förstå logiken)

          korsning:=Hhv(Cross(MV1,MV2),bakåt)

          korsning:=Hhv(Cross(MV1,MV2),10)
          Köp:=And(korsning,GT(MV1,MV2))

          Min tolkning:=köp stapel ges om mv1 är större än mv2 och korsar varandra
          Hhv(10) skulle jag vilja ha en förklaring på hur den tolkas.”ger det högsta värdet inom 10 perioder”.
          ser inte formeln för Hhv ut så här:=Hhv(c,10) vart tog close vägen i formeln?kan det ersättas med cross som är en formel i sig cross(,)?

          Att lägga till Hhv(10) förändrar inte första köp baren om man jämför skripten, bara antal köpstaplar framåt.

          mv1:=mov(c,5,e)
          mv2:=mov(c,14,e)
          korsning:=Cross(MV1,MV2)
          Köp:=And(korsning,GT(MV1,MV2))
          flagga:=mult(köp,39)
          i45(flagga)

          mv1:=mov(c,5,e)
          mv2:=mov(c,14,e)
          korsning:=Hhv(Cross(MV1,MV2),10)
          Köp:=And(korsning,GT(MV1,MV2))
          flagga:=mult(köp,33)
          i45(flagga)

          Comment


          • #6
            1. Gå in på Register-menyn och Grunddata(överst alltså)

            Fyll i rätt id i fältet id, och lämpligen samma i Företagsnamn. Grupp 72 för optioner/terminer.

            Tryck Ny.

            Klart. Se bara till att Masterfiltret är ikryssat också.

            2. HHV()

            HHV() och alla scriptfunktioner som har angivelse av dataserie i en parameter(vanligen angiven med 'd' i snabbreferensen) kan ta både konstanterna C för Close, V för Volume, H för High osv men kan också ta returvärden från andra funktioner.


            En test eller beslutande funktion som GT(), Cross() And() osv levererar antingen värdet NOLL eller ETT i return.

            Vi ser på dina exempel:

            mv1:=mov(c,5,e)
            mv2:=mov(c,14,e)
            korsning:=Cross(MV1,MV2)
            Köp:=And(korsning,GT(MV1,MV2))
            flagga:=mult(köp,39)
            i45(flagga)

            Här ovan måste alla villkor vara uppfyllda i samma period för att få flagga ut.



            mv1:=mov(c,5,e)
            mv2:=mov(c,14,e)
            korsning:=Hhv(Cross(MV1,MV2),10)
            Köp:=And(korsning,GT(MV1,MV2))
            flagga:=mult(köp,33)
            i45(flagga)

            Här ovan levererar 'korsning' SANT eller ETT om korsningen varit någon gång inom 10 perioder.

            Detta blir alltså ett mjukare villkor.

            Så Hhv() i

            korsning:=Hhv(Cross(MV1,MV2),10)

            lägger upp en dataserie med returvärden från Cross 10 perioder bakåt.

            Sedan undersöker Hhv() vilket som är det högsta av dessa värden. Eftersom serien bara innehåller NOLL eller ETT som värde så är den ETT som letas efter.

            Så finns en enda ETTA i serien av 10 så levererar Hhv() ETT i retur.

            I Assistenten och vår dokumentation(scriptskolan t.ex) kallas denna typ av villkor för NYLIGEN-händelse. Dvs den måste inte ha varit precis i denna perioden, men någon gång inom ett angivet antal perioder bakåt.

            Så det är naturligt att det blir fler flaggor eftersom villkoren är mjukare med HHV() inblandat också. Men helt beroende på vilket spann man anger förståss.

            HHV(något,1) är precis samma som att inte använda Hhv() alls.

            Comment


            • #7
              m1:=mov(c,4,s) {grön}
              BottomBars(m1,500,1,5)
              i15(m1)

              period:=20 {gul}
              tp:=div(add(c,add(h,l)),3)
              mt1:=mov(tp,period,s)
              adif:=mov(abs(sub(tp,mt1)),period,s)
              cci:=mult(adif,0.015)
              div(sub(tp,mt1),cci)

              Hej! Jag måste få klarhet I hur jag samanställer kurv diagram till köp och sälj indikatorer på bästa sätt.
              Jag tycker det är enklast än så länge att söka köp och sälj signaler där kurvor av olika slag korsar varandra. Mina problem kommer när jag ska få ned signalerna som flaggor.
              Mitt försök att få dessa kurvor att ge signal när de möts.
              grön:= ta bort sista raden som inte får skriptet att fungera när man lägger i hopp 2 kurvor.kurvan betäcknas m1
              gul:=hur sammanställer jag ett längre skript med fler rader .Kurvan betäcknas med???
              Detta är ett försök som inte lyckas.

              period:=20
              tp:=div(add(c,add(h,l)),3)
              mt1:=mov(tp,period,s)
              adif:=mov(abs(sub(tp,mt1)),period,s)
              cci:=mult(adif,0.015)
              div(sub(tp,mt1),cci)
              m1:=mov(c,4,s)
              BottomBars(m1,500,1,5)
              korsning:=cross(cci,m1)
              sälj:=and(Lt(cci,m1))
              i15(mult(sälj,20))

              Jag antar bara att cci:= är samlings namnet på kurvan cci
              Efter som jag tänkt använda skriptet som ett automatiskt stopp/loss skript på både kort och långt inehav på ett manuelt köpt/sålt inehav vill jag ha in i säljskriptet att även sälja köpt inehav om kursen bryter övre bolingerband samt även om extrem hög stapel i volymen bildas eftersom jag sett att oftast efter dessa signaler kommer en liten rekyl som är onödigt att ligga kvar i när jag ligger lång.Dessa bägge signaler är inte beroende av varandra.

              Comment


              • #8
                period:=20
                tp:=div(add(c,add(h,l)),3)
                mt1:=mov(tp,period,s)
                adif:=mov(abs(sub(tp,mt1)),period,s)
                cci:=mult(adif,0.015)
                div(sub(tp,mt1),cci)
                m1:=mov(c,4,s)
                BottomBars(m1,500,1,5)
                korsning:=cross(cci,m1)
                sälj:=and(Lt(cci,m1))
                i15(mult(sälj,20))

                Denna raden

                div(sub(tp,mt1),cci)


                och denna raden

                BottomBars(m1,500,1,5)

                slutar i ingenting, och knyts inte ihop någonstans.

                Så först ge även dessa namn:

                period:=20
                tp:=div(add(c,add(h,l)),3)
                mt1:=mov(tp,period,s)
                adif:=mov(abs(sub(tp,mt1)),period,s)
                cci:=mult(adif,0.015)
                del1:=div(sub(tp,mt1),cci)
                m1:=mov(c,4,s)
                del2:=BottomBars(m1,500,1,5)
                korsning:=cross(cci,m1)
                sälj:=and(Lt(cci,m1))
                i15(mult(sälj,20))

                Bestäm sedan vad du vill göra med dessa.

                Men sedan till din 'sälj' där and()-funktionen bara har en enda parameter. Är det tänkt att något från vad jag get namnen 'del1' eller 'del2' skall med där också, tillsammans med några villkor? Annars behövs inte and()-funktionen där alls utan LT()-villkoret räcker.

                Annars görs ju en korrekt sammanställning av 'cci' och 'm1' där man får SANT om cci korsar m1 uppifrån.

                Så din sammanslagning av de två scripten är utmärkt, men namnge sista villkoren i respektive script och ge dem namn också som jag gjort ovan t.ex 'del1' och 'del2' och foga sedan ihop enligt vad du finner bäst.

                Jag vet inte om jag besvarat din fråga.

                Annars återkom.

                Comment


                • #9
                  Tack Lasse!
                  Jag får inte till några cross staplar med detta skript,jag vet nog inte riktigt vad jag håller på med.Ett annat problem är att jag får för många parantes nivåer om jag har med i15(mult(sälj,20)) hur löser jag det?Jag får parantesantal 12.Detta skript ger 10 parantesnivåer och ger ok.



                  period:=20
                  tp:=div(add(c,add(h,l)),3)
                  mt1:=mov(tp,period,s)
                  adif:=mov(abs(sub(tp,mt1)),period,s)
                  cci:=mult(adif,0.015)
                  del1:=div(sub(tp,mt1),cci) {kurva1}

                  m2:=mov(c,4,s) {kurva2}
                  del2:=bottomBars(m1,500,1,5) {kurva2}

                  korsning:=cross(del1,del2)
                  sälj:=Lt(del1,del2)
                  sälj

                  Comment


                  • #10
                    period:=20
                    tp:=div(add(c,add(h,l)),3)
                    mt1:=mov(tp,period,s)
                    adif:=mov(abs(sub(tp,mt1)),period,s)
                    cci:=mult(adif,0.015)
                    del1:=div(sub(tp,mt1),cci) {kurva1}

                    m2:=mov(c,4,s) {kurva2}
                    del2:=bottomBars(m1,500,1,5) {kurva2}
                    i15(
                    korsning=cross(del1,del2)
                    sälj=Lt(del1,del2)
                    mult(sälj,20)
                    )

                    Det här ovan borde gå igenom(har inte testat)

                    Kom ihåg att intradayprefix tar aldrig en parentes för det är inte en funktion i egentlig mening, utan bara ett prefix i texten som tas bort före scriptet körs. Info för kompilatorn helt enkelt.

                    Lägg märke till att := försvunnit på de sista raderna och ersatts med ensamt = .

                    Och lägg märke till att intradayprefixet i15( omsluter tre rader innan avslutande parentesen. Varje rad som har ensamt = kan tar 10 parentesers djup. På det sättet kan man bygga längre script.

                    Och kom ihåg att inga := -rader får finnas efter det första ensamma = -raden.

                    Comment


                    • #11
                      Hej igen!
                      Jag fick error på det skriptet så jag tog och försökte korsbefrukta med trix i stället.Nu får jag syntax ok, men mitt skript vill inte släppa ifrån sig några korsbefruktade ynglingsstaplar.Jag tror inte kemin fungerar i skriptet och jag vore mycket tacksam om du kunde testa det och komma med en förklaring om vad som är fel.
                      Min ide om varför jag inte får ut några staplar är att del1:= och del2:= inte är en sammanställning av de bägge kurvorna. Varför jag inte ger mej är för att jag tror att här ligger mitt problem med att skriva skript. Jag kan inte sammanställa på rätt sätt. Din avslutning på skriptet var nått nytt som jag inte sätt tidigare.



                      period:=10
                      m1:=mov(c,period,e)
                      m2:=mov(m1,period,e)
                      m3:=mov(m2,period,e)
                      del1:=mult(roc(m3,1,%),10)

                      m2:=mov(c,4,s)
                      del2:=bottomBars(m1,500,1,5)

                      korsning=cross(del1,del2)
                      i15(
                      sälj=Lt(del1,del2)
                      mult(sälj,20)
                      )

                      Comment


                      • #12
                        Det jag ser direkt är ju att du jämför päron och äpplen.

                        'del1' är ju ett procentuellt förändringsvärde i trix.

                        'del2' anger antal perioder till första botten som har 5% rörelse kring sig.

                        Även i tidigare variant av scriptet jämför du två helt olika storheter.

                        Om du kan berätta i ord vad du vill åstadkomma skall jag försöka producera något som funkar lite grovt, och så kan du slipa lite på det sedan.

                        Comment


                        • #13
                          MDX:=mov(dx(13),13,e)
                          trigger:=
                          korsar:=cross(MDX,trigger)
                          uppåt:=gt(MDX,trigger)
                          i60(mult(10))


                          Hej Lasse!

                          Medelvärden i all ära men man är för det mesta hopplöst efter med att bara korsa dessa med varandra .Därför är trendindikatorer av olika slag intressanta tycker jag och att hitta spännande korsningar dem emellan som kan ge fantastiska förutsägelser i rätt upplösning .
                          Om vi tar macd som exempel fins ju en del att göra med sin egen trigger som korsning. Hur skapar man en trigger på ADX som går att använda som korsningssignal i ett skript?
                          Går det på nått sätt att få fram korsnings signaler genom att korsa medelvärden med ADX,TRIX,CCI???

                          Jag vill passa på att önska dej en god jul och tacka dej för ett mycket intressant analys program som dock kräver mycket hjärnmotion av sin husse.
                          Din hjälp är ovärderlig.

                          Comment


                          • #14
                            Roligt att du tycker det går framåt i alla fall.

                            MDX:=mov(dx(13),13,e)
                            trigger:=
                            korsar:=cross(MDX,trigger)
                            uppåt:=gt(MDX,trigger)
                            i60(mult(uppåt,10))

                            Modifierade ditt skelett en aning bara på sista raden. Då har du ett skelett för korsning av kurvor.

                            De extra triggerkurvorna som används vid Macd och Stochastic osv är oftast bara ett extra medelvärde på grundkurvan.

                            MDX:=mov(dx(13),13,e)
                            trigger:=mov(MDX,5,e)
                            korsar:=cross(MDX,trigger)
                            uppåt:=gt(MDX,trigger)
                            i60(mult(uppåt,10))

                            Så där har du din ADX med trigger. Jag föreslog 5 perioder där men det väljer du ju själv.

                            Eftersom ADX är ett exponentiellt medel på DX så valde jag även exponentiellt medel på triggern.

                            Stochastic har ofta vanlig arimetiskt medel för uppmjukning, och trigger kurvan är i det fallet ofta också aritmetiskt medel.

                            Men det är bara att prova det man tycker funkar bäst.

                            God Helg.

                            Comment


                            • #15
                              God fortsättning!
                              Då tänkte jag be om lite hjälp på fortsätningen av mina ideer!
                              Nu hade jag tänkt lägga till lite mer i scriptet för att trimma upp det till ett vinnande koncept.
                              Efter att bollinger-band dragit i hopp sig och explodetat uppåt och gått igenom taket så är det dags att gå ur sin eventuella köpta position,alternativt skall vi gå kort på den signalen.

                              b1:=pdi(10)
                              r1:=mdi(10)
                              korsning:=and(Cross(b1,r1)bra)
                              Köp:=And(korsning,GT(b1,r1))
                              mult(köp,50)

                              Denna signal talar bara om att övre bandet har korsats ,ej om det har varit en sammandragning desinnan.Det vet jag inte hur man kompleterar bol1 med.
                              Hur lägger jag in bol1 så att det fungerar tillsammans med köpskriptet?
                              Jag vill att det kommer en sälj stapel direkt när signalen inträffar trots att jag ligger i köp position.jag förstår inte hur jag lägger in bol1 och hur ursprunget ska jobba på och reagera först när signalen är ett faktum och gå ur positionen .

                              bol1:=bolbands(25,2.5,x)
                              i15(mult(b1,15))

                              Comment

                              Working...
                              X