Allmänt meddelande

Collapse
No announcement yet.

Trendig-att ta fram en swingstrategi

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

  • Har du klickat Hämta rapport igen efter körning så rättas kurvan till.

    Comment


    • Ursprungligen postat av Rikard Autostock Visa inlägg
      Har du klickat Hämta rapport igen efter körning så rättas kurvan till.
      Vad menar du med "Hämta rapport"?
      Jag har:
      1) Avslutat NAT.
      2) Laddat ner ny programversion.
      3) Dödat Analyzer.exe (avslutas ju inte då man stänger NAT)
      4) Startat NAT
      5) Startat analysatorn.
      6) Uppdaterat projektet
      7) Kört projektet
      8) Tryckt på knappen "Visa vinstkurva i diagram"
      9) Tryckt på knappen "Visa diagram"

      Allt är exakt lika som tidigare.


      mvh
      Bertil

      Edit: Hittade pilen för hämta vinstrapport. Då jag klickar på den kommer bara diagrammet upp utan vinstkurvan. Då diagrammet är uppe försvinner pilen. Vet inte hur du menar.
      Last edited by Bertil; 2020-02-19, 14:41.

      Comment


      • Ok, så klick på Hämta vinstrapport (grön pil nedåt) laddar inte om kurvan?

        Comment


        • Ursprungligen postat av Rikard Autostock Visa inlägg
          Ok, så klick på Hämta vinstrapport (grön pil nedåt) laddar inte om kurvan?
          Om jag bara trycker på "Hämta vinstrapport" utan att något annat är förvalt så händer ingenting.

          Är "Visa resultat i diagram" förvalt sedan tidigare och jag sedan trycker "Hämta vinstrapport" kommer diagrammet upp utan vinstkurvan.

          Är både "Visa resultat i diagram" och "Visa vinstkurva i diagram" förvalda då jag trycker på "Hämta vinstrapport" kommer diagrammet upp utan vinstkurva.

          mvh
          Bertil

          Comment


          • Ok, men jag tänker om du har diagram med kurva upp - blir det ingen skillnad om du klickar på knappen då? Kurvan refreshas och ritas om, och ifall den är knasig brukar den bli rätt då nämligen. Problemet händer bara vid blankningsaffärer för övrigt.

            Comment


            • Ursprungligen postat av Rikard Autostock Visa inlägg
              Ok, men jag tänker om du har diagram med kurva upp - blir det ingen skillnad om du klickar på knappen då? Kurvan refreshas och ritas om, och ifall den är knasig brukar den bli rätt då nämligen. Problemet händer bara vid blankningsaffärer för övrigt.
              Är diagramkurvan uppe så försvinner knappen med "Hämta vinstrapport" och kan inte klickas på.

              Kolumnen "Ack Resultat" visar ju korrekt vinstutveckling oavsett blankning. Det är väl bara att rita vinstkurvan efter den kolumnen.

              mvh
              Bertil

              Comment


              • Jo, eller lägg till ett extra script i egen kolumn som visar kontovärdet:

                sub(add(cash(a),cash(t)),mult(2,abs(cash(s))))

                Då kan man rita kontovärdet i tex Excel inkl startbelopp osv. Scriptet visar rätt oavsett köp eller blankning.

                Comment


                • 10:45 ORDER "sl) Trendig Köp OMXS30(21)" kurs 1893.62

                  Comment


                  • Man skall väl inte behöva använda Excel för att få till en korrekt vinstrapport!

                    Det är ju självklart att vinstkurvan skall vara lika med "Ack resultat" och inget annat!

                    Som kuriosa länkar jag till ett inlägg jag gjorde 2013 då NAT betan precis började få kläm på "Ack. resultat".
                    http://www.autostock.se/vbulletin/sh...&postcount=611
                    Men vinstkurvan klarar efter 7 år fortfarande inte av att rita efter Ack resultat kolumnen. Jag blir så trött...

                    mvh
                    Bertil

                    Edit: Ni kanske tror att detta problem med korrupt vinstrapport är exklusivt för mig som handlar terminen, men så är inte fallet. Alla ni som simulerar mot index har samma problem.
                    Last edited by Bertil; 2020-02-19, 18:03.

                    Comment


                    • Trendig har ingen SL och är för trög för att kunna hantera denna typ av ras.
                      09:45 ORDER "sl) Manuell sälj OMXS300C" kurs 1795.25 -98.75

                      Ackumulerad vinst sedan 17/7-19 -380.93 punkter

                      mvh
                      Bertil

                      Comment


                      • Här kommer senaste uppdateringen på Trendig för att kunna hantera en kris då man ligger felpositionerad.

                        ------------------------
                        { Mitt Trendig4b sälj vänd }
                        { 200229 }

                        innehav:=Portfolio(v)
                        ok_att_handla:=Gt(innehav,0)

                        steg01:=1.2
                        steg02:=5
                        steg03:=1

                        tidspärrA1:=120
                        tidspärrA2:=120
                        tidspärrB1:=30
                        tidspärrB2:=1440

                        vellkor01:=gt(Sub(GetGVar(4506),abs(GetGVar(2656))),35)
                        tidspärr1:=add(0,tidspärrA1)
                        tidspärr2:=if(vellkor01,tidspärrB2,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)),600)
                        tid2=lt(int(mult(frac(d),1440)),1020)

                        ras=Gt(sub(HHV(L,30),LLV(H,30)),15)
                        kris=Lt(sub(c,LastTrade(b,p)),-25)

                        villkor001=or(Gt(Mult(GetGVar(4500),-1),steg01),Eqv(GetGVar(4505),-1))
                        { villkor002=or(Lt(Mult(GetGVar(4500),-1),steg02),Eqv(GetGVar(4505),-1)) }
                        villkor002=or(or(Lt(Mult(GetGVar(4500),-1),steg02),Eqv(GetGVar(4505),-1)),Lt(GetGVar(4500),-10))
                        villkor003=Lt(GetGVar(4501),0)
                        villkor004=Lt(GetGVar(4502),0)
                        villkor005=Lt(GetGVar(4503),0)
                        villkor006=Lt(GetGVar(4504),steg03)
                        villkor030=And(Lt(Sub(c,LastTrade(B,P)),-22),Gt(GetGVar(4500),3))


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


                        trams=or(trans_ok,ras)
                        ditt_säljscript=And(And(And(And(delay_ok,trams),sälja),tid1),tid2)
                        säljsignal=And(ditt_säljscript,ok_att_handla)
                        Mult(säljsignal,10)
                        )

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

                        mvh
                        Bertil


                        Edit: Ovanstående ändring ökar vinsten för intervallet 8A-0C med ca 200 punkter där nästan all förbättring ligger i termin 0C. Villkoret påverkar även andra terminer men summerar ihop sig till +-0 för dessa. Detta är en enkel men effektiv quick-fix för att hantera ras/kris.
                        Last edited by Bertil; 2020-02-29, 16:05.

                        Comment


                        • Senaste veckan har det inte bara varit ras utan också dead-cat-bounce-toppar.
                          Trendig är ju konstruerad så att vid större amplituder så blir trendig segare (=sitter still i båten), men med riktigt stora förändringar som vi haft senare veckan måste trendig justeras så att strategin blir snabbare.
                          Liten amplitud - snabb
                          Stor amplitud - långsam
                          Mycket stor amplitud - snabb


                          Har endast ändrat ett par rader men lägger in hela scripten.
                          -------------------

                          { Mitt Trendig5 köp }
                          { 200315 }
                          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)

                          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)

                          { antal02=int(add(100,0)) }
                          antal02=int(if(gt(sub(kurvahög,kurvalåg),60),MX(sub(160,sub(kurvahög,kurvalåg)),10),100))


                          { diff01=sub(kurvahög,kurvalåg) }

                          diff01=if(gt(sub(kurvahög,kurvalåg),60),MX(sub(120,sub(kurvahög,kurvalåg)),30),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)) }
                          villkor002=or(or(Lt(GetGVar(4500),steg02),Gt(GetGVar(4501),1.06)),Gt(GetGVar(4500),10))
                          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 )}

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

                          { Mitt Trendig5 sälj vänd }
                          { 200315 }
                          innehav:=Portfolio(v)
                          ok_att_handla:=Gt(innehav,0)

                          steg01:=1.2
                          steg02:=5
                          steg03:=1

                          tidspärrA1:=120
                          tidspärrA2:=120
                          tidspärrB1:=30
                          tidspärrB2:=1440

                          vellkor01:=gt(Sub(GetGVar(4506),abs(GetGVar(2656))),35)
                          tidspärr1:=add(0,tidspärrA1)
                          tidspärr2:=if(vellkor01,tidspärrB2,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)),600)
                          tid2=lt(int(mult(frac(d),1440)),1020)

                          ras=Gt(sub(HHV(L,30),LLV(H,30)),15)
                          kris=And(Lt(sub(c,LastTrade(b,p)),-25),Lt(GetGVar(2656),-15))

                          villkor001=or(Gt(Mult(GetGVar(4500),-1),steg01),Eqv(GetGVar(4505),-1))
                          { villkor002=or(Lt(Mult(GetGVar(4500),-1),steg02),Eqv(GetGVar(4505),-1)) }
                          villkor002=or(or(Lt(Mult(GetGVar(4500),-1),steg02),Eqv(GetGVar(4505),-1)),Lt(GetGVar(4500),-10))
                          villkor003=Lt(GetGVar(4501),0)
                          villkor004=Lt(GetGVar(4502),0)
                          villkor005=Lt(GetGVar(4503),0)
                          villkor006=Lt(GetGVar(4504),steg03)
                          villkor030=And(Lt(Sub(c,LastTrade(B,P)),-22),Gt(GetGVar(4500),3))


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

                          trams=or(trans_ok,ras)
                          ditt_säljscript=And(And(And(And(delay_ok,trams),sälja),or(tid1,kris)),tid2)
                          säljsignal=And(ditt_säljscript,ok_att_handla)
                          Mult(säljsignal,10)
                          )

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

                          { Trendig hjälp }
                          { 200315 }

                          i1(
                          tid1=gt(int(mult(frac(d),1440)),554)
                          perioder01=Sub(int(mult(frac(d),1440)),541)
                          igårclose02=mov(aref(c,add(perioder01,6):600),1)
                          igårclose03=mov(aref(c,add(perioder01,6):600),12)

                          igårclose01=if(tid1,igårclose03,igårclose02)
                          idagopen02=aref(c,add(perioder01,0):600)
                          idagopen03=mov(aref(c,add(perioder01,0):600),12)

                          idagopen01=if(tid1,idagopen03,idagopen02)
                          diff03=sub(idagopen01,igårclose01)
                          SetGVarIf(diff03,2656,1,T)
                          Draw(igårclose01,4,rqb0)
                          Draw(idagopen01,5,dgqb0)

                          Mult(0,10)
                          )

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

                          mvh
                          Bertil
                          Last edited by Bertil; 2020-03-15, 22:03.

                          Comment


                          • Resultatet blir så här för OMXS300C.

                            Avkastning 61.25 kr 0.45% på 8 affärer under 59:59:00 tim
                            Av dessa blankat 5 st med avkastning 154.50 kr 1.87%
                            Innehav 0 st med vinst 0.00 kr 0.00%
                            Innehav 3 st med förlust -93.25 kr -1.75%
                            Blankning 4 st med vinst 166.25 kr 2.53%
                            Blankning 1 st med förlust -11.75 kr -0.69%

                            mvh
                            Bertil
                            Attached Files
                            Last edited by Bertil; 2020-03-15, 22:10.

                            Comment


                            • Snubblar ofta över nån av dina trådar Bertil och tycker dem är riktigt roliga att läsa!

                              En generell fråga som inte nödvändigtvis rör "Trendig", men hur använder du dig av de olika marknadsfaserna när du bygger dina strategier? Jag bygger en del strategier själv, mestadels i Python nuförtiden, men märker hur en bra definition och strategi av hur man läser av marknadsläget boostar vilken strategi som helst!

                              Comment


                              • Kul att du uppskattar mina inlägg.
                                Nästan alla mina strategier både bra och dåliga brukar börja med att jag studerar indexkurvan i bästa upplösning och sedan försöker jag ta fram någon typ av nytt medelvärde som följer kurvan bra och som också kan användas för triggning. Jag gillar dynamiska medelvärden alltså där antalet perioder man medelvärdesbildar beror av andra saker som högsta-lägsta range mm.

                                Jag försöker klura ut hur man kan extrahera information ur kurvan. Jag tittar på derivatan, alltså kurvans lutning, jag blandar in volymen, tar till kvadreringar och kvadratrötter, studerar korrelationen mellan OMXS30-DAX, lägger öppningsgap i globala variabler. Jag lägger in villkor för olika tider på handelsdagen. Sedan testar jag strategierna i analysatorn för det senaste två åren. Förbättrar och simulerar igen. Blir det bra kör jag skarpt. Kommer ett nytt marknadsklimat modifierar jag ordermodellerna och kör vidare. Strategier är färskvara.

                                Som jag tidigare berättat har jag aldrig läst någon tradinglitteratur och försöker inte efterskapa funktioner som andra beskrivit. Hade andra lyckats med att ta fram bra strategier så skulle alla köra dem och vara supernöjda. Som bekant är så inte fallet. Jag har gått igenom de flesta funktionerna i NAT biblioteket och undersökt vad de kan användas till. Som sagt helt vanlig hederlig Trial and Error (mest error).

                                mvh
                                Bertil


                                Edit: Kör tyvärr inte Python. Om jag hade kunnat Python från andra sammanhang skulle jag förstås även labbat med programmet för trading. Hade jag varit duktig på Python så skulle jag vilja jobba med FFT (Fast Fourier Transform)-analys, icke fasvridande digital filtrering samt polynomanpassning av olika grader. Tradinggrafer är även väldigt mycket geometri.
                                Last edited by Bertil; 2020-03-17, 10:52.

                                Comment

                                Working...
                                X