Allmänt meddelande

Collapse
No announcement yet.

Trendig-att ta fram en swingstrategi

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

  • Trendig-att ta fram en swingstrategi

    Halloj!
    I tråden Tradingfilosofi så uttryckte jag ju min besvikelse över att ett par av mina swingstrategier inte presterat så bra de senaste månaderna.
    Idag hade jag ett par timmar över och slängde därför ihop en strategi som presterar lite bättre i rådande handelsklimat. Eftersom jag simulerar på individuella terminer så har jag inte optimerat strategin annat än jag försökt att öka vinsten på någon enskild termin och då får det bli som det blir på övriga terminer. Strategin är lite tungkörd så resultatet nedan är från 1-minuterskörningar.


    Jag skriver ju en massa på forumet, men jag vet ju inte om någon läser det med behållning.
    Om ni önskar att jag skall redogöra i detalj för denna nya strategi så vill jag att åtminstone 5 personer skall svara i denna tråd och tycka att det skulle vara intressant. Annars får det vara.

    Med vänlig hälsning
    Bertil
    Attached Files
    Last edited by Bertil; 2019-07-14, 17:17.

  • #2
    Tjena Bertil ! Jag följer dina inlägg och tycker de är riktigt bra, vill gärna att du fortsätter dela med dig av din erfarenhet. Är själv inte så bra på att posta kommentarer, men ska skärpa till mig. Ett levande forum är en fantastisk tillgång. Hoppas du fortsätter !

    Comment


    • #3
      Läser allt du skriver,kul med lite aktivitet.

      Comment


      • #4
        Samma här, jag följer med intresse dina resultatredovisningar på strategier och dina tankar kring allt möjligt. Fortsätt skriva!!!
        Jag är tyvärr ingen "skrivare" själv.

        Comment


        • #5
          OK 3 läsare är bättre än inga.
          Det heter ju att "the trend is your friend". Alla mina och även Jörgens strategier som går bra är ju trendföljande. Man kan använda olika typer av medelvärden för att detektera en trend. För att medelvärdet skall fungera måste det:
          A) Vara tillräckligt snabbt för att haka på trenden
          B) Vara tillräckligt långsamt för att inte haka på brustrender.

          Vanliga medelvärden uppfyller inte ovanstående krav, därför måste vi tillverka egna "medelvärden".
          Funktionerna HHV och LLV är snabba då de direkt detekterar peakar och dalar så dem vill vi använda.
          För att hålla snabbheten kör vi med i1(
          Vi börjar med att titta 1500 tradingminuter bakåt.

          Kurvahög=HHV(L,antal01)
          Kurvalåg=LLV(H,antal01)
          Så här blir det utritat:
          Attached Files
          Last edited by Bertil; 2019-07-15, 18:08.

          Comment


          • #6
            Låt oss göra följande räkneoperationer
            diff01=sub(kurvahög,kurvalåg)
            diff02=sqrt(diff01)
            diff03=sqrt(diff02)
            kurva01=sub(kurvahög,diff03)
            kurva02=add(kurvalåg,diff03)

            Bilden visar kurva01 och kurva02. Dessa används inte men ger en uppfattningen om storleken på diff03.
            Attached Files
            Last edited by Bertil; 2019-07-15, 18:08.

            Comment


            • #7
              Vi skall nu göra följande: multiplicera diff03 resp diff02 så att de blir lite större, samt ta heltalen av dem. Antal02 sätter vi till 100 så länge.
              diff04=Int(mult(antal02,diff03))
              diff05=Int(mult(antal02,diff02))

              Diff04 och diff05 skall vi nu använda som dynamiska periodtider som beror på hur stort gapet är mellan Kurvahög och Kurvalåg.
              kurva03=mov(c,diff04:2000)
              kurva04=mov(c,diff05:2000)
              Diagrammet visar kurva03 och kurva04.

              Vi testar med att köpa då kurva03 minus kurva04 är större än 0.6
              och vi säljer då kurva03 minus kurva04 är mindre än -1.2

              Attached Files
              Last edited by Bertil; 2019-07-16, 11:14.

              Comment


              • #8
                Vi får lägga in lite fler begränsningsvillkor vid köp och sälj.
                Så här ser det kompletta köpscriptet ut.

                { Mitt Trendig3 köp }
                { 191018 }
                innehav:=Portfolio(v)
                ok_att_handla:=eqv(innehav,0)

                Förlustköp:=if(and(Lt(sub(c,LastTrade(b,p)),0),Gt(innehav,0)),sub(c,LastTrade(b,p)),0)
                Förlustsälj:=if(and(Lt(sub(LastTrade(s,p),c),0),Lt(innehav,0)),sub(LastTrade(s,p),c),0)

                antal01:=1500
                steg01:=0.6
                steg02:=5
                steg03:=0.4

                tidspärr1:=300
                tidspärr2:=300
                lt1:=LastTrade(S,D)
                lt2:=LastTrade(B,D)
                minSedanSälj:=Mult(Sub(Date(),lt1),1440)
                minSedanKöp:=Mult(Sub(Date(),lt2),1440)
                delay_ok:=gt(minSedanSälj,tidspärr1)
                trans_ok:=gt(minSedanKöp,tidspärr2)


                i1(
                SetGVarif(förlustsälj,4507,And(lt(innehav,0),Lt(förlustsälj,0)))
                SetGVarif(0,4507,And(lt(innehav,0),Gt(förlustsälj,0)))

                SetGVarif(förlustköp,4507,And(gt(innehav,0),Lt(förlustköp,0)))
                SetGVarif(0,4507,And(gt(innehav,0),Gt(förlustköp,0)))

                SetGVarif(0,4507,eqv(innehav,0))


                ettag=if(Gt(LastTrade(b,d),LastTrade(S,d)),LastTrade(b,d),LastTrade(s,d))
                stund=sub(d,ettag)
                filur=div(mult(stund,GetGVar(4507)),100)
                { antal02=int(add(100,filur)) }

                antal02=int(add(100,0))

                tid1=gt(int(mult(frac(d),1440)),610)
                tid2=lt(int(mult(frac(d),1440)),1020)

                Kurvahög=HHV(L,antal01)
                Kurvalåg=LLV(H,antal01)
                { diff01=add(sub(kurvahög,kurvalåg),filur)}
                diff01=sub(kurvahög,kurvalåg)
                diff02=sqrt(diff01)
                diff03=sqrt(diff02)
                { kurva01=sub(kurvahög,diff03)
                kurva02=add(kurvalåg,diff03) }

                diff04=Int(mult(antal02,diff03))
                diff05=Int(mult(antal02,diff02))
                kurva03=mov(c,diff04:2000)
                kurva04=mov(c,diff05:2000)
                kurva05=mov(c,10)
                kurva06=mov(sub(kurva03,kurva04),300)
                kurva07=mov(abs(sub(kurva03,kurva04)),300)
                gräns01=abs(sub(kurva06,kurva07))

                kurva08=mov(sub(kurva03,kurva04),200)
                kurva09=mov(abs(sub(kurva03,kurva04)),200)
                gräns02=abs(sub(kurva08,kurva09))

                SetGVarIf(sub(kurva03,kurva04),4500,1)
                SetGVarIf(sub(kurva03,aref(kurva03,1)),4501,1)
                SetGVarIf(sub(kurva04,aref(kurva04,1)),4502,1)
                SetGVarIf(sub(kurva05,aref(kurva05,1)),4503,1)
                SetGVarIf(gräns01,4504,1)
                SetGVarIf(gräns02,4505,1)
                SetGVarIf(diff01,4506,1)


                villkor001=or(Gt(GetGVar(4500),steg01),Gt(GetGVar(4501),1.06))
                villkor002=or(Lt(GetGVar(4500),steg02),Gt(GetGVar(4501),1.06))
                villkor003=Gt(GetGVar(4501),0)
                villkor004=Gt(GetGVar(4502),0)
                villkor005=Gt(GetGVar(4503),0)
                villkor006=Lt(GetGVar(4504),steg03)
                vellkor01=if(Lt(GetGVar(4506),25),Lt(GetGVar(2656),6),1)

                draw(kurva03,3,kqb0)
                draw(kurva04,2,mqb0)

                villkor92=And(Gt(Sub(Mx(cmpref(H,2,a),cmpref(H,1,a)),MN(cmpref(L,2,a),cmpref(L,1,a))),35),or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5)))
                villkor93=And(Gt(Sub(Mx(cmpref(H,3,a),cmpref(H,2,a)),MN(cmpref(L,3,a),cmpref(L,2,a))),35),or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5)))
                villkor98=Or(Not(or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5))),or(And(villkor92,villkor93),and(EQV(DayOfWeek(),5),or(villkor92,villkor92))))

                köpa=and(and(and(and(and(and(and(villkor001,villkor002),villkor003),villkor004),villkor005),villkor006),villkor98),vellkor01)

                ditt_köpscript=And(And(And(And(delay_ok,trans_ok),köpa),tid1),tid2)
                köpsignal=And(ditt_köpscript,ok_att_handla)
                Mult(köpsignal,10)
                )


                {@A(0,OMX Stock )}
                ------------------

                mvh
                Bertil


                Edit: Villkor98 spärrar att man går in i marknaden från noll på måndagar och fredagar (utom vid en speciell typ av volatilitet). Erfarenheten visar att marknaden ofta velar på fredagar då man inte vet vilka makrohändelser som är kurspåverkande som kan inträffa under helgen. På måndagen så är man till en början osäker på vilken kurspåverkan de makrohändelser som inträffat under helgen skall få.

                Edit2: Tobbe Rosén talar om amatörernas halvtimma 09.00-09.30 Då har man inte hunnit att korrekt analysera kurspåverkan av nattens händelser i Asien. Trendig scriptet går därför in i marknaden först kl 10.00

                Edit3: Har uppdaterat köpscriptet lite. Det finns även några rader inom klamrar som man kan labba lite med om man vill,
                Last edited by Bertil; 2019-10-20, 17:40.

                Comment


                • #9
                  Då blir det så här:

                  Attached Files

                  Comment


                  • #10
                    { Mitt Trendig3 köp vänd }
                    { 191018 }
                    innehav:=Portfolio(v)
                    ok_att_handla:=Lt(innehav,0)

                    steg01:=1.2
                    steg22:=5
                    steg03:=0.4

                    tidspärrA1:=30
                    tidspärrA2:=30
                    tidspärrB1:=120
                    tidspärrB2:=1440
                    tidspärr1:=add(0,tidspärrA1)
                    tidspärr2:=add(0,tidspärrB1)

                    lt1:=LastTrade(S,D)
                    lt2:=LastTrade(B,D)
                    minSedanSälj:=Mult(Sub(Date(),lt1),1440)
                    minSedanKöp:=Mult(Sub(Date(),lt2),1440)
                    delay_ok:=gt(minSedanSälj,tidspärr1)
                    trans_ok:=gt(minSedanKöp,tidspärr2)


                    i1(
                    tid1=gt(int(mult(frac(d),1440)),560)
                    tid2=lt(int(mult(frac(d),1440)),1020)
                    tid3=lt(int(mult(frac(d),1440)),675)

                    förlust=if(Lt(sub(LastTrade(s,p),c),0),sub(c,LastTrade(s,p)),0)
                    steg23=MN(add(steg22,div(förlust,10)),7.5)
                    { steg02=add(steg22,0) }

                    steg02=if(tid3,steg23,steg22)

                    villkor001=or(Gt(GetGVar(4500),steg01),eqv(GetGVar(4505),-1))
                    villkor002=or(Lt(GetGVar(4500),steg02),eqv(GetGVar(4505),-1))
                    villkor003=Gt(GetGVar(4501),0)
                    villkor004=Gt(GetGVar(4502),0)
                    villkor005=Gt(GetGVar(4503),0)
                    villkor006=Lt(GetGVar(4504),steg03)
                    vellkor01=Gt(GetGVar(2656),-15)
                    villkor010=or(Gt(sub(LLV(H,120),c),5),Lt(sub(LastTrade(s,p),c),0))

                    köpa=and(and(and(and(and(and(villkor001,villkor002),villkor003),villkor004),villkor005),villkor006),villkor010)
                    ditt_köpscript=And(And(And(And(delay_ok,trans_ok),köpa),tid1),tid2)
                    köpsignal=And(ditt_köpscript,ok_att_handla)
                    Mult(köpsignal,10)
                    )


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

                    Edit1: Har uppdaterat scriptet 2019-10-18
                    Last edited by Bertil; 2019-10-20, 17:40.

                    Comment


                    • #11
                      { Trendig sälj }
                      { 190714 }
                      innehav:=Portfolio(v)
                      ok_att_handla:=eqv(innehav,0)

                      steg01:=1.2
                      steg02:=5.5
                      steg03:=1

                      tidspärr1:=300
                      tidspärr2:=300

                      lt1:=LastTrade(S,D)
                      lt2:=LastTrade(B,D)
                      minSedanSälj:=Mult(Sub(Date(),lt1),1440)
                      minSedanKöp:=Mult(Sub(Date(),lt2),1440)
                      delay_ok:=gt(minSedanSälj,tidspärr1)
                      trans_ok:=gt(minSedanKöp,tidspärr2)


                      i1(
                      tid1=gt(int(mult(frac(d),1440)),600)
                      tid2=lt(int(mult(frac(d),1440)),1020)

                      villkor001=Gt(Mult(GetGVar(4500),-1),steg01)
                      villkor002=Lt(Mult(GetGVar(4500),-1),steg02)
                      villkor003=Lt(GetGVar(4501),0)
                      villkor004=Lt(GetGVar(4502),0)
                      villkor005=Lt(GetGVar(4503),0)
                      villkor006=Lt(GetGVar(4505),steg03)

                      villkor92=And(Gt(Sub(Mx(cmpref(H,2,a),cmpref(H,1,a)),MN(cmpref(L,2,a),cmpref(L,1,a))),35),or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5)))
                      villkor93=And(Gt(Sub(Mx(cmpref(H,3,a),cmpref(H,2,a)),MN(cmpref(L,3,a),cmpref(L,2,a))),35),or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5)))
                      villkor98=Or(Not(or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5))),or(And(villkor92,villkor93),and(EQV(DayOfWeek(),5),or(villkor92,villkor92))))

                      sälja=and(and(and(and(and(and(villkor001,villkor002),villkor003),villkor004),villkor005),villkor006),villkor98)
                      ditt_säljscript=And(And(And(And(delay_ok,trans_ok),sälja),tid1),tid2)
                      säljsignal=And(ditt_säljscript,ok_att_handla)
                      Mult(säljsignal,10)
                      )

                      {@A(0,)}
                      Last edited by Bertil; 2019-07-17, 14:20.

                      Comment


                      • #12
                        { Trendig sälj vänd }
                        { 190714 }
                        innehav:=Portfolio(v)
                        ok_att_handla:=Gt(innehav,0)

                        steg01:=1.2
                        steg02:=5.5
                        steg03:=1

                        tidspärr1:=120
                        tidspärr2:=60

                        lt1:=LastTrade(S,D)
                        lt2:=LastTrade(B,D)
                        minSedanSälj:=Mult(Sub(Date(),lt1),1440)
                        minSedanKöp:=Mult(Sub(Date(),lt2),1440)
                        delay_ok:=gt(minSedanSälj,tidspärr1)
                        trans_ok:=gt(minSedanKöp,tidspärr2)


                        i1(
                        tid1=gt(int(mult(frac(d),1440)),600)
                        tid2=lt(int(mult(frac(d),1440)),1020)

                        villkor001=Gt(Mult(GetGVar(4500),-1),steg01)
                        villkor002=Lt(Mult(GetGVar(4500),-1),steg02)
                        villkor003=Lt(GetGVar(4501),0)
                        villkor004=Lt(GetGVar(4502),0)
                        villkor005=Lt(GetGVar(4503),0)
                        villkor006=Lt(GetGVar(4504),steg03)

                        sälja=and(and(and(and(and(villkor001,villkor002),villkor003),villkor004),villkor005),villkor006)

                        ditt_säljscript=And(And(And(And(delay_ok,trans_ok),sälja),tid1),tid2)
                        säljsignal=And(ditt_säljscript,ok_att_handla)
                        Mult(säljsignal,10)
                        )
                        --------------------------------
                        Frågor på det?

                        mvh
                        Bertil
                        Last edited by Bertil; 2019-07-17, 14:21.

                        Comment


                        • #13
                          Otroligt generöst av dig Bertil, att dela med dig av allt detta. Skulle vilja simulera och labba men är lite osäker på hur man gör. Har aldrig lagt in några egna script, så detta får bli en test för min del. Du får ursäkta för "nybörjarfrågor", men var någonstans lägger jag in scripten ?

                          Comment


                          • #14
                            Ursprungligen postat av nicedays Visa inlägg
                            Otroligt generöst av dig Bertil, att dela med dig av allt detta. Skulle vilja simulera och labba men är lite osäker på hur man gör. Har aldrig lagt in några egna script, så detta får bli en test för min del. Du får ursäkta för "nybörjarfrågor", men var någonstans lägger jag in scripten ?
                            Finns nog någon video av Rikard om hur man gör. Men så här kan du göra.
                            Klicka på Scriptdatabasen längst upp till vänster.
                            Välj ett sl script.
                            Tryck kopiera.
                            Namnge den till Trendig köp
                            Radera allt innehåll.
                            Klistra in koden från Trendig köp ovan.
                            Spara.
                            Gör om för övriga 3 script.

                            mvh
                            Bertil

                            Comment


                            • #15
                              Nu måste du göra 4 ordermodeller som innehåller triggerscripten.
                              Ordermodellen innehåller ju förutom triggerscript även prisscript och antalsscript.

                              Jag antar du skall simulera på OMXS30 indexet.
                              Gå först till inställningar-arbeta med ordermodeller.
                              Välj godtycklig ordermodell.
                              Tryck kopiera- namnge ordermodellen till a Trendig köp
                              Tryck redigera. - välj triggerscriptet Trendig köp
                              Välj köp uppe till vänster - tryck Nästa steg
                              För va) scriptet välj översta förslaget "Använder fasta värden i orderfältet till vänster" skriv sedan 1 i antalsfältet till vänster
                              För xl) scriptet välj Senast betalt
                              Spara sekvensen.

                              Gör på samma sätt för Trendig sälj, men välj förstås sälj i fältet till vänster.

                              För ordermodellerna Trendig köp vänd och Trendig sälj vänd gör på motsvarande sätt men skriv 2 i antalsfältet.

                              Klart.
                              Själv använder jag även en take profit ordermodell men det kan vi ta senare.

                              mvh
                              Bertil

                              Comment

                              Working...
                              X