//@Name:Tillson T3 //@Description:Tillson's T3 moving average // 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 periods = 3; var factorA = 0.7; var lineCol = Colour.Red; var lineStyle = Pen.Solid; var lineWidth = 1; function init(status) { if (status==Loading || status==Editing) { periods = storage.getAt(0); factorA = storage.getAt(1); lineCol = storage.getAt(2); lineStyle = storage.getAt(3); lineWidth = storage.getAt(4); } if (status==Adding || status==Editing) { var dlg = new Dialog((status==Adding?"Add":"Edit")+" indicator",180,44) dlg.addOkButton(); dlg.addCancelButton(); dlg.addIntEdit("INT1",8,8,-1,-1,"","period",periods,2,1000); dlg.addNumEdit("NUM1",8,24,-1,-1,"","a",factorA,0,2); dlg.addColLinePicker("LN1",75,8,-1,-1,"","",lineCol,lineStyle,lineWidth); if (dlg.show()==Dialog.Cancel) return false; periods = dlg.getValue("INT1"); factorA = dlg.getValue("NUM1"); lineCol = dlg.getValue("LN1").colour; lineStyle = dlg.getValue("LN1").pen; lineWidth = dlg.getValue("LN1").width; storage.setAt(0, periods); storage.setAt(1, factorA); storage.setAt(2, lineCol); storage.setAt(3, lineStyle); storage.setAt(4, lineWidth); } setRange(Range.Parent); setSeriesColour(0, lineCol); setSeriesLineStyle(0, lineStyle, lineWidth); } function getGraph(share, data) { var ma1 = new MA(periods, MA.Exponential); var ma2 = new MA(periods, MA.Exponential); var ma3 = new MA(periods, MA.Exponential); var ma4 = new MA(periods, MA.Exponential); var ma5 = new MA(periods, MA.Exponential); var ma6 = new MA(periods, MA.Exponential); var ema1 = new Array(); var ema2 = new Array(); var ema3 = new Array(); var ema4 = new Array(); var ema5 = new Array(); var ema6 = new Array(); var t3 = new Array(); //the tillson t3 of the close var a2 = Math.pow(factorA,2); var a3 = Math.pow(factorA,3); var c1 = a3*-1; var c2 = 3*a2 + 3*a3; var c3 = -6*a2 - 3*factorA - 3*a3; var c4 = 1 + 3*factorA + a3 + 3*a2; for (var i=1; i