Autostock Forum  

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

Svara
 
Ämnesverktyg Visningsalternativ
  #46  
Gammal 2020-02-21, 15:47
Henrics avatar
Henric Henric är inte uppkopplad
Moderator
 
Reg.datum: Dec 2011
Ort: Stockholm
Inlägg: 3 288
Jag har för mig att jag såg en ny position efter utstoppnng utan att det var ny månad eller cash(a)=0. Jag ska kolla med en körning och återkommer om så är fallet.
Svara med citat
  #47  
Gammal 2020-02-21, 16:20
Henrics avatar
Henric Henric är inte uppkopplad
Moderator
 
Reg.datum: Dec 2011
Ort: Stockholm
Inlägg: 3 288
Entry kan slinka igenom om en utstoppning har skett och att kassan räcker till. Det sker även om ingen skanning för dagen har skett, dvs ny månad eller cash(a)=0. Behöver dock inte vara samma dag som stoppen. Ändrar jag villkoret "finns_ej" så tas inte dessa lite slumpartade affärerna.

finns_ej=and(not(or(long1a,long1b)),not(eqv(GetGvar(9884),-1)))
Svara med citat
  #48  
Gammal 2020-02-21, 16:45
Bertils avatar
Bertil Bertil är inte uppkopplad
Registered User
 
Reg.datum: Sep 2011
Ort: Göteborg
Inlägg: 6 468
Vore intressant om man på samma sätt gjorde en Roc & Roll Blank där man istället blankar 10 av de lägst rankade aktierna som går att blanka.
Sedan sätter man ihop Roc & Roll Blank med Roc & Roll (10 aktier lång och 10 aktier kort). På så sätt blir man inte lika påverkbar av makrohändelser, vilket borde ge en mycket jämnare vinstkurva (visst ja, vinstkurvan i NAT är ju dålig på att hantera blankningar, men man får väl rita externt ).

Detta är väl värt att testa tycker jag. (Bertil Blink)

mvh
Bertil Blank

Senast redigerad av Bertil den 2020-02-21 klockan 16:49.
Svara med citat
  #49  
Gammal 2020-02-21, 16:59
Henrics avatar
Henric Henric är inte uppkopplad
Moderator
 
Reg.datum: Dec 2011
Ort: Stockholm
Inlägg: 3 288
Den är utvecklad för mid-cap som inte går att blanka eller handla med någon märkbar hävstång. Visst, skulle kanske fungerar på large cap. Alternativ är att blanka den långa exponeringen med att sälja index-termin och därmed bli marknadsneutral och fånga alfa.
Svara med citat
  #50  
Gammal 2020-02-21, 17:12
Bertils avatar
Bertil Bertil är inte uppkopplad
Registered User
 
Reg.datum: Sep 2011
Ort: Göteborg
Inlägg: 6 468
Citat:
Ursprungligen postat av Henric Visa inlägg
Den är utvecklad för mid-cap som inte går att blanka eller handla med någon märkbar hävstång. Visst, skulle kanske fungerar på large cap. Alternativ är att blanka den långa exponeringen med att sälja index-termin och därmed bli marknadsneutral och fånga alfa.
Jo så kan man ju göra.
Tycker ändå att det vore intressant att simulera blankning av de 10 aktier som presterar sämst enligt rankningen på large-cap som motvikt till de 10 mid-cap aktier som presterar bäst enligt rankningen.
Jag är inne på att det på samma sätt som det blir ett positivt resultat för de aktier som har högst rankning så blir det även ett positivt resultat av de 10 large-cap aktier som har sämst ranking och som man blankar, jämfört med blankning av indexterminen

mvh
Bertil


Den som simulerar får se...
Svara med citat
  #51  
Gammal 2020-02-21, 17:30
Henrics avatar
Henric Henric är inte uppkopplad
Moderator
 
Reg.datum: Dec 2011
Ort: Stockholm
Inlägg: 3 288
Jo, kan vara så. Min intuition är att både sämsta och bästa kan ge bra resultat. Fångar olika faktorer av pris. Sedan fungerar det förmodligen helt olika beroende på var i den långa trenden man är. Varför testar du inte?
Svara med citat
  #52  
