Allmänt meddelande

Collapse
No announcement yet.

Stoploss + väntetid

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

  • Stoploss + väntetid

    Hej!

    Har suttit alldeles för länge och stirrat mig blind på mitt problem.
    När jag köper index men den går åt fel håll vill jag kunna ta en förlust och sedan vänta X antal min innan jag tar nästa affär. Min kod är:
    --------SÄLJSIDA-------
    sälj1=and(innehav,gt(portfolio(P),sub(stop_för_dagen,c)))
    sälj2=and(innehav,gt(portfolio(P),sub(stoploss,c)))

    stoppkod=if(sälj1,1,if(sälj2,2,0))
    retval(stoppkod,2)
    retval(date(),3)

    sälj3=or(sälj1,sälj2)
    sälj4=or(sälj3,and(exitKort,innehav))
    -----------KÖPSIDA------------
    120min=div(120,1440)
    stop_för_dagen=and(eqv(LastTrade(B,2),1),eqv(int(date()),int(lasttrade(B,d))))
    stop_loss1=lt(mult(1440,frac(Date())),mult(1440,add(frac(LastTrade(B,3)),120min))){Lägg på 10 min if stoploss}
    stop_loss2=and(stop_loss1,eqv(lasttrade(B,2),2))

    köp1=and(tillåt_köp,gt(adx,par2))
    köp2=or(not(stop_loss2),not(stop_för_dagen))
    köp3=and(ej_innehav,entryKort)
    köp4=and(and(köp1,köp2),köp3)


    Det den gör nu är att sälja när index når stoppen men den väntar inte i X antal min utan den köper direkt efter köp, eftersom villkoret för köp fortfarande är sant.

    Är det någon som ser problemet eller bara rent av snygga till koden lite?

    Hälsningar

    Björn

  • #2
    Du använder funktionen
    LastTrade(B,3)
    Du kan inte ha en siffra där.
    LastTrade(B,D) är tidpunkten för senaste köpet.

    Jag utgår ifrån att du har en separat ordermodell för köp och en annan ordermodell för sälj.
    Då du börjar med att göra ordermodeller så gör inte flera köp eller sälj i följd utan äg bara en enhet åt gången, dvs tillåt bara köp då ok_att_handla=Eqv(Portfolio(v),0)
    och sälj då Gt(Portfolio(v),0)
    Med vänlig hälsning
    Bertil
    Last edited by Bertil; 2017-04-01, 00:35.

    Comment


    • #3
      Jo, lasttrade(b,3) läser av cell 3 från senaste köptrans så det är helt ok.

      Comment


      • #4
        Ursprungligen postat av Rikard Autostock Visa inlägg
        Jo, lasttrade(b,3) läser av cell 3 från senaste köptrans så det är helt ok.

        Alltid lär man sig något nytt.

        Med vänlig hälsning
        Bertil

        Comment


        • #5
          Det är ett smidigt sätt att skriva ner saker vid tex köp (med retval) som man senare kan läsa av i säljscriptet osv, tex vilken edge som köpte, indikatorvärden just då osv. Det fina är att det blir både instrument- och kontounikt, och man slipper gödsla med globala celler.

          Comment


          • #6
            Hmm,
            På min säljsida (LONG) har jag nu detta villkoret, det ska trigga en stop_för_dagen om förlust överstiger 1000 kr.
            retval(add(LastTrade(S,4),sub(LastTrade(S,P),LastTrade(B,P))),4)
            sälj1=and(innehav,gt(portfolio(P),add(c,stoploss)))

            stoppkod=if(le(LastTrade(S,4),sub(0,1000)),1,if(sälj1,2,0))
            retval(stoppkod,0)
            retval(date(),1)

            sälj2=or(sälj1,and(exitLång,innehav))

            och på köpsidan har jag

            stop_för_dagen=eqv(LastTrade(S,4),0)
            stop_loss1=gt(mult(1440,frac(Date())),mult(1440,add(frac(LastTrade(S,1)),waitTime))){Lägg på 10 min if stoploss}
            stop_loss2=and(stop_loss1,eqv(lasttrade(s,0),2))


            köp1=and(tillåt_köp,gt(adx,par2))
            köp2=or(not(stop_loss2),stop_för_dagen)
            köp3=and(ej_innehav,entryLång)
            köp4=and(and(köp1,köp2),köp3)

            De rader som är bolded är de som ska lösa ut och avläsa om det är ett köpstopp..

            Jag resetar parametervärdet på retval(S,4) kl 18 varje dag genom:
            retval(if(gt(frac(Date()),frac(1080)),0,LastTrade(S,4)),4)

            MEN detta fungerar inte... förstår verkligen inte varför.

            Någon som ser ett uppenbart fel någonstans, jag får inga felmeddelande iafl.

            Comment


            • #7
              Hälften av allt scriptskapande är felsökning. Du får förenkla tills du hittar felet. En fråga: har du skrivit koden från scratch eller har du "lånat" det mesta av koden?

              Med vänlig hälsning
              Bertil

              Comment


              • #8
                Om du önskar "På min säljsida (LONG) har jag nu detta villkoret, det ska trigga en stop_för_dagen om förlust överstiger 1000 kr. " så skulla jag koda

                sälj1=And(Lt(Sub(c,LastTrade(B,P)),-1000),gt(portfolio(v),0))

                Med vänlig hälsning
                Bertil

                Comment


                • #9
                  Hej, tack för input, ja har skrivit koden själv, men man får ju ideer när man läser runt här på forumet.

                  Problemet med ditt förslag nu är att den inte summerar ihop resultaten av alla trades.

                  Comment


                  • #10
                    Ursprungligen postat av bjoornee Visa inlägg
                    Hej, tack för input, ja har skrivit koden själv, men man får ju ideer när man läser runt här på forumet.

                    Problemet med ditt förslag nu är att den inte summerar ihop resultaten av alla trades.
                    Det är först det senaste året som det labbats med flera trades eller att blanda flera strategier i en på forumet. För det första blir det väldigt knepigt att scripta som du märker och sedan är det inte helt enkelt då man skall beräkna avkastningen.
                    Det svåra är ju att få till ett triggerscript som är bra och det är ju där man skall lägga huvuddelen av sitt scriptande. Är man nöjd kan man ju köra skarpt och sedan trixa med flera köp och sälj.
                    Det är ju lite uppochnerpåvända världen nu då det är courtagefritt att handla vissa minifutures, tidigare ville man ju minimera antalet affärer då annars vinsten lätt kunde ätas upp av courtaget.
                    Men om du i din felsökning först kör med bara en affär och då alla buggar är avlusade lägger till möjligheten med en affär till osv.

                    Med vänlig hälsning
                    Bertil

                    Comment

                    Working...
                    X