Allmänt meddelande

Collapse
No announcement yet.

Orderskurar vid test av köpscript

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

  • Orderskurar vid test av köpscript

    Hej,

    Provar mitt köpscript som en separat en-sekvens ordermodell just nu och får
    lite lustiga resultat.

    Jag får 12-15 st orders som skickas var 5:e sekund men jag vill endast ha en
    order som skickas. Antar att det har något att göra med hur ofta scriptet
    agerar.

    Har provat Rikards metod med att använda retval() och getval():
    http://www.autostock.se/vbulletin/showthread.php?t=2742

    "Det är inget mysterium, det är ju beroende av när de olika villkoren löser ut osv. Man kan alltid lägga till Draw()-satser för att studera när olika villkor är sanna resp falska.

    Ett annat sätt att få bort skurar av signaler är ju att spara första signalen i en stapel med tex:

    Retval(signal1,1)

    och låta scriptets output vara:

    signal2=getval(1)

    så låter man cell 1 komma ihåg signalen resten av stapeln."

    Det verkar inte hjälpa dock. Så här har jag skrivit i mitt script:

    köp=...
    retval(köp,1)
    signal=getval(1)
    and(signal,1)

    Jag kör inte med något intradayprefix. Tittar jag i loggade lokala transaktioner
    så finns det ett helt gäng med ettor i Cell2.
    Ordermodellen är inställd på simulerad handel och jag använder ett testkonto.

    Ser ni några uppenbara problem här och hur kan man säkerställa att det inte skapas
    en massa orderskurar ?

    Har bifogat ett screenshot på lokala ordertransaktioner.

    /Robban
    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)

  • #2
    Det är för att det är en lokal order som inte leder till något avslut. Det går att styra hur ofta man tillåter en modell att lösa ut med tex

    gt(d,lasttrade(b,d))

    för att säkerställa att databastiden är minst 1 period senare än den period då order lades senast.

    Comment


    • #3
      Prova med:

      köp1=...
      signal=eqv(getval(1),0)
      köp2=and(signal,köp1)
      retval(köp1,1)
      mult(köp2,10)

      Annars försvinner orderskurarna också när du kör med antalskontroll i skarpt läge.

      Comment


      • #4
        Ok, jag har ju en innehavskoll i kontrollscriptet också: ej_innehav=le(portfolio(v),0)

        Den aktiveras alltså inte när man simulerar ?

        Visste inte att man kan använda d som första parameter i lasttrade().
        I scriptreferensen står det LastTrade(BS,VPD01234) där b och s
        är B=Köptransar, S=Säljtransar.

        Så om man vill förhindra en orderskur hur skriver jag så att jag får
        in villkoret korrekt ? Så här ?

        köp=..
        orderspärr=gt(d,lasttrade(d,p))
        and(köp,not(orderspärr))

        Kan man använda denna logiken i både livemiljö och i testmiljö ?

        Det känns annars osäkert om man kan lita på detta om man
        lyckas undvika orderskurar i testmiljö men sedan får orderskurar
        i livemiljö istället.
        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


        • #5
          Nja, fel av mig: gt(d,lasttrade(b,d))

          ska det vara så returnerar Lasttrade() tidstämpel för senaste ordern kvantiserat enligt vald scriptupplösning.

          Comment


          • #6
            Ok, såg att Wicke hann svara emellan också.

            Så det finns två möjligheter då:

            Rikards metod:

            köp=..
            orderspärr=gt(d,lasttrade(b,d))
            and(köp,not(orderspärr))

            Wickes metod:

            köp1=...
            signal=eqv(getval(1),0)
            köp2=and(signal,köp1)
            retval(köp1,1)
            mult(köp2,10)

            Givet att detta stoppar orderskurar i testmiljön, behöver jag plocka bort detta
            när jag sedan kör live om ej_innehav=le(portfolio(v),0) tar hand om detta i det läget
            eller bör jag ha kvar denna extrakollen i båda test och live ?
            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


            • #7
              Vilken upplösning kör du scripten i? Om det bara är några minuter kanske LastTrade()-varianten kan vara med även live eftersom den hjälper till att stoppa orderskurar vid eventuella kommunikationsfel, men om det är dagsupplösning kommer filtret endast tillåta en enda order per dag, och det kanske är för "klent"?

              Comment


              • #8
                På köpsidan så tittar jag under en specifik minut. T.ex. klockan 9.01 eller klockan 9.30 eller 17.00.

                Det jag vill ha är endast en köporder per dag dock, men jag vill titta vid tre olika
                tillfällen under dagen om marknaden och instrumentet vänt uppåt vid dessa
                tre kontrolltidpunkter.
                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


                • #9
                  Kört test på båda varianterna nu. Med Rikards så hände ingenting och med Wickes så
                  blev det orderskurar igen.
                  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


                  • #10
                    Är detta ett icke-problem när man kör live om man har ej_innehav=le(portfolio(v),0) i sitt
                    xk)-script eller kommer orderskurar ändå att påverka ?
                    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


                    • #11
                      Återkopplingen med Nordnet kan vara sen och då vet inte scriptet om att det finns ett innehav. Enklast är att ha kollen i signalscriptet. Är tex signalen sann ett tag och om det inte finns en innehavskoll kommer hela fönstret vara fullt med xk). Samma sak med delay och spärr. Vet inte om dina problem med orderskurar beror på att du endast testkör.

                      Comment


                      • #12
                        Ursprungligen postat av shadowtwister Visa inlägg
                        Kört test på båda varianterna nu. Med Rikards så hände ingenting och med Wickes så
                        blev det orderskurar igen.
                        Har tittat i dina kommentarer lite nu. Som jag fattat det kör du scripten i 1-minutsupplösning men du vill att de ska kolla efter signaler bara ett par gånger om dagen? Varför ska du köra i 1-min upplösning?

                        Om du kör "min metod" med retval i 1-minutsupplösning kommer du att få signaler varje minut om köp1 är aktiv. Kör du den däremot i dagsupplösning kommer du bara att få en signal per dag. I 60-min åtta signaler per dag osv.

                        Om du vill kunna kontrollera på förutbestämda fasta tider och trots allt promt köra i 1-min kan du byta ut retval-cellen mot en global cell i stället.



                        PS: Om du inte redan har läst så har jag sammanställt några smarta kontrolller här:

                        http://www.autostock.se/vbulletin/sh...rta+kontroller

                        Comment


                        • #13
                          Från tidigare inlägg ovan:

                          Har du gjort ett köp kommer villkoret aldrig att blir sant. D anger tiden i början av staplen.

                          orderspärr=gt(d,lasttrade(b,d))
                          and(köp,not(orderspärr))

                          ändra till:
                          orderspärr=gt(d,lasttrade(b,d))
                          and(köp,orderspärr)

                          Comment


                          • #14
                            Jag kör i dagsupplösning, utan intradayprefix men vill kolla under en minut
                            vid tre tillfällen under dagen: Klockan 9.01, klockan 9.30 och klockan 17.00.

                            Detta gör jag med tre separata köpscript som ska vara ordermodeller som
                            bara loopar tillbaka till sig själva. Följande tidskoll använder jag:

                            open:=990 {Change time for testing purposes.}

                            { Checks what time it is. }
                            minute=int(mult(frac(date()),1440))
                            time=eqv(minute,open)

                            time har jag sedan inbakat som ett av villkoren för att köp ska kunna bli sant.

                            Sedan har jag ett enda säljscript som kollar fem olika möjliga tillfällen
                            då ett sälj ska ske: Initial stop-loss, trailing stop-loss, tidsstopp,
                            säljsignal från candlestickformation och profit target + candlestickformation.

                            Alltså, varje separat köpscript kollar under en tidpunkt, under en aktiv minut, om
                            det är köpläge.

                            Om jag ändrar till:

                            orderspärr=gt(d,lasttrade(b,d))
                            and(köp,orderspärr)

                            kommer köpscriptet då bara ge sant en gång under den aktiva minuten
                            och inte en gång var 5:e sekund under den aktiva minuten, dvs. samma
                            resultat med orderskurar ?

                            Angående innehavskoll:
                            Jag tolkar det som att jag bör alltså peta in ej_innehav=le(portfolio(v),0) inne
                            i köpscriptet och i xk)-scriptet. Är det rätt ?

                            Har kollat account safety kontrollerna. Det är en jättebra post som jag haft mycket
                            nytta av.

                            Är det den här kontrollen som jag bör använda ?

                            timelock:=1
                            lt1:=LastTrade(B,D)
                            lt2:=LastTrade(S,D)
                            minSedanKöp:=mult(sub(date(),lt1),1440)
                            minSedanSälj:=mult(sub(date(),lt2),1440)

                            {Säkerställer att det gått tillräckligt lång tid för Nordnet att registrera senaste affär.}
                            orderdelay_ok=and(gt(minSedanKöp,timelock),gt(minSedanSälj,timelock))
                            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


                            • #15
                              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)))

                              Comment

                              Working...
                              X