Gammal 2020-02-21, 21:45
Bertils avatar
Bertil Bertil är inte uppkopplad
Registered User
 
Reg.datum: Sep 2011
Ort: Göteborg
Inlägg: 6 468
Citat:
Ursprungligen postat av Henric Visa inlägg
Jo, kan vara så. Min intuition är att både sämsta och bästa kan ge bra resultat. Fångar olika faktorer av pris. Sedan fungerar det förmodligen helt olika beroende på var i den långa trenden man är. Varför testar du inte?
Jag har ju snöat in på att enbart handla terminen så för mig är Roc & Roll inte intressant. Ville bara ge ett tips i all välmening.

mvh
Bertil Termin
Svara med citat
  #53  
Gammal 2020-02-22, 09:16
Henrics avatar
Henric Henric är inte uppkopplad
Moderator
 
Reg.datum: Dec 2011
Ort: Stockholm
Inlägg: 3 288
Citat:
Ursprungligen postat av Henric Visa inlägg
Om jag förstod frågan från Jimmy så vill han kunna ändra insatsen. Det bör framgå att modellen är byggd för just 10 positioner/aktier och att det inte är rekommenderat att ändra i insatsprocenten i insatsscriptet. Det kan blir galet.

Rätt aktier handlas då cash(a)=0 eller ny månad. Annars vid utstoppning kommer ny position att fyllas på fastän cell 9884 och 9885 är satt till -1. Ny kandidat kan slinka igenom ändå.

Som jag har skrivit tidigare är det inget jag vill att ni ändrar, utan bara för er info.
Citat:
Ursprungligen postat av Rikard Autostock Visa inlägg
Fast jag har inte sett någon ny position i samband med utstoppning, bara efter att ny scan gjorts. Borde ju bli säkrare nu när kalendertid används istället för systemklockan. Det som var intressant att utstoppning kunde ske i callen tidigare, helt klart bättre resultat utan den "risken".
Citat:
Ursprungligen postat av Henric Visa inlägg
Entry kan slinka igenom om en utstoppning har skett och att kassan räcker till. Det sker även om ingen skanning för dagen har skett, dvs ny månad eller cash(a)=0. Behöver dock inte vara samma dag som stoppen. Ändrar jag villkoret "finns_ej" så tas inte dessa lite slumpartade affärerna.

finns_ej=and(not(or(long1a,long1b)),not(eqv(GetGvar(9884),-1)))
Jag testade även i simulering och positionerna kan slinka igenom.
Svara med citat
  #54  
Gammal 2020-02-22, 09:35
Rikard Autostocks avatar
Rikard Autostock Rikard Autostock är inte uppkopplad
Rikard Autostock
 
Reg.datum: Dec 2015
Inlägg: 6 503
Hm, skumt i så fall. Det betyder att Cash(a) måste bli noll trots att det finns positioner. Kanske lika bra att ta bort villkoret så att den bara kan handla första dagen efter månadsskifte. Enda anledningen att det fanns där är att man får positioner samma dag man ansluter strategin första gången, kanske inte helt nödvändigt.
Svara med citat
  #55  
Gammal 2020-02-22, 09:45
Henrics avatar
Henric Henric är inte uppkopplad
Moderator
 
Reg.datum: Dec 2011
Ort: Stockholm
Inlägg: 3 288
Jag tror att det beror på hysteres och att ny kanditat kan sättas även om 9884 och 9885 är -1. Det kan lösas genom att ändra "ej_finns". Då kan man använda cash(a) och man behöver inte vänta en månad på positioner när man startar. Dessutom skulle cash(a) kunna vara ett bra villkor om det inte finns några kanditater vid ett månadskiftet och att förustättningarna ändras mitt i en månad. Har inte tittat på detta.


finns_ej=and(not(or(long1a,long1b)),not(eqv(GetGvar(9884),-1)))
Svara med citat
  #56  
Gammal 2020-02-22, 10:38
Rikard Autostocks avatar
Rikard Autostock Rikard Autostock är inte uppkopplad
Rikard Autostock
 
