Allmänt meddelande

Collapse
No announcement yet.

i(60)

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

  • i(60)

    Testkörde min första ordermodell för omxterminer på riktigt för första gången i morses och spang på ett par saker. Det första gäller i() operatorn. Som exempel, säg att min köptrigger ser ut som nedan.

    buy:=GT(C,mov(C,5,S))
    i60(mult(buy,10))

    Min förväntan var att jag skulle få en köpsignal om 60 min stapeln stängde över sitt glidande MA5 men det som ser ut att hända är att jag får en köpsignal så fort terminen tar sig över sitt MA5 för 60 min staplar (jag hämtar data varje minut). Stämmer min observation? Om så, hur rättar man till det?

    /Varja

  • #2
    De finns två principer att begränsa signalerna:

    1. Enbart känna av korsning, inte nivå.
    2. Att man har en targetantal, och om man ligger på target, så spärrar man nya signaler av samma typ.

    För att känna av korsning uppåt:

    m1:=mov(C,5,S)
    buy:=and(cross(C,m1),gt(c,ref(c,1)))
    i60(mult(buy,10))


    Sedan om man backtestar kan man göra testen på high, så vet man att perioden varit över medel i den perioden någon gång. Men det lät inte som det var målet, utan vid periodens utgång bara.

    Comment


    • #3
      Tack. Jag tror att det som gör mig lite förvirrad är hur i() operatorn fungerar. Det jag förväntar mig skall hända i skriptet ovan är att jag inte skall kunna få några signaler alls utom vid hel timme. Men så funkar det alltså inte? Hur gör jag för att få till det jag vill?

      Comment


      • #4
        Innevarande stapel är live, dvs den förändras och byggs under perioden i detta fallet 60 minuter.

        Två sätt att agera på detta är:

        1. Agera i nästa period, då en period just blivit fullbordad.

        Det gör du med ett enkelt Aref() på signalen.

        T.ex så här
        m1:=mov(C,5,S)
        buy:=and(cross(C,m1),gt(c,ref(c,1)))
        i60(mult(aref(buy,1),10))

        2. Lägga minutspärr så du bara agerar i sista minuten på perioden. Det finns ett antal principer i script här på forumet.

        Ett sätt är ung:

        minuter_ini_stapel:=mult(sub(date(),d),1440)
        är_sista_minuten:=ge(minuter_ini_stapel,59)

        D ger tidstämpel på periodens start.

        Date() ger systemtid nu.

        så gör du And() av det villkoret med övriga för signalen.

        60-minuters går ju inte jämnt ut på en dag så sista perioden för dagen får man ha villkor för stängningscallen eller spärra helt då man säkert inte vill ta position då, utan bara möjligen gå cash.

        Comment


        • #5
          Tack för snabba svar. Så om jag lägger in följade kod som ett kontrollskript för mina köp och säljmodeller så borde det kanske funka?

          current:=mult(sub(date(),D),1440)
          is_59:=ge(current,59)

          is_last_hour:=ge(frac(date()),div(17,24))
          is_19:=ge(current,19)
          is_call:=add(is_last_hour,is_19)

          or(is_call,is_59)


          ps. Ibland är det inte fel att ta position i callen då det finns gott om terminer att handla då. ds
          /Varja

          Comment


          • #6
            Skulle nog rekommendera att lägga det i triggerscriptet. Annars får 500 meddelanden om två rader minst varje dag bara för att meddela att det är spärrat.

            Beslutsföljden för ordersekvens är följande:

            1. Triggern sann
            Då meddelas att triggern exekveras
            2. Alla använd kontrollscript körs
            ifall något spärrar så meddelas det


            Så denna typen av reguljära spärrar bör inte användas för ändamålet.

            Comment

            Working...
            X