//@Name:Average P/E //@Description:Returns the average historical P/E over a set period. //@Env:Production var period = 250; function init(status) { if (status == Loading || status == Editing) { period = storage.getAt(0); } if (status == Adding || status == Editing) { dlg = new Dialog((status==Adding?"Add":"Edit")+" column", 145, 45); dlg.addOkButton(); dlg.addCancelButton(); dlg.addIntEdit("INT1",8,-1,-1,-1,"","period",period,2,1000); if (dlg.show()==Dialog.Cancel) return false; period = dlg.getValue("INT1"); storage.setAt(0, period); } setTitle(period+" av. P/E"); } function getVal(share) { var data = share.getPriceArray(period); var pe; var avPE = 0; var limit = 500; var eps = 0; var epsYear = 0; for (var i=data.length-1; i>=0; i--) { if (data[i].date < share.getResult(epsYear, Result.Date)) epsYear--; eps = share.getResult(epsYear, Result.EPS) if (eps>0) pe = data[i].close/eps if (eps<=0) pe = 0; if (pe>limit) pe = limit; avPE += pe; } return avPE/data.length; }