Niklaus

Sector Alpha

Excess Return by US Sector
Open-source Skript

Ganz im Spirit von TradingView hat der Autor dieses Skripts es als Open-Source veröffentlicht, damit Trader es besser verstehen und überprüfen können. Herzlichen Glückwunsch an den Autor! Sie können es kostenlos verwenden, aber die Wiederverwendung dieses Codes in einer Veröffentlichung unterliegt den Hausregeln. Sie können es als Favoriten auswählen, um es in einem Chart zu verwenden.

Haftungsausschluss

Die Informationen und Veröffentlichungen sind nicht als Finanz-, Anlage-, Handels- oder andere Arten von Ratschlägen oder Empfehlungen gedacht, die von TradingView bereitgestellt oder gebilligt werden, und stellen diese nicht dar. Lesen Sie mehr in den Nutzungsbedingungen.

Möchten Sie dieses Skript auf einem Chart verwenden?
study(title="Sector Alpha", shorttitle="Sector Alpha (%)")

//by Niklaus
////SHOWS US MARKET SECTORS EXCESS RETURNS
//Alpha is a measure of the active return on an investment, the performance of that investment compared to a suitable market index, in %
//alpha < 0: the investment has earned too little for its risk (or, was too risky for the return)
//alpha = 0: the investment has earned a return adequate for the risk taken
//alpha > 0: the investment has a return in excess of the reward for the assumed risk
//https://en.wikipedia.org/wiki/Alpha_(finance)

//Beta Calculation
sym = "SPY", res=period, src = close, length = input(title = "Beta Window", defval=300, minval=1)
ovr = security(sym, res, src)

sym2 = "XLF"
ovr2 = security(sym2, res, src)

sym3 = "XLK"
ovr3 = security(sym3, res, src)

sym4 = "XLI"
ovr4 = security(sym4, res, src)

sym5 = "XLB"
ovr5 = security(sym5, res, src)

sym6 = "XLV"
ovr6 = security(sym6, res, src)

sym7 = "XLU"
ovr7 = security(sym7, res, src)

sym8 = "XLE"
ovr8 = security(sym8, res, src)

sym9 = "XLP"
ovr9 = security(sym9, res, src)

sym10 = "XLY"
ovr10 = security(sym10, res, src)

//////////////////////////////////////////    FINANCIALS

retxlf = log(ovr2) - log(ovr2[1])
retb = log(ovr) - log(ovr[1])
secd = stdev(retxlf, length), mktd = stdev(retb, length)
Betaxlf = correlation(retxlf, retb, length) * secd / mktd

//Alpha Calculation
y = input(title="alpha period", type=integer, defval=90, minval=1, maxval=1000)
retxlf2 = log(ovr2) - log(ovr2[y])
retb2 = log(ovr) - log(ovr[y])
alphaxlf = retxlf2 - retb2*Betaxlf
plot(alphaxlf*100, color=green, style=line, transp=40, title='Fin')

//////////////////////////////////////////    TECHNOLOGY

retxlk = log(ovr3) - log(ovr3[1])
secdxlk = stdev(retxlk, length)
Betaxlk = correlation(retxlk, retb, length) * secdxlk / mktd

//Alpha Calculation

retxlk3 = log(ovr3) - log(ovr3[y])
alphaxlk = retxlk3 - retb2*Betaxlk
plot(alphaxlk*100, color=blue, style=line, transp=40, title='Tech')

//////////////////////////////////////////    INDUSTRIALS

retxli = log(ovr4) - log(ovr4[1])
secdxli = stdev(retxli, length)
Betaxli = correlation(retxli, retb, length) * secdxli / mktd

//Alpha Calculation

retxli3 = log(ovr4) - log(ovr4[y])
alphaxli = retxli3 - retb2*Betaxli
plot(alphaxli*100, color=aqua, style=line, transp=40, title='Indu')


//////////////////////////////////////////    MATERIALS

retxlb = log(ovr5) - log(ovr5[1])
secdxlb = stdev(retxlb, length)
Betaxlb = correlation(retxlb, retb, length) * secdxlb / mktd

//Alpha Calculation

retxlb2 = log(ovr5) - log(ovr5[y])
alphaxlb = retxlb2 - retb2*Betaxlb
plot(alphaxlb*100, color=gray, style=line, transp=0, title='Mats')

//////////////////////////////////////////    HEALTHCARE

retxlv = log(ovr6) - log(ovr6[1])
secdxlv = stdev(retxlv, length)
Betaxlv = correlation(retxlv, retb, length) * secdxlv / mktd

//Alpha Calculation

retxlv2 = log(ovr6) - log(ovr6[y])
alphaxlv = retxlv2 - retb2*Betaxlv
plot(alphaxlv*100, color=red, style=line, transp=40, title='HlthCare')


//////////////////////////////////////////    UTILITIES

retxlu = log(ovr7) - log(ovr7[1])
secdxlu = stdev(retxlu, length)
Betaxlu = correlation(retxlu, retb, length) * secdxlu / mktd

//Alpha Calculation

retxlu2 = log(ovr7) - log(ovr7[y])
alphaxlu = retxlu2 - retb2*Betaxlu
plot(alphaxlu*100, color=orange, style=line, transp=60, title='Utlt')

//////////////////////////////////////////    ENERGY

retxle = log(ovr8) - log(ovr8[1])
secdxle = stdev(retxle, length)
Betaxle = correlation(retxle, retb, length) * secdxle / mktd

//Alpha Calculation

retxle2 = log(ovr8) - log(ovr8[y])
alphaxle = retxle2 - retb2*Betaxle
plot(alphaxle*100, color=fuchsia, style=line, transp=40, title='Nrg')

//////////////////////////////////////////    CONSUMER STAPLES

retxlp = log(ovr9) - log(ovr9[1])
secdxlp = stdev(retxlp, length)
Betaxlp = correlation(retxlp, retb, length) * secdxlp / mktd

//Alpha Calculation

retxlp2 = log(ovr9) - log(ovr9[y])
alphaxlp = retxlp2 - retb2*Betaxlp
plot(alphaxlp*100, color=maroon, style=line, transp=40, title='Stpl')


//////////////////////////////////////////    CONSUMER DISCRETIONARY

retxly = log(ovr10) - log(ovr10[1])
secdxly = stdev(retxly, length)
Betaxly = correlation(retxly, retb, length) * secdxly / mktd

//Alpha Calculation

retxly2 = log(ovr10) - log(ovr10[y])
alphaxly = retxly2 - retb2*Betaxly
plot(alphaxly*100, color=olive, style=line, transp=10, linewidth=1, title='Disc')


hline(0, linewidth=1)