Allmänt meddelande

Collapse
No announcement yet.

Analys i OMXS30/termin, men handla i Bull/Bear

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

  • Analys i OMXS30/termin, men handla i Bull/Bear

    Hej! Nybörjare som jag är så försök vara snälla i era kommentarer!

    Först vill jag förstå vad några uttryck egentligen gör, och sen vill jag veta vad som är fel i mina script.


    1. Först alltså några generella frågor:

    -Exakt vad gör de olika delarna i uttrycket:

    setgvarif(köp2,120,eqv(cum(1),1)) ??
    resp.
    köp1:=eqv(getgvar(120,1)) ??

    och vad gör egentligen
    and(0,0) ??
    i slutet av det grafiska analysscriptet här nedan?

    ------

    2. Får inte detta upplägg att funka i sista steget. Vill analysera (intraday) på OMXS30 eller på motsvarande termin, men handla (intraday) i Xact eller Öhmans bull (börjar med bull och går vidare med bear när bull fungerar som det ska). Lägger in sista delen av analysscriptet (kopplat till OMXS30-index) som ritar fint mha draw så jag antar att scriptet returnerar köp2- och sälj3-värden som det skall. I nuläget vill jag torrköra detta så att köp- och sälj-flaggor ritas i bull, innan jag börjar handla på riktigt. Problemet är att både köp- och säljflagga ritas ut var 5e minut under hela handelsdagen så något verkar vara fel!

    Jag vill att scripten fungerar som så att de köper när köpsignal ges och säljer när säljsignal ges från analysscriptet. Jag vill alltså i förlängningen INTE att -sälj bull- per automatik innebär -köp bear- och vise versa utan att jag kan stå utanför marknaden under vissa perioder under en handelsdag om scriptet inte tycker det är läge att ta position i någon riktning. Planen är väl att, för bear, antingen baka in köp och sälj i analysscriptet nedan eller skriva ett separat analysscript för bear helt och hållet.


    Alltså, är något fel i koden nedan?
    ... delar av det grafiska, g) analysscriptet, för OMXS30 eller termin (flaggor ritas alltså som förväntat mha draw):

    .
    .
    .
    periodlängd:=5
    vänta_min_in_i_stapeln:=3
    {blockerar köpsignal under de första X min av en period/stapel}
    tidnu=FRAC(DATE())
    totalt=MULT(tidnu,1440)
    rest=INT(MOD(totalt,periodlängd))
    blockerad_tid_av_stapeln=GE(rest,vänta_min_in_i_stapeln)
    .
    .(div. villkor)
    .
    setgvarif(köp2,120,eqv(cum(1),1))
    setgvarif(sälj3,121,eqv(cum(1),1))
    draw(mult(köp2,5),2,gsbf)
    draw(mult(sälj3,5),3,rsbf)
    and(0,0)
    )


    ---


    sl) köpscript, kopplat till bull som läser i global cell enligt analysscriptet ovan (visa graf som flagga, bland kursstaplar)

    köp1:=eqv(getgvar(120,1))
    ej_innehav:=le(portfolio(v),0)
    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))
    i5(
    köp2=AND(köp1,ej_innehav)
    köp3=and(köp2,okatthandla)
    mult(köp3,4)
    )


    ---


    sl) säljscript, kopplat till bull som läser i global cell enligt analysscriptet ovan (visa graf som flagga, bland kursstaplar). Har provat att ta bort kravet på innehav under testningen.

    sälj1:=eqv(getgvar(121,1))
    innehav:=gt(portfolio(v),0)
    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))
    i5(
    sälj2=AND(sälj1,innehav)
    sälj3=and(sälj2,okatthandla)
    mult(sälj3,2)
    )

    ---

    Varför funkar det inte? Vad är fel...?

    ...Borde
    (cum(1),1))
    istället vara
    (cum(1),0)) ??

    Har testat med detta också och det larmar ändå från både köp och sälj-scriptet samtidigt... hur det nu är möjligt!?


    Tips, råd eller handfast hjälp med hur koden ska se ut för att det ska fungera mottages tacksamt!

  • #2
    setgvarif(köp2,120,eqv(cum(1),1))

    Sätter cellen 120 till köp2 då det inte är diagramritning eller när det endast finns
    en stapel i diagrammet. Detta för att undvika att sciptet sätter värden då diagrammet
    ritas om från början. Det blir samma sak som att välja bort visa diagram och
    använda setgvarif(köp2,120,1)

    köp1:=eqv(getgvar(120,1))

    köp1 får värdet från cell 120. Vet inte om du behöver/kan använda 1 som
    parameter 2. Jag skulle utelämna parameter två eller använda N.
    tex. köp1:=eqv(getgvar(120)

    and(0,0)

    Används för att vara säker på att scriptet alltid returerar falskt. Scriptet
    ska bara användas till att sätta värden.

    Ett problem är de global cellerna inte är en dataserier och köp- och säljscripten vet inte vilka värde som
    fanns innan, utan hämta senaste lagrade.

    Detta är en beskrivning av hur jag brukar göra för att nysta upp problem i script och köra trigger på ett instrument
    och handla ett annat.

    För att vara säker på att signalerna/triggerscripten fungerar som det ska skulle jag bygga ett analysscript
    för long omx och ett för exit long omx. Dessa kan rita signalerna i diagrammet. Använda larm för både analysscripten
    och bull scripten. Detta blir mer exakt än att bara titta på diagrammet. Ta bort innehavskontrollen vid torrkörning och kolla att
    köp och sälj aldrig kan vara sanna samtidigt. Min erfarenhet är att det blir lättare att analysera problem på detta sätt.

    Enkelt exempel
    ==========
    {köpsignal omx long}
    test1:=gt(mov(c,3,s),mov(c,6,s)) {förenklat villkor}
    köp:=and(and(le(GetGvar(120),0),test1),eqv(cum(1),1))
    SetGvarIf(1,120,köp)
    draw(mult(test1,5),2,gsbf)

    i5(
    and(köp,1)
    )

    {exisignal omx long}
    test1:=lt(mov(c,3,s),mov(c,6,s)) {förenklat villkor}
    sälj:=and(and(ge(GetGvar(120),0),test1),eqv(cum(1),1))
    SetGvarIf(-1,120,sälj)
    draw(mult(test1,5),2,rsbf)

    i5(
    and(sälj,1)
    )


    {köp bull}
    i1(
    gt(GetGvar(120),0)
    )

    {sälj bull}
    i1(
    lt(GetGvar(120),0)
    )
    Last edited by Henric; 2012-07-15, 18:45.

    Comment


    • #3
      Ska du verkligen ha med "cum(1),1)" i g)-scriptet? Jag menar, du kör ju scriptet enbart som grafiskt och det ska det ju skriva i de globala cellerna.

      Comment

      Working...
      X