Allmänt meddelande

Collapse
No announcement yet.

Portfölj/Lasttrade kontroll

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

  • Portfölj/Lasttrade kontroll

    Hej, Jag får inte mitt kontrollscript att fungera. Tanken är att det skall hantera falska signaler genom att återköpa intrumentet om "flaggan" försvinner.
    Jag exemplifierar med köp-sidan.
    tre villkor måste uppfyllas:
    - Senaste transaktion skall vara Sälj. Dvs. 0 i innehav av instrumentet i fråga.
    - RSI-linjen skall ligga över signallinjen. Dvs köpläge.
    - Det skall ske inom tidsfönstret. 240 sekunder från sälj och inte senare än 480 sekunder.


    Så här ser koden ut på köpsidan och jag fattar inte vad jag gjort för fel. Återköpet verkar inte fungera alls.
    Kod:
    i8(
    ....... 
    SendBuySignal=... Själva köpsignalen vid RSI-kors
    
    { PortföljKontroll }
    PrefStateInnehav=GT(RSILine,SignalLine) { 1 om innehav bör finnas dvs. köp om ej finns }
    EmptyPortfolio=EQV(Portfolio(v),0)
    LastTradeSell=EQV(LastTrade(),1) 
    NoStock=AND(EmptyPortfolio,LastTradeSell)
    
    SellTS=LastTrade(S,D)
    
    SekSinceSell=MULT(SUB(D,SellTS),86400) 
    Tidsfönster=AND(GT(SekSinceSell,240),LT(SekSinceSell,480))
    
    AgeraPåTom=IF(NoStock,AND(PrefStateInnehav,Tidsfönster),0)
    
    ParseSignal1=AND(SendBuySignal,SpreadOK)
    ParseSignal2=OR(ParseSignal1,AgeraPåTom)
    ParseSignal3=AND(ParseSignal2,EmptyPortfolio)
    
    
    MULT(ParseSignal3,10)
    )
    Sedan har jag ett nästintill likadant för sälj:
    Kod:
    i8(
    .......
    
    SendSignalB=... Själva säljsignalen vid RSI-kors
    
    { PortföljKontroll }
    PrefStateEmpty=LT(RSILine,SignalLine)
    InPortfolio=GT(Portfolio(v),0)
    LastTradeBuy=EQV(LastTrade(),0)
    HasStock=AND(LastTradeBuy,LastTradeBuy)
    
    BuyTS=LastTrade(B,D)
    
    SekSinceBuy=MULT(SUB(D,BuyTS),86400)
    Tidsfönster=AND(GT(SekSinceBuy,240),LT(SekSinceBuy,480))
    
    AgeraPåInnehav=IF(HasStock,AND(PrefStateEmpty,Tidsfönster),0)
    
    ParseSignal1=AND(SendSignalB,SpreadOK)
    ParseSignal2=OR(ParseSignal1,AgeraPåInnehav)
    ParseSignal3=AND(ParseSignal2,InPortfolio)
    
    { Sälj alltid 5 min innan stängning }
    mt1=mult(sub(market(c),frac(d)),1440)
    mt2=le(mt1,5)
    
    MULT(OR(ParseSignal3,mt2),10)
    )

  • #2
    Fattar inte riktigt hur det är tänkt att fungera, men om det är ett triggerscript ska signalen alltid finnas på sista raden. Det är logiskt "True/False" på den raden som triggar ordern.

    Comment


    • #3
      Hehe,
      Verkar som om det fungerar nu ändå. Även om det blir lite dyrt att hantera falska signaler via återköp. Får titta på att använda ett fladder-script från en annan tråd i forumet kanske.

      Comment

      Working...
      X