Reg.datum: Dec 2015
Inlägg: 6 503
Jag tog bort villkoret "ingen_pos" och fick ändå affär på tex DIOS den 11:e sep 2012, och det visade sig att det berodde på att data saknades flera dagar innan så att 11:e blev första börsdagen i månaden för DIOS. Därmed är villkoret uppfyllt, och den köpte i alla fall. Så det är alltså bara vid datafel som det händer. Vet inte om man ska gräva i det så mycket mer då egentligen, om aktien inte skulle igång i topp 10-listan vid nästa scan åker den ju ändå ut.
Svara med citat
  #57  
Gammal 2020-02-22, 11:58
Henrics avatar
Henric Henric är inte uppkopplad
Moderator
 
Reg.datum: Dec 2011
Ort: Stockholm
Inlägg: 3 288
Kan så vara. Jag kör på LargeCap och får samma problem. Varför löser jag då problemet med villkoret nedan eller båda kanske spökar?

finns_ej=and(not(or(long1a,long1b)),not(eqv(GetGvar(9884),-1)))


Jag ska minska antalet aktier efter hand på largecap så länge problemet kvarstår. Sedan blir det lätt att kolla data på kvarstående. Behöver bara köra en månad med strul. Om det är som jag tror skulle det kunna innebära att modellen fortsätter köpa efter stoppar i nertrend. Vid rätt trend över tid i simulering blir det givetvis bättre att köpa på sig vid spöksignaler. Återkommer om jag hittar något.

Edit: Jag vände på problemet. Köpte varje aktie max en gång per dag när ny_mån är sant. Inga försäljningar görs. Köp sker bara när det faktiskt är ny månad, dvs inga spöksignaler. Tillbaka till originalscriptet. Det kan alltså ske köp utan att det finns någon aktie som kvalificeras som kandidat enligt villkoret write.
Nedan kan ignoreras. Jag kollade bara ny_mån ovan och väntade inte till stängning.
Sedan har villkoret "ingen_pos "någon egentlig verkar och kan tas bort. Den köper bara en aktie när villkoret är sant och sedan blir ju inte villkoret sant längre. Däremot om depån kommer in till stängning utan positioner skulle det kunna blir skillnad mot nuvarande simulering. Måste testas, tex med att registrera cash(a) i en cell innan stängning.

Senast redigerad av Henric den 2020-02-23 klockan 10:07.
Svara med citat
  #58  
Gammal 2020-02-22, 12:25
Rikard Autostocks avatar
Rikard Autostock Rikard Autostock är inte uppkopplad
Rikard Autostock
 
Reg.datum: Dec 2015
Inlägg: 6 503
En variant kan ju vara att köra rankingmotorn varje dag och ifall någon aktie stoppas ut så köps åtminstone en på topp-listan.
Svara med citat
  #59  
Gammal 2020-02-22, 12:32
Henrics avatar
Henric Henric är inte uppkopplad
Moderator
 
Reg.datum: Dec 2011
Ort: Stockholm
Inlägg: 3 288
Absolut. Det blir en topprankad och att write är sant. Fortfarande behövs en kolla att cell 9884 inte är -1, dvs det finns minst en kandidat. Se även min edit i inlägg #57.
Svara med citat
  #60  
Gammal 2020-02-23, 10:24
Rikard Autostocks avatar
Rikard Autostock Rikard Autostock är inte uppkopplad
Rikard Autostock
 
Reg.datum: Dec 2015
Inlägg: 6 503
Det blev betydligt bättre om jag kör rankingen dagligen, men fortfarande handlar som nu. De affärer som ändå görs mellan ordinarie månadsscan blir bättre. Har lagt koll att cell 9884 inte är -1 också, tack till Henric!


{ ROC and Roll Investor buy ver 1.1 200223 }



weight_q:=2 {2}
weight_y:=1 {1}
weight_m:=-1 {-1}
hysteres1:=1.02
hysteres2:=0.98
min_avg_daily_oms:=200000
hävstång:=1


datesame=eqv(int(d),int(ref(d,1)))
dagar_data=sum(not(datesame),250)

no_split=llv(lt(div(abs(sub(c,ref(c,1))),c),0.3),250)
samma_dag=ge(int(d),sub(int(date()),2))
avg_oms_daily=div(sum(mult(c,v),250),250)
data_ok=and(and(and(gt(avg_oms_daily,min_avg_daily_oms),samma_dag),no_split),gt(dagar_data,240))

