Allmänt meddelande

Collapse
No announcement yet.

Flytande stop loss - script

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

  • #16
    Ursprungligen postat av Rikard Autostock Visa inlägg
    Här är en moddad variant av Stoploss Mini lång, dynamisk lookback som gör att det går snabbare att simulera när öppen position inte existerar, samt max antal minuter bakåt är 1000. Det räcker ju nästan för två dagar, men du kanske har längre positioner än så?

    Har plockat bort lite lull-lull med elastisk gräns osv.




    { Stoploss Mini Long mod }
    { 190725 }

    tid_innan_stäng:=4 { minuter innan stängning }
    max_spread_procent:=4 { max tillåten spread i procent }
    tidspärr1:=0.33 { minuter mellan orderförsök }
    { }
    i1(
    öppet=ge(mult(1440,sub(market(c),frac(d))),tid_innan_stäng)
    stoppgräns1=ScrPar(1)
    stoppgräns2=sub(1,div(abs(stoppgräns1),100))
    målantal=ScrPar(2)
    lastbuy=LastTrade(B,P)
    innehav=Portfolio(v)

    lt1=LastTrade(B,D)
    minSedanKöp=Mult(Sub(d,lt1),1440)
    delay_ok=gt(minSedanKöp,tidspärr1)
    inpådagen=gt(frac(date()),0.376)
    spreadcheck1=lt(div(s,b),add(1,div(max_spread_procent,100)))
    spreadcheck2=and(and(spreadcheck1,gt(s,b)),gt(b,0))

    start=if(and(öppet,ge(d,lasttrade(b,d))),if(spreadcheck2,b,0),0)
    lookback=if(gt(innehav,0),1000,20)
    maxhittills=hhv(start,lookback:1000)

    level1=Sub(maxhittills,stoppgräns1)
    level2=Mult(maxhittills,stoppgräns2)
    level3=if(lt(scrpar(1),0),level2,level1)

    flytstopp=Lt(b,level3)

    Draw(If(and(delay_ok,Gt(innehav,målantal)),level3,0),9,rqb)
    signal1=And(And(flytstopp,Gt(innehav,målantal)),Gt(innehav,0))
    signal2=And(And(signal1,xor(stoppgräns1,0)),delay_ok)
    signal3=and(and(and(and(signal2,inpådagen),öppet),spreadcheck2),gt(b,0))
    Mult(signal3,10)
    )
    Hej, en ny fråga kring detta script. Kan man ändra den så den köper med flytande stoploss? Försökte modifiera lite men eftersom denna går på lasttrade så behövde jag ändra detta men insåg att fler ändringar behövs då denna säljer vid nedgång. Jag vill ju köpa vid viss uppgång men ändå ha flytande stoploss. Så enkelt att ändra eller finns redan färdigt?
    Mvh Greger

    Comment


    • #17
      Ursprungligen postat av greolo Visa inlägg
      Hej, en ny fråga kring detta script. Kan man ändra den så den köper med flytande stoploss? Försökte modifiera lite men eftersom denna går på lasttrade så behövde jag ändra detta men insåg att fler ändringar behövs då denna säljer vid nedgång. Jag vill ju köpa vid viss uppgång men ändå ha flytande stoploss. Så enkelt att ändra eller finns redan färdigt?
      Mvh Greger
      Förstår inte frågan. Du har ju triggerscript som köper då vissa händelser inträffat och sedan tar ett flytande Take profit script över och säljer då en viss vinst erhållits. (eller Stop Loss då allt går fel väg med bravur).

      mvh
      Bertil

      Comment


      • #18
        Jag tror han menar en "flytande köpnivå" som trailar nedåt. Men frågan är från vilken punkt den ska utgå? Senaste säljpris?

        Comment


        • #19
          Ursprungligen postat av Rikard Autostock Visa inlägg
          Jag tror han menar en "flytande köpnivå" som trailar nedåt. Men frågan är från vilken punkt den ska utgå? Senaste säljpris?

          Jag förstår inte din förklaring. Menar du att man från inget innehav skall trigga köp på en fallande kniv?
          mvh
          Bertil

          Comment


          • #20
            Japp, en trailande nivå nedåt som fungerar dom köpnivå som jag förstått det, kanske ihop med andra villkor osv.

            Comment


            • #21
              Ursprungligen postat av Rikard Autostock Visa inlägg
              Japp, en trailande nivå nedåt som fungerar dom köpnivå som jag förstått det, kanske ihop med andra villkor osv.

              Ja précis så låt oss säga en köpnivå på senaste köpkurs vid en tidpunkt. Ta kl 9.05 ett datum tex idag 190729.

              Comment


              • #22
                Sådana script har jag gjort fast de börjar lite in på dagen.
                Först detekterar jag dagens högsta
                I "stop Loss scriptet" tar jag tidpunkten för dagens högsta tex med find
                När vi sedan passerat ett minsta antal punkter neråt från dagens högsta och börjar gå uppåt igen kommer köptriggen.

                mvh
                Bertil

                Comment


                • #23
                  Ursprungligen postat av Bertil Visa inlägg
                  Sådana script har jag gjort fast de börjar lite in på dagen.
                  Först detekterar jag dagens högsta
                  I "stop Loss scriptet" tar jag tidpunkten för dagens högsta tex med find
                  När vi sedan passerat ett minsta antal punkter neråt från dagens högsta och börjar gå uppåt igen kommer köptriggen.

                  mvh
                  Bertil
                  just så, har du nått förslag på script eller ska jag försöka bygga om ovanstående och ändra triggern från lasttrade?

                  Comment


                  • #24
                    Jag har inte kollat detta script, men du kan testa det på OMXS30 index.

                    { Köp på uppstuds från min }
                    { 190729 }
                    innehav:=Portfolio(v)
                    ok_att_handla:=Eqv(innehav,0)
                    { OBS anpassat efter punkter OMXS30 }
                    triggvinst:=9
                    stoppgränsa:=2
                    maxis:=12

                    i1(
                    tid1=gt(int(mult(frac(d),1440)),540)
                    tid2=lt(int(mult(frac(d),1440)),1042)

                    start01=if(ge(d,tid1),c,0)
                    maxhittills=hhv(start01,510)
                    Tidpunktmax=hhvbars(start01,510)

                    start02=if(ge(d,tid1),c,9999)
                    minhittills=Llv(start02,tidpunktmax)
                    högstav=Sub(maxhittills,minhittills)

                    stoppgräns3=ADD(Div(Sub(högstav,triggvinst),2),stoppgränsa)
                    stoppgräns2=IF(GE(stoppgräns3,maxis),maxis,stoppgräns3)
                    stoppgräns1=IF(GE(stoppgräns2,stoppgränsa),stoppgräns2,stoppgränsa)

                    tillåt=ge(högstav,triggvinst)
                    level1=Add(minhittills,stoppgräns1)
                    köpa=And(Ge(c,level1),tillåt)
                    ditt_köpscript=And(And(köpa,tid1),tid2)
                    köpsignal=And(ditt_köpscript,ok_att_handla)
                    Mult(köpsignal,25)
                    )

                    mvh
                    Bertil

                    Edit: OBS. OBS. Ovanstående script har buggar använd inte det. Använd scriptet nedan istället.
                    Last edited by Bertil; 2019-07-30, 00:38.

                    Comment


                    • #25
                      Lite frågor om ditt script. Du scriptar lite annorlunda än vad jag skulle ha gjort. Det viktigaste är att det fungerar som man vill. Villkoret i start01 och start02 blir väl alltid sant och därmed onödigt. Dvs det blir högsta och lägsta för x-antal perioder oavsett om det är idag eller ej. LLV i minhittills hämtar periodantal från hhvbars i Tidpunktmax. Det kanske fungerar bra utan att ange ett dynamiskt maxvärde (har själv inte provat).

                      Comment


                      • #26
                        Ursprungligen postat av Henric Visa inlägg
                        Lite frågor om ditt script. Du scriptar lite annorlunda än vad jag skulle ha gjort. Det viktigaste är att det fungerar som man vill. Villkoret i start01 och start02 blir väl alltid sant och därmed onödigt. Dvs det blir högsta och lägsta för x-antal perioder oavsett om det är idag eller ej. LLV i minhittills hämtar periodantal från hhvbars i Tidpunktmax. Det kanske fungerar bra utan att ange ett dynamiskt maxvärde (har själv inte provat).
                        Jag har klippt och klistrat lite från TP script som funkar över flera dagar och som oftast går mot lasttrade. Visst det går nog att förenkla som du föreslår, men jag scriptar lite med vänsterhanden bara för att hjälpa Greger att komma igång.
                        mvh
                        Bertil

                        Comment


                        • #27
                          Henrik har rätt. Ovanstående script hade en del buggar. Det här blir bättre!
                          Fungerar på alla instrument eftersom triggvinst och stoppgräns mm är i relation till gårdagens range för instrumentet.

                          { Köp på uppstuds från min }
                          { 190730 }
                          innehav:=Portfolio(v)
                          ok_att_handla:=Eqv(innehav,0)
                          { OBS funkar på alla instrument }
                          triggvinst:=div(sub(cmpref(H,1,a),cmpref(L,1,a)),3)
                          stoppgränsa:=div(sub(cmpref(H,1,a),cmpref(L,1,a)),6)

                          maxis:=div(sub(cmpref(H,1,a),cmpref(L,1,a)),2)

                          i1(
                          tid1=gt(int(mult(frac(d),1440)),543)
                          tid2=lt(int(mult(frac(d),1440)),1042)

                          perioder01=Sub(int(mult(frac(d),1440)),542)

                          maxhittills=hhv(H,perioder01)
                          Tidpunktmax=hhvbars(H,perioder01)

                          minhittills=Llv(L,tidpunktmax)
                          högstav=Sub(maxhittills,minhittills)

                          stoppgräns3=ADD(Div(Sub(högstav,triggvinst),2),stoppgränsa)
                          stoppgräns2=IF(GE(stoppgräns3,maxis),maxis,stoppgräns3)
                          stoppgräns1=IF(GE(stoppgräns2,stoppgränsa),stoppgräns2,stoppgränsa)

                          tillåt=ge(högstav,triggvinst)
                          level1=Add(minhittills,stoppgräns1)
                          köpa=And(Ge(c,level1),tillåt)
                          ditt_köpscript=And(And(köpa,tid1),tid2)
                          köpsignal=And(ditt_köpscript,ok_att_handla)
                          Mult(köpsignal,25)
                          )

                          {@A(0,)}

                          -----------

                          http://www.autostock.se/vbulletin/at...5&d=1564441327

                          mvh
                          Bertil
                          Attached Files
                          Last edited by Bertil; 2019-07-30, 01:19.

                          Comment


                          • #28
                            Tillhörande TP script kan se ut så här:

                            { TP lång }
                            { 190730 }
                            innehav:=Portfolio(v)
                            ok_att_handla:=Gt(innehav,0)

                            triggvinst:=div(sub(cmpref(H,1,a),cmpref(L,1,a)),6)
                            stoppgränsa:=div(sub(cmpref(H,1,a),cmpref(L,1,a)),12)
                            maxis:=div(sub(cmpref(H,1,a),cmpref(L,1,a)),2)

                            tidspärr1:=10

                            Lastbuy:=LastTrade(B,P)
                            lt1:=LastTrade(B,D)
                            minSedanKöp:=Mult(Sub(Date(),lt1),1440)
                            delay_ok:=gt(minSedanKöp,tidspärr1)



                            i1(
                            tid1=gt(int(mult(frac(d),1440)),550)
                            tid2=lt(int(mult(frac(d),1440)),1035)


                            start=if(ge(d,LastTrade(b,d)),c,0)
                            maxhittills=hhv(start,510)
                            högstav=Sub(maxhittills,lastbuy)

                            stoppgräns3=ADD(Div(Sub(högstav,triggvinst),2),stoppgränsa)
                            stoppgräns2=IF(GE(stoppgräns3,maxis),maxis,stoppgräns3)
                            stoppgräns1=IF(GE(stoppgräns2,stoppgränsa),stoppgräns2,stoppgränsa)

                            tillåt=ge(högstav,triggvinst)
                            level1=Sub(maxhittills,stoppgräns1)

                            sälja=And(Le(c,level1),tillåt)

                            ditt_säljscript=And(And(And(sälja,tid1),tid2),delay_ok)
                            säljsignal=And(ditt_säljscript,ok_att_handla)

                            Mult(säljsignal,25)
                            )

                            {@A(0,)}
                            -----------------------------------
                            mvh
                            Bertil

                            Edit: OBS har inte kollat detta TP script i analysatorn.
                            Last edited by Bertil; 2019-07-30, 00:43.

                            Comment


                            • #29
                              Ursprungligen postat av Bertil Visa inlägg
                              Tillhörande TP script kan se ut så här:

                              { TP lång }
                              { 190730 }
                              innehav:=Portfolio(v)
                              ok_att_handla:=Gt(innehav,0)

                              triggvinst:=div(sub(cmpref(H,1,a),cmpref(L,1,a)),6)
                              stoppgränsa:=div(sub(cmpref(H,1,a),cmpref(L,1,a)),12)
                              maxis:=div(sub(cmpref(H,1,a),cmpref(L,1,a)),2)

                              tidspärr1:=10

                              Lastbuy:=LastTrade(B,P)
                              lt1:=LastTrade(B,D)
                              minSedanKöp:=Mult(Sub(Date(),lt1),1440)
                              delay_ok:=gt(minSedanKöp,tidspärr1)



                              i1(
                              tid1=gt(int(mult(frac(d),1440)),550)
                              tid2=lt(int(mult(frac(d),1440)),1035)


                              start=if(ge(d,LastTrade(b,d)),c,0)
                              maxhittills=hhv(start,510)
                              högstav=Sub(maxhittills,lastbuy)

                              stoppgräns3=ADD(Div(Sub(högstav,triggvinst),2),stoppgränsa)
                              stoppgräns2=IF(GE(stoppgräns3,maxis),maxis,stoppgräns3)
                              stoppgräns1=IF(GE(stoppgräns2,stoppgränsa),stoppgräns2,stoppgränsa)

                              tillåt=ge(högstav,triggvinst)
                              level1=Sub(maxhittills,stoppgräns1)

                              sälja=And(Le(c,level1),tillåt)

                              ditt_säljscript=And(And(And(sälja,tid1),tid2),delay_ok)
                              säljsignal=And(ditt_säljscript,ok_att_handla)

                              Mult(säljsignal,25)
                              )

                              {@A(0,)}
                              -----------------------------------
                              mvh
                              Bertil

                              Edit: OBS har inte kollat detta TP script i analysatorn.
                              Hej Bertil och tack för hjälpen!
                              Jag kan ha fel så rätta mig i så fall för jag är ny. Bygger inte detta script på att jag har köpt vid ett tillfälle som är triggern? Lastbuy och lt1? Mvh Greger

                              Comment


                              • #30
                                Ursprungligen postat av greolo Visa inlägg
                                Hej Bertil och tack för hjälpen!
                                Jag kan ha fel så rätta mig i så fall för jag är ny. Bygger inte detta script på att jag har köpt vid ett tillfälle som är triggern? Lastbuy och lt1? Mvh Greger
                                Jovisst, du skall ha både scriptet "Köp på uppstuds" (som trigger) och ovanstående script som "Take Profit" för att ta hem vinsten. Om du skall daytrada så får du ha ett script till som säljer av innan handelsdagens slut så du slipper ligga lång över natten.

                                mvh
                                Bertil

                                Comment

                                Working...
                                X