/***************************************Provided By : eSignal (c) Copyright 2006Description: The Wilson Relative Price Channel by Leon WilsonVersion 1.0 05/05/2006Notes:* July 2006 Issue of Stocks and Commodities Magazine* Study requires version 7.9.1 or higher.Formula Parameters: Defaults:Channel Periods 34Smoothing Periods 1Over Bought 70Over Sold 30Upper Neutral Zone 55Lower Neutral Zone 45***************************************/function preMain() { setPriceStudy(true); setStudyTitle("The Wilson Relative Price Channel "); setCursorLabelName("Over Bought", 0); setCursorLabelName("Neutral Upper", 1); setCursorLabelName("Neutral Lower", 2); setCursorLabelName("Over Sold", 3); setShowTitleParameters(false); setDefaultBarFgColor(Color.black, 0); setDefaultBarFgColor(Color.black, 1); setDefaultBarFgColor(Color.black, 2); setDefaultBarFgColor(Color.black, 3); setPlotType(PLOTTYPE_SQUAREWAVE, 0); setPlotType(PLOTTYPE_SQUAREWAVE, 1); setPlotType(PLOTTYPE_SQUAREWAVE, 2); setPlotType(PLOTTYPE_SQUAREWAVE, 3); var fp1 = new FunctionParameter("nPeriods", FunctionParameter.NUMBER); fp1.setName("Channel Periods"); fp1.setLowerLimit(1); fp1.setUpperLimit(250); fp1.setDefault(34); var fp2 = new FunctionParameter("nSmoothing", FunctionParameter.NUMBER); fp2.setName("Smoothing Periods"); fp2.setLowerLimit(1); fp2.setUpperLimit(55); fp2.setDefault(1); var fp3 = new FunctionParameter("nOB", FunctionParameter.NUMBER); fp3.setName("Over Bought"); fp3.setLowerLimit(50); fp3.setUpperLimit(99); fp3.setDefault(70); var fp4 = new FunctionParameter("nOS", FunctionParameter.NUMBER); fp4.setName("Over Sold"); fp4.setLowerLimit(1); fp4.setUpperLimit(50); fp4.setDefault(30); var fp5 = new FunctionParameter("nUpperNZ", FunctionParameter.NUMBER); fp5.setName("Upper Neutral Zone"); fp5.setLowerLimit(50); fp5.setUpperLimit(99); fp5.setDefault(55); var fp6 = new FunctionParameter("nLowerNZ", FunctionParameter.NUMBER); fp6.setName("Lower Neutral Zone"); fp6.setLowerLimit(1); fp6.setUpperLimit(50); fp6.setDefault(45);}var bVersion = null;var bInit = false;var xRPC = null;function main(nPeriods, nSmoothing, nOB, nOS, nUpperNZ, nLowerNZ) { if (bVersion == null) bVersion = verify(); if (bVersion == false) return; if (bInit == false) { xRPC = efsInternal("calcRPC", nPeriods, nSmoothing, nOB, nOS, nUpperNZ, nLowerNZ); bInit = true; } var nRPC_OB = getSeries(xRPC, 0); // Over Bought var nRPC_UN = getSeries(xRPC, 1); // Upper Neutral var nRPC_LN = getSeries(xRPC, 2); // Lower Neutral var nRPC_OS = getSeries(xRPC, 3); // Over Sold setBarBgColor(Color.lightgrey, 0, nRPC_UN, nRPC_OB); setBarBgColor(Color.grey, 2, nRPC_LN, nRPC_OS); return new Array(nRPC_OB, nRPC_UN, nRPC_LN, nRPC_OS);}function calcRPC(nPeriods, nSmoothing, nOB, nOS, nUpperNZ, nLowerNZ) { var nC = close(0); var OB = ema(nSmoothing, efsInternal("calcCord", nPeriods, nOB), 0); var UN = ema(nSmoothing, efsInternal("calcCord", nPeriods, nUpperNZ), 0); var LN = ema(nSmoothing, efsInternal("calcCord", nPeriods, nLowerNZ), 0); var OS = ema(nSmoothing, efsInternal("calcCord", nPeriods, nOS), 0); OB = nC - (nC * (OB/100)); UN = nC - (nC * (UN/100)); LN = nC - (nC * (LN/100)); OS = nC - (nC * (OS/100)); return new Array(OB, UN, LN, OS);}function calcCord(nPeriods, nCord) { return (rsi(nPeriods, 0) - nCord);}function verify() { var b = false; if (getBuildNumber() < 730) { drawTextAbsolute(5, 35, "This study requires version 7.9.1 or later.", Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT, null, 13, "error"); drawTextAbsolute(5, 20, "Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp", Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT, null, 13, "upgrade"); return b; } else { b = true; } return b;} |