//@Name:ADX % Change //@Description:Displays the percentage change between the last two values of the ADX/ADXR/DI+ or DI- //@Returns:Number //@Width:80 //@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 period = 14; var ADXtype = 0; var ADXreturn = ["ADX","DI+","DI-","ADXR"]; var dataType = 0; var dataSource = ["Daily","Weekly","Monthly"]; var output = 0; function init(status) { if (status == Loading || status == Editing) { period = storage.getAt(0); ADXtype = storage.getAt(1); dataType = storage.getAt(2); } if (status == Adding || status == Editing) { dlg = new Dialog("ADX Slope Settings",164,75); dlg.addOkButton(); dlg.addCancelButton(); dlg.addIntEdit("INT1",50,-1,40,-1,"Period","",period,2,1000); dlg.addDropList("DL1",50,-1,40,-1,ADXreturn,"","",ADXtype); dlg.addDropList("DL2",50,-1,40,-1,dataSource,"Data source","",dataType); if (dlg.show()==Dialog.Cancel) return false; period = dlg.getValue("INT1"); ADXtype = dlg.getValue("DL1"); dataType = dlg.getValue("DL2"); storage.setAt(0, period); storage.setAt(1, ADXtype); storage.setAt(2, dataType); } //sets the title of the column if (dataType==0) setTitle(period+" "+dataSource[dataType]+" "+ADXreturn[ADXtype]+" %change") else if (dataType==1) setTitle(period+" "+dataSource[dataType]+" "+ADXreturn[ADXtype]+" %change") else setTitle(period+" "+dataSource[dataType]+" "+ADXreturn[ADXtype]+" %change") } function getVal(share) { if (dataType==0) var data = share.getPriceArray(period*10); if (dataType==1) var data = share.getWeeklyBarArray(period*50); if (dataType==2) var data = share.getMonthlyBarArray(period*200); var adx1 = new ADX(period); ADXres = []; PDIres = []; NDIres = []; ADXRres = []; for (var i=0;i