//@Name:MACD Value //@Description:Displays the latest MACD, signal or histogram value //@Returns:Number //@Width:80 //@Update:Periodic, 15 //@Env:Production // Author: 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 shortPeriod = 13; var longPeriod = 26; var signalPeriod = 9; var outputList = ["MACD","Signal","Histogram"]; var dataList = ["Daily","Weekly","Monthly"]; var dataSource = 0; var outputType = 0; var daysAgo = 0; var useIntra = 0; function init(status) { if (status == Loading || status == Editing) { outputType = storage.getAt(0); shortPeriod = storage.getAt(1); longPeriod = storage.getAt(2); signalPeriod = storage.getAt(3); dataSource = storage.getAt(4); daysAgo = storage.getAt(5); useIntra = storage.getAt(6); } if (status == Adding || status == Editing) { dlg = new Dialog("MACD settings",170,110); dlg.addOkButton(); dlg.addCancelButton(); dlg.addDropList("DL1",8,5,65,-1,outputList,"","",outputType); dlg.addIntEdit("INT1",8,22,-1,-1,"","short period",shortPeriod,2,1000); dlg.addIntEdit("INT2",8,39,-1,-1,"","long period",longPeriod,3,1000); dlg.addIntEdit("INT3",8,56,-1,-1,"","signal period",signalPeriod,2,1000); dlg.addDropList("DL2",8,73,65,-1,dataList,"","",dataSource); dlg.addTickBox("TB1",78,75,65,-1,"Include Intraday data",useIntra); dlg.addIntEdit("INT4",8,90,-1,-1,"","periods ago",daysAgo); if (dlg.show()==Dialog.Cancel) return false; outputType = dlg.getValue("DL1"); shortPeriod = dlg.getValue("INT1"); longPeriod = dlg.getValue("INT2"); signalPeriod = dlg.getValue("INT3"); dataSource = dlg.getValue("DL2"); daysAgo = dlg.getValue("INT4"); useIntra = dlg.getValue("TB1"); storage.setAt(0, outputType); storage.setAt(1, shortPeriod); storage.setAt(2, longPeriod); storage.setAt(3, signalPeriod); storage.setAt(4, dataSource); storage.setAt(5, daysAgo); storage.setAt(6, useIntra); } //sets the title of the column if (dataSource==0) setTitle((outputType==0?"":"MACD ")+outputList[outputType]+": "+shortPeriod+","+longPeriod+","+signalPeriod+" ("+(useIntra?"i":"")+dataList[dataSource]+") "+daysAgo+"td ago"); else if(dataSource==1) setTitle((outputType==0?"":"MACD ")+outputList[outputType]+": "+shortPeriod+","+longPeriod+","+signalPeriod+" ("+(useIntra?"i":"")+dataList[dataSource]+") "+daysAgo+"wks ago") else if (dataSource==2) setTitle((outputType==0?"":"MACD ")+outputList[outputType]+": "+shortPeriod+","+longPeriod+","+signalPeriod+" ("+(useIntra?"i":"")+dataList[dataSource]+") "+daysAgo+"mnths ago") } function getVal(share) { var data = getData(share,dataSource,useIntra) if (data == undefined || data.lengthdata[data.length-1].high?idata[0].high:data[data.length-1].high), low:(idata[0].lowdata[data.length-1].high?idata[0].high:data[data.length-1].high), low:(idata[0].low