Allmänt meddelande

Collapse
No announcement yet.

Intraday

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

  • Intraday

    Jag har fått frågor om intradagshandel och en specifik om ORB (open-range-breakout). Jag sätter därför igång en tråd där strategier och idéer kring intrahandel diskuteras. Eftersom att kunskapsnivån i scriptspråket varierar är alla idéer och frågor välkomna.

    Jag håller på att skruva ihop ORB som kommer snart.

  • #2
    Vad menar du med kommer snart? Open source som alla kan labba med?

    Comment


    • #3
      Nedan har endast med börsöppning att göra, men kanske går att väga in? Vet inte om min tes är riktig ens då jag inte testat det.
      Något som kanske har betydelse är om gårdagen stängde rejält upp eller ner?
      Låt säga att det stänger ner dagen innan och sedan fortsätter det ner i öppningen så kan man kanske (får testas fram) ha större chans att det bryter upp? Och då kanske man skulle ta ett bet i de lägre regionerna av öppningsrangen för uppgång?
      Så det blir inget agerande i just "Breakout"-momentet.

      Comment


      • #4
        ORB

        Det finns flera varianter på Open-Range-Breakout. Jag har valt en enkel variant. High och Low för de första x-antal minuterna utgör nivåer för break-out. Därefter tas en long om kursen går över high och en short om kursen går under low. Det går att bygga på fler villkor och filter för den som så önskar.

        { sl) ORB LONG 2018-03-05 }
        MiniBelopp:=10000 {minsta tillgängliga belopp för att handla }
        Timme:=10 { Välj Tid(timme) för mätning av open range, här kl 10}
        Minuter:=30 { i fall man vill kombinera mäterperioden för open-range med minuter }

        i1(
        idag=eqv(int(d),int(date())) { kursdatabasen och datorklockan är på samma dag }
        öppet=ge(mult(1440,sub(market(c),frac(date()))),30) { välj minsta antal min innan stängning för att kunna ta long position}
        mätperiod=and(and(lt(xtime(d,h),Timme),1{(lt(xtime(d,m),Minuter)}),idag) { open-range beräknas i mätperioden, här används inte minuter och ersatt med 1=sant }
        feed_igår=find(gt(int(d),aref(int(d),1)),510,aref(c,1),1) { används som systemcheck i simulering }
        BreakOut_level=hhv(if(and(not(eqv(c,feed_igår)),mätperiod),h,0),510) {högsta kurs i mätperioden, vill man ta bort extrema rörelser kan c, användas istället för h }
        innehavOK=le(portfolio(v),0) { ligger ej long }
        signal=gt(c,BreakOut_level) { kursen nått över open-range }
        inte_samma_dag=gt(int(d),int(lasttrade(b,0))) { bara en long per dag }

        {binder ihop villkoren för att exekvera order }
        execute1=and(and(and(signal,innehavOK),öppet),ge(cash(t),MiniBelopp))
        execute2=and(and(execute1,not(mätperiod)),gt(BreakOut_level,0))
        execute3=and(execute2,inte_samma_dag)
        retval(date(),0) {loggar tid/datum för senaste long, hämtas i script med lasttrade(b,0) }
        and(execute3,1)

        )


        { va) Antalscript ORB LONG 2018-03-05 }
        Allokering:=20 {välj hur mycket av depån som ska allokeras till instrumentet. i % }
        i1(
        handelsbelopp=mult(sub(add(cash(a),cash(t)),mult(abs(cash(s)),2)),div(Allokering,100))
        maxbelopp=if(gt(handelsbelopp,cash(t)),cash(t),handelsbelopp)
        målantal=int(div(maxbelopp,c))
        sub(målantal,portfolio(v))
        )

        { sl) ORB EXIT-LONG 2018-03-05 }
        Stopp_A_1:=1 { använd atr-stopp = 1, annars 0 }
        Stopp_A_2:=mult(atrEx(10,a),0.5) { välj atr-stoppens storlek mätt på dagsbasis }

        Stopp_P_1:=1 { använd %-stopp = 1, annars 0 }
        Stopp_P_2:=0.5 { välj storlekt på %-stoppen }

        i1(
        innehav=gt(portfolio(v),0)
        stängfördagen=le(mult(1440,sub(market(c),frac(date()))),5)

        Stopp_A_3=and(lt(c,sub(lasttrade(b,p),Stopp_A_2)),Stopp_A_1)

        Stopp_P_3=and(lt(c,mult(lasttrade(b,p),sub(1,div(Stopp_P_2,100)))),Stopp_P_1)

        exit1=or(or(stängfördagen,Stopp_A_3),Stopp_P_3)
        exit2=and(exit1,innehav)

        )

        {@A(0,)}

        Antalscript för Exit Long är standardscriptet som finns i AT "Allt Innehav"

        För aktier är prisscriptt säljkursen för Long och köpkursen för Exit_Long.
        För index är prisscriptet senast betalt +/- vald slipp.

        Edit: rättat så den inte kan ta position om breakout-nivån är noll.
        Last edited by Henric; 2018-03-06, 11:50.

        Comment


        • #5
          Ursprungligen postat av EMA Visa inlägg
          Vad menar du med kommer snart? Open source som alla kan labba med?
          Det är en offentlig strategi som bla Larry Williams har använt.
          Bara att labba på. Kör försiktigt och labba in du kör skarpt.

          Comment


          • #6
            Ursprungligen postat av EMA Visa inlägg
            Nedan har endast med börsöppning att göra, men kanske går att väga in? Vet inte om min tes är riktig ens då jag inte testat det.
            Något som kanske har betydelse är om gårdagen stängde rejält upp eller ner?
            Låt säga att det stänger ner dagen innan och sedan fortsätter det ner i öppningen så kan man kanske (får testas fram) ha större chans att det bryter upp? Och då kanske man skulle ta ett bet i de lägre regionerna av öppningsrangen för uppgång?
            Så det blir inget agerande i just "Breakout"-momentet.
            Ja, det är möjligt. Jag har bara fått frågan och lagt ut den rakt av. Fritt fram om du vill labba.
            Last edited by Henric; 2018-03-05, 19:35.

            Comment


            • #7
              NAS kommer ev. att gästas av mannen med 1000 break-out strategier. Håller på att jobba på att han jackar upp sig 3 veckan i mars. Inget är klart och vi är tre personer i helt olika tidszoner som försöker sy ihop något.

              Break-outs är för övrigt tacksamt. Kör själv ca 150 på lite olika marknader.

              Comment


              • #8
                ORB är en strategi som kan andvändas vid daytrading

                hur fungerar systemet ?

                - man identifierar den högsta kursen och den lägsta kursen under handelsdagens första timme på så sätt får man fram ett trading intervall

                - man markerar kurserna på grafen eller skriver ner dom på ett papper

                - så länge kurserna rör sig inom intervallet gör man ingenting utan bevakar intervallet för ett utbrott

                - högsta och lägsta kurserna andvänds som trigger och stopploss

                -endast en affär per riktning så som mest en long eller en kort som intas under en trading session

                - positionen bör stängas under slutet av handelsdagen man ska inte övernatta med den

                - ORB är kanske den lättaste strategin att lära sig men samtidigt svårt för man tar position på den högsta eller den lägsta kursen TEX en aktie kanske har gått upp 3 % den första timmen och när utbrottet kommer så måsta man ta position och det kan vara ett svårt beslut när aktien redan gått upp 3 %

                - det bäste är om man hittar aktier som har rört sig inom ett litet intervall inom första timmen för utbrotten blir kraftigare och risken mindre på grund utav stopplossen

                tack till Henric för scriptet ska bli intressant och testa

                Comment


                • #9
                  Jag har labbat lite med scriptet nu. Missade när detta lades upp i mars. Med lite filter så är det klart användbart ut på OMX. Har precis analyserat resultaten och stämt av performance på lite olika filter vad som funkar och vad som inte gör det så ikväll ska jag testa resultatet igen.
                  Har inte alls fått det att fungera på andra index.
                  Har heller inte ännu fått till koden för short men det kommer.
                  Tack Henric!

                  Comment


                  • #10
                    Kul att du har fått den att fungera med egna filter. Har du fått till short?

                    Comment


                    • #11
                      Nej, har inte fått till short. Tar aldrig någon position med de ändringar som jag har försökt mig på. Något irriterande.

                      Comment


                      • #12
                        Hej!

                        Jag är ny kund och försöker lära mig scriptspraket som verkar kraftfullt men ovant. Da jag först vill fa igang en breakoutstrategi för aktier har jag gett mig pa scriptet ovan och tänkte blasa liv i denna trad. Hoppas nagon kan svara pa följande fragor:

                        1. Jag testkörde scriptet imorse pa ett antal aktier. Jag körde i0, Timme = 9 och Minuter = 2. Vad jag förstar skall "Breakout_level" utgöras av det högsta avslutet under mätperioden. Dock triggade scriptet för flera aktier till ett pris som var lägre än toppnoteringen under perioden. Nagon som vet varför?

                        2. Varför "510" i scriptet?

                        3. Jag skulle vilja sätta en stop om kursen faller under lägsta avslutet under mätperioden eller sälja efter ett visst antal minuter. Blir dessa tillägg till scriptet rätt?

                        Köpscript:

                        Lower_level=llv(if(and(not(eqv(c,feed_igår)),mätperiod),l,0),510)
                        setgvarif(Lower_level,9999,1)

                        Säljscript:

                        stopptid:=60
                        köptid=lasttrade(b,d)
                        minSedanKöp=Mult(Sub(Date(),köptid),1440)
                        Lower_level=getgvar(9999)
                        exit1=or(gt(minSedanKöp,stopptid),lt(c,Lower_level))


                        4. Vad är den konceptuella skillnaden om jag kör scriptet i i0 vs i1?



                        Tack för svar!

                        Comment


                        • #13
                          Hej!
                          Här kommer delsvar på några av frågorna.
                          1 & 4) Kör aldrig i0 ! Jag har scriptat sedan 2011 och aldrig fått till något vettigt script med i0. i0 går per tick dvs per avslut. Olika aktier har helt olika avslutsfrekvenser och ibland kommer avsluten i skurar.

                          2) 510 är antal minuter under en handelsdag.


                          mvh
                          Bertil

                          Comment


                          • #14
                            Tack för svar Bertil.

                            Jag ska prova i1 imorgon bitti. Förhoppningsvis löser det problemet under 1).

                            Comment


                            • #15
                              Precis. Det som skiljer mellan olika upplösningar är värden för indikatorer och perioder. Annars är det exakt samma kurser som kommer in. För att få det att stämma med scriptet måste upplösningen vara i1.


                              Lower_level=llv(if(and(not(eqv(c,feed_igår)),mätperiod),l,0),510)

                              0 blir förmodligen lägsta värdet och bör bytas ut.

                              Comment

                              Working...
                              X