//@Name:EPS Growth Difference % //@Description:Returns the difference between two yearly EPS growth % values //@Returns:Number //@Width:60 //@Env:Production var year1 = 0; var year2 = -1; var ignoreNegs = true; function init(status) { if (status == Loading || status == Editing) { year1 = storage.getAt(0); year2 = storage.getAt(1); ignoreNegs = storage.getAt(2); } if (status == Adding || status == Editing) { dlg = new Dialog("Settings...", 190, 78); dlg.addOkButton(); dlg.addCancelButton(); dlg.addIntEdit("INT1",8,-1,-1,-1,"","Year 1",year1,-10,3); dlg.addIntEdit("INT2",8,-1,-1,-1,"","Year 2",year2,-10,3); dlg.addTickBox("TB2",8,-1,120,-1,"Ignore negative growth values",ignoreNegs); dlg.addText(8,50,170,25,"Use 0 for current value, 1 for 1 year forecast or -1 for 1 year ago.\nMake sure that Year 1 is larger than Year 2."); if (dlg.show()==Dialog.Cancel) return false; year1 = dlg.getValue("INT1"); year2 = dlg.getValue("INT2"); ignoreNegs = dlg.getValue("TB2"); storage.setAt(0, year1); storage.setAt(1, year2); storage.setAt(2, ignoreNegs); } } function getVal(share) { if (year1<=year2) return; var eps1 = share.getResult(year1, Result.EPS); var eps2 = share.getResult(year1-1, Result.EPS); var eps3 = share.getResult(year2, Result.EPS); var eps4 = share.getResult(year2-1, Result.EPS); var growth1 = (eps1/eps2-1)*100; var growth2 = (eps3/eps4-1)*100; if (ignoreNegs && (eps1<0 || eps2<0 || eps3<0 || eps4<0 || growth1<0 || growth2<0)) return; return growth1 - growth2; }