//@Name:Mid % since date //@Description:Returns the mid % change since the selected date //@Returns:Number //@Env:Production //@Width:60 //@Update:Intraday var startDate = "01/01/10"; function init(status) { if (status == Loading) { startDate = new Date(dateNumGetYear(storage.getAt(0)),dateNumGetMonth(storage.getAt(0)),dateNumGetDay(storage.getAt(0))); } if (status == Editing) { startDate = dateNumToString(storage.getAt(0)); } if (status == Adding || status == Editing) { dlg = new Dialog("% change from...", 180, 55); dlg.addOkButton(); dlg.addCancelButton(); dlg.addTextEdit("TE1",55,-1,50,-1,"Since date","",startDate); if (dlg.show()==Dialog.Cancel) return false; startDate = stringToDate(dlg.getValue("TE1")); storage.setAt(0, stringToDateNum(dlg.getValue("TE1"))); } setTitle(dateToString(startDate)+" % change"); } function getVal(share) { var startPrice = share.getCloseOnDate(startDate); var mid = share.getIMid(); if (mid == undefined) mid = share.getClose(); return ((mid/startPrice-1)*100).toFixed(2); } function dateToString(date) { var day = String(date.getDate()); var dateStr = (day.length==1) ? ('0'+day) : day; dateStr += '/'; var month = String(1+date.getMonth()); dateStr += (month.length==1) ? ('0'+month) : month; dateStr += '/'; var year = String(date.getFullYear()); dateStr += (year[2]+year[3]); return dateStr; } function stringToDate(text) { if (text[6]+text[7] > 80) var textYear = 19+text[6]+text[7]; else var textYear = 20+text[6]+text[7]; var date = new Date(textYear,(text[3]+text[4])-1,text[0]+text[1]); return date; } function dateNumToString(date) { var day = String(dateNumGetDay(date)); var dateStr = (day.length==1) ? ('0'+day) : day; dateStr += '/'; var month = String(1+dateNumGetMonth(date)); dateStr += (month.length==1) ? ('0'+month) : month; dateStr += '/'; var year = String(dateNumGetYear(date)); dateStr += (year[2]+year[3]); return dateStr; } function stringToDateNum(text) { if (text[6]+text[7] > 80) var textYear = 19+text[6]+text[7]; else var textYear = 20+text[6]+text[7]; var date = dateNum(textYear,(text[3]+text[4])-1,text[0]+text[1]); return date; }