TranslateFuture(Future)
Last updated January 07, 2002
Version: 1 | Requires: CF5 | Library: FinancialLib
	Description: 
	This tag is for developers struggling with commodity quotes.  A given commodity symbol has an indicator for the year and month of the contract it represents.  The month in particular cooresponds to codes dictated by commodity exchanges.  This UDF unpacks a futures symbol into it's root, descriptive month, and year, and hands the values back as a structure.
	Return Values: 
	Returns a structure.
Example:
<cfset futuretest = "SPU2,CH2,OH2,NGK2">
<cfloop index="future" list="#futuretest#">
    <cfset FutSym = TranslateFuture(future)>
    <cfoutput>
    Contract Root:  #futSym.Root# <br>
    Contract Month:  #futSym.Month# <br>
    Contract Year:   #FutSym.Year# <br>
    <p>
    </cfoutput>
</cfloop>
Parameters:
| Name | Description | Required | 
|---|---|---|
| Future | The futures symbol. | Yes | 
Full UDF Source:
/**
 * Translates a Cryptic Futures symbol into a descriptive structure.
 * 
 * @param Future      The futures symbol. 
 * @return Returns a structure. 
 * @author Mark Kruger (Mkruger@cfwebtools.com) 
 * @version 1, January 29, 2002 
 */
function TranslateFuture(Symbol) {
    var    TheYear                =    '';
    var    TheMonth            =    '';
    var SymbolStruct        =    StructNew();
    
    if(Symbol IS NOT '') {
        Symbol                =    replace(Symbol,'0','');
        TheYear                =    '200' &  val(Reverse(Symbol));
        Symbol                =    Replace(symbol,val(reverse(symbol)),'');
        TheMonth            =    right(symbol,1);
        switch(TheMonth)
        {
            case 'F':    {    TheMonth    =    'January';        break;        }
            case 'G':    {    TheMonth    =    'February';        break;        }
            case 'H':    {    TheMonth    =    'March';        break;        }
            case 'J':    {    TheMonth    =    'April';        break;        }
            case 'K':    {    TheMonth    =    'May';            break;        }
            case 'M':    {    TheMonth    =    'June';            break;        }
            case 'N':    {    TheMonth    =    'July';            break;        }
            case 'Q':    {    TheMonth    =    'August';        break;        }
            case 'U':    {    TheMonth    =    'September';    break;        }
            case 'V':    {    TheMonth    =    'October';        break;        }
            case 'X':    {    TheMonth    =    'November';        break;        }
            case 'Z':    {    TheMonth    =    'December';        break;        }                
        }
        
        
        Symbol                =    left(symbol,len(symbol)-1);
        SymbolStruct.Year    =    TheYear;
        SymbolStruct.Root    =    Symbol;
        SymbolStruct.Month    =    TheMonth;
    }
    else {
        SymbolStruct        =    structnew();    
        SymbolStruct.Year    =    '';
        SymbolStruct.Root    =    '';
        SymbolStruct.Month    =    '';
    }
    return(symbolStruct);
}
Search CFLib.org
Latest Additions
									
									Raymond Camden added 
									QueryDeleteRows 
									November 04, 2017
								
								
									
									Leigh added 
									nullPad 
									May 11, 2016
								
								
									
									Raymond Camden added 
									stripHTML 
									May 10, 2016
								
								
									
									Kevin Cotton added 
									date2ExcelDate 
									May 05, 2016
								
								
									
									Raymond Camden added 
									CapFirst 
									April 25, 2016