En del av strategiuppdateringen för Onsdagsfonden PPM är att modifiera trendindikatorn något. Jag är inte ute efter att optimera parametrar för att få historiskt bättre utfall av indikatorn. Sådana övningar invaggar bara dig i falsk trygghet och parametrar som anpassats för att ge bästa utfall i tider som varit kommer definitivt inte att per automatik ge bra framtida resultat. Det är viktigt att ha en robust indikator som fungerar hyggligt väl i alla typer av marknadsklimat och börshändelser, utan att man ständigt pillar på dess inställningar. En trendindikator är ändå bara en liten del av en komplett placeringsstrategi och inte värd mycket utan exits och riskkontroll.
Icke desto mindre finns det ändå anledning att då och då se över indikatorns ”uppträdande”. Onsdagsfondens trendindikator har en rejäl eftersläpning, då den är baserad på veckodata och har med glidande medelvärden upp till 50 perioder. Det är ett önskvärt beteende, för att fånga de stora rörelserna. Årets börsutveckling har visat på ett behov av att skärpa kraven för att trendindikatorn ska visa trend, positiv som negativ. Konkret innebär det att jag också vill se att en kursstapel ligger ovanför de längre glidande medelvärdena, de så kallade investerarmedelvärdena, för att en positiv trend ska signaleras. Omvänt för negativ trend.
OMXS30 med uppdaterad trendindikator. Notera att grafen inkluderar veckans utveckling och som ett resultat signalerar negativ trend just nu. Hur det blir till slut får vi se efter stängningen på fredag.
Ändringen leder till att det blir lite fler avbrott i pågående trend och att jag minskar risken för att ett återinträde efter exit görs för fort. Enkelt uttryckt blir det kortare upp- och nedtrender enligt indikatorn och fler perioder med neutral/osäker trend. Med ett krav på minst tre perioder av positiv trend innan man köper minskar jag risken för att köpa i något som bara visade sig vara en tillfällig prisökning i en tid av osäker trend eller i värsta fall ett omslag till negativ trend. Uppdateringen kommer inte att leda till att det går snabbare att slå om till negativ eller positiv trend. För att skydda kapitalet mot kursnedgångar är exitmetoden fortfarande det viktigaste instrumentet, men nu arbetar också trendindikatorn på ett tydligare sätt för det.
Det är inte så värst mycket skillnad i koden för trendindikatorn som den ser ut i ProRealTime, markerad med fetstil nedan:
//Assign EMA variables
EMA3=ExponentialAverage[3](close)
EMA5=ExponentialAverage[5](close)
EMA8=ExponentialAverage[8](close)
EMA10=ExponentialAverage[10](close)
EMA12=ExponentialAverage[12](close)
EMA15=ExponentialAverage[15](close)
EMA25=ExponentialAverage[25](close)
EMA30=ExponentialAverage[30](close)
EMA35=ExponentialAverage[35](close)
EMA40=ExponentialAverage[40](close)
EMA45=ExponentialAverage[45](close)
EMA50=ExponentialAverage[50](close)
//Check if GMMA Investors are positive or negative
ConditionGMMAInvestorsUp = EMA25 > EMA25[1] and EMA30 > EMA30[1] and EMA35 >EMA35[1] and EMA40>EMA40[1] and EMA45>EMA45[1] and EMA50>EMA50[1]
ConditionGMMAInvestorsDown = EMA25 < EMA25[1] and EMA30 < EMA30[1] and EMA35 <EMA35[1] and EMA40<EMA40[1] and EMA45<EMA45[1] and EMA50<EMA50[1]
//Calculate the lowest investor MA value
Temp1=MIN(EMA25,EMA30)
Temp2=MIN(EMA35,EMA40)
Temp3=MIN(EMA45,EMA50)
Temp4=MIN(Temp1,Temp2)
LowestInvestorMA=MIN(Temp4,Temp3)
//Calculate the highest investor MA value
Temp1=MAX(EMA25,EMA30)
Temp2=MAX(EMA35,EMA40)
Temp3=MAX(EMA45,EMA50)
Temp4=Max(Temp1,Temp2)
HighestInvestorMA=Max(Temp4,Temp3)
//Calculate the lowest trader MA value
Temp1=MIN(EMA3,EMA5)
Temp2=MIN(EMA8,EMA10)
Temp3=MIN(EMA12,EMA15)
Temp4=MIN(Temp1,Temp2)
LowestTraderMA=MIN(Temp4,Temp3)
//Calculate the highest trader MA value
Temp1=MAX(EMA3,EMA5)
Temp2=MAX(EMA8,EMA10)
Temp3=MAX(EMA12,EMA15)
Temp4=Max(Temp1,Temp2)
HighestTraderMA=Max(Temp4,Temp3)
//Are GMMA Trader MA values above GMMA Investors
ConditionGMMATradersAboveGMMAInvestors=LowestTraderMA>HighestInvestorMA
//Are GMMA Trader MA values below GMMA Investors
ConditionGMMATradersBelowGMMAInvestors=HighestTraderMA<LowestInvestorMA
//If less than 50 bars, do not show
IF BarIndex < 50 THEN
GMMATrend = Undefined
ELSE
//if GMMA Investor MAs are up and GMMA Trader MAs all above GMMA Investor and Low is above all GMMA Investor MAs, we have up trend
IF ConditionGMMAInvestorsUp and ConditionGMMATradersAboveGMMAInvestors and Low > HighestInvestorMA then
GMMATrend=1
//if GMMA Investor MAs are down and GMMA Trader MAs all below GMMA Investor and High is below all GMMA Investor MAs, we have down trend
ELSIF ConditionGMMAInvestorsDown and ConditionGMMATradersBelowGMMAInvestors and High < LowestInvestorMA then
GMMATrend=-1
//If not up nor down trend, trend is neutral
else
GMMATrend=0
endif
Endif
//Show the indicator in diagram window
Return GMMATrend