Allmänt meddelande

Collapse
No announcement yet.

Terminator

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

  • #91
    Ursprungligen postat av Rikard Nilsson Visa inlägg
    Ali, har du kört med gamla SCRIP.DBF och DBT från AT8? En NAT-installation har sina grundscript och modeller endast på de IDn som berörs av uppdateringarna. Egna script och modeller ligger utanför detta område och påverkas inte, såvida de inte kommer från gamla AT8-filer och kan råka ha samma ID som grundscripten i NAT.

    Jörgen, gjorde du som jag tipsade om att skapa nya script i NAT och kopiera in textinnehållet från backupen? Då får de egna unika IDn och framtida uppdateringar fungerar.
    I mitt fall var det scrip och ordr från NAT-backup, inte AT8.

    Den lösningen du förordade att kopiera/ klistra in i text-editor är ohållbar då vi pratar om hundratals script. De script jag har i NAT är byggda en gång för hand i NAT i April 2011 då första NAT-versionen släpptes.

    Autostock borde kunna ordna till så att egna scipt, ordermodeller ej skrivs över när man väljer uppdatera standardscript...

    Comment


    • #92
      Ursprungligen postat av Rikard Nilsson Visa inlägg
      Ali, har du kört med gamla SCRIP.DBF och DBT från AT8? En NAT-installation har sina grundscript och modeller endast på de IDn som berörs av uppdateringarna. Egna script och modeller ligger utanför detta område och påverkas inte, såvida de inte kommer från gamla AT8-filer och kan råka ha samma ID som grundscripten i NAT.

      Jörgen, gjorde du som jag tipsade om att skapa nya script i NAT och kopiera in textinnehållet från backupen? Då får de egna unika IDn och framtida uppdateringar fungerar.
      Det är möjligt, men i så fall borde det ju finnas en varning för detta.
      Vi kunder är ju inga tankeläsare och vet ju inte var fällorna ligger.
      Har lärt mig än en gång att ta backup vid minsta förändring av programmet.

      Comment


      • #93
        Jag tycker väl iofs att vi tjatat ganska mycket om att installera nytt, men det kanske inte räcker.

        Ny version av Terminator ligger i alla fall ute nu, där exit-scripten fått en enkel flytande stoploss. Det förbättrar resultatet i backtesterna, så vi kör på den officiellt from nu.


        {Terminator long }
        { 120107 60 min }
        datum_ok:=eqv(int(d),int(date()))
        innehav_ok:=Le(Portfolio(v),0)
        period2:=Gt(Frac(d),0.41)
        öppet=ge(mult(1440,sub(market(c),frac(date()))),20)
        stoppsetk=And(And(Lt(Aref(l,1),Aref(l,2)),Lt(Aref(h,1),Aref(h,2))),1)
        i60(
        stoplevelk1=Add(Find(stoppsetk,30,Aref(h,2),1),1)
        Draw(stoplevelk1,2,dgqb)
        signalk1=and(Gt(c,stoplevelk1),gt(c,aref(h,1)))
        köp1=And(And(signalk1,period2),öppet)
        köp2=And(And(köp1,innehav_ok),datum_ok)
        Mult(köp2,5)
        )


        {Terminator short }
        { 120107 60 min }
        datum_ok:=eqv(int(d),int(date()))
        stängning:=le(mult(1440,sub(market(c),frac(date()))),15)
        innehav_ok:=Ge(Portfolio(v),0)
        period2:=Gt(Frac(d),0.41)
        öppet=ge(mult(1440,sub(market(c),frac(date()))),20)
        stoppsets=And(And(Gt(Aref(h,1),Aref(h,2)),Gt(Aref(l,1),Aref(l,2))),1)
        i60(
        stoplevels1=Sub(Find(stoppsets,30,Aref(l,2),1),1)
        Draw(stoplevels1,2,rqb)
        signals1=and(lt(c,stoplevels1),lt(c,aref(l,1)))
        sälj1=And(And(signals1,period2),öppet)
        sälj2=And(And(sälj1,innehav_ok),datum_ok)
        Mult(sälj2,5)
        )



        {Terminator exit long }
        { 120107 60 min }
        stängning:=le(mult(1440,sub(market(c),frac(date()))),15)
        innehav:=Gt(Portfolio(v),0)
        trailstop:=and(lt(c,aref(l,1)),lt(c,aref(l,2)))
        i60(
        draw(mn(aref(l,1),aref(l,2)),2,mqb2)
        exit=And(or(trailstop,stängning),innehav)
        Mult(exit,10)
        )


        {Terminator exit short }
        { 120107 60 min }
        stängning:=le(mult(1440,sub(market(c),frac(date()))),15)
        innehav:=Lt(Portfolio(v),0)
        trailstop:=and(gt(c,aref(h,1)),gt(c,aref(h,2)))
        i60(
        draw(mx(aref(h,1),aref(h,2)),2,bqb2)
        exit=And(or(stängning,trailstop),innehav)
        Mult(exit,10)
        )



        Triggerscripten för exit ritar ut stoppkurvorna så att man kan se var gränsen går hela tiden.


        Comment


        • #94
          Vilka signaler fick nya Terminatorn idag?


          Anders

          Comment


          • #95
            Det skulle vara intressant att se hur många punkter per dag i snitt som backtestningen ger. Det skulle kunna läggas upp i samband med varje uppdatering av scripten.

            Jag vet inte riktigt hur Terminatorn funkar därför ställer jag frågan:
            Om man kopplar Take Profit till Terminator och efter att Take Profit har gett signal och sålt innehavet (för en long position), kan Terminatorn då ge köpsignal direkt igen, om kursen ligger ovanför signalnivån för köp, eller accepteras endast short-signaler alternativt att kursen korsar Terminatorns köpsignalnivå igen underifrån?

            Alternativet är väl att programmera in globala minnesflaggor som minns om senaste ordern var en take profit och då inte tillåter signal i samma riktning förrän kursen varit under signalnivån och bryter upp underifrån igen.

            Detsamma gäller väl för övrigt stoplossen?

            Mvh

            Comment


            • #96
              Kommer ovanstående Exitscript vid stängning att fungera om den tittar på 15 min före stängning, men scriptet går i 60-mins upplösning?

              Comment


              • #97
                Upplösningen påverkar värden från funktioner som tex medelvärde och periodvärden tex h eller l. Scripten körs däremot kontinuerligt oberoende av upplösning. När scriptet hittar tid för stängning så blir det exit.

                Comment


                • #98
                  Om man tittar på bifogade bild som är en variant av Terminatorn, så får man ett väldigt spann till shortningsnivån om det öppnar med gap och det är oregelbunden handel efter det.

                  Finns det något bra sätt att fånga och lägga till öppningsgapet till shortningsnivån?

                  Mvh
                  Attached Files

                  Comment


                  • #99
                    För gap uppåt:
                    Ett enkelt sätt är att om tex %-skillnaden mellan ett medelvärde och kurvan > x så flyttas kurvan upp till en viss nivå. Det skulle även gå att ha en tidspärr för när kurvan kan flyttas.

                    Comment


                    • Tack för snabb respons.

                      Tidsspärren är ju absolut intressant. Kan det bli något sådant här?

                      Terminatorn tittar ju på ett antal staplar i följd uppåt (för köp) bakåt i tiden och tar den andra stapeln high som referens, enligt nedan.

                      sstoppsets=and(gt(aref(h,2),aref(h,3)),And(And(Gt(Aref(h,1),Aref(h,2)),Gt(Aref(l,1),Aref(l,2))),1))

                      Find(sstoppsets,30,Aref(h,2),1)

                      Jag vill ju bara att min gap-kompensering läggs till, om en sådan formation inte hittats under innevarande dag.

                      Då skulle man kanske kunna lägga till IdagTillsNu (=9.00 till Nu) som AND med sstoppsets och låta FIND titta på det som en separat koll.

                      Om då inte FIND hittar en riktig formation, så vill ha en boolean från FIND-uttrycket som jag kan använda för att styra om jag vill lägga till min gap-kompensering eller ej.

                      Vad får jag från FIND om den inte hittar något?

                      Mvh

                      Comment


                      • Find hittar senaste tillfället då villkoret uppfylldes bakåt inom 30 perioder som det är skrivet ovan. I princip kan man jämföra tidstämpeln från den perioden med något innevarande dag om du vill testa om det är sant idag?

                        Comment


                        • Aha, det var ju smart! Då återstår bara att luska ut hur jag ser tidsstämpeln...

                          Comment


                          • Sätt D som värde i Find-satsen så får du tidsstämpeln för den stapeln. Därefter är det bara att jämföra med D från "nu". Man kan tex kolla att det är samma dag genom att ta bort decimaldelen, så att bara heltal återstår:

                            frac(d) ger heltalsdel vilket motsvarar hela dagar.

                            Comment


                            • Insåg just detsamma under min nyss avlutade promenad i den frostiga vinterkvällen

                              Tack!

                              Comment


                              • Lite senare...

                                sislowtoday=eqv(int(Find(sstoppsets,35,Aref(D,2),1)),int(date()))
                                scloseyday=Find(eqv(frac(d),0.71875),35,c,1)
                                sopentoday=Find(eqv(frac(d),0.375),35,o,1)

                                Draw(add(if(and(not(sislowtoday),1),sub(sopentoday,scloseyday),0),sstoplevels1),2,bqb)

                                så blev det såhär. Blå kurva är gap-kompenserad.

                                Finns lite att göra ännu, men kanske något att lägga in i standardstrategierna? Många punkter att tjäna, ca 7.7 punkt i detta fallet, om det brakar åt fel håll i ett sånt här läge!

                                Mvh
                                Attached Files
                                Last edited by NickoTrader; 2012-01-31, 21:40.

                                Comment

                                Working...
                                X