File Name: PRV.efs

Description:
Pro Rata Volume

Formula Parameters:
Line Thickness: 2
Color PRV: Red
Color Volume: Green
Display Cursor Labels: True


Notes:
The balance of power indicator measures the strength of the bulls
vs. bears by assessing the ability of each to push price to an
extreme level.


Download File:
PRV.efs



EFS Code:
PHP Code:
/*********************************
Provided By:  
    eSignal (Copyright c eSignal), a division of Interactive Data 
    Corporation. 2008. 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:        
    Pro Rata Volume

Version:            1.0  10/06/2008

Notes:
    The balance of power indicator measures the strength of the bulls 
    vs. bears by assessing the ability of each to push price to an
    extreme level.
    
Formula Parameters:                     Default:
    Line Thickness                          2
    Color PRV                             Red
    Color Volume                          Green
    Display Cursor Labels                 True
**********************************/

var fpArray = new Array();
var 
bInit false;

function 
preMain() {

    
setPriceStudy(false);
    
setShowCursorLabel(false);
    
setShowTitleParametersfalse );
    
    
setStudyTitle("Pro Rata Volume");
    
setCursorLabelName("Volume"0);    

    
setDefaultBarFgColor(Color.red0);
    
setPlotType(PLOTTYPE_HISTOGRAM0); 
    
setDefaultBarThickness(20);

   
    
askForInput();
    var 
x=0;
    
fpArray[x] = new FunctionParameter("LineColor1"FunctionParameter.COLOR);
    
with(fpArray[x++]){
        
setName("Color PRV");
        
setDefault(Color.red);
    }    

    
fpArray[x] = new FunctionParameter("LineColor2"FunctionParameter.COLOR);
    
with(fpArray[x++]){
        
setName("Color Volume");
        
setDefault(Color.green);
    }    


    
fpArray[x] = new FunctionParameter("ViewValue"FunctionParameter.BOOLEAN);
    
with(fpArray[x++]){
        
setName("Display Cursor Labels");
        
setDefault(true);
    }    
    

    
fpArray[x] = new FunctionParameter("Thickness"FunctionParameter.NUMBER);
    
with(fpArray[x++]){
        
setName("Line Thickness");
        
setLowerLimit(1);        
        
setDefault(2);
    }
}

var 
nHour 0;
var 
nMinute 0;
var 
nSecond 0;



function 
main(ThicknessLineColor1LineColor2ViewValue) {
var 
nState getBarState();
var 
nEndTime 0;
var 
nVolume 0;
var 
vInt = (getInterval() * 60);
var 
PercentComplete 0;

    if ( 
bInit == false ) { 
        
setDefaultBarFgColor(LineColor10);
        
setDefaultBarThickness(Thickness0);
        
setShowCursorLabel(ViewValue);        
        
bInit true
    } 


    if (!
isIntraday()) {
        
setStudyTitle("Sorry. This script run only intraday charts.");
        return;
    } else {
        if (
getCurrentBarCount() == getNumBars()) {
            
setStudyTitle("Pro Rata Volume");

            
Timer();
            
nEndTime = (nHour 3600) + (nMinute 60) + nSecond;  
            
PercentComplete =  (- ((nEndTime 100 vInt) * 0.01));
            
            if (
PercentComplete 0.02)
                
nVolume volume(0)
            else
                
nVolume Math.floor(volume(0) / PercentComplete);  
      
            if (
nVolume volume(0)) nVolume volume(0);
        } else {
            
nVolume volume(0);
        }
    }

    
drawLineRelative000nVolumePS_SOLIDThicknessLineColor2105 ); 
    
drawLineRelative000volume(0), PS_SOLIDThicknessLineColor1106 ); 
    


    return 
volume(0); 
}

var 
vTimeStamp null;
var 
vInt null;

function 
Timer() {
    if (!
isIntraday() || getCurrentBarIndex() < -1) return;
    var 
nState getBarState();
    var 
vClockTime = new Date()*1;
    
    if (
vInt == nullvInt = (getInterval()*60000);  // convert to milliseconds
    
if (nState == BARSTATE_NEWBAR) {
        
vTimeStamp getValue("Time")*vInt;
    }

    var 
vTimeLeft = (vTimeStamp vClockTime);
    if (
vTimeLeft 0) return;

    var 
vHr 0;
    var 
vMin 0;
    var 
vSec 0;
    
    if (
vInt 3600000) {
        
vHr Math.floor(vTimeLeft/3600000);
        
vTimeLeft -= (vHr*3600000);
    }
    if (
vInt 60000) {
        
vMin Math.floor(vTimeLeft/60000);
        
vTimeLeft -= (vMin*60000);
    }
    
vSec Math.floor(vTimeLeft/1000);
    
    
vTimeLeft = (" " vHr ":" vMin ":" vSec " ");

    
nHour vHr;
    
nMinute vMin;
    
nSecond vSec;

    return;