//@Name:MA of an MA //@Description:Displays an MA and an MA of the first MA. //@Returns:Number //@Width:80 //@Env:Productions var MAtype1 = 0; var MAtype2 = 0; var var1 = 10; var var2 = 20; var store1 = 0; var store2 = 0; var dataType1 = 3; var indCol1 = Colour.Magenta; var indCol2 = Colour.Green; var indStyle1 = 0; var indStyle2 = 0; var indWidth1 = 1; var indWidth2 = 1; var maList = ["Simple","Exponential","Weighted","Triangular","VariableVHF","VariableCMO","VIDYA","TEMA","Hull"]; var maTitleList = ["SMA","EMA","WMA","TMA","VVHF","VCMO","VIDYA","TEMA","HMA"]; var dataList = ["Open","High","Low","Close","Typical","Median","Weighted"]; function init(status) { if (status == Loading || status == Editing) { store1 = storage.getAt(0); store2 = storage.getAt(1); indCol1 = storage.getAt(2); indCol2 = storage.getAt(3); store1 = store1.toString(); indWidth1=parseInt(store1.substr(0,1),10)-1; indStyle1=parseInt(store1.substr(1,1),10); MAtype1=parseInt(store1.substr(2,1),10) dataType1=parseInt(store1.substr(3,1),10); var1=parseInt(store1.substr(4,3),10); store2 = store2.toString(); indWidth2=parseInt(store2.substr(0,1),10)-1; indStyle2=parseInt(store2.substr(1,1),10); MAtype2=parseInt(store2.substr(2,1),10); var2=parseInt(store2.substr(4,3),10); } if (status == Adding || status == Editing) { dlg = new Dialog("Settings...",280,55); dlg.addOkButton(); dlg.addCancelButton(); dlg.addDropList("DL1",8,5,80,-1,maList,"","",MAtype1); dlg.addIntEdit("INT1",95,5,-1,-1,"","",var1,2,1000); dlg.addColLinePicker("CL1",135,5,-1,-1,"","",indCol1,indStyle1,indWidth1); dlg.addDropList("DL3",175,5,40,-1,dataList,"","",dataType1); dlg.addDropList("DL2",8,23,80,-1,maList,"","",MAtype2); dlg.addIntEdit("INT2",95,23,-1,-1,"","",var2,3,1000); dlg.addColLinePicker("CL2",135,22,-1,-1,"","",indCol2,indStyle2,indWidth2); if (dlg.show()==Dialog.Cancel) return false; MAtype1 = dlg.getValue("DL1"); var1 = dlg.getValue("INT1"); indCol1 = dlg.getValue("CL1").colour; indStyle1 = dlg.getValue("CL1").pen; indWidth1 = dlg.getValue("CL1").width; MAtype2 = dlg.getValue("DL2"); var2 = dlg.getValue("INT2"); indCol2 = dlg.getValue("CL2").colour; indStyle2 = dlg.getValue("CL2").pen; indWidth2 = dlg.getValue("CL2").width; dataType1 = dlg.getValue("DL3"); store1 = (indWidth1+1)*1000000+indStyle1*100000+MAtype1*10000+dataType1*1000+var1 store2 = (indWidth2+1)*1000000+indStyle2*100000+MAtype2*10000+var2 storage.setAt(0, store1); storage.setAt(1, store2); storage.setAt(2, indCol1); storage.setAt(3, indCol2); } setSeriesColour(0,indCol1); setSeriesLineStyle(0,indStyle1,indWidth1); setSeriesColour(1,indCol2); setSeriesLineStyle(1,indStyle2,indWidth2); setTitle(var1+" "+maTitleList[MAtype1]+", "+var2+" "+maTitleList[MAtype2]); setRange(Range.Parent); } function getGraph(share, data) { var line1 = new Array(); var line2 = new Array(); if (MAtype1 == 8) { var sqrtperiod1 = Math.round(Math.sqrt(var1)); var ma1 = new MA(var1/2, MA.Weighted); var ma2 = new MA(var1, MA.Weighted); var ma3 = new MA(sqrtperiod1, MA.Weighted); for (var i=0; i