//@Name:VolAv-VolAv(%) //@Description:Returns the % difference between two volume averages. //@Returns:Number //@Width:60 //@Env:Production // Author: Richard Chiesa, ShareScript Support // 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 inputDate1 = new Date(); var inputDate2 = new Date(2011,0,1); var inputDate3 = new Date(2011,0,1); var inputDate4 = new Date(2010,0,1); var inputShare = getShare("UKI:UKX"); function init(status) { if (status == Loading || status == Editing) { inputDate1 = new Date(dateNumGetYear(storage.getAt(0)),dateNumGetMonth(storage.getAt(0)),dateNumGetDay(storage.getAt(0))); inputDate2 = new Date(dateNumGetYear(storage.getAt(1)),dateNumGetMonth(storage.getAt(1)),dateNumGetDay(storage.getAt(1))); inputDate3 = new Date(dateNumGetYear(storage.getAt(2)),dateNumGetMonth(storage.getAt(2)),dateNumGetDay(storage.getAt(2))); inputDate4 = new Date(dateNumGetYear(storage.getAt(3)),dateNumGetMonth(storage.getAt(3)),dateNumGetDay(storage.getAt(3))); } if (status == Adding || status == Editing) { dlg = new Dialog("Select Date Ranges...", 280, 75); dlg.addOkButton(); dlg.addCancelButton(); dlg.addDatePicker("DP1",70,10,-1,-1, "Average 1 - From:", "", inputDate2); dlg.addDatePicker("DP2",150,10,-1,-1, "To:", "", inputDate1); dlg.addDatePicker("DP3",70,47,-1,-1, "Average 2 - From:", "Start date", inputDate4); dlg.addDatePicker("DP4",150,47,-1,-1, "To:", "", inputDate3); if (dlg.show()==Dialog.Cancel) return false; inputDate2 = dlg.getValue("DP1"); inputDate1 = dlg.getValue("DP2"); inputDate4 = dlg.getValue("DP3"); inputDate3 = dlg.getValue("DP4"); storage.setAt(0, dateNum(inputDate1)); storage.setAt(1, dateNum(inputDate2)); storage.setAt(2, dateNum(inputDate3)); storage.setAt(3, dateNum(inputDate4)); } } function getVal(share) { var data1 = share.getPriceArrayDates(inputDate2,inputDate1); var data2 = share.getPriceArrayDates(inputDate4,inputDate3); if (data1==undefined || data2==undefined || data1.length<1 || data2.length<1) return; var av1 = 0; var av2 = 0; for (var i=0;i