rc_y=roc(c,250,%)
rc_q=roc(c,63,%)
rc_m=roc(c,21,%)
tot=add(add(mult(weight_q,rc_q),mult(weight_m,rc_m)),mult(weight_y,rc_y))
poäng_tt=mult(tot,data_ok)
draw(poäng_tt,1,dwaaw)

setgvarif(hävstång,9800,1)
best=getgvar(9885)
id1=getgvar(9875)
id2=getgvar(9876)
id3=getgvar(9877)
id4=getgvar(9878)
id5=getgvar(9879)

id6=getgvar(9880)
id7=getgvar(9881)
id8=getgvar(9882)
id9=getgvar(9883)
idx=getgvar(9884)


abb=eqv(crcid(),3588324501)

konto=sub(add(cash(t),cash(a)),mult(2,abs(cash(s))))
pengarfinns=lt(cash(a),mult(hävstång,mult(konto,0.9)))
ingen_pos=eqv(cash(a),0)

ny_mån=or(not(eqv(aref(monthnumber(),1),monthnumber())),ingen_pos)
ej_innehav=le(portfolio(v),0)
innan1720=ge(mult(1440,sub(market(c),frac(date()))),8)
stängning=le(mult(1440,sub(market(c),frac(date()))),12)
2tim_innan=le(mult(1440,sub(market(c),frac(date()))),140)
2_tim_innan=gt(mult(1440,sub(market(c),frac(date()))),140)
write=and(data_ok,and(and(not(abb),{ny_mån}1),and(2tim_innan,and(and(innan1720,gt(poäng_tt,mult(best,hysteres1))),gt(tot,0)))))
setgvarif(poäng_tt,9885,write)
setgvarif(crcid(),9884,write)


nollställ=and(or(2_tim_innan,eqv(xtime(date(),h),15)),1)
setgvarif(-1,9885,nollställ)
setgvarif(-1,9884,nollställ)
setgvarif(-1,9883,nollställ)
setgvarif(-1,9882,nollställ)
setgvarif(-1,9881,nollställ)
setgvarif(-1,9880,nollställ)
setgvarif(-1,9879,nollställ)
setgvarif(-1,9878,nollställ)
setgvarif(-1,9877,nollställ)
setgvarif(-1,9876,nollställ)
setgvarif(-1,9875,nollställ)
setgvarif(-1,9886,or(nollställ,gt(getgvar(9886),mult(hysteres1,getgvar(9885)))))
setgvarif(-1,9887,or(nollställ,gt(getgvar(9887),mult(hysteres1,getgvar(9886)))))
setgvarif(-1,9888,or(nollställ,gt(getgvar(9888),mult(hysteres1,getgvar(9887)))))
setgvarif(-1,9889,or(nollställ,gt(getgvar(9889),mult(hysteres1,getgvar(9888)))))
setgvarif(-1,9890,or(nollställ,gt(getgvar(9890),mult(hysteres1,getgvar(9889)))))
setgvarif(-1,9891,or(nollställ,gt(getgvar(9891),mult(hysteres1,getgvar(9890)))))
setgvarif(-1,9892,or(nollställ,gt(getgvar(9892),mult(hysteres1,getgvar(9891)))))
setgvarif(-1,9893,or(nollställ,gt(getgvar(9893),mult(hysteres1,getgvar(9892)))))
setgvarif(-1,9894,or(nollställ,gt(getgvar(9894),mult(hysteres1,getgvar(9893)))))

long1a=or(or(or(or(eqv(crcid(),id1),eqv(crcid(),id2)),eqv(crcid(),id3)),eqv(crcid(),id4)),eqv(crcid(),id5))
long1b=or(or(or(or(eqv(crcid(),id6),eqv(crcid(),id7)),eqv(crcid(),id8)),eqv(crcid(),id9)),eqv(crcid(),idx))
finns_ej=and(not(or(long1a,long1b)),not(eqv(getgvar(9884),-1)))

set_kand2=and(and(gt(poäng_tt,getgvar(9886)),and(finns_ej,lt(poäng_tt,mult(hysteres2,getgvar(9885))))),innan1720)
setgvarif(poäng_tt,9886,set_kand2)
setgvarif(crcid(),9883,set_kand2)

