If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.
Det kan vara så att ett trendfilter fungerar bättre med risk för att modellen blir mer av en trendmodell, vilket inte behöver vara negativt. Det uppstår alltid situationer för varje modell då positon tas vid absolut fel tidpunkt. Det känns alltid bra att ändra löpande efter hur signalerna kommer. Håller med att man inte ska ändra för ofta efter signaler då det lätt bli curvefitting.
Det vore ändå bra om vi hade någon som körde med ett filter. Då har vi orginal(tror det var Mikola), nuvarnade med macd och en med trendfilter. Bara lite att håla reda på.
Detta borde gå att lägga in på long gt(mov(c,34,e),aref(mov(c,34,e),3)) tillsammans med macd_signal som AND()eller istället för MACD om ngn nu vill prova direkt.
För Short byt ut GT mot LT
Men kom ihåg att det försvinner både dåliga signaler och en del som skulle gett vinst. Gäller att hitta en balans där, har för mig att det är en gammal optimeringtes att det bara går att optimera utefter en variabel, dvs det går inte samtidigt ha maximal vinst och minimala förluster, matematiskt omöjligt tyvärr.
Short-signalen kom inte här heller, MFI var redan under 10. Troligen får vi exit vid nästa studs uppåt eftersom MFI kommer stiga snabbt vid tendens uppåt.
15:03 ORDER "sl) Stoploss Mini lång OMXS302D" kurs 1073.75
-10,5pkt
OrginalRaptor gick long på "spiken" strax efter öppningen som blir dagshögsta 1092,5. Det finns ingen stoploss i exitscripten så nu kunde jag inte hålla mig längre utan sålde på 1070 = -22,5 pkt
Ojsan, varit borta ett tag idag och ser nu att Raptorn långade precis när Macd låg som ett platt streck lite (plus) för att släppa förbi signalen :-( Detta är ju en sak men vad händer nu ?? Jo, Raptorn har ingen rimlig chans att ta sig tillbaks om kursen nu går upp rejält innan stängning (eller när den gör det) pga att mfi kommer att gå i topp när kursen lyfter och skjuta ut oss med rejäl förlust. Den kan ju förvisso göra en mot-trade under dagen, men om trenden vänder är det väl bättre att hänga kvar och vänta tycker jag (och kopplar ur exit-scriptet)
En gissning är att positionen ligger kvar till imorgon och om börsen öppnar uppåt kan vi mycket väl få tillbaka en del punkter där. Problemet är att så fort man backtestar med stoploss eller exit när trenden går åt fel håll försämras resultatet över tid. Enstaka större förluster gör att så många fler andra vinstaffärer kan göras, klart svårt att hitta en lösning på den ekvationen.
En gissning är att positionen ligger kvar till imorgon och om börsen öppnar uppåt kan vi mycket väl få tillbaka en del punkter där. Problemet är att så fort man backtestar med stoploss eller exit när trenden går åt fel håll försämras resultatet över tid. Enstaka större förluster gör att så många fler andra vinstaffärer kan göras, klart svårt att hitta en lösning på den ekvationen.
Detta är nog så sant och stämmer med min erfaranhet också.
Men man ska inte underskatta den psykologiska effekten. Att få gråa hår och magsår är ju något som skulle kunna föras upp på kostnadskontot också
15:31 ORDER "sl) OMX Raptor short OMXS302D" kurs 1072.75
Blev lite förvirrad när ingen annan fick ovanstående signal. Så jag täckte in affären på 1071. Nu stiger börsen och jag funderar på att ta tillbaka longpositionen. Problemet är väl att MFI slår i taket ganska snabbt på en uppgång och det ger väl ingen lysande risk/reward
Den psykologiska effekten är absolut mycket viktig och rädslan som kommer då det går dåligt är inte att underskatta. Det är då det börjar självsvänga åt fel håll, om man står utanför vissa dagar och går in igen med dålig timing.
Tror man inte skall stirra sig blind på att få ut så högt vinstutfall utan få så jämn kurva som möjligt. Som ni säger så är ekvationen hög vinst utan drawbacks väldigt svår.
Om ni undrar varför det gått så dåligt idag, så var det för att jag gick in i skarp handel igen...
Man kanske borde köpa en bunt Astra så att utdelningen täcker kostnaden för Losec.....
Har simulerat lite till och det verkar som att det går att få in ett villkor som inte kostar för mycket. I gengäld kommer man ur tidigare ur dåliga positioner. Återkommer med script för detta, men i grund och botten behåller vi entry-logiken men lägger till att MFI ska vara åt rätt håll både förra och innevarande stapel.
Exit-scripten går ur på MFI åt fel håll samt High eller Low högre resp lägre än föregående stapel. Vi skippar exit på MFI>99 och MFI<1. Och, vi hänger kvar i positionen tills den är stängd, dvs ingen vändning i en enda order tillåts. Det verkar ge sämre resultat. Har testat på A, B och C-terminen - endast Long-positioner - men det ger ganska bra fingervisning.
Sedan är jag inte alls säker på att man ska ha samma logik eller samma värden för shortvillkoren. Vissa indikatorer är ju bra i stigande trender och andra i fallande.
Om nu någon lägger in en EMA lutning som filter så kan det vara bra att komma ihåg att vid en ev vändning i morgon tar det en stund att komma in i marknaden. Hur länge beror även på storleken av EMA och antal perioder på AREF.
Det är som sagt viktigt att titta på både fördelar och nackdelar när man lägger till ngt nytt.
{ definiera gränsvärde för MFI och testa om innehav finns }
condition1:=lt(mval,90)
innehav_ok:=eqv(portfolio(v),0)
{ säkerställ att säljtransaktion inte skett idag }
ej_idag:=gt(int(d),int(lasttrade(s,d)))
{ säkerställ att det är minst 6 minuter kvar till börsstängning }
öppet:=ge(mult(1440,sub(market(c),frac(date()))),6)
{ säkerställ att klockan är minst 09:06 }
inpådagen:=Gt(Frac(date()),0.379)
{ feedback loop för att köpa tillbaka eventuellt blankat överskott }
överexponerad_short:=lt(portfolio(v),scrpar(23))
{ spärr som hindrar orderläggning 1 minut efter senaste order }
timelock:=1
lt1:=LastTrade(B,D)
lt2:=LastTrade(S,D)
minSedanKöp:=mult(sub(date(),lt1),1440)
minSedanSälj:=mult(sub(date(),lt2),1440)
i30(
{ account safety - säkerställer kontakt med depån }
orderdelay_ok=and(gt(minSedanKöp,timelock),gt(minSedanSälj,timelock))
datum_ok=eqv(int(d),int(date()))
{ rita upp MFI-kurva i volymområdet }
draw(mval,2,dysv)
{ definiera gränsvärde för MFI och testa om innehav finns }
condition1:=gt(mval,10)
innehav_ok:=eqv(portfolio(v),0)
{ säkerställ att köptransaktion inte skett idag }
ej_idag:=gt(int(d),int(lasttrade(b,d)))
{ säkerställ att det är minst 6 minuter kvar till börsstängning }
öppet:=ge(mult(1440,sub(market(c),frac(date()))),6)
{ säkerställ att klockan är minst 09:06 }
inpådagen:=Gt(Frac(date()),0.379)
{ feedback loop för att sälj tillbaka eventuellt köpt överskott }
överexponerad_long:=gt(portfolio(v),scrpar(22))
timelock:=1
{ spärr som hindrar orderläggning 1 minut efter senaste order }
lt1:=LastTrade(B,D)
lt2:=LastTrade(S,D)
minSedanKöp:=mult(sub(date(),lt1),1440)
minSedanSälj:=mult(sub(date(),lt2),1440)
i30(
{ account safety - säkerställer kontakt med depån }
orderdelay_ok=and(gt(minSedanKöp,timelock),gt(minSedanSälj,timelock))
datum_ok=eqv(int(d),int(date()))
{ beräkna dagens takeprofit som 40% av gårdagens range - dock minst 0.75 pkt }
tplevel:=mx(mult(sub(high,low),0.4),0.75)
takeprofit:=gt(c,add(tplevel,lasttrade(b,p)))
{ säkerställ att innehav finns }
innehav_ok:=gt(portfolio(v),-0)
{ säkerställ att det är minst 6 minuter kvar till börsstängning }
öppet:=ge(mult(1440,sub(market(c),frac(date()))),6)
{ säkerställ att databastid och systemtid är på samma dag }
datum_ok:=eqv(int(d),int(date()))
{ säkerställ att klockan är minst 09:01 }
inpådagen:=Gt(Frac(date()),0.376)
{ testa om vinst är minst 2 pkt }
vinst:=gt(c,add(lasttrade(b,p),2))
i30(
{ rita takeprofit-nivå som grönstreckad linje och senaste köpnivå som blå}
draw(add(lasttrade(b,p),tplevel),2,dgqb2)
draw(lasttrade(b,p),3,bqb)
{ koppla ihop villkor - takeprofit eller MFI = fallande och L lägre än föregående L }
sell1=or(takeprofit,and(lt(mval,aref(mval,1)),lt(l,aref(l,1))))
sell2=and(and(and(and(sell1,datum_ok),inpådagen),innehav_ok),öppet)
mult(sell2,5)
)
{ beräkna dagens takeprofit som 40% av gårdagens range - dock minst 0.75 pkt }
tplevel:=mx(mult(sub(high,low),0.4),0.75)
takeprofit:=lt(c,sub(lasttrade(s,p),tplevel))
{ säkerställ att innehav finns }
innehav_ok:=lt(portfolio(v),0)
{ säkerställ att det är minst 6 minuter kvar till börsstängning }
öppet:=ge(mult(1440,sub(market(c),frac(date()))),6)
{ säkerställ att databastid och systemtid är på samma dag }
datum_ok:=eqv(int(d),int(date()))
{ säkerställ att klockan är minst 09:01 }
inpådagen:=Gt(Frac(date()),0.376)
i30(
{ rita takeprofit-nivå som magentastreckad linje och senaste blanknivå som röd}
draw(sub(lasttrade(s,p),tplevel),2,mqb2)
draw(lasttrade(s,p),3,rqb)
{ koppla ihop villkor - takeprofit eller MFI = stigande och H högre än föregående H}
cover1=or(takeprofit,and(gt(mval,aref(mval,1)),gt(h,aref(h,1))))
cover2=and(and(and(and(cover1,datum_ok),inpådagen),öppet),innehav_ok)
mult(cover2,5)
)
{@A(0,)}
Last edited by ; 2012-03-22, 09:18.
Anledning: Rättat script
I exitscripten är det väl något galet, texten stämmer inte med villkoren och villkoren är totalt olika:
{ koppla ihop villkor - takeprofit eller MFI = fallande och H högre än föregående H }
sell1=or(takeprofit,and(lt(mval,aref(mval,1)),lt(aref(mval,1),aref(mval,2))))
{ koppla ihop villkor - takeprofit eller MFI = fallande och L lägre än föregående L}
cover1=or(takeprofit,and(gt(mval,aref(mval,1)),gt(h,aref(h,1))))
cover2=and(and(and(and(cover1,datum_ok),inpådagen),öppet),innehav_ok)
Comment