BidAskSize.efs
File Name: BidAskSize.efs
Description:
Displays the most recent Bid/Trade/Ask size, relative size and price.
Formula Parameters:
NA
Notes:
This formula requires build 606 or higher. In addition to size and price, the text color of the trade bar's (middle bar) labels changes to green if the trade price was at the Ask or higher. If the trade price was at the Bid or lower the text color will be changed to red. If the trade was inside the most recent Bid/Ask prices, the text color will be white. The three bars also display their relative size as a percentage of the sum of the most recent Bid + Trade + Ask sizes.
Download File:
BidAskSize.efs
EFS Code:
/***************************************************************** Provided By : eSignal. (c) Copyright 2003 *****************************************************************/ function preMain() { setStudyTitle("Bid, Ask and Trade Size"); setShowCursorLabel(false); } var nBidSize = 0; var nBid = null; var nTradeSize = 0; var nTrade = null; var nAskSize = 0; var nAsk = null; function main() { if (getCurrentBarIndex() < 0 || getBuildNumber() < 606) return; nAsk = getMostRecentAsk(); nAskSize = getMostRecentAskSize(); nTrade = close(); nTradeSize = getMostRecentTradeSize(); nBid = getMostRecentBid(); nBidSize = getMostRecentBidSize(); if (nAsk == null || nAskSize == null || nTrade == null || nTradeSize == null || nBid == null || nBidSize == null) return; var barA = " "; // 20; var barT = " "; // 20; var barB = " "; // 20; var vColor = Color.white; var Total = 100; if (nTrade >= nAsk) vColor = Color.green; if (nTrade <= nBid) vColor = Color.red; var vSpacer = " "; var vTotal = nAskSize + nTradeSize + nBidSize; var vbarApercent = Math.round((nAskSize/vTotal)*100); var vbarTpercent = Math.round((nTradeSize/vTotal)*100); var vbarBpercent = Math.round((nBidSize/vTotal)*100); for (i = 0; i < 100; ++i) { if (vbarApercent >= i) barA += vSpacer; if (vbarTpercent >= i) barT += vSpacer; if (vbarBpercent >= i) barB += vSpacer; } // Relative Size Bars drawTextAbsolute(1, 16, barA, Color.green, Color.green, Text.BOLD|Text.BOTTOM|Text.RIGHT|Text.RELATIVETOBOTTOM, null, 10, "Ask bar"); drawTextAbsolute(1, 10, barT, Color.black, Color.black, Text.BOLD|Text.VCENTER|Text.RIGHT|Text.RELATIVETOBOTTOM, null, 10, "Trade bar"); drawTextAbsolute(1, 4, barB, Color.red, Color.red, Text.BOLD|Text.TOP|Text.RIGHT|Text.RELATIVETOBOTTOM, null, 10, "Bid bar"); // Size Labels drawTextAbsolute(0, 16, " A SIZE: " + nAskSize + " ", Color.white, Color.green, Text.ONTOP|Text.BOLD|Text.BOTTOM|Text.LEFT|Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT, null, 10, "Ask size"); drawTextAbsolute(0, 10, " T SIZE: " + nTradeSize + " ", vColor, Color.black, Text.ONTOP|Text.BOLD|Text.VCENTER|Text.LEFT|Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT, null, 10, "Trade size"); drawTextAbsolute(0, 4, " B SIZE: " + nBidSize + " ", Color.white, Color.red, Text.ONTOP|Text.BOLD|Text.TOP|Text.LEFT|Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT, null, 10, "Bid size"); // Price Labels drawTextAbsolute(1, 16, " A: " + nAsk.toFixed(4) + " ", Color.white, Color.green, Text.ONTOP|Text.BOLD|Text.BOTTOM|Text.RIGHT|Text.RELATIVETOBOTTOM, null, 10, "Ask"); drawTextAbsolute(1, 10, " T: " + nTrade.toFixed(4) + " ", vColor, Color.black, Text.ONTOP|Text.BOLD|Text.VCENTER|Text.RIGHT|Text.RELATIVETOBOTTOM, null, 10, "Trade"); drawTextAbsolute(1, 4, " B: " + nBid.toFixed(4) + " ", Color.white, Color.red, Text.ONTOP|Text.BOLD|Text.TOP|Text.RIGHT|Text.RELATIVETOBOTTOM, null, 10, "Bid"); return; }