// @Name:Sec vs Index Relative Strength // @Description:Shows if the share's sector index has outperformed the specified index over last X days // @Returns:Number // @Env:Production // Care has been taken in preparing this code but it is provided without guarantee. // You are welcome to modify and extend it. Please add your name as a modifier if you distribute it. var relPeriod = 40; var indexChoice = 0; var indexList = ["FTSE 100","FTSE 350","FTSE All-Share","DJI","NASDAQ 100","S&P 500"]; function init(status) { if (status == Loading || status == Editing) { relPeriod = storage.getAt(0); indexChocie = storage.getAt(1); } if (status == Adding || status == Editing) { dlg = new Dialog("Settings...", 180, 60); dlg.addOkButton(); dlg.addCancelButton(); dlg.addIntEdit("VAL1",38,5,20,-1,"Lookback:","trading days",relPeriod); dlg.addDropList("VAL2",38,22,-1,-1,indexList,"Index:","",indexChoice); if (dlg.show()==Dialog.Cancel) return false; relPeriod = dlg.getValue("VAL1"); indexChoice = dlg.getValue("VAL2"); storage.setAt(0, relPeriod); storage.setAt(1, indexChoice); } setTitle("Relative Strength: Sector vs "+indexList[indexChoice]+" ("+relPeriod+"td)"); } function getVal(share) { if (indexChoice==0) var relshare = getShare("UKI:UKX"); if (indexChoice==1) var relshare = getShare("UKI:NMX"); if (indexChoice==2) var relshare = getShare("UKI:ASX"); if (indexChoice==3) var relshare = getShare("USI:DJI"); if (indexChoice==4) var relshare = getShare("USI:IXND"); if (indexChoice==5) var relshare = getShare("USI:GSPC"); var relshare2 = share.getSectorIndex(); if (relshare2 == undefined) return var F1 = relshare.getClose(relPeriod); var S1 = relshare2.getClose(relPeriod); var F2 = relshare.getClose(); var S2 = relshare2.getClose(); var rel = ((((F1 / S1) * (S2 / F2)) - 1) * 100).toFixed(2); return rel; }