Allmänt meddelande

Collapse
No announcement yet.

Hjälp med orderscript

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

  • Hjälp med orderscript

    Hej,
    Jag är ny här på forumet, och skulle behöva lite hjälp med ett script.

    Jag har lyckats fixa ett script som ger signal om jag ska ligga lång eller kort.
    vi kan kalla det (s),
    (egentligen två script, ett för lång signal och ett för kort)
    sen även ett som ger en indikation på vollan/rangen den senaste tiden.
    det kallar vi (r)

    Det jag behöver hjälp med är ett script som känner av min position och bestämmer hur många kontrakt som ska handlas när signal kommer om att det är dags att vända positionen.

    Låt oss säga att jag får signal att gå lång,
    då vill jag få en nettoposition på +2st kontrakt,
    varav det genast skall läggas ut en säljorder på det ena kontraktet
    till avslutets kurs plus (r)
    det andra kontraktet behålls till (s) ger kort signal,
    då vill jag sälja sammanlagt 3st kontrakt, det långa jag har i handen och 2st för kort position.
    ett kontrakt ska nettas, precis som vid långa positionen, vid avslutets kurs minus (r).
    Ibland kommer man aldrig få ett avslut på första kontraktet, så då vill jag att scriptet känner av att jag har en poss på 2st kontrakt och vid vändning således skickar en order på 4st.

    Jag hoppas att jag lyckats göra mig förstådd och att någon kan och vill hjälpa mig

    Mvh
    nyrn2k

    trevlig helg!
    Last edited by nyrn2k; 2011-08-19, 23:33.

  • #2
    Hej! Välkommen till forumet!

    Det du beskriver finns i princip färdigt, man kan använda något av antalscripten som ligger i de färdiga modellerna, tex nedanstående:

    va) Köpantal

    målantal:=2 {här bestämmer du antal kontrakt som du vill hamna på efter order}
    innehav:=Portfolio(v)
    i1(
    övermål=Ge(innehav,målantal)
    slutantal1=If(övermål,0,SUB(målantal,innehav))
    slutantal1
    )



    va) Blankantal

    blankantal:=-2
    innehav:=Portfolio(v)
    i1(
    undermål=Le(innehav,blankantal)
    slutantal=Abs(If(undermål,0,Sub(blankantal,innehav)))
    slutantal
    )



    Dessa båda script känner det aktuella innehavet och räknar ut hur många kontrakt som måste köpas/säljas för att hamna på målantalet.

    I triggerscripten lägger man ett villkort med Portfolio(v) som gör att triggern slutar larma när målantalet uppnåtts. Och som alltid rekommenderar vi att man använder följande xk)-script i ordermodellerna för att stoppa orderskurar snabbare än 1 minut:

    xk) Delay order


    tidspärr:=1
    lt1:=LastTrade(B,D)
    lt2:=LastTrade(S,D)
    minSedanKöp:=Mult(Sub(Date(),lt1),1440)
    minSedanSälj:=Mult(Sub(Date(),lt2),1440)
    OkAttHandla:=And(Gt(minSedanKöp,tidspärr),Gt(minSedanSälj,tidspärr))
    OkAttHandla





    /Rikard

    Comment


    • #3
      Tack för ditt svar

      jag tror att jag förstår dessa script efter att ha läst dom ett par gånger,

      men har du någon idé om hur jag ska lösa att det genast ska läggas en nettnings-order på ett av kontrakten en bit bort från avslutet, där avståndet beror på vollan (r) från mitt andra script?

      Sen verkar det ju smart att slänga in Delay-order-scriptet.

      Mvh
      nyrn2k

      Comment


      • #4
        Kanske finns det något användbart här.
        http://www.autostock.se/vbulletin/sh...akeprofitorder

        Comment


        • #5
          Om jag förstått rätt och vi förenklar lite så behöver du egentligen två sekvenser i köp-ordermodellen:

          Sekvens 1: Gå Long
          Hör köps det antal kontrakt som antalscripten räknar ut för att komma till målantal. Test att innehavet är mindre än målantal bör finnas så att man inte skickar order i onödan.

          Sekvens 2: Posta nettningsorder för en del av innehavet
          Man kan testa att man verkligen fått fullt antal kontrakt i depån, och i så fall posta en säljorder på en del av innehavet på valfritt pris, tex 5 punkter från senaste köp osv.
          Därefter låter man sekvensen loopa tillbaka till Sekvens 1.


          Nu har du en komplett ordermodell för att gå Long. Du behöver troligen en likadan för att gå Short. Två sekvenser i den också, varav den andra lägger ut en nettningsorder tex 5 punkter under senaste Sälj (priset där du blankade).

          Loop tillbaka till Sekvens 1.


          Dessa två ordermodellen ansluts parallellt till terminen.

          Comment


          • #6
            Hej,
            Tack för era svar!

            Nu har jag lagt märke till ett problem,
            jag får kurser, men jag kan inte se något orderdjup och
            när min modell signalerar skickas ingen order.
            Jag kopplade på den live imorse för första gången, i princip har jag snott hela ordermodellen från Trackern, bara signalen som är min egen...
            Kan det ha något att göra med att jag inte ser nåt orderdjup?

            Jag försökte nyss till och med skicka en order manuellt,
            och fick bekräftelse på att det blev skickad, men sen varken se ordern eller något avslut någonstans, varken i autostock eller på nordnets hemsida,
            vad beror det på?

            Mvh
            nyrn2k
            Last edited by nyrn2k; 2011-09-02, 11:30.

            Comment


            • #7
              Det är en väldigt vanlig fråga vi får, och orderdjupet går via en egen feed som måste aktiveras hos Nordnet. Man loggar helt enkelt in på sin Nordnetdepå, klickar på Depå > Abonnemang och tjänster > kryssa i kurser för aktier och terminer inkl orderdjup i realtid.

              Därefter måste Nordnet AutoTrader startas om för att få med sig abonnemanget på orderdjup i realtid.

              Vad gäller den skickade ordern, så loggas den i Starta > Loggade lokala ordertransaktioner så kan du se vilka värden som skickades. Den kanske makulerades pga felaktigt värde på något.

              Det finns också en hel del info loggat i en loggfil som heter Tradelog.txt och som ligger i

              c:/programdata/nordnetautotrader (om du kör Vista eller Win 7)

              alternativt

              c:/documents and settings/all users/application data/nordnetautotrader (om du kör XP)


              Comment


              • #8
                ok, nu har jag orderdjup iaf...

                i tradelog-filen hittade jag detta:

                *-->20110902 11:33:33 Sent order ---
                identifier=OMXS301I&marketID=12&price=943.7500&volume=1&side=sell&currency=SEK

                *-->20110902 11:33:33 Order response ---
                sent orderid=4111426,res=MIFID_ERROR,ostate=LOCAL,astate=INS_FAIL

                massor med likadana...
                problemet verkar ju ligga här, men vad betyder det?

                Mvh
                nyrn2k

                Comment


                • #9
                  nu lyckades jag manuellt sälja ett kontrakt,
                  så nu är det viktigt att vi löser det här så att jag åter kan fokusera mig på mitt förvärvsarbete ;-)

                  Comment


                  • #10
                    res=MIFID_ERROR betyder att avtal saknas för det aktuella instrumentet.

                    Kan det vara så att du anslutit en ordermodell till terminen och ett konto där du inte har terminsavtal? Och därefter sålt manuellt på ett konto med avtal, och då fungerar det.

                    Comment


                    • #11
                      Nej, jag har bara en depå och där har jag avtal...

                      Det måste ha varit grejen med orderdjupet, för det funkade ju inte lägga manuellt order innan, men efteråt funkade det...

                      Så jag kan bara anta att även den automatiska orderläggningen funkar nu,
                      vi får se när det kommer en ny signal...

                      Tack för hjälpen!

                      /nyrn2k

                      Comment


                      • #12
                        Prova att bygga något som lägger en order en bit ifrån spreaden så att du slipper avslut. Då kan du testa direkt om ordern hamnar i marknaden som den ska.

                        Comment


                        • #13
                          Förresten,

                          Finns det nåt sätt att bara få mail när det skett ett avslut, istället för varje gång en order skickas?

                          /nyrn

                          Comment


                          • #14
                            Det skulle vara Nordnets email/sms-tjänst som larmar vid avslut. Den är alltid bra att ha påslagen i vilket fall som helst, tex för de som kör någon av de kommersiella strategierna. Man får då ett SMS från oss när signal genererats, samt ett SMS från Nordnet när avslutet skett. Då vet man att allt fungerar som det ska.

                            Comment

                            Working...
                            X