Autostock Forum  

Gå tillbaka   Autostock Forum > Support för AutoTrader > Ordermodeller i AutoTrader
FAQ Medlemslista Kalender Sök Dagens inlägg Markera forum som lästa

Svara
 
Ämnesverktyg Visningsalternativ
  #1  
Gammal 2021-05-02, 17:02
Gränna Gränna är inte uppkopplad
Nordic Autotrading Society HT20 kodkurs
 
Reg.datum: Dec 2018
Inlägg: 104
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.
Svara med citat
  #2  
Gammal 2021-05-02, 17:46
Henrics avatar
Henric Henric är inte uppkopplad
Moderator
 
Reg.datum: Dec 2011
Ort: Stockholm
Inlägg: 3 263
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))
Svara med citat
  #3  
Gammal 2021-05-02, 18:09
Gränna Gränna är inte uppkopplad
Nordic Autotrading Society HT20 kodkurs
 
Reg.datum: Dec 2018
Inlägg: 104
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
Svara med citat
  #4  
Gammal 2021-05-24, 12:51
Kemog Kemog är inte uppkopplad
Nordic Autotrading Society HT21 Infinity
 
Reg.datum: May 2021
Inlägg: 46
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?
Svara med citat
  #5  
Gammal 2021-05-24, 13:53
Henrics avatar
Henric Henric är inte uppkopplad
Moderator
 
Reg.datum: Dec 2011
Ort: Stockholm
Inlägg: 3 263
Lasttrade är specifikt per konto och instrumnet. Det är det som är syftet. Annars skulle man behöva celler eller liknande.
Svara med citat
  #6  
Gammal 2021-05-24, 14:17
Kemog Kemog är inte uppkopplad
Nordic Autotrading Society HT21 Infinity
 
Reg.datum: May 2021
Inlägg: 46
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.
Svara med citat
  #7  
Gammal 2021-07-04, 16:30
Kemog Kemog är inte uppkopplad
Nordic Autotrading Society HT21 Infinity
 
Reg.datum: May 2021
Inlägg: 46
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))
)
Bifogade bilder
Filtyp: png smart beta orginal.PNG (54.2 KB, 28 visningar)
Filtyp: png smart beta mod.PNG (62.4 KB, 26 visningar)

Senast redigerad av Kemog den 2021-09-10 klockan 09:17.
Svara med citat
  #8  
Gammal 2021-07-04, 19:04
Rikard Autostocks avatar
Rikard Autostock Rikard Autostock är inte uppkopplad
Rikard Autostock
 
Reg.datum: Dec 2015
Inlägg: 6 440
Wow, snyggt jobbat! Imponerande!

Svara med citat
Svara


Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

vB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av
Forumhopp


Alla tider är GMT +1. Klockan är nu 17:18.


Programvara från: vBulletin® Version 3.6.8
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson