//@Name:ROC + signal //@Description:Displays the Rate of Change indicator smooved with a moving average. //@Env:Production // 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 var1 = 20; var var2 = 20; var MAtype1 = 0; var maList = ["Simple","Exponential","Weighted","Triangular","VariableVHF","VariableCMO","VIDYA"]; var maTitleList = ["SMA","EMA","WMA","TMA","VVHF","VCMO","VIDYA"]; var lineCol1 = Colour.Red; var lineStyle1 = Pen.Solid var lineWidth1 = 1; var lineCol2 = Colour.Green; var lineStyle2 = Pen.Solid var lineWidth2 = 1; function init(status) { if (status == Loading || status == Editing) { MAtype1 = storage.getAt(0) var1 = storage.getAt(1); var2 = storage.getAt(2); lineCol1 = storage.getAt(3); lineStyle1 = storage.getAt(4); lineWidth1 = storage.getAt(5); lineCol2 = storage.getAt(6); lineStyle2 = storage.getAt(7); } if (status == Adding || status == Editing) { dlg = new Dialog("MA ROC%...",160,95); dlg.addOkButton(); dlg.addCancelButton(); dlg.addIntEdit("INT3",8,-1,-1,-1,"","ROC period",var2,1,500); dlg.addColLinePicker("LN1",8,-1,-1,-1,"","",lineCol1,lineStyle1,lineWidth1); dlg.addDropList("DL2",8,-1,80,-1,maList,"","",MAtype1); dlg.addIntEdit("INT2",8,-1,-1,-1,"","Period",var1,2,1000); dlg.addColLinePicker("LN2",8,-1,-1,-1,"","",lineCol2,lineStyle2,lineWidth2); if (dlg.show()==Dialog.Cancel) return false; MAtype1 = dlg.getValue("DL2"); var1 = dlg.getValue("INT2"); var2 = dlg.getValue("INT3"); lineCol1 = dlg.getValue("LN1").colour; lineStyle1 = dlg.getValue("LN1").pen; lineWidth1 = dlg.getValue("LN1").width; lineCol2 = dlg.getValue("LN2").colour; lineStyle2 = dlg.getValue("LN2").pen; lineWidth2 = dlg.getValue("LN2").width; storage.setAt(0, MAtype1); storage.setAt(1, var1); storage.setAt(2, var2); storage.setAt(3, lineCol1); storage.setAt(4, lineStyle1); storage.setAt(5, lineWidth1); storage.setAt(6, lineCol2); storage.setAt(7, lineStyle2); } setTitle(var2+" ROC ("+var1+" "+maTitleList[MAtype1]+" signal)"); setSeriesColour(0, lineCol1); setSeriesLineStyle(0, lineStyle1, lineWidth1); setSeriesColour(1, lineCol2); setSeriesLineStyle(1, lineStyle2, lineWidth2); setHorizontalLine(0); } function getGraph(share, data) { var ma1 = new MA(var1,MAtype1); var line2 = []; var line1 = []; for (var i=var2+1;i