How to store value for todays open while working with foreign symbol

_SECTION_BEGIN( “Price” );
SetChartOptions( 0, chartShowArrows | chartShowDates );
_N( Title = StrFormat( “{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}”, O, H, L, C, SelectedValue( ROC( C, 1 ) ) ) );
Plot( C, “Close”, ParamColor( “Color”, colorDefault ), styleNoTitle | ParamStyle( “Style” ) | GetPriceStyle() );
_SECTION_END();

TM = 094500;
XD = ( TimeNum() > 092000 AND TimeNum() <= TM );
B1C = IIf( TimeNum() <= TM , C, ValueWhen( XD, C, 1 ) );
TO = TimeFrameGetPrice( “O”, inDaily, 0 );

LISTNUM = CategoryFind( “ALL FO”, categoryWatchlist );
List = CategoryGetSymbols( categoryWatchlist, LISTNUM );

if( Status( “stocknum” ) == 0 ) // GENERATE RANKING WHEN WE ARE ON VERY FIRST SYMBOL
{
StaticVarRemove( “values*” );
StaticVarRemove( “RANK*” );

for( n = 0; ( Symbol = StrExtract( List, n ) )  != "";  n++ )
{
    SetForeign( symbol );

    tm = 094500;

    TO = TimeFrameGetPrice( "O", inDaily, 0 );


    XD = ( TimeNum() > 092000 AND TimeNum() <= TM );
    B1C = IIf( TimeNum() <= TM , C, ValueWhen( XD, C, 1 ) );

    CHANGE = IIf( B1C > 30 AND B1C < 3000 , 100 * ( B1C - TO ) / TO, 0 ) ;

    values = Prec( CHANGE, 4 ) ;

    RestorePriceArrays();

    StaticVarSet( "values"  +  symbol, values );
    _TRACE( symbol );
}

StaticVarGenerateRanks( "rank", "values", 0, 1224 );

}

symbol = Name();

values = StaticVarGet( “values” + symbol );
rank = StaticVarGet( “rankvalues” + symbol );

CH = IIf( B1C > 30 AND B1C < 3000 , 100 * ( B1C - TO ) / TO, 0 ) ;

AddColumn( values, “values” );
AddColumn( rank, “rank” );

AddColumn( TO, “TO” );
AddColumn( B1C, “B1C” );
AddColumn( CH, “C…” );

TOP = rank <= 50 ;

Filter = TOP ;