PctInRange.efs
File Name: PctInRange.efs
Description:
This EFS displays the Percent In Range for the current day. The value is calculated by taking the difference between the last price and the low of the day, and dividing that by the High / Low range.
Formula Parameters:
NA
Notes:
This EFS requires getTodayOHLC1.efs in the OHLC subfolder of Formulas. If you do not have it you can find a copy at the following link click here
Download File:
PctInRange.efs
EFS Code:
/******************************************************************** Copyright © eSignal, 2003 Title: Percent In Range Version: 1.1 ===================================================================== History: 1.1 - Added Color coding to %inRange button ===================================================================== Project Description: This EFS displays the Percent In Range for the current day. The value is calculated by taking the difference between the last price and the low of the day, and dividing that by the High / Low range. /***************************************************************************** WARNING: This EFS requires getTodayOHLC1.efs in the OHLC subfolder of Formulas If you do not have it you can find a copy at the following link http://share.esignal.com/groupcontents.jsp?folder=Formulas&groupid=10 ****************************************************************************** **********************************************************************/ function preMain() { setPriceStudy(true); setStudyTitle("% in Range"); setShowCursorLabel(false); } var HH = null; // Highest High var LL = null; // Lowest Low var day1 = null; var day0 = null; function main() { var vPctInRange = 0.0; if (getBarState() == BARSTATE_NEWBAR) { day1 = day0; } day0 = getDay(); if (day0 != day1) { //resets data if a new day HH = null; LL = null; } if (HH == null || high() >= HH) { HH = callFunction("/OHLC/getTodayOHLC1.efs","main","High"); if (HH == null) return; } if (LL == null || low() <= LL) { LL = callFunction("/OHLC/getTodayOHLC1.efs","main","Low"); if (LL == null) return; } // Calc Percent in Range vPctInRange = (close() - LL) / (HH - LL) * 100; if (vPctInRange > 100) vPctInRange = 100; if (vPctInRange < 0) vPctInRange = 0; vPctInRange = (Math.round(vPctInRange * 100)) / 100 //Rounds to two decimal precision //Display result drawTextAbsolute( 0, 15, "%inRange: " + vPctInRange + "%", Color.black, Color.lightgrey, Text.BOLD | Text.RELATIVETOLEFT | Text.RELATIVETOBOTTOM, "Arial", 12, "PctInRange" ); // Color Coding if (vPctInRange > 80) { drawTextAbsolute( 0, 15, "%inRange: " + vPctInRange + "%", Color.black, Color.lime, Text.BOLD | Text.RELATIVETOLEFT | Text.RELATIVETOBOTTOM, "Arial", 12, "PctInRange" ) } else if (vPctInRange < 20) { drawTextAbsolute( 0, 15, "%inRange: " + vPctInRange + "%", Color.black, Color.red, Text.BOLD | Text.RELATIVETOLEFT | Text.RELATIVETOBOTTOM, "Arial", 12, "PctInRange" ); } return null; }