/*********************************Provided By: eSignal (Copyright c eSignal), a division of Interactive Data Corporation. 2009. All rights reserved. This sample eSignal Formula Script (EFS) is for educational purposes only and may be modified and saved under a new file name. eSignal is not responsible for the functionality once modified. eSignal reserves the right to modify and overwrite this EFS file with each new release.Description: B. Williams - Trading Zone Version: 1.0 06/10/2009 Formula Parameters: Default: Fast SMA 5 Slow SMA 34 Notes: The indicator is written by the fourth dimension of B. Williams - Trading Zone: If the current bars of AC and AO are green, it shows that the zone is green. If the current bars of @Q and @N red, it shows that the zone is red. If the bars of AC and AO are differently directed then the bar is colored grey (grey zone). **********************************/var fpArray = new Array();var bInit = false;function preMain(){ setPriceStudy(true); setShowCursorLabel(true); setShowTitleParameters(false); setColorPriceBars(true); setStudyTitle("ZoneTrade "); setDefaultBarFgColor(Color.black); var x = 0; fpArray[x] = new FunctionParameter("SMA_Len1", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Fast SMA"); setLowerLimit(1); setDefault(5); } fpArray[x] = new FunctionParameter("SMA_Len2", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Slow SMA"); setLowerLimit(1); setDefault(34); } }var xAC = null;var xAO = null;function main(SMA_Len1, SMA_Len2) {var nBarState = getBarState();var nAC = 0;var nAC1 = 0;var nAO = 0;var nAO1 = 0;var nDirAC = 0;var nDirAO = 0; if (nBarState == BARSTATE_ALLBARS) { if(SMA_Len1 == null) SMA_Len1 = 5; if(SMA_Len2 == null) SMA_Len2 = 34; } if (bInit == false) { xAC = efsInternal("Calc_AC", SMA_Len1, SMA_Len2); xAO = efsInternal("Calc_AO", SMA_Len1, SMA_Len2); bInit = true; } setPriceBarColor(Color.grey); nAC = xAC.getValue(0); nAC1 = xAC.getValue(-1); nAO = xAO.getValue(0); nAO1 = xAO.getValue(-1); if (nAC1 == null || nAO1 == null) return; if (nAC > nAC1) nDirAC = 1; if (nAC < nAC1) nDirAC = 2; if (nAO > nAO1) nDirAO = 1; if (nAO < nAO1) nDirAO = 2; if (nDirAC == 1 && nDirAO == 1) { setPriceBarColor(Color.lime); } if (nDirAC == 2 && nDirAO == 2) { setPriceBarColor(Color.red); } return;}var bSecondInit = false;var xAO = null;var xMA_AO = null;function Calc_AC(SMA_Len1, SMA_Len2) {var nRes = 0;var nAO = 0;var nMA_AO = 0; if (bSecondInit == false) { xAO = efsInternal("Calc_AO", SMA_Len1, SMA_Len2); xMA_AO = sma(SMA_Len1, xAO); bSecondInit = true; } nAO = xAO.getValue(0); nMA_AO = xMA_AO.getValue(0); if (nAO == null || nMA_AO == null) return; nRes = nAO - nMA_AO; return nRes;}var bThirdInit = false;var xSMA1 = null;var xSMA2 = null;function Calc_AO(SMA_Len1, SMA_Len2) {var nRes = 0;var nSMA1 = 0;var nSMA2 = 0; if (bThirdInit == false) { xSMA1 = sma(SMA_Len1); xSMA2 = sma(SMA_Len2); bThirdInit = true; } nSMA1 = xSMA1.getValue(0); nSMA2 = xSMA2.getValue(0); if (nSMA1 == null || nSMA2 == null) return; nRes = nSMA1 - nSMA2; return nRes;} |