//@Name:Volume Sig Mult //@Description:Draws the Volume and its signal. The signal is modified by a multiplyier // 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 sigPeriod = 9; var sigType = 0; var sigTypeList = ["Simple","Exponential","Weighted","Triangular","VariableVHF","VariableCMO","VIDYA"]; var sigTitleList = ["SMA","EMA","WMA","TMA","VVHF","VCMO","VIDYA"]; var volCol1 = Colour.Green; var volCol2 = Colour.LightRed; var volStyle = Pen.Solid; var volWidth = 0; var sigCol = Colour.Red; var sigStyle = Pen.Dot; var sigWidth = 0; var sigSettings = 0; var mult = 3; function init(status) { if (status == Loading || status == Editing) { mult = storage.getAt(0); sigSettings = storage.getAt(1); volCol1 = storage.getAt(2); volCol2 = storage.getAt(3); sigCol = storage.getAt(4); sigPeriod = sigSettings%10000; sigType = Math.floor(sigSettings/10000)-100; } if (status == Adding || status == Editing) { dlg = new Dialog((status==Adding?"Add":"Edit")+" indicator", 255, 80); dlg.addOkButton(); dlg.addCancelButton(); dlg.addIntEdit("VAL1",70,46,-1,-1,"","",sigPeriod,2,5000); dlg.addDropList("VAL2",105,45,55,-1, sigTypeList, "","",sigType); dlg.addColPicker("VAL3",35,5,-1,-1,"Up: ","",volCol1); dlg.addColPicker("VAL4",35,25,-1,-1,"Down: ","",volCol2); dlg.addColPicker("VAL5",35,45,-1,-1,"Signal:","",sigCol); dlg.addNumEdit("VAL6",75,65,-1,-1,"Multiply signal by","",mult); if (dlg.show()==Dialog.Cancel) return false; sigPeriod = dlg.getValue("VAL1"); sigType = dlg.getValue("VAL2"); volCol1 = dlg.getValue("VAL3"); volCol2 = dlg.getValue("VAL4"); sigCol = dlg.getValue("VAL5"); mult = dlg.getValue("VAL6"); sigSettings = (sigType+100)*10000+sigPeriod; storage.setAt(0, mult); storage.setAt(1, sigSettings); storage.setAt(2, volCol1); storage.setAt(3, volCol2); storage.setAt(4, sigCol); } setSeriesColour(1,volCol1, volCol2); setSeriesChartType(1, ChartType.Histogram); setSeriesColourMode(1, ColourMode.UpDown); setSeriesLineStyle(1,volStyle,volWidth); setSeriesColour(0,sigCol); setSeriesLineStyle(0,sigStyle,sigWidth); setTitle("Volume(m) ("+sigPeriod+sigTitleList[sigType]+")"); } function getGraph(share, data) { var output = []; var sigRes = []; var sigCalc = new MA(sigPeriod,sigType); for (var i=0; i