Allmänt meddelande

Collapse
No announcement yet.

skala in i % av konto

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

  • skala in i % av konto

    Jag sitter och klurar på hur man bygger ett köpscript som skalar in procentuellt efter en given modell i fyra steg. I steg fyra är jag fullinvesterad för kontot.

    i va) scripten hittar jag
    i1(
    insatsproc=div(abs(scrpar(4)),100)
    insatsbelopp=mult(sub(sub(add(cash(a),cash(t)),cash(u)),if(gt(cash(c),0),cash(c),0)),insatsproc)
    köpantal=Int(Div(insatsbelopp,s))
    innehav=Portfolio(v)
    övermål=Ge(innehav,köpantal)
    slutantal1=If(övermål,0,SUB(köpantal,innehav))
    add(0,slutantal1)
    )

    Men jag är inte riktigt med på hur den funkar att använda om jag vill gå in med olika procentsatser i de fyra stegen.

  • #2
    Det är ganska enkelt. Det finns många alternativ. Ett sätt är att använda lasttrade. Dokumentationen för mer detaljer. Ett exempel som kanske behöver mer beroende på modell.

    sl) Köpscript
    .......
    trigger=and(signal,or(le(portfolio(v),0),le(lasttrade(b,1),3)))
    retval(if(le(portfolio(v),0),1,add(lasttrade(b,1),1)),1)
    mult(trigger,10)

    va)
    insatsproc=if(le(portfolio(v),0),0.1,if(eqv(lasttrade(b,1),1),0.3,if(eqv(lasttrade(b,1),2),0.6,1)))
    målbelopp=mult(sub(sub(add(cash(a),cash(t)),cash(u)),if(gt(cash(c),0),cash(c),0)),insatsproc)
    målantal=Int(Div(målbelopp,s))
    sub(målantal,portfolio(v))

    Comment


    • #3
      Tack, prövar mig fram med det!

      Har ännu inte kommit så långt så jag har behövt stega mig fram i sekvenser i mina köpscript men det kanske är nu jag får tillfälle att lära mig det

      Comment


      • #4
        Hej jeg har testet koden og det virker rigtig fint.

        Men hvis jeg backtester odermodellen med flere instrumenter er det ikke nok at bruge lasttrade(b,1) og retval(x,1) da retval heletiden bliver opdateret.

        Kan man kombinere det med crcid() på en eller anden måde?
        Så modellen kan holde styr på hvor mange skaleringer den har nået for det enkelte crcid?

        Comment


        • #5
          Lasttrade är specifikt per konto och instrumnet. Det är det som är syftet. Annars skulle man behöva celler eller liknande.

          Comment


          • #6
            Ok takker.

            Så må det være noget andet som påvirket resulatatet når jeg tester på flere instrumenter samtidig. :-)

            det giver også god mening at lasttrade er unik.

            Comment


            • #7
              Tænkte at jeg lige ville vise hvor den det går med indskalering.

              Jeg har leget med at Smart beta modellen og modifiseret den så den køre med indskalering. det har hjulpet på drawdown som er gået fra 10.2% til 6.5%

              Resultatet er ca den samme :-)

              modellen er testet på: DAX, OMXS30, DJIA, N100, Silv,Guld


              ###########################################

              { Smart Beta Long 210412 }

              $par1:=14
              $par2:=20

              { ADX }
              diffh=sub(h,aref(h,1))
              diffl=sub(aref(l,1),l)
              dmplus=if(and(gt(diffh,diffl),gt(diffh,0)),diffh,0)
              dmminus=if(and(gt(diffl,diffh),gt(diffl,0)),diffl,0)
              diplus=mult(100,ema(div(dmplus,atr($par1)),$par1))
              diminus=mult(100,ema(div(dmminus,atr($par1)),$par1))
              adx=ema(mult(100,div(abs(sub(diplus,diminus)),abs(add(diplus,diminus)))),$par1)

              { Edge }
              setup=and(and(and(and(le(c,llv(aref(h,1),5)),1),and(gt(adx,$par2),lt(diplus,diminus))),gt(c,mov(c,10,s))),1)

              { Trigger - 1 :: new trades when portfolio = 0}
              long1=and(le(portfolio(v),0),setup)

              { Trigger - 2 :: sub trades, when portfolio volume is gt then 0 and lasttrade is less then 4 }
              grid1=sub(lasttrade(b,p),mult(2.3,atr(5)))
              long2=and(and(gt(portfolio(v),0),le(lasttrade(b,1),3)),lt(c,grid1))

              signal=or(long1,long2)
              retval(if(le(portfolio(v),0),1,add(lasttrade(b,1),1)),1)
              mult(signal,1)

              ###########################################

              { Smart Beta - säljscript }
              { 20210412 }

              rs_level_1:=98
              rs_level_2:=85

              min_innan_stäng1:=30
              min_innan_stäng2:=300

              samma_dag=eqv(int(d),int(date()))
              tradestart=le(mult(1440,sub(market(c),frac(date()))),6)

              min_innan_stäng3=if(gt(market(c),0.75),min_innan_stäng2,min_innan_stäng1)
              stängning=le(mult(1440,sub(market(c),frac(date()))),min_innan_stäng3)
              öppet=ge(mult(1440,sub(market(c),frac(date()))),sub(min_innan_stäng3,4))
              tradingtid=and(and(stängning,öppet),lt(xtime(date(),h),20))

              { vollatest }
              volla1=atr(20)
              volla2=atr(50)
              volla_ok=lt(volla1,mult(1.1,volla2))
              draw(mult(volla_ok,10),2,dgsbf)

              rs_level_x=if(volla_ok,rs_level_1,rs_level_2)
              sellsignal1=gt(RSIWS(2),rs_level_x)

              { Koppla ihop villkor }
              sälj1=and(sellsignal1,1)
              sälj2=and(sälj1,and(samma_dag,tradingtid))

              mult(sälj2,10)


              ###########################################

              { Smart Beta insats 210420 }

              steg1:=0.2
              steg2:=0.3
              steg3:=0.4
              steg4:=0.5

              i1(
              insatsproc=if(le(portfolio(v),0),steg1,if(eqv(lasttrade(b,1),1),steg2,if(eqv(lasttrade(b,1),2),steg3,if(eqv(lasttrade(b,1),3),steg4,0))))
              målbelopp=sub(sub(add(cash(a),cash(t)),cash(u)),if(gt(cash(c),0),cash(c),0))
              målantal=mult(int(div(målbelopp,c)),insatsproc)
              insatsCnt=SUB(målantal,portfolio(v))
              )
              Attached Files
              Last edited by Kemog; 2021-09-10, 10:17.

              Comment


              • #8
                Wow, snyggt jobbat! Imponerande!

                Comment

                Working...
                X