Allmänt meddelande

Collapse
No announcement yet.

Orderskurar vid test av köpscript

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

  • #16
    Ursprungligen postat av Henric Visa inlägg
    Det låter lite tight med en minut, men du har nog redan klurat på detta.

    Om innehavskontrollen finns i signalscriptet behövs det inte i xk).

    Eftersom att modellen endast köper en gång per dag räcker följande spärr som fungerar oavsett upplösning. Ersätter bägge kontrollerna mot lasttrade. Annars är orderdelay generellt bra:

    gt(int(d),int(lasttrade(b,d)))
    Ja, det kan ju visa sig att en minut är tight.

    Jag kollar mot öppningspriset dock i alla köpscripten så om jag gör ett "stickprov" och kollar
    30 minuter efter öppning och även 30 minuter innan stängning
    också så har ju människor haft tid på sig att bestämma sig kollektivt vart
    priset ser ut att ta vägen.

    Min edge bygger ju på sentiment med tidsperspektiv på 2 dagar upp till kanske 3-4 veckor.

    Test i analysbänken borde också ge mig en uppfattning om jag verkligen
    har hittat en edge eller är ute och cyklar.

    Ska köra testning med alla idéer och lösningar och ge en uppdatering
    i tråden om hur det gick. Tack så mycket åter igen för all er hjälp !
    Handelsstrategi

    Typ: Swing trading
    Marknad: Trendföljande
    Tidshorisont: 2 dagar och uppåt
    Entry: Baserad på candlestickformationer och bekräftad rörelse i ”min” riktning hos OMXSPI + instrumentet
    Indikatorer: Stochastics
    Profit targets: MA20/50/200, konsolideringsområden, trendlinjer, gap och Fibonaccinivåer
    Monitorering: Automatisk med larm när köp, profit target och sälj skett
    Exit: Baserat på candlestickformationer, initial stop, tidsstopp eller trailing stop baserat på 2*ATR(21)

    Comment


    • #17
      Jag har kört enhets -och funktionstest på alla varianter nu och
      landat på att gt(int(d),int(lasttrade(b,d))) fungerar bäst i mitt fall.

      Att orderskurar försvinner i livemiljö som Wicke sa tidigare borde egentligen
      räcka men detta blir ju ett extra skydd. Alltid bra med både flytväst och snorkel.

      Har tre frågor som blir aktuella nu.

      Först, om jag nu vill testa säljmodellen i testmiljö (med testkonto och Simulerad ordermodell)
      kommer säljmodellen att upptäcka de köporders som skapats i loggade lokala
      transaktioner eller måste man "provocera" fram fejkade positioner för att
      säljmodellen ska upptäcka en position på något sätt ?

      Sedan om jag vill testa i livemiljö och undvika verkliga köp är det då en bra idé att göra så här ?

      1. Tillfälligt koppla ur va)-scriptet och ersätta det med att sätta 0 i fältet Antal i fliken Sekvensens beteende

      2. Ändra köpsekvensen från Simulerad till Autoorder i högerklicksmenyn Typ av sekvens -> Autoorder

      3. Ändra konto från testkonto till det konto man har tänkt att handla med.

      4. Koppla ordermodellerna till de instrument man vill testa på.

      Givet att det fungerar att köra med noll i Antal vid livetestning, kommer
      Nordnet att reagera på om det skickas "nollorders" till deras system eller
      är detta ett ok sätt att testa på ?

      Många frågor men det är ju så man lär sig.
      Handelsstrategi

      Typ: Swing trading
      Marknad: Trendföljande
      Tidshorisont: 2 dagar och uppåt
      Entry: Baserad på candlestickformationer och bekräftad rörelse i ”min” riktning hos OMXSPI + instrumentet
      Indikatorer: Stochastics
      Profit targets: MA20/50/200, konsolideringsområden, trendlinjer, gap och Fibonaccinivåer
      Monitorering: Automatisk med larm när köp, profit target och sälj skett
      Exit: Baserat på candlestickformationer, initial stop, tidsstopp eller trailing stop baserat på 2*ATR(21)

      Comment


      • #18
        Du kan ju sätta ordermodellen i Simulera-läge och få loggade transar, men någon innehav skapas inte och därmed måste man "lura" säljscripten att tro att det finns innehav.

        En annan variant är att köra skarpt, men ansluta ordermodellerna till ett av simulerakontona från Analysbänken. Då skickas inga order till Nordnet. Samma sak dock, innehav skapas inte. Du kan även köra skarpt till ett riktigt konto med noll i antal, då får du en kod i Larmlistan "Ej sänd nollorder", och inget skickas till Nordnet.

        Den tredje och mer raffinerade varianten är att helt enkelt låta en global cell ersätta innehavskollen, dvs du kan låta Long-modellen sätta önskat antal innehav i cell 100 (bara som exempel):

        setgvarif(5,100,köpsignal)


        Och vips så kan alla script läsa av det fejkade innehavet med

        innehav=getgvar(100)

        När säljmodellen slår till kan den "sälja" innehavet med:

        setgvarif(0,100,säljsignal)



        Blankade innehav simuleras på samma sätt:

        setgvarif(-5,100,blanksignal)


        osv.

        Vi håller på att titta på att bygga färdigt virtuella demokonton fullt ut så att man kan ansluta sina ordermodeller "skarpt" till Analyzerns konton, och följa handeln precis som vanligt i orderdialogen. Tanken är att låta depåsaldon och alla värden skrivas ned på disk så att det uppför sig som ett vanlig live-konto.


        Comment


        • #19
          Tack Rikard.

          Gjorde enhetstestning med globala variabler och det ser ut att funka finfint.
          Ska testa under marknadstid imorron med säljscriptet också.

          Mycket trevligt om man kan koppla testning som kan simulera skarp trading också som du nämner.
          Ser fram emot denna funktionalitet.
          Handelsstrategi

          Typ: Swing trading
          Marknad: Trendföljande
          Tidshorisont: 2 dagar och uppåt
          Entry: Baserad på candlestickformationer och bekräftad rörelse i ”min” riktning hos OMXSPI + instrumentet
          Indikatorer: Stochastics
          Profit targets: MA20/50/200, konsolideringsområden, trendlinjer, gap och Fibonaccinivåer
          Monitorering: Automatisk med larm när köp, profit target och sälj skett
          Exit: Baserat på candlestickformationer, initial stop, tidsstopp eller trailing stop baserat på 2*ATR(21)

          Comment


          • #20
            En liten uppföljning. Har testat med globala variabler nu och säljscriptet agerar.

            Även mitt kontrollscript agerade och jag tror det var för att jag har
            innehavskontrollen där med gt(portfolio(v),0) eller möjligen så triggade
            en annan kontroll: not(eqv(cash(d),0))

            Kontrollscriptet ser ut så här just nu
            (stort tack till Wicke för detta från Account Safety-tråden
            http://www.autostock.se/vbulletin/showthread.php?t=3377 ):

            xk) Control script sell

            {max tillåten spread och rörelse per 1 minut}
            max_procent:=1

            {Säkerställer att systemtid och databastid är på samma dag.}
            datum_ok=eqv(int(d),int(date())) {tested ok}

            {Säkerställer kontakt med Nordnetdepån}
            account_ok=not(eqv(cash(d),0)) {tested ok}

            {Check that I currently own the instrument.}
            innehav=gt(portfolio(v),0) {tested ok}

            {Blir falskt om antingen köp- eller säljkursen är noll.}
            kurs_finns=and(gt(b,0),gt(s,0)) {tested ok}

            {Maximum 1% bid-ask spread}
            spread_ok=lt(div(s,b),1.01) {tested ok}

            { Is current sell price less than 1% below previous sell price. }
            rimligt=lt(s,mult(add(div(max_procent,100),1),aref(s,1))) {tested ok}

            {Combine conditions}
            and(and(and(and(datum_ok,account_ok),innehav),kurs_finns),spread_ok) {tested ok}

            Glädjande att komma framåt. Nu är ju egentligen frågan i denna tråden
            besvarad genom er hjälp. Tack igen för det.

            Mitt nästa steg är att förstå vilken del av mitt säljscript som agerade.
            Då jag har fem olika möjliga delar som kan trigga så skulle jag behöva
            en slags indikator, typ en kod eller liknande som skriver ut vilken del
            som triggade.

            Jag vet att detta har diskuterats tidigare på forumet men jag hittar inte
            vilken forumtråd det var. Om jag minns rätt så kan man använda minnescellerna 2-9
            för retval och getval som en variant för detta. Jag ska leta i forumet, men
            om någon vet länken till forumtråden så får ni gärna länka den.
            Attached Files
            Handelsstrategi

            Typ: Swing trading
            Marknad: Trendföljande
            Tidshorisont: 2 dagar och uppåt
            Entry: Baserad på candlestickformationer och bekräftad rörelse i ”min” riktning hos OMXSPI + instrumentet
            Indikatorer: Stochastics
            Profit targets: MA20/50/200, konsolideringsområden, trendlinjer, gap och Fibonaccinivåer
            Monitorering: Automatisk med larm när köp, profit target och sälj skett
            Exit: Baserat på candlestickformationer, initial stop, tidsstopp eller trailing stop baserat på 2*ATR(21)

            Comment


            • #21
              Ursprungligen postat av shadowtwister Visa inlägg

              Mitt nästa steg är att förstå vilken del av mitt säljscript som agerade.
              Då jag har fem olika möjliga delar som kan trigga så skulle jag behöva
              en slags indikator, typ en kod eller liknande som skriver ut vilken del
              som triggade.

              Jag vet att detta har diskuterats tidigare på forumet men jag hittar inte
              vilken forumtråd det var. Om jag minns rätt så kan man använda minnescellerna 2-9
              för retval och getval som en variant för detta. Jag ska leta i forumet, men
              om någon vet länken till forumtråden så får ni gärna länka den.
              Först måste man som du säger få till något sorts kodsystem.
              Då kan man använda sig av nedanstående. Den loggade koden kan man sedan (tror jag) få fram ur "loggade lokala ordertransaktioner".

              { indexering av olika strategier }
              {skriver köpID till cell 1 vid köp. Därefter kan vilket script som helst få reda på det genom lasttrade(b,1)}


              kod1=if(strategi1,11,0)
              kod2=if(strategi2,12,0)
              kod3=if(strategi3,13,0)
              köpID=add(kod1,add(kod2,kod3))

              retval(köpID,1)

              Last edited by LillWicke; 2014-02-27, 20:03.

              Comment


              • #22
                Häpp, ser att du fått delnamn av köpkod! Ajabaja...

                Comment


                • #23
                  Ursprungligen postat av Rikard Nilsson Visa inlägg
                  Häpp, ser att du fått delnamn av köpkod! Ajabaja...

                  He, He det gick visst lite fort.
                  Ändrar till köpID i stället.

                  Comment


                  • #24
                    Hej,

                    Bumpar denna tråden. Har kört skarpt test live ett tag nu med antal=1 för
                    att se hur köp -och säljscript agerar i verkligheten.

                    Kör jag i simulera-läge så fungerar det. Jag får endast en order istället för flera.
                    Kör jag i live-läge så händer dock ingenting trots att jag dubbelkollat att alla
                    villkor är sanna.

                    Jag har provat under fyra olika handelsdagar.

                    Jag misstänker tre möjliga orsaker:

                    1. gt(int(d),lasttrade(b,d)) fungerar endast en gång och sedan aldrig mer igen.

                    2. Det är något mysko med d och date(). Jag har märkt att vissa instrument
                    "laggar" betydligt om jag använder d. Ett exempel är HLDX (Haldex). Detta
                    instrument verkar nästan alltid ligga 2-4 minuter efter den verkliga tiden.

                    3. Något är fel i inställningarna för ordermodellerna. Som jag förstår det bör
                    rätt inställningar vara: Autoorder, LoopStart och streck (-) under "Mak. befintlig".
                    Ingenting händer dock trots dessa inställningar.

                    För att summera:
                    Det verkar alltså som att när man kör live-läge så händer ingenting alls.
                    Kör man i simulera-läge så triggar det en gång på rätt sätt men sedan aldrig mer.

                    Någon som har idéer på varför script och ordermodeller uppför sig så här ?
                    Handelsstrategi

                    Typ: Swing trading
                    Marknad: Trendföljande
                    Tidshorisont: 2 dagar och uppåt
                    Entry: Baserad på candlestickformationer och bekräftad rörelse i ”min” riktning hos OMXSPI + instrumentet
                    Indikatorer: Stochastics
                    Profit targets: MA20/50/200, konsolideringsområden, trendlinjer, gap och Fibonaccinivåer
                    Monitorering: Automatisk med larm när köp, profit target och sälj skett
                    Exit: Baserat på candlestickformationer, initial stop, tidsstopp eller trailing stop baserat på 2*ATR(21)

                    Comment


                    • #25
                      Handlar du manuellt vid sidan kan innehav påverka modellen? Lika så om du har handlat manuellt och lasttrade påverkar. Annars skulle jag rigga upp scriptet i larmläge. Exkludera misstänkta villkor. Får du larm vet du att dessa påverkar eller att själva modellen spökar. d är tiden då stapeln börjar, medan date() är systemtid vid scriptkörningen. Har du provat att köra ordermodellen i analysbänken?

                      Comment


                      • #26
                        Ursprungligen postat av Henric Visa inlägg
                        Handlar du manuellt vid sidan kan innehav påverka modellen? Lika så om du har handlat manuellt och lasttrade påverkar.
                        Det stämmer att jag har testat att manuellt sälja via Nordnets webbsida och deras app
                        som en del av de tester jag vill köra live för att se att allt funkar ok. Det gör
                        kanske att AT inte är medveten om de transaktionerna. Jag får fundera på
                        hur det påverkar rent praktiskt. Då jag vill handla högst två gånger på en dag
                        (en köptransaktion och en säljtransaktion) så bör det inte påverka jättemycket
                        eftersom nästa handelsdag har högre numeriskt värde än tidigare handelsdagar.

                        Ursprungligen postat av Henric Visa inlägg
                        Annars skulle jag rigga upp scriptet i larmläge. Exkludera misstänkta villkor. Får du larm vet du att dessa påverkar eller att själva modellen spökar.
                        Jag testade med att skala av scriptet så mycket det gick för att endast testa
                        orderfunktionen, dvs. se om ingen order, en order, eller flera orders skapades.

                        Avskalat köpscript:

                        sl) Test

                        open:=887 {Change time for testing purposes.}
                        minute=int(mult(frac(d),1440))
                        time=eqv(minute,open)
                        orderspärr=gt(int(d),int(lasttrade(b,d)))
                        and(time,orderspärr)

                        Övriga script i ordermodellen och ordermodellens inställningar lämnade jag orörda.
                        Jag körde på Skanska (SKA B).

                        Resultat (från Larm/Meddelande-rutan):

                        14:47 ORDER "sl) Test SKA B" kurs 152.10
                        14:47 GSM larm sänt!

                        Endast en order skapades, så orderspärr gör sitt jobb vilket betyder att ordermodellen
                        i sig nog är ok uppsatt och troligtvis är det någon annan del i originalscriptet som
                        orsakar att order inte skapades.

                        Ursprungligen postat av Henric Visa inlägg
                        d är tiden då stapeln börjar, medan date() är systemtid vid scriptkörningen.
                        Jag provade med d först. Datat som kom in uppdaterades först minuten efter
                        vilket fick effekten att ingen order skapades under den aktiva minuten.

                        När jag bytte till date() så fick jag en order enligt ovan.

                        Det är en bra insikt och som du nämner tidigare i tråden så är nog 1 minut
                        lite för tight. Det kan nog vara smart att ändra till intraday med 5, 10 eller 15
                        minutersintervall istället då sannolikheten för att det finns data borde öka ju
                        längre tidsintervall man tittar på. Då kan det nog också vara bra att ta bort
                        minutkontrollen - time=eqv(minute,open).

                        Ursprungligen postat av Henric Visa inlägg
                        Har du provat att köra ordermodellen i analysbänken?
                        Nja, jag har inte satt mig in i analysbänken ännu. Det börjar nog bli dags för
                        mig att avsätta ordentligt med tid och lära mig den.
                        Handelsstrategi

                        Typ: Swing trading
                        Marknad: Trendföljande
                        Tidshorisont: 2 dagar och uppåt
                        Entry: Baserad på candlestickformationer och bekräftad rörelse i ”min” riktning hos OMXSPI + instrumentet
                        Indikatorer: Stochastics
                        Profit targets: MA20/50/200, konsolideringsområden, trendlinjer, gap och Fibonaccinivåer
                        Monitorering: Automatisk med larm när köp, profit target och sälj skett
                        Exit: Baserat på candlestickformationer, initial stop, tidsstopp eller trailing stop baserat på 2*ATR(21)

                        Comment


                        • #27
                          Om din manuella handel kan påverka lasttrade för dina script går det att lagra dessa värden i celler eller retval vid order. Det blir lite bökit, men fungerar. Har du byggt ordermodeller så är steget inte så stort till att lägga in dessa i analysbänken.

                          Comment


                          • #28
                            Tack Henric för all hjälp. Nu vet jag hur jag kan gå vidare.

                            Testade med att använda ett längre tidsintervall inbakat i intradayprefix
                            med i5() igår också och det ser lovande ut.
                            Handelsstrategi

                            Typ: Swing trading
                            Marknad: Trendföljande
                            Tidshorisont: 2 dagar och uppåt
                            Entry: Baserad på candlestickformationer och bekräftad rörelse i ”min” riktning hos OMXSPI + instrumentet
                            Indikatorer: Stochastics
                            Profit targets: MA20/50/200, konsolideringsområden, trendlinjer, gap och Fibonaccinivåer
                            Monitorering: Automatisk med larm när köp, profit target och sälj skett
                            Exit: Baserat på candlestickformationer, initial stop, tidsstopp eller trailing stop baserat på 2*ATR(21)

                            Comment


                            • #29
                              Live test med i5() fungerar korrekt. Detta var mitt sista
                              test så nästa måndag kommer jag "gå live" på riktigt. Ska bli spännande !

                              Tack alla på forumet för er hjälp genom denna lilla resan från de första stapplande
                              scriptstegen till en färdig handelsmodell. Jag kommer posta hur det går i Bertils utmärkta
                              forumtråd:

                              "Hur går era affärer ?"
                              http://www.autostock.se/vbulletin/showthread.php?t=2885

                              Handelsstrategi

                              Typ: Swing trading
                              Marknad: Trendföljande
                              Tidshorisont: 2 dagar och uppåt
                              Entry: Baserad på candlestickformationer och bekräftad rörelse i ”min” riktning hos OMXSPI + instrumentet
                              Indikatorer: Stochastics
                              Profit targets: MA20/50/200, konsolideringsområden, trendlinjer, gap och Fibonaccinivåer
                              Monitorering: Automatisk med larm när köp, profit target och sälj skett
                              Exit: Baserat på candlestickformationer, initial stop, tidsstopp eller trailing stop baserat på 2*ATR(21)

                              Comment

                              Working...
                              X