set_kand3=and(and(gt(poäng_tt,getgvar(9887)),and(finns_ej,lt(poäng_tt,mult(hysteres2,getgvar(9886))))),innan1720)
setgvarif(poäng_tt,9887,set_kand3)
setgvarif(crcid(),9882,set_kand3)

set_kand4=and(and(gt(poäng_tt,getgvar(9888)),and(finns_ej,lt(poäng_tt,mult(hysteres2,getgvar(9887))))),innan1720)
setgvarif(poäng_tt,9888,set_kand4)
setgvarif(crcid(),9881,set_kand4)

set_kand5=and(and(gt(poäng_tt,getgvar(9889)),and(finns_ej,lt(poäng_tt,mult(hysteres2,getgvar(9888))))),innan1720)
setgvarif(poäng_tt,9889,set_kand5)
setgvarif(crcid(),9880,set_kand5)

set_kand6=and(and(gt(poäng_tt,getgvar(9890)),and(finns_ej,lt(poäng_tt,mult(hysteres2,getgvar(9889))))),innan1720)
setgvarif(poäng_tt,9890,set_kand6)
setgvarif(crcid(),9879,set_kand6)

set_kand7=and(and(gt(poäng_tt,getgvar(9891)),and(finns_ej,lt(poäng_tt,mult(hysteres2,getgvar(9890))))),innan1720)
setgvarif(poäng_tt,9891,set_kand7)
setgvarif(crcid(),9878,set_kand7)

set_kand8=and(and(gt(poäng_tt,getgvar(9892)),and(finns_ej,lt(poäng_tt,mult(hysteres2,getgvar(9891))))),innan1720)
setgvarif(poäng_tt,9892,set_kand8)
setgvarif(crcid(),9877,set_kand8)

set_kand9=and(and(gt(poäng_tt,getgvar(9893)),and(finns_ej,lt(poäng_tt,mult(hysteres2,getgvar(9892))))),innan1720)
setgvarif(poäng_tt,9893,set_kand9)
setgvarif(crcid(),9876,set_kand9)

set_kandx=and(and(gt(poäng_tt,getgvar(9894)),and(finns_ej,lt(poäng_tt,mult(hysteres2,getgvar(9893))))),innan1720)
setgvarif(poäng_tt,9894,set_kandx)
setgvarif(crcid(),9875,set_kandx)


long2=and(or(long1a,long1b),stängning)
long3=and(and(long2,ej_innehav),pengarfinns)
mult(long3,not(abb))




{ ROC and Roll sell ver 1.1 200219 }

stoploss:=0.8

vinst=gt(c,portfolio(p))
innehav=gt(portfolio(v),0)
kand1=getgvar(9875)
kand2=getgvar(9876)
kand3=getgvar(9877)
kand4=getgvar(9878)
kand5=getgvar(9879)
kand6=getgvar(9880)
kand7=getgvar(9881)
kand8=getgvar(9882)
kand9=getgvar(9883)
kandx=getgvar(9884)

ny_mån=not(eqv(aref(monthnumber(),1),monthnumber()))
exit=and(not(ny_mån),lt(c,mult(lasttrade(b,p),stoploss)))
sell1a=and(and(and(and(not(eqv(crcid(),kand1)),not(eqv(crcid(),kand2))),not(eqv(crcid(),kand3))),not(eqv(crcid(),kand4))),not(eqv(crcid(),kand5)))
sell1b=and(and(and(and(not(eqv(crcid(),kand6)),not(eqv(crcid(),kand7))),not(eqv(crcid(),kand8))),not(eqv(crcid(),kand9))),not(eqv(crcid(),kandx)))
sell2=or(and(sell1a,sell1b),exit)
öppet=ge(mult(1440,sub(market(c),frac(date()))),8)
stängning=le(mult(1440,sub(market(c),frac(date()))),12)
sell3=and(and(and(or(exit,ny_mån),sell2),and(öppet,stängning)),innehav)
mult(sell3,1)
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
HTML-kod är av
Forumhopp


Alla tider är GMT +1. Klockan är nu 04:55.


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