//@Name:SZO //@Description:Sentiment Zone Oscillator. As described on Stocks & Commodities magazine, May 2012 edition. // 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. //Coded by: Richard Chiesa, ShareScript Support var period = 14; var longPeriod = 30; var perc = 95; function init(status) { if (status == Loading || status == Editing) { period = storage.getAt(0); longPeriod = storage.getAt(1); perc = storage.getAt(2); } if (status == Adding || status == Editing) { dlg = new Dialog("SZO settings...", 145, 55); dlg.addOkButton(); dlg.addCancelButton(); dlg.addIntEdit("INT1",8,-1,-1,-1,"","SZO Period",period,2,1000); dlg.addIntEdit("INT2",8,-1,-1,-1,"","Long Period",longPeriod,2,1000); dlg.addIntEdit("INT3",8,-1,-1,-1,"","Percent",perc,1,100); if (dlg.show()==Dialog.Cancel) return false; period = dlg.getValue("INT1"); longPeriod = dlg.getValue("INT2"); perc = dlg.getValue("INT3"); storage.setAt(0, period); storage.setAt(1, longPeriod); storage.setAt(2, perc); } setSeriesLineStyle(0,0,1); setSeriesColour(1, Colour.Red); setSeriesColour(2, Colour.Blue); setTitle(period+" SZO"); setHorizontalLine(7); setHorizontalLine(0); setHorizontalLine(-7); } function getGraph(share, data) { var SZO = []; var ma1 = new TEMA(period); var OB = []; var OS = []; for (var i=1; idata[i-1].close?1:-1); SZO[i] = 100*tema1/period; var hh = 0; var ll = 1000; if (i>=longPeriod) { for (var j=0; jhh?SZO[i-j]:hh; ll=SZO[i-j]