/******************************************************** Name: TSE.Wavelet.Smooth Analysis Type: Indicator Description: Non-decimated Haar Wavelet Smoothing Indicator Family Used: tsewvl.dll Provided By: Trade Smart Research (c) Copyright 2001 - 2004 www.tsresearch.com ********************************************************/ var c,v,v1,v2,v3,v4,v5,v6,v7,v8,lookback; /* Defining DLL */ var d = new DLL("tsewvl.dll"); /* Functions Declaration */ d.addFunction("runwvl", DLL.FLOAT, DLL.STDCALL,"RUNWVL", DLL.FLOATARRAY,DLL.INT,DLL.FLOAT); d.addFunction("getallvalues", DLL.FLOAT, DLL.STDCALL,"GETALLVALUES", DLL.INT,DLL.INT); function preMain() { setPriceStudy(true); setStudyTitle("Wavelet Smoothing"); setCursorLabelName("Smoothing", 0); setDefaultBarStyle(PS_SOLID, 0); /* defining colors for different charts */ setDefaultBarFgColor(Color.red, 0); setDefaultBarFgColor(Color.blue, 1); setDefaultBarFgColor(Color.cyan, 2); setDefaultBarFgColor(Color.white, 3); setDefaultBarFgColor(Color.green, 4); setDefaultBarFgColor(Color.lightyellow, 5); setDefaultBarFgColor(Color.purple, 6); setDefaultBarFgColor(Color.olive, 7); setDefaultBarThickness(1, 0); setPlotType(PLOTTYPE_LINE, 0); ArrayPrice = new Array(256); /* threshold value signal / noise */ var fp1 = new FunctionParameter("NSigma", FunctionParameter.NUMBER); fp1.setLowerLimit(1); fp1.setUpperLimit(4); fp1.setDefault(2) } function main(NSigma) { if (NSigma==null) NSigma=2; lookback=256; aSource=getValue("Close",0,-lookback); nBarIndex = getNumBars()+getCurrentBarIndex(); if (nBarIndex >lookback) { for (x=0; x<lookback; x++) { ArrayPrice[x] = aSource[x]; } /* call dll function */ v = d.call("runwvl",ArrayPrice,8,NSigma); v1 = v - d.call("getallvalues",3,1); v2 = v1 - d.call("getallvalues",3,2); v3 = v2 - d.call("getallvalues",3,3); v4 = v3 - d.call("getallvalues",3,4); v5 = v4 - d.call("getallvalues",3,5); v6 = v5 - d.call("getallvalues",3,6); v7 = v6 - d.call("getallvalues",3,7); v8 = v7 - d.call("getallvalues",3,8); } else { v=0 } /* return values for charting */ return new Array (v1,v2,v3,v4,v5,v6,v7,v